توسعه نرم افزار تعبیه شده
نرم افزار تعبیه شده یک نرم افزار کامپیوتری تخصصی است که برای کار بر روی HMI های تعبیه شده طراحی شده است که معمولا رایانه های سنتی در نظر گرفته نمی شوند. سخت افزار (CPU/RAM/FLASH MEMORY) برای برنامه بسیار بهینه شده است و بنابراین محدود است. سیستم عامل به شدت بهینه شده است تا فقط نرم افزار لازم برای برنامه را داشته باشد - هیچ چیز دیگری. شما سیستم عامل خود را متناسب با برنامه کامپایل می کنید. سیستم های مختلفی از لوازم خانگی گرفته تا ماشین آلات صنعتی و حتی ابزارهای همه کاره مانند Raspberry Pi را تامین می کند. Raspberry Pi، یک کامپیوتر جمع و جور و مقرون به صرفه، به دلیل یادگیری و آزمایش سیستم های تعبیه شده مشهور است. با استفاده از آن، می توانید نرم افزاری را بنویسید و اجرا کنید که اجزای مختلف سخت افزاری را کنترل می کند و راهی عملی برای کشف دنیای توسعه نرم افزار تعبیه شده ارائه می دهد. این صفحه مجموعه ای از آموزش ها را ارائه می دهد تا به شما کمک کند با Raspberry Pi و پروژه های نرم افزاری تعبیه شده شروع کنید.
این پروژه مجموعهای انعطافپذیر از ابزارها و فضایی را فراهم میکند که در آن توسعهدهندگان تعبیه شده در سراسر جهان میتوانند فناوریها، پشتههای نرمافزاری، پیکربندیها و بهترین روشها را به اشتراک بگذارند، این موارد میتواند برای ایجاد تصاویر لینوکس مناسب برای دستگاههای تعبیهشده و 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 بگنجانید و از آن در سیستم تعبیهشده خود استفاده کنید.