توسعه نرم افزار تعبیهشده
نرمافزار تعبیهشده، نرمافزاری رایانهای است که برای کنترل ماشینها یا دستگاههایی نوشته میشود که معمولاً به عنوان رایانه در نظر گرفته نمیشوند و اغلب به عنوان سیستمهای تعبیهشده شناخته میشوند.
ابن نرمافزار معمولاً مختص سخت افزار خاصی که روی آن اجرا میشود و دارای محدودیتهای زمان و حافظه است، در نظر گرفته شده است.
این پروژه مجموعهای انعطافپذیر از ابزارها و فضایی را فراهم میکند که در آن توسعهدهندگان تعبیه شده در سراسر جهان میتوانند فناوریها، پشتههای نرمافزاری، پیکربندیها و بهترین روشها را به اشتراک بگذارند، این موارد میتواند برای ایجاد تصاویر لینوکس مناسب برای دستگاههای تعبیهشده و IOT یا هر جایی که به یک سیستمعامل لینوکس سفارشیشده نیاز است، استفاده شود.
به طور معمول، اگر ایمیج لینوکس سفارشی خود را با Yocto برای Raspberry Pi ایجاد کنید، می خواهید یک صفحه اسپلش سفارشی دارای نوار پیشرفت نیز نمایش دهید.
در این راهنما اطلاعاتی در مورد نحوه راه اندازی یک پروژه Yocto برای نصب Qt و یک برنامه آزمایشی Qt برای Raspberry Pi 4 و سپس راه اندازی خودکار این برنامه آزمایشی Qt در اختیار شما قرار می دهیم.
Yocto را برای ایجاد یک لینوکس سفارشی برای رزبری پای 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 معمولی استفاده کنید.
با این حال، در این مورد، تمشک باید قدرت را از طریق پین های GPIO تامین کند.
Qt اغلب برای توسعه رابط های گرافیکی استفاده می شود. Qt شامل کتابخانه های C ++ برای ایجاد رابط های گرافیکی است که می تواند در سیستم عامل های مختلف کامپایل شود. از آنجایی که این کامپایل به قدرت محاسباتی زیادی نیاز دارد، برای پردازندههای دارای قدرت نسبتاً کم توصیه میشود که توسعه و کامپایل را روی یک کامپیوتر میزبان انجام دهند و پس از آن برنامه نهایی را روی رایانه مورد نظر بارگذاری کنند. دستورالعمل های آنلاین زیادی برای توسعه یک برنامه Qt برای مدل های Raspberry Pi 3 و Pi 4 وجود دارد.
این یک راهنمای نصب Raspberry Pi OS Lite در Compute Module 4 است. به عنوان یک کامپیوتر کار، من از اوبونتو 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 است.
در این صفحه لینک های دانلود اسکریپت ها برای راه اندازی خودکار کامپایل متقابل در هاست لینوکس و 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" استفاده کنم که می تواند برای تماس و کنترل برنامه های پوسته استفاده شود. در سمت لینوکس، من قبلا چندین بار با موفقیت از این استفاده کرده بودم - اما در ویندوز در ابتدا کار نمی کرد.
دستورالعمل Yocto برای نصب ddcutil و کنترل تنظیمات مانیتور HDMI از طریق I2C.
کتابخانه libgpiod را در Yocto بگنجانید و از آن در سیستم تعبیهشده خود استفاده کنید.