การพัฒนาซอฟต์แวร์แบบฝังตัว
ซอฟต์แวร์ฝังตัวเป็นซอฟต์แวร์คอมพิวเตอร์เฉพาะที่ออกแบบมาเพื่อทํางานบน HMI แบบฝังตัวซึ่ง โดยทั่วไปไม่ถือว่าเป็นคอมพิวเตอร์แบบดั้งเดิม ฮาร์ดแวร์ (CPU/RAM/FLASH MEMORY) ได้รับการปรับให้เหมาะสมอย่างยิ่งสําหรับแอปพลิเคชันและดังนั้นจึงมีข้อจํากัด ระบบปฏิบัติการได้รับการปรับให้เหมาะสมอย่างมากเพื่อให้มีเฉพาะซอฟต์แวร์ที่จําเป็นสําหรับแอปพลิเคชัน - ไม่มีอะไรอื่น คุณรวบรวมระบบปฏิบัติการของคุณที่ปรับให้เหมาะกับแอปพลิเคชัน ขับเคลื่อนระบบต่างๆ ตั้งแต่เครื่องใช้ในครัวเรือนไปจนถึงเครื่องจักรอุตสาหกรรม และแม้แต่เครื่องมืออเนกประสงค์ เช่น Raspberry Pi Raspberry Pi คอมพิวเตอร์ขนาดกะทัดรัดและราคาไม่แพงมีชื่อเสียงในด้านการเรียนรู้และทดลองกับระบบฝังตัว ด้วยวิธีนี้ คุณสามารถเขียนและเรียกใช้ซอฟต์แวร์ที่ควบคุมส่วนประกอบฮาร์ดแวร์ต่างๆ ได้ ซึ่งเป็นวิธีลงมือปฏิบัติจริงในการสํารวจโลกของการพัฒนาซอฟต์แวร์แบบฝังตัว หน้านี้มีคอลเลกชันของบทช่วยสอนเพื่อช่วยคุณเริ่มต้นใช้งาน Raspberry Pi และโครงการซอฟต์แวร์แบบฝังตัว
โครงการนี้มีชุดเครื่องมือที่ยืดหยุ่นและพื้นที่ที่นักพัฒนาแบบฝังตัวทั่วโลกสามารถแบ่งปันเทคโนโลยีสแต็คซอฟต์แวร์การกําหนดค่าและแนวทางปฏิบัติที่ดีที่สุดที่สามารถใช้เพื่อสร้างอิมเมจ Linux ที่ปรับแต่งสําหรับอุปกรณ์ฝังตัวและ IOT หรือทุกที่ที่ต้องการระบบปฏิบัติการ Linux ที่กําหนดเอง
โดยปกติหากคุณสร้างภาพลินุกซ์ที่กําหนดเองด้วย Yocto สําหรับ Raspberry Pi คุณต้องการแสดงหน้าจอเริ่มต้นที่กําหนดเองพร้อมแถบความคืบหน้า
ในคู่มือนี้เราให้ข้อมูลวิธีตั้งค่า โครงการ Yocto เพื่อติดตั้ง Qt และแอปพลิเคชันสาธิต Qt สําหรับ Raspberry Pi 4 จากนั้นเริ่มแอปพลิเคชันสาธิต Qt นี้โดยอัตโนมัติ
กําหนดค่า Yocto เพื่อสร้าง Linux ที่กําหนดเองสําหรับ Raspberry Pi 4 ด้วยการรวมไลบรารี pigpio, Qt และ toolchain สําหรับการรวบรวมข้าม
ส่วนที่ 1 ของชุดบทความวิธีการตั้งค่าสภาพแวดล้อม Yocto เพื่อสร้าง Yocto Linux ด้วยการรวมไคลเอนต์ Mender
เมื่อเร็ว ๆ นี้ฉันต้องพัฒนาแอปพลิเคชัน (ระบบคีออสก์) สําหรับ / บน Raspberry Pi 4 ความพิเศษเกี่ยวกับเรื่องนี้คือต้องเชื่อมต่อจอภาพแบบสัมผัส 2 จอผ่าน HDMI ซึ่งต้องหมุนไปทางขวา 90 องศา ดังนั้นรูปแบบแนวตั้ง 2 จอภาพอยู่ด้านบนของกันและกัน
การหมุนหน้าจอและจัดเรียงไว้ด้านบนของกันและกันไม่ก่อให้เกิดปัญหาใด ๆ เนื่องจากเป็นไปได้ง่ายผ่านอินเทอร์เฟซผู้ใช้ - ติดตั้ง "Raspbian Buster พร้อมเดสก์ท็อปและซอฟต์แวร์ที่แนะนํา"
เนื่องจากการเขียนหรือเขียนทับข้อมูลบ่อยครั้งอายุการใช้งานของการ์ด SD จะได้รับผลกระทบ
ตัวอย่างเช่น ขอแนะนําให้เขียนข้อมูลชั่วคราว (เช่น ค่าเซ็นเซอร์สําหรับการคํานวณเปรียบเทียบ) ไปยังดิสก์ RAM สําหรับแอปพลิเคชันที่มักจะมีข้อมูลชั่วคราว (เช่น ค่าเซ็นเซอร์สําหรับการคํานวณเปรียบเทียบ) ที่ไม่จําเป็นอีกต่อไปหลังจากรีสตาร์ท
คุณยังสามารถใช้อินเทอร์เฟซ USB-C ของ Raspberry Pi 4 ซึ่งโดยปกติจะใช้สําหรับแหล่งจ่ายไฟเป็นอินเทอร์เฟซ USB ปกติ
อย่างไรก็ตามในกรณีนี้ Raspberry ควรจ่ายไฟผ่านพิน GPIO
Qt มักใช้ในการพัฒนาอินเทอร์เฟซกราฟิก Qt มีไลบรารี C ++ สําหรับการสร้างอินเทอร์เฟซแบบกราฟิกที่สามารถคอมไพล์บนระบบปฏิบัติการต่างๆ
เนื่องจากการรวบรวมนี้ต้องการพลังการประมวลผลจํานวนมากจึงแนะนําให้ใช้โปรเซสเซอร์ที่มีพลังงานค่อนข้างน้อยในการพัฒนาและรวบรวมบนคอมพิวเตอร์โฮสต์จากนั้นจึงโหลดแอปพลิเคชันที่เสร็จแล้วลงในคอมพิวเตอร์เป้าหมายเท่านั้น
มีคําแนะนํามากมายทางออนไลน์สําหรับการพัฒนาแอปพลิเคชัน Qt สําหรับรุ่น Raspberry Pi 3 และ Pi 4
นี่คือคําแนะนําสําหรับการติดตั้ง Raspberry Pi OS Lite บน Compute Module 4 ในฐานะคอมพิวเตอร์ที่ทํางานฉันใช้ Ubuntu 20 ซึ่งติดตั้งในเครื่องเสมือน
นี่คือคําแนะนําสําหรับการรวบรวมข้าม Qt 5.15.2 สําหรับ Raspberry Pi 4 และติดตั้งบน Compute Module 4 เป็นการอัปเดตโพสต์บล็อกของฉัน Qt บน Raspberry Pi 4 โดยมีความแตกต่างที่คราวนี้ฉันใช้ Raspberry Pi OS Lite
นี่คือคําแนะนําสําหรับการกําหนดค่า Qt-Creator เพื่อใช้ไลบรารี Qt ที่คอมไพล์ข้ามสําหรับ Raspberry Pi 4 และเพื่อสร้างแอปพลิเคชันสําหรับ Raspberry
ในหน้านี้เรามีลิงก์ดาวน์โหลดสําหรับสคริปต์เพื่อตั้งค่าการรวบรวมข้ามบนโฮสต์ linux และ Raspberry Pi 4 โดยอัตโนมัติและคําอธิบายวิธีใช้งาน
ในบล็อกนี้ฉันต้องการให้แอปพลิเคชัน Qt Quick (qml) ขนาดเล็กเป็นตัวอย่างของการเชื่อมต่อ Modbus ผ่าน TCP / IP
ในตัวอย่าง Qt ฉันพบตัวอย่าง QWidget สําหรับการเชื่อมต่อ Modbus เท่านั้นและหลังจากเพิ่งสร้างแอปพลิเคชัน Qt Quick สําหรับสิ่งนี้ฉันต้องการให้เวอร์ชันที่บางลงเป็นตัวอย่าง
หากคุณสร้างแอปพลิเคชัน Qt - หรือแอปพลิเคชันอื่น ๆ - สําหรับ Raspberry Pi 4 คุณมักจะต้องการให้แอปพลิเคชันถูกเรียกทันทีหลังจากรีสตาร์ท Raspberry หลังจากแอปพลิเคชันเสร็จสมบูรณ์
สิ่งนี้มักจะพยายามด้วยสคริปต์เริ่มต้นที่สามารถป้อนได้ในที่ต่างๆ
อย่างไรก็ตามการตั้งค่านี้ผ่าน ระบบ มีเหตุผลมากกว่า
งานคือการเขียนแอปพลิเคชัน Qt Quick (GUI) เพื่ออัปโหลดเฟิร์มแวร์ใหม่ไปยังตัวควบคุมแบบสัมผัส
ซอฟต์แวร์อัปโหลดจัดทําโดยผู้ผลิตใน แอปพลิเคชัน .exe ที่โหลดไฟล์.bin ลงในตัวควบคุมแบบสัมผัส
ฉันต้องการใช้คลาส Qt "QProcess" ซึ่งสามารถใช้เพื่อเรียกและควบคุมแอปพลิเคชันเชลล์ได้ ในด้าน Linux ฉันได้ใช้สิ่งนี้สําเร็จหลายครั้งแล้ว - แต่บน Windows มันใช้งานไม่ได้ในตอนแรก
สูตร Yocto เพื่อติดตั้ง ddcutil และการตั้งค่าการควบคุมของจอภาพ HDMI ผ่าน I2C