Industrial Monitor - Raspberry Pi Monitor (svart), en närbild av ett kretskort

HMI-prototyper

snabbt och billigt

UTVECKLING AV INBYGGD PROGRAMVARA

PROFESSIONELLA LÖSNINGAR

Inbyggd programvara är specialiserad datorprogramvara som är utformad för att fungera på inbyggda HMI:er som vanligtvis inte anses vara traditionella datorer. Hårdvaran (CPU/RAM/FLASH MEMORY) är extremt optimerad för applikationen och därför begränsad. Operativsystemet är kraftigt optimerat för att endast ha den nödvändiga programvaran för applikationen - inget annat. Du kompilerar ditt operativsystem skräddarsytt för applikationen. Den driver olika system, från hushållsapparater till industrimaskiner och till och med mångsidiga verktyg som Raspberry Pi. Raspberry Pi, en kompakt och prisvärd dator, är känd för att lära sig och experimentera med inbyggda system. Med den kan du skriva och köra programvara som styr olika hårdvarukomponenter, vilket ger ett praktiskt sätt att utforska världen av inbäddad mjukvaruutveckling. På den här sidan finns en samling handledningar som hjälper dig att komma igång med Raspberry Pi och projekt för inbäddad programvara.

Inbäddad programvara Raspberry Pi - Yocto bygga Raspberry Pi 4 i en dockermiljö en skärmdump av en dator

Projektet tillhandahåller en flexibel uppsättning verktyg och ett utrymme där utvecklare av inbyggd programvara över hela världen kan dela tekniker, programstackar, konfigurationer och bästa praxis som kan användas för att skapa skräddarsydda Linux-avbilder för inbyggda enheter och IOT-enheter, eller var som helst där ett anpassat Linux-OS behövs.

Inbäddad programvara Raspberry Pi - Yocto Raspberry anpassad välkomstskärm med förloppsindikator en vit laddningsfält med svart text

Normalt, om du skapar din anpassade Linux-bild med Yocto för en Raspberry Pi, vill du även visa en anpassad startskärm med en förloppsindikator.

Inbäddad programvara - Yocto starta hallon till Qt-applikation en skärmdump av en dator

I den här guiden ger vi dig information om hur du konfigurerar ett Yocto-projekt för att installera Qt och en Qt-demoapplikation för en Raspberry Pi 4, och sedan starta denna Qt-demoapplikation automatiskt.

Inbäddad programvara Hallon Pi - Yocto - Hallon - PIGPIO - Qt en skärmdump av ett datorprogram
Inkludera PIGPIO-bibliotek och Qt-verktygskedja

Konfigurera Yocto för att skapa ett anpassat Linux för Raspberry Pi 4 med integration av pigpio-bibliotek, Qt och en verktygskedja för korskompilering.

Inbäddad programvara - VisionFive - Mender - Yocto en skärmdump av en dator
Del 1 – Grundläggande konfiguration av Yocto-miljön

Del 1 av en serie artiklar, hur du konfigurerar en Yocto-miljö för att skapa en Yocto Linux med integration av en Mender-klient.

Nyligen var jag tvungen att utveckla en applikation (kiosksystem) för / på en Raspberry Pi 4. Det speciella med det var att 2 pekskärmar skulle anslutas via HDMI, som måste roteras 90 grader åt höger. Så porträttformat, 2 bildskärmar ovanpå varandra.
Att rotera skärmen och ordna den ovanpå varandra orsakade inga problem, eftersom det lätt är möjligt via användargränssnittet - en "Raspbian Buster med skrivbord och rekommenderad programvara" installerades.

På grund av frekvent skrivning eller överskrivning av data påverkas livslängden på ett SD-kort.

Det rekommenderas till exempel att skriva tillfälliga data (t.ex. sensorvärden för jämförande beräkningar) till en RAM-disk för applikationer som ofta innehåller tillfälliga data (t.ex. sensorvärden för jämförande beräkningar) som inte längre behövs efter en omstart.

Du kan också använda USB-C-gränssnittet på Raspberry Pi 4, som normalt används för strömförsörjning, som ett vanligt USB-gränssnitt.
I det här fallet bör dock Raspberry leverera ström via GPIO-stiften.

Inbäddad programvara Raspberry Pi - Qt på Raspberry Pi 4 en datorskärmbild av en blå skärm

Qt används ofta för att utveckla grafiska gränssnitt. Qt innehåller C ++-bibliotek för att skapa grafiska gränssnitt som kan kompileras på olika operativsystem.
Eftersom denna kompilering kräver en hel del datorkraft, är det tillrådligt för processorer med relativt lite kraft att utföra utveckling och sammanställning på en värddator och först då ladda den färdiga applikationen på måldatorn.
Det finns mängder av instruktioner online för att utveckla en Qt-applikation för Raspberry Pi 3- och Pi 4-modeller.

Det här är en guide för att installera Raspberry Pi OS Lite på Compute Module 4. Som arbetsdator använder jag Ubuntu 20, installerat i en virtuell maskin.

Detta är en guide för korskompilering Qt 5.15.2 för Raspberry Pi 4 och installera den på beräkningsmodul 4. Det är en uppdatering av mitt blogginlägg Qt på Raspberry Pi 4, med skillnaden att den här gången använder jag Raspberry Pi OS Lite.

Detta är en guide för att konfigurera Qt-Creator för att använda korskompilerade Qt-bibliotek för Raspberry Pi 4 och för att skapa applikationer för Raspberry.

Inbäddad programvara - Qt korskompilera installationsskript för Raspberry Pi 4, en skärmdump av ett datorprogram

På denna sida tillhandahåller vi nedladdningslänkar för skript för att automatiskt konfigurera korskompilering på en Linux-värd och Raspberry Pi 4, och en beskrivning för hur du använder dem.

I den här bloggen vill jag ge en liten Qt Quick-applikation (qml) som ett exempel på en Modbus-anslutning över TCP / IP.
I Qt-exemplen har jag bara hittat QWidget-exempel för Modbus-anslutningar, och efter att nyligen ha skapat en Qt Quick-applikation för detta skulle jag vilja ge en nedbantad version av den som ett exempel.

Om du har skapat en Qt-applikation - eller någon annan applikation - för Raspberry Pi 4, vill du ofta att applikationen ska anropas omedelbart efter att du startat om Raspberry efter att applikationen har slutförts.
Detta försöker man ofta med startskript som kan matas in på olika ställen.
Det är dock rimligare att ställa in detta via systemd .

Uppgiften var att skriva en Qt Quick-applikation (GUI) för att ladda upp ny firmware till en pekkontroller.
Uppladdningsprogramvaran tillhandahölls av tillverkaren i ett .exe program som laddar en .bin fil på pekkontrollen.
Jag ville använda Qt-klasserna "QProcess", som kan användas för att anropa och styra skalapplikationer. På Linux-sidan hade jag redan använt detta framgångsrikt flera gånger - men på Windows fungerade det inte först.

Inbäddad programvara - Inställningar för HDMI-skärm en skärmdump av ett datorprogram
Styr HDMI-skärminställningar med ddcutil

Yocto-recept för att installera ddcutil och styra inställningarna för en HDMI-skärm via I2C.

Inbäddad programvara - libgpiod en gul skärm med svart text
Inkludera libgpiod i Yocto

Inkludera libgpiod-biblioteket i Yocto och använd det i ditt inbäddade system.