개발/기술문의

LabVIEW/STM32 등 개발문의 -> jexe0716@gmail.com 으로 연락부탁드립니다.

반응형

전체 글 24

1차 LPF 구현 (basic)

(2016년도에 작성한 글을 옮김) 사실 필터를 제대로 설명하고자 한다면 수십 페이지 이상의 자료가 필요할 것이며, 나의 역량으로는 부족하다. 이 페이지에서는 1차 필터의 개념을 간단하게 설명, 수식노드에서 구현한 C코드와 labview 내 함수를 이용한 필터를 비교해본다. 서두 부분은 학부시절 참고하였던 블로그(http://pinkwink.kr/437)의 내용을 옮겨온 것이다. 마지막 식을 코드로 표현하면 된다. 여기서 주목해야 할 것은 시정수(time constant, tau)이다. #tau는 차단주파수(cutoff frequency, fc)와 반비례 관계를 지니고 있다. #tau는 passive filter(PPG1페이지에 간략정리)에서 R과 C의 곱으로 표현된다(따라서 선택적으로 차단 주파수를 설..

LabVIEW 2021.01.14

디자인 패턴(2)

멀티 루프 디자인 패턴은 단일 루프보다 큰 프로젝트에서 사용되며, 특히 실무에서 생산자/소비자 데이터 패턴을 사용하는 것을 많이 봐왔다(ex 병원 내 환자들과 간호사 간의 N:1 데이터 통신). 특히 데이터 손실이나 동기화에 대한 이해가 중요하기 때문에 별개로 글을 작성할 계획이다. 병렬구조 - 두 개 이상의 While loop 서로 다른 실행 주기를 가지고 동시에 다양한 테스크를 처리. - 단 실행 중에는 While loop 간의 데이터 이동이 없는 독립적인 일을 처리할 때 적합. -멀티 루프 간의 데이터 공유에 대해서는 추후에 작성(동기화 제외). 마스터/슬레이브(Master/Slave) 디자인 패턴 - 알림자 함수 사용. -슬레이브 루프가 마스터 루프에 동기화되어 실행. -버퍼 구조가 아니기 때문에..

LabVIEW 2021.01.14

디자인 패턴(1)

랩뷰를 이용한 프로젝트 개발 시 여러가지가 있겠지만, 그 중 하나는 프로젝트 특성에 적합한 구조를 사용해야 하며, 이러한 적합한 구조들을 랩뷰에서는 디자인 패턴이라 부른다. 크게 단일 루프와 멀티 루프로 분류되며 디자인 패턴(1)에서는 단일 루프에 대해 소개한다. 단순 VI디자인 패턴 -While loop가 없는 단순 구조 -한 번 실행 일반 VI디자인 패턴 -하나의 While loop가 있는 구조 -정지조건에 만족할 때까지 반복 실행 -연속 데이터 수집에 사용 상태머신(State Machine)디자인 패턴 -While loop와 Case 구조의 조합 -A >> B >> (B결과에 따라) >> C or D , 상태에 따라 실행 -시프트 레지스터를 이용하여 다음 상태의 값을 전달 사용자 인터페이스 이벤트 ..

LabVIEW 2021.01.14

I2C 통신을 이용한 DAC 제어

HAL 함수를 통해 쉽게 I2C 통신을 할 수 있다. 나의 경우, 이상할 정도로 I2C를 쓰는 일은 없었다, 대부분 SPI나 UART... 작은 사이즈의 OLED 디스플레이나 EEPROM 정도로 기억한다. 인터넷을 찾아보면 대다수가 AT24C02 같은 메모리 예제가 많을 것이다. 오늘은 TI사의 8bit DAC IC인 DAC5571를 구동하는 예제를 작성해본다. CubeIDE를 실행시키고 I2C1를 선택하면 다음과 같은 Configuration이 나타난다. -Master Fearues는 MCU가 마스터 역할일 때의 설정. -Slave Features는 MCU가 슬레이브 역할 일 때의 설정. DAC5571의 데이터 시트를 확인 한뒤, 기본 설정인 Standard Mode로 선택했다. 그 이상 사실 I2C는..

STM32/HAL library 2021.01.14

TouchGFX 구조

TouchGFX 를 이용하면 꽤 훌륭한 그래픽을 구현할 수 있다. 그러나 아쉽게도 TouchGFX에 대한 국내 정보가 다른 GUI 정보보다 많지는 않다. 나 역시 인터넷을 통해서 기초 학습을 많이 하였고, 그래서 이번 기회에 간단한 수준의 기술 글을 작성해서 부족한 부분은 피드백받고 처음 시작하는 분들에게는 도움이 되는 등 공유하고자 한다. 먼저 ST에서는 TouchGFX UI 개발을 할 때 MVP(Model-View-Presenter) Design Pattern 가이드를 따르길 권장한다. 아래는 기술문서에서 간략한 글을 정리해 본 것이다. 기존의 CubeIDE를 통해 코드 생성을 해본 경험이 있다면 익숙할 것인데, TouchGFX 로 UI를 꾸미거나 기능을 설정하면 자동으로 코드가 생성된다. 코드는 크..

STM32/TouchGFX 2021.01.06

DMA를 이용한 UART 통신

STM32 에서는 DMA(Direct Memory Access)를 쉽게? 사용 할 수 있다. The DMA allows data transfers to take place in the background, without the intervention of the Cortex-Mx processor. During this operation, the main processor can execute other tasks and it is only interrupted when a whole data block is available for processing. DMA에 관련한 Application note는 아래 주소를 통해 상세하게 확인할 수 있다. Using the STM32F2, STM32F4 and S..

STM32/HAL library 2020.12.30

Redmine + Git 프로젝트 관리 시스템 구축 -(1) Bonobo Git Server

개발 팀 내에서 협업 및 프로젝트 수가 많아짐에 따라, 프로젝트 관리 시스템 구축이 필요하게 되었다. 크게 시스템 조건은, 이전에 github를 잠깐 경험한 바 있으나, [1]외부에서는 접속하지 못하게 하는 조건이 있으므로 외부가 아닌 서버PC에 '원격 저장소'를 둔다. 물론 나중에는 유료 버전의 고급 시스템을 쓸 수 있겠지만, 현 수준에서는 충분히 [2]무료로 구축한다. 이 조건에 맞춰 Redmine + git 조합으로 시스템 구축을 준비하게 되었다. 따라서 오늘은 먼저 git를 여러 pc에서 접속하여 commit 할 수 있도록 해보자. ---------------------------------------------------------------------------------------------..

ETC 2020.12.23

Mbed Studio X HAL Library

arm 사의 Mbed 를 사용하게 되면서 가장 먼저는 online IDE(web에서 코드 작성)를 사용했었다. 물론 코드 공유 및 PC 개발 환경 구축 등 장점을 가지고 있지만, 기존에 ST사에서 제공하는 HAL library 를 사용한 것이 익숙한 나에게는 Mbed 코드는 너무 아두이노?스러운 느낌이 있어서 불편했다. 정확하게는 코드는 내 맘대로 사용하기가 너무 어려웠다. 그리고 회로를 개발한 뒤에는 JTAG으로 컴파일을 하려다보니 online IDE가 ST link를 지원하지 않아서 문제가 발생했다. 이러한 이유로 뭔가 MbedOS 사용을 중단해야 되나 고민이 되었는데 그러나 OS를 써야할 경우가 분명 있을거라 MbedOS 역시 포기할 수는 없고, 찾아보니 Mbed Studio라는 offline ID..

STM32/Mbed 2020.11.03

camera 출력과 serial 통신 동시에 동작하기[2] #opencv#multiprocessing#pyserial

camera출력과 serial통신 동시에 동작하기[1]에 이어서 [2]에서는 동영상을 저장하는 코드를 추가해본다. cv2에서는 cv2.VideoWriter()를 통해서 원하는 비디오코덱을 선택하여 동영상을 저장할 수 있다. (파일 명, 비디오코덱 정보, 프레임 , 해상도) 그리고 while을 통해 각 frame을 저장하는 방식이다. 아래 예제는 1280, 720 사이즈로 초 당 20프레임을 저장한 파일(.mp4)이다. [동작 영상] [Code] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 import cv2 import tim..

Python 2020.10.04

camera 출력과 serial 통신 동시에 동작하기[1] #opencv#multiprocessing#pyserial

2020년 새로운 회사에 이직하게 되면서 python을 사용할 기회?가 생겼다. 보통은 하드웨어 개발을 하면서 시리얼 통신을 이용한 데이터 입출력 및 저장 같은 동작을 코드를 공부하면서 사용하고 있었다. 그러다가 이번에 카메라로 영상을 추가로 함께 저장하면서 데이터를 분석해야 하는 업무가 생겼다. 예전 같으면 랩뷰로 후다닥 동작을 만들고 UI까지 예쁘게 다듬는 수준으로 여유를 부리며 만들 수 있었을텐데, 파(python)린이 수준인 상태에서는 이것조차 굉장히 어렵다... 이번 기회에 하나씩 블로그로 내용을 올리면서 학습하고자 한다. 파이썬은 쓰레드에 대한 뭔가 다른 규칙과 방법들이 있는거 같은데, 아직 이부분에 대해서는 하나씩 동작해보면서 공부해야 할듯 하다. 우선은 오늘은 카메라를 켜고 시리얼로 데이터..

Python 2020.10.03
반응형