نحوه ایجاد برنامه برای ویندوز در آردوینو

نحوه ایجاد برنامه برای ویندوز در آردوینو

یک روز ایده دیوانه کننده ای به ذهنم رسید که بیاورم 500 نشانگر لیزری در یک مکان. من زمان زیادی را صرف کردم و این کار را انجام دادم. دیدنی و بی فایده بود، اما من آن را دوست داشتم. شش ماه پیش یک ایده دیوانه کننده دیگر داشتم. این بار، اصلا دیدنی نیست، اما بسیار مفیدتر است. من هم زمان زیادی را برای آن صرف کردم. و در این مقاله، من یک نسخه بتا از دومین ایده دیوانه خود را ارائه می کنم.

من پروژه را Nanonyam (Nanonyam) نامیدم و حتی یک لوگو برای آن طراحی کردم (5 دقیقه طراحی کردم).

نحوه ایجاد برنامه برای ویندوز در آردوینو

برای کسانی که به آردوینو فکر می کنند، می توان گفت که Nanonyam یک سپر مجازی آردوینو برای کنترل ویندوز است.

به عبارت دیگر، Nanonyam یک ماشین مجازی است که از سیستم عامل برای میکروکنترلر AVR (توصیه ATMEGA2560) به عنوان بایت کد استفاده می کند. در داخل این ماشین مجازی یک شبیه ساز هسته AVR وجود دارد، اما به جای تجهیزات جانبی که در آدرس های SRAM از 0x0060 تا 0x01FF قرار دارند، یک رابط ویژه برای توابع مجازی (از جمله توابع API ویندوز) وجود دارد. و در اینجا بسیار مهم است که فوراً درک کنید: کد Nanonyam نباید به محدوده حافظه مشخص شده دسترسی داشته باشد تا به طور تصادفی به عنوان مثال عملکرد حذف فایل ها یا قالب بندی دیسک را فرا نگیرد. بقیه محدوده حافظه SRAM از 0x0200 تا 0xFFFF (این بیشتر از یک میکروکنترلر واقعی است) برای هر منظوری در دسترس کاربر است. فوراً متذکر می شوم که محافظت ویژه ای در برابر راه اندازی تصادفی سیستم عامل یک میکروکنترلر واقعی (یا سیستم عامل از معماری دیگر) وجود دارد: قبل از فعال کردن عملکردهای "خطرناک" ، باید یک عملکرد مجازی فریبنده ویژه را فراخوانی کنید. برخی از ویژگی های امنیتی دیگر نیز وجود دارد.

برای ایجاد برنامه‌ها برای Nanonyam، باید از کتابخانه‌های ویژه‌ای استفاده کنید که تمام توابع مجازی موجود در حال حاضر را پیاده‌سازی کنند. ماشین مجازی Nanonyam و کتابخانه های آن را دانلود کنید می تواند اینجا باشداست. اما صفحه توضیحات عملکرد مجازی. و بله، سایت من بسیار ابتدایی است و برای دستگاه های تلفن همراه سازگار نیست.

Nanonyam برای استفاده خانگی و تجاری رایگان است. برنامه Nanonyam بر اساس "همانطور که هست" ارائه می شود. کد منبع ارائه نشده است.

این برنامه در حال حاضر در مرحله آزمایش است. حدود 200 عملکرد مجازی را پیاده سازی کرده است که به شما امکان می دهد برنامه های ساده ای برای ویندوز ایجاد کنید.
بدیهی است که ایجاد چیزی پیچیده در چنین ماشین مجازی کار نخواهد کرد، زیرا حافظه کد فقط 256 کیلوبایت است. داده ها را می توان در فایل های جداگانه ذخیره کرد، بافر برای بخش گرافیکی به صورت خارجی پیاده سازی می شود. همه توابع ساده شده و برای معماری 8 بیتی تطبیق داده شده اند.

در Nanonyam چه کاری می توانید انجام دهید؟ من با چند مشکل مواجه شدم.

توسعه بلوک های برنامه

من یک بار نیاز به طراحی یک منوی پیچیده برای یک صفحه نمایش گرافیکی 128x64 نقطه داشتم. من واقعاً نمی خواستم سیستم عامل را به طور مداوم در یک میکروکنترلر واقعی بارگذاری کنم تا ببینم پیکسل ها چگونه به نظر می رسند. و بنابراین ایده Nanonyam متولد شد. شکل زیر تصویری از صفحه نمایش OLED واقعی یکی از آیتم های همان منو را نشان می دهد. اکنون می توانم بدون دستگاه واقعی از طریق آن کار کنم.

نحوه ایجاد برنامه برای ویندوز در آردوینو

Nanonyam (در ایده نهایی خود) ابزار خوبی برای کار کردن بلوک های برنامه برای میکروکنترلرها است، زیرا عملکردهایی برای کار با گرافیک (شما می توانید نمایشگرها و نشانگرها را شبیه سازی کنید)، با فایل ها (شما می توانید گزارش ایجاد کنید، داده های تست را بخوانید)، با یک صفحه کلید (شما می توانید تا 10 دکمه را به طور همزمان بخوانید)، با پورت های COM (در اینجا یک مورد جداگانه است).

ایجاد برنامه های سریع

به عنوان مثال، شما باید 100500 فایل متنی را به سرعت پردازش کنید. هر کدام باید باز شوند، طبق برخی از الگوریتم های ساده کمی اصلاح شوند، ذخیره و بسته شوند. اگر استاد پایتون هستید، به شما تبریک می گویم، شما همه چیز دارید. اما اگر یک آردوینو سخت شده هستید (و تعداد آنها زیاد است)، Nanonyam به شما در حل این مشکل کمک می کند. این دومین هدف من در Nanonyam است: افزودن بسیاری از عملکردهای مفید مانند پردازش متن، گرفتن اسکرین شات یا شبیه سازی فشار دادن کلید در سیستم (که اتفاقاً همه آنها قبلاً وجود دارند) و همچنین بسیاری از عملکردهای دیگر برای حل کارهای معمول. .

تست سخت افزار از طریق پورت COM

Nanonyam می تواند به عنوان یک ترمینال عمل کند که طبق الگوریتم شما کار می کند. می توانید یک منوی کوچک برای کنترل دستگاه و نمایش داده های دریافتی از پورت بکشید. می توانید داده ها را از فایل ها برای تجزیه و تحلیل ذخیره و بخوانید. ابزاری مفید برای اشکال زدایی ساده و کالیبراسیون سخت افزار و همچنین برای ایجاد پنل های کنترل ابزار مجازی ساده. برای دانشجویان و دانشمندان جوان، این پروژه می تواند بسیار مفید باشد.

آموزش برنامه نویسی

با این حال، مانند کل پروژه آردوینو، سودمندی اصلی Nanonyam در ساده سازی توابع، رابط و بوت لودر نهفته است. بنابراین، این پروژه باید مورد توجه برنامه نویسان تازه کار و کسانی که از سطح آردوینو راضی هستند، باشد. به هر حال، من خودم هنوز آردوینو را با جزئیات مطالعه نکرده ام، زیرا همیشه از WinAVR یا AVR Studio استفاده می کردم، اما با اسمبلر شروع کردم. بنابراین، برنامه مثال زیر کمی اشتباه است، اما کاملا کار می کند.

سلام هابر!

وقت آن است که با برخی از ویژگی های Nanonyam آشنا شوید و یک برنامه ساده بنویسید. ما در آردوینو خواهیم نوشت، اما نه به روش معمول، بلکه به روشی که اکنون می توانم (قبلاً گفتم که هنوز این محیط را به خوبی کشف نکرده ام). ابتدا یک طرح جدید ایجاد کنید و برد Mega2560 را انتخاب کنید.

نحوه ایجاد برنامه برای ویندوز در آردوینو

طرح را در یک فایل ذخیره کنید و سپس کپی کنید کتابخانه نانونام. درست است که هدرهای کتابخانه‌ها را وارد کنیم، اما نمی‌دانم چگونه کامپایل فایل‌های فردی را در آردوینو بنویسم، بنابراین در حال حاضر فقط کتابخانه‌ها را مستقیماً (و به یکباره) اضافه می‌کنیم:

#include <stdio.h>
#include "NanonyamnN_System_lib.c"
#include "NanonyamnN_Keyboard_lib.c"
#include "NanonyamnN_File_lib.c"
#include "NanonyamnN_Math_lib.c"
#include "NanonyamnN_Text_lib.c"
#include "NanonyamnN_Graphics_lib.c"
#include "NanonyamnN_RS232_lib.c"

درست تر است که یک ماژول ویژه "Nanonyam for Arduino" بسازید که می تواند مستقیماً از Arduino نصب شود. به محض اینکه متوجه شدم، این کار را انجام می دهم، اما فعلاً فقط جوهر کار با یک ماشین مجازی را نشان می دهم. کد زیر را می نویسیم:

//Сразу после запуска рисуем текст в окне
void setup() {
  sys_Nanonyam();//Подтверждаем код виртуальной машины
  g_SetScreenSize(400,200);//Задаём размер дисплея 400х200 точек
  sys_WindowSetText("Example");//Заголовок окна
  g_ConfigExternalFont(0,60,1,0,0,0,"Arial");//Задаём шрифт Windows в ячейке шрифтов 0
  g_SetExternalFont(0);//Выбираем ячейку шрифтов 0 для рисования текста
  g_SetBackRGB(0,0,255);//Цвет фона синий
  g_SetTextRGB(255,255,0);//Цвет текста жёлтый
  g_ClearAll();//Очищаем экран (заливка цветом фона)
  g_DrawTextCenterX(0,400,70,"Hello, Habr!");//Рисуем надпись
  g_Update();//Выводим графический буфер на экран
}

//Просто ждём закрытия программы
void loop() {
  sys_Delay(100);//Задержка и разгрузка процессора
}

با این برنامه طراحی کنید را می توان از اینجا دانلود کرد. شرح دقیق توابع در سایت جستجو کنید. امیدوارم نظرات این کد برای درک اصل مطلب کافی باشد. در اینجا عملکرد sys_Nanonyam() نقش "رمز عبور" را برای ماشین مجازی ایفا می کند که محدودیت های اعمال مجازی را حذف می کند. بدون این عملکرد، برنامه پس از 3 ثانیه کار بسته می شود.

ما دکمه "بررسی" را فشار می دهیم و نباید هیچ خطایی وجود داشته باشد.

نحوه ایجاد برنامه برای ویندوز در آردوینو

اکنون باید یک فایل باینری (سیرم افزار) دریافت کنید. منو را انتخاب کنید "Sketch>>صادر کردن فایل باینری (CTRL+ALT+S)".

نحوه ایجاد برنامه برای ویندوز در آردوینو

با این کار دو فایل HEX در پوشه sketch کپی می شود. ما فقط فایل را بدون پیشوند "with_bootloader.mega" می گیریم.

راه های مختلفی برای تعیین یک فایل HEX در ماشین مجازی Nanonyam وجود دارد که همه آنها توضیح داده شده اند در این صفحه. پیشنهاد می کنم در کنار فایل ایجاد کنید Nanonyam.exe فایل مسیر، که در آن مسیر کامل فایل HEX خود را ثبت می کنیم. پس از آن می توانید بدوید Nanonyam.exe. ما یک پنجره با کتیبه خود دریافت می کنیم.

نحوه ایجاد برنامه برای ویندوز در آردوینو

به همین ترتیب، می توانید برنامه هایی را در محیط های دیگر مانند AVR Studio یا WinAVR ایجاد کنید.

اینجاست که آشنایی خود را با Nanonyam به پایان می بریم. ایده اصلی باید روشن باشد. نمونه های بیشتر در سایت موجود است.. اگر تعداد افراد مایل به استفاده از این پروژه به اندازه کافی وجود داشته باشد، نمونه های بیشتری می سازم و به "پر کردن" کتابخانه های توابع مجازی ادامه می دهم. ایده های ملموس برای توسعه پروژه و گزارشات خرابی، اشکالات و اشکالات پذیرفته می شود. توصیه می شود آنها را به مخاطبین هدایت کنید، در وب سایت نشان داده شده است. و بحث در نظرات خوش آمدید.

با تشکر از همه شما برای توجه و برنامه نویسی خوب شما!

منبع: www.habr.com

اضافه کردن نظر