임베디드 소프트웨어 개발
임베디드 소프트웨어는 일반적으로 기존 컴퓨터로 간주되지 않는 임베디드 HMI 에서 작동하도록 설계된 특수 컴퓨터 소프트웨어입니다. 하드웨어(CPU/RAM/FLASH MEMORY)는 애플리케이션에 매우 최적화되어 있으므로 제한적입니다. 운영 체제는 응용 프로그램에 필요한 소프트웨어 만 갖도록 크게 최적화되어 있습니다. 응용 프로그램에 맞게 조정된 운영 체제를 컴파일합니다. 가전 제품에서 산업용 기계, 심지어 Raspberry Pi와 같은 다용도 도구에 이르기까지 다양한 시스템에 전원을 공급합니다. 컴팩트하고 저렴한 컴퓨터인 Raspberry Pi는 임베디드 시스템에 대한 학습과 실험으로 유명합니다. 이를 통해 다양한 하드웨어 구성 요소를 제어하는 소프트웨어를 작성하고 실행할 수 있으므로 임베디드 소프트웨어 개발의 세계를 탐색할 수 있는 실습 방법을 제공합니다. 이 페이지에서는 Raspberry Pi 및 임베디드 소프트웨어 프로젝트를 시작하는 데 도움이 되는 자습서 모음을 제공합니다.
이 프로젝트에서는 전 세계 임베디드 개발자들이 임베디드 및 IOT 장치, 사용자 지정 Linux OS용 맞춤형 Linux 이미지를 만드는 데 사용할 수 있는 기술, 소프트웨어 스택, 구성, 모범 사례를 공유할 수 있는 유연한 도구 세트와 공간을 제공합니다.
일반적으로, Raspberry Pi용 Yocto로 사용자 정의 linux 이미지를 생성하는 경우 진행률 표시줄이 있는 사용자 정의 시작 화면을 표시하기를 원하는 경우가 많습니다.
이 가이드에서는 Qt를 설치하기 위해 Yocto 프로젝트를 설정하는 방법과 Raspberry Pi 4용 Qt 데모 애플리케이션, 그리고 해당 Qt 데모 애플리케이션의 자동 시작에 대한 정보를 제공합니다.
Yocto를 구성하여 pigpio 라이브러리, Qt 및 크로스 컴파일을 위한 툴체인을 통합하여 Raspberry Pi 4용 맞춤형 Linux를 만듭니다.
시리즈의 글 중 파트 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 핀을 통해 전원을 공급해야 합니다.
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를 구성하기위한 안내서입니다.
이 페이지에서는 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에서는 처음에는 작동하지 않았습니다.