산업용 모니터 - Raspberry Pi 모니터(검정색) 회로 기판 클로즈업

HMI 프로토타입

빠르고 저렴한 제품

임베디드 소프트웨어 개발

전문 솔루션

임베디드 소프트웨어는 임베디드 시스템으로 알려진, 일반적으로 컴퓨터로 간주되지 않는 기계나 장치를 제어하기 위해 작성된 컴퓨터 소프트웨어를 일컫습니다.
이러한 소프트웨어는 일반적으로 실행되는 특정 하드웨어용으로 전문화되어 있으며 시간 및 메모리 제약이 있는 경우가 많습니다.

임베디드 소프트웨어 Raspberry Pi - Yocto 도커 환경에서 Raspberry Pi 4 빌드 컴퓨터의 스크린 샷

이 프로젝트에서는 전 세계 임베디드 개발자들이 임베디드 및 IOT 장치, 사용자 지정 Linux OS용 맞춤형 Linux 이미지를 만드는 데 사용할 수 있는 기술, 소프트웨어 스택, 구성, 모범 사례를 공유할 수 있는 유연한 도구 세트와 공간을 제공합니다.

임베디드 소프트웨어 Raspberry Pi - Yocto 진행률 표시줄이 있는 Raspberry 사용자 지정 시작 화면 검은색 텍스트가 있는 흰색 로딩 표시줄

일반적으로, Raspberry Pi용 Yocto로 사용자 정의 linux 이미지를 생성하는 경우 진행률 표시줄이 있는 사용자 정의 시작 화면을 표시하기를 원하는 경우가 많습니다.

임베디드 소프트웨어 - Yocto 라즈베리를 Qt 응용 프로그램으로 부팅, 컴퓨터의 스크린 샷

이 가이드에서는 Qt를 설치하기 위해 Yocto 프로젝트를 설정하는 방법과 Raspberry Pi 4용 Qt 데모 애플리케이션, 그리고 해당 Qt 데모 애플리케이션의 자동 시작에 대한 정보를 제공합니다.

임베디드 소프트웨어 라즈베리 파이 - Yocto - 라즈베리 - PIGPIO - Qt 컴퓨터 프로그램의 스크린 샷
PIGPIO 라이브러리 및 Qt 툴체인 포함

Yocto를 구성하여 pigpio 라이브러리, Qt 및 크로스 컴파일을 위한 툴체인을 통합하여 Raspberry Pi 4용 맞춤형 Linux를 만듭니다.

임베디드 소프트웨어 - VisionFive - Mender - Yocto 컴퓨터의 스크린샷
파트 1 - Yocto 환경의 기본 설정

시리즈의 글 중 파트 1에서는 Mender 클라이언트를 통합한 Yocto Linux를 생성하기 위해 Yocto 환경을 설정하는 방법에 대해 설명합니다.

최근에 저는 Raspberry Pi 4 용 응용 프로그램 (키오스크 시스템)을 개발해야했습니다. 특별한 점은 2개의 터치 모니터가 HDMI를 통해 연결되어야 한다는 것인데, HDMI는 오른쪽으로 90도 회전해야 했습니다. 따라서 세로 형식, 2개의 모니터가 서로 겹쳐져 있습니다.
화면을 회전하고 서로 겹쳐서 배열하는 것은 사용자 인터페이스를 통해 쉽게 가능하기 때문에 문제가 발생하지 않았습니다 - "데스크탑 및 권장 소프트웨어가있는 Raspbian Buster"가 설치되었습니다.

잦은 데이터 쓰기 또는 덮어쓰기로 인해 SD 카드의 수명에 영향을 미칩니다.

예를 들어, 다시 시작한 후 더 이상 필요하지 않은 임시 데이터(예: 비교 계산을 위한 센서 값)를 포함하는 응용 프로그램의 경우 RAM 디스크에 임시 데이터(예: 비교 계산을 위한 센서 값)를 쓰는 것이 좋습니다.

일반적으로 전원 공급에 사용되는 Raspberry Pi 4의 USB-C 인터페이스를 일반 USB 인터페이스로 사용할 수도 있습니다.
그러나 이 경우 Raspberry는 GPIO 핀을 통해 전원을 공급해야 합니다.

임베디드 소프트웨어 라즈베리 파이 - 라즈베리 파이 4의 Qt 블루 스크린의 컴퓨터 스크린 샷

Qt는 그래픽 인터페이스를 개발하는 데 자주 사용됩니다. Qt에는 다양한 운영 체제에서 컴파일할 수 있는 그래픽 인터페이스를 만들기 위한 C++ 라이브러리가 포함되어 있습니다.
이러한 컴파일은 대량의 컴퓨팅 파워를 필요로 하기 때문에 상대적으로 적은 파워를 가진 프로세서들이 호스트 컴퓨터에서 개발 및 컴파일을 수행하고 그 다음에 완료된 애플리케이션을 대상 컴퓨터로 로드하는 것이 좋습니다.
온라인에는 Raspberry Pi 3 및 Pi 4 모델용 Qt 애플리케이션을 개발하는 데 사용할 수 있는 지침이 많이 게시되어 있습니다.

안타깝게도, Raspberry Pi 4와 저희 니즈에 완벽히 부합되는 것은 찾을 수 없었습니다.

Compute Module 4에 Raspberry Pi OS Lite를 설치하기 위한 가이드입니다. 업무용 컴퓨터로서 가상 머신에 설치된 Ubuntu 20을 사용합니다.

Raspberry Pi 4용 Qt 5.15.2를 크로스 컴파일하고 Compute Module 4에 설치하기 위한 가이드입니다. Raspberry Pi 4의 블로그 게시물 Qt에 대한 업데이트이며 이번에는 Raspberry Pi OS Lite를 사용하고 있다는 차이점이 있습니다.

이것은 Raspberry Pi 4에 크로스 컴파일 된 Qt 라이브러리를 사용하고 Raspberry 용 응용 프로그램을 생성하도록 Qt-Creator를 구성하기위한 안내서입니다.

임베디드 소프트웨어 - Raspberry Pi 4 용 Qt 크로스 컴파일 설정 스크립트 : 컴퓨터 프로그램의 스크린 샷

이 페이지에서는 linux 호스트 및 Raspberry Pi 4에서 크로스 컴파일을 자동으로 설정하는 스크립트에 대한 다운로드 링크와 사용 방법에 대한 설명을 제공합니다.

이 블로그에서는 TCP/IP를 통한 Modbus 연결의 예로 작은 Qt Quick 애플리케이션(qml)을 제공하고자 합니다.
Qt 예제에서 Modbus 연결에 대한 QWidget 예제 만 찾았으며 최근에이 Qt Quick 응용 프로그램을 만든 후 슬림 다운 버전을 예제로 제공하려고합니다.

Raspberry Pi 4용 Qt 응용 프로그램 또는 다른 응용 프로그램을 만든 경우 응용 프로그램이 완료된 후 Raspberry를 다시 시작한 직후 응용 프로그램을 호출하려는 경우가 많습니다.
이것은 종종 다양한 위치에 입력할 수 있는 시작 스크립트로 시도됩니다.
그러나 systemd 를 통해 설정하는 것이 더 합리적입니다.

작업은 Qt Quick 응용 프로그램 (GUI)을 작성하여 터치 컨트롤러에 새 펌웨어를 업로드하는 것이 었습니다.
업로드 소프트웨어는 터치 컨트롤러에 .bin 파일을 로드하는 .exe 응용 프로그램에서 제조업체에서 제공했습니다.
쉘 응용 프로그램을 호출하고 제어하는 데 사용할 수있는 Qt 클래스 "QProcess"를 사용하고 싶었습니다. 리눅스 측에서는 이미 여러 번 성공적으로 사용했지만 Windows에서는 처음에는 작동하지 않았습니다.

임베디드 소프트웨어 - HDMI 모니터 설정 컴퓨터 프로그램의 스크린샷
ddcutil로 HDMI 모니터 설정 제어

I2C를 통해 ddcutil을 설치하고 HDMI 모니터의 설정을 제어하는 Yocto 레시피.

임베디드 소프트웨어 - libgpiod 검은색 텍스트가 있는 노란색 화면
Yocto에 libgpiod 포함

Yocto에 libgpiod 라이브러리를 포함하고 임베디드 시스템에서 사용합니다.