수행기록퀘스트7
이번에 퀘스트 7용으로 제작한 응용프로그램은 "LED 컨트롤러" 입니다. 아래 그림처럼 동작됩니다.
아래 그림과 같이 LED 패널과 STM32MP157C-DK2보드간에 I2C를 사용하여 총 64개의 LED를 컨트롤 할 수 있는 GUI를 제공하는 어플리케이션을 작성하였습니다. 전체 LED/개별 LED/몇가지 데모를 테스트 해 볼 수 있는 프로그램입니다.
가지고 있던 LED 스트립을 사용하여 8x8 매트릭스를 구성하려고 합니다.
원래는 좀 더 많은 LED를 사용 해 보려고 하였으나 LCD상에 UI를 그리기에는 8개 정도가 최대인듯 하여 8x8로 확정하였습니다.
I2C통신을 하여 데이터를 수신 후 LED를 컨트롤 할 수 있도록 작은 보드를 조립 후 연결하였습니다.
아래와 같이 LED 패널과 보드를 서로 연결하여 I2C 통신을 할 수 있습니다.
보드 후면쪽에 I2C5를 사용해서 I2C 통신을 하려고 하려고 하였으나 기본적으로 st-example-image-qt 이미지에는 I2C5용 디바이스 장치가 없습니다.
이를 사용하기 위해서는 커널에 I2C5관련 DTS를 추가 후 커널을 업데이트 해야만 사용이 가능합니다.
I2C5를 DTS에 추가 한 후 커널을 업데이트 하여 I2C5가 제대로 연결이 되었는지 테스트 해 봅니다.
기본적으로 제공되는 i2cdetect를 사용하여 테스트를 해 보았습니다.
I2C 디바이스가 정상적으로 등록이 되었고, LED 패널의 slave address도 정상적으로 읽힙니다.
LED패널과 STM32MP157C-DK2보드가 하드웨어적으로 정상연결이된 것을 확인해 보았습니다.
다음은 이를 좀 더 사용하기 쉽게 QT(QML)를 사용하여 GUI 프로그램을 작성해 봅니다.
구상은 대략적으로 아래 그림과 같이 왼편에 위/아래로 스크롤되는 메인메뉴가 위치하고 해당 메뉴 선택시 버튼 클릭 효과가 나타나며, 오른쪽뷰에 각 메뉴 별 해당 LED 컨트롤 뷰가 나타나는 구조로 작성하였습니다.
메인메뉴 클릭시 아래와 같은 버튼 클릭 효과가 나타납니다.
아래는 LED Slider Control 메뉴입니다. 선택한 색상으로 전체 LED를 디스플레이 해 줍니다.
아래는 Custom LED Control 메뉴입니다.
개별 LED를 선택 후(선택된 LED는 붉은색 사각형으로 표시되며, 선택한 LED의 색상은 오른쪽 박스에 표시됩니다.) 설정한 색상으로 디스플레이 할 수 있으며, 전체 LED를 설정할 수 있는 체크 박스가 있어서 체크시 전체 LED 총 64개를 디스플레이 할 수 있습니다.
아래는 LED Effect 메뉴입니다 미리 설정되어 있는 3가지 LED 데모가 실행됩니다.
About 메뉴입니다. 본 프로그램의 정보를 보여 줍니다. (D2Coding 한글폰트가 사용되었습니다.)
마지막으로 종료메뉴입니다. 클릭시 현재 프로그램을 종료합니다.
에러 메세지 창입니다. LED패널 장치가 발견되지 않을시 아래와 같은 메세지를 보여 줍니다.
아래는 퀘스트7을 수행한 동영상입니다.
실행파일은 Quest7.zip으로 압축하여 첨부하였습니다.
- 첨부파일
- Quest7.zip 다운로드
로그인 후
참가 상태를 확인할 수 있습니다.