تطوير البرمجيات المضمنة
البرامج المضمنة هي برامج كمبيوتر متخصصة مصممة للعمل على HMI المضمنة التي لا تعتبر عادة أجهزة كمبيوتر تقليدية. تم تحسين الأجهزة (وحدة المعالجة المركزية / ذاكرة الوصول العشوائي / ذاكرة فلاش) بشكل كبير للتطبيق وبالتالي فهي محدودة. تم تحسين نظام التشغيل بشكل كبير للحصول على البرامج الضرورية للتطبيق فقط - لا شيء آخر. تقوم بتجميع نظام التشغيل الخاص بك المصمم خصيصا للتطبيق. إنه يعمل على تشغيل أنظمة مختلفة ، من الأجهزة المنزلية إلى الآلات الصناعية وحتى الأدوات متعددة الاستخدامات مثل Raspberry Pi. يشتهر Raspberry Pi ، وهو كمبيوتر مضغوط وبأسعار معقولة ، بالتعلم وتجربة الأنظمة المدمجة. باستخدامه ، يمكنك كتابة وتشغيل البرامج التي تتحكم في مكونات الأجهزة المختلفة ، مما يوفر طريقة عملية لاستكشاف عالم تطوير البرامج المضمنة. تقدم هذه الصفحة مجموعة من البرامج التعليمية لمساعدتك على البدء في استخدام Raspberry Pi ومشاريع البرامج المضمنة.
يوفر المشروع مجموعة مرنة من الأدوات ومساحة حيث يمكن للمطورين المضمنين في جميع أنحاء العالم مشاركة التقنيات ومجموعات البرامج والتكوينات وأفضل الممارسات التي يمكن استخدامها لإنشاء صور Linux مخصصة لأجهزة إنترنت الأشياء المضمنة، أو في أي مكان يحتاج فيه نظام تشغيل Linux مخصص.
عادة، إذا قمت بإنشاء صورة لينكس المخصصة مع Yocto للحصول على Raspberry Pi، فأنت تريد أيضًا عرض شاشة رش مخصصة مع شريط تقدم.
وفي هذا الدليل، نقدم لك معلومات حول كيفية إعداد مشروع Yocto لتثبيت التطبيق التجريبي Qt و Qt لـ Raspberry Pi 4 ثم التشغيل التلقائي لهذا التطبيق التجريبي Qt.
قم بتكوين Yocto لإنشاء Linux مخصص لـ Raspberry Pi 4 مع دمج مكتبة pigpio وQt وسلسلة أدوات للتجميع التقاطعي.
الجزء 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 على وحدة الحوسبة 4. بصفتي كمبيوتر عمل ، أستخدم Ubuntu 20 ، المثبت في جهاز افتراضي.
هذا دليل للتجميع المتقاطع Qt 5.15.2 ل Raspberry Pi 4 وتثبيته على وحدة الحوسبة 4. إنه تحديث لمنشور مدونتي Qt على Raspberry Pi 4 ، مع اختلاف أنني هذه المرة أستخدم Raspberry Pi OS Lite.
هذا دليل لتكوين Qt-Creator لاستخدام مكتبات Qt المجمعة ل Raspberry Pi 4 ولإنشاء تطبيقات ل Raspberry.
وفي هذه الصفحة، نقدم روابط تنزيل للنصوص لإعداد تجميع متقاطع تلقائيًا على مضيف لينكس و Raspberry Pi 4 ووصفًا لكيفية استخدامها.
في هذه المدونة ، أود تقديم تطبيق Qt Quick صغير (qml) كمثال على اتصال Modbus عبر TCP / IP.
في أمثلة Qt ، وجدت فقط أمثلة QWidget لاتصالات Modbus ، وبعد إنشاء تطبيق Qt Quick مؤخرا لهذا الغرض ، أود تقديم نسخة مخففة منه كمثال.
إذا قمت بإنشاء تطبيق Qt - أو أي تطبيق آخر - ل Raspberry Pi 4 ، فغالبا ما تريد استدعاء التطبيق فور إعادة تشغيل Raspberry بعد اكتمال التطبيق.
غالبا ما تتم محاولة ذلك باستخدام البرامج النصية للبدء التي يمكن إدخالها في أماكن مختلفة.
ومع ذلك ، فمن المعقول إعداد هذا عبر systemd .
كانت المهمة هي كتابة تطبيق Qt Quick (GUI) لتحميل البرامج الثابتة الجديدة إلى وحدة تحكم تعمل باللمس.
تم توفير برنامج التحميل من قبل الشركة المصنعة في تطبيق .exe يقوم بتحميل ملف .bin على وحدة التحكم باللمس.
كنت أرغب في استخدام فئات Qt "QProcess" ، والتي يمكن استخدامها للاتصال بتطبيقات shell والتحكم فيها. على جانب Linux ، كنت قد استخدمت هذا بالفعل بنجاح عدة مرات - ولكن على Windows لم ينجح في البداية.