Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Bir kuni men olib kelish uchun aqldan ozgan fikrga keldim Bir joyda 500 ta lazer ko'rsatgich. Men ko'p vaqt sarfladim va buni qildim. Bu ajoyib va ​​foydasiz bo'lib chiqdi, lekin menga yoqdi. Olti oy oldin menda yana bir aqldan ozgan fikr bor edi. Bu safar umuman ajoyib emas, lekin juda foydali. Men ham bunga ko'p vaqt sarfladim. Va ushbu maqolada men ikkinchi aqldan ozgan g'oyamning beta versiyasini taqdim etaman.

Men loyihani Nanonyam (Nanonyam) deb chaqirdim va hatto uning logotipini ham o'ylab topdim (men 5 daqiqa chizdim).

Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Arduino nuqtai nazaridan o'ylaydiganlar uchun Nanonyam Windows-ni boshqarish uchun virtual Arduino qalqoni deb aytishimiz mumkin.

Boshqacha qilib aytadigan bo'lsak, Nanonyam virtual mashina bo'lib, u AVR mikrokontrolleri (ATMEGA2560 tavsiya etiladi) uchun proshivkani bayt kod sifatida ishlatadi. Ushbu virtual mashina ichida AVR yadro simulyatori mavjud, ammo 0x0060 dan 0x01FF gacha bo'lgan SRAM manzillarida joylashgan tashqi qurilmalar o'rniga virtual funktsiyalar uchun (shu jumladan Windows API funktsiyalari) maxsus interfeys mavjud. Va bu erda darhol tushunish juda muhim: Nanonyam kodi, masalan, fayllarni o'chirish yoki diskni formatlash funktsiyasini tasodifan chaqirmaslik uchun belgilangan xotira oralig'iga kirish imkoniga ega bo'lmasligi kerak. 0x0200 dan 0xFFFF gacha bo'lgan SRAM xotirasining qolgan qismi (bu haqiqiy mikrokontrollerdan ko'ra ko'proq) har qanday maqsadda foydalanuvchi uchun mavjud. Darhol shuni ta'kidlaymanki, haqiqiy mikrokontrollerning (yoki boshqa arxitekturadan proshivkaning dasturiy ta'minoti) tasodifiy ishga tushirilishidan maxsus himoya mavjud: "xavfli" funktsiyalarni faollashtirishdan oldin siz maxsus murakkab virtual funktsiyani chaqirishingiz kerak. Boshqa xavfsizlik xususiyatlari ham mavjud.

Nanonyam uchun dasturlar yaratish uchun siz hozirda mavjud bo'lgan barcha virtual funktsiyalarni amalga oshiradigan maxsus kutubxonalardan foydalanishingiz kerak. Buning uchun Nanonyam virtual mashinasi va kutubxonalarini yuklab oling Keyin mumkin. Ammo virtual funktsiya tavsif sahifasi. Va ha, mening saytim juda ibtidoiy va mobil qurilmalar uchun moslashtirilmagan.

Nanonyam uy va tijorat maqsadlarida foydalanish uchun bepul. Nanonyam dasturi "xuddi shunday" asosida taqdim etiladi. Manba kodi taqdim etilmagan.

Hozirda dastur sinov bosqichida. Windows uchun oddiy dasturlar yaratish imkonini beruvchi 200 ga yaqin virtual funksiyalar amalga oshirildi.
Shubhasiz, bunday virtual mashinada murakkab narsa yaratish ishlamaydi, chunki kod uchun xotira atigi 256 kB ni tashkil qiladi. Ma'lumotlar alohida fayllarda saqlanishi mumkin, grafik qism uchun bufer tashqaridan amalga oshiriladi. Barcha funktsiyalar soddalashtirilgan va 8 bitli arxitektura uchun moslashtirilgan.

Nanonyamda nima qila olasiz? Men bir nechta muammolarga duch keldim.

Dastur bloklarini ishlab chiqish

Men bir marta 128x64 nuqtali grafik displey uchun murakkab menyuni loyihalashim kerak edi. Men, albatta, piksellar qanday ko'rinishini ko'rish uchun mikrodasturni doimiy ravishda haqiqiy mikrokontrollerga yuklashni xohlamadim. Shunday qilib, Nanonyam g'oyasi tug'ildi. Quyidagi rasmda xuddi shu menyudagi elementlardan birining haqiqiy OLED displeyidagi tasvir ko'rsatilgan. Endi men uni haqiqiy qurilmasiz ishlashim mumkin.

Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Nanonyam (yakuniy g'oyasida) mikrokontrollerlar uchun dastur bloklarini ishlab chiqish uchun yaxshi vositadir, chunki grafikalar bilan ishlash (siz displeylar va indikatorlarni taqlid qilishingiz mumkin), fayllar bilan (siz jurnallar tuzishingiz, test ma'lumotlarini o'qishingiz mumkin) mavjud. klaviatura (bir vaqtning o'zida 10 tagacha tugmachani o'qishingiz mumkin), MAQOMOTI portlari bilan (bu erda alohida element mavjud).

Tezkor dasturlar yaratish

Masalan, 100500 matnli fayllarni tezda qayta ishlashingiz kerak. Ularning har birini ochish, oddiy algoritmga muvofiq biroz o'zgartirish, saqlash va yopish kerak. Agar siz Python ustasi bo'lsangiz, sizni tabriklayman, sizda hamma narsa bor. Ammo agar siz qattiqlashtirilgan arduino bo'lsangiz (va ularning ko'pi bor), unda Nanonyam sizga bu muammoni hal qilishda yordam beradi. Bu mening Nanonyam-dagi ikkinchi maqsadim: matnni qayta ishlash, skrinshotlar olish yoki tizimdagi tugmachalarni bosishni taqlid qilish kabi ko'plab foydali funktsiyalarni qo'shish (bularning barchasi, aytmoqchi, allaqachon mavjud), shuningdek, odatiy vazifalarni hal qilish uchun boshqa ko'plab funktsiyalarni qo'shish. .

Uskunani COM porti orqali sinovdan o'tkazish

Nanonyam sizning algoritmingizga muvofiq ishlaydigan terminal sifatida harakat qilishi mumkin. Qurilmani boshqarish va portdan olingan ma'lumotlarni ko'rsatish uchun kichik menyu chizishingiz mumkin. Tahlil qilish uchun fayllardan ma'lumotlarni saqlashingiz va o'qishingiz mumkin. Uskunani oddiy disk raskadrovka va kalibrlash, shuningdek, oddiy virtual asboblar boshqaruv panellarini yaratish uchun qulay vosita. Talabalar va yosh olimlar uchun ushbu loyiha juda foydali bo'lishi mumkin.

Dasturlash bo'yicha trening

Biroq, butun Arduino loyihasida bo'lgani kabi, Nanonyam-ning asosiy foydasi funktsiyalarni, interfeysni va yuklovchini soddalashtirishda yotadi. Shuning uchun ushbu loyiha yangi boshlanuvchi dasturchilar va arduino darajasidan mamnun bo'lganlar uchun qiziqarli bo'lishi kerak. Aytgancha, men o'zim ham arduino-ni batafsil o'rganmaganman, chunki men har doim WinAVR yoki AVR Studio-dan foydalanganman, lekin assemblerdan boshlaganman. Shuning uchun, quyidagi misol dasturi biroz noto'g'ri bo'ladi, lekin juda ishlaydi.

Salom Xabr!

Nanonyamning ba'zi xususiyatlari bilan tanishish va oddiy dastur yozish vaqti keldi. Biz Arduino-da yozamiz, lekin odatdagidek emas, balki hozir qila oladigan tarzda (men bu muhitni hali juda yaxshi tushunmaganimni aytdim). Birinchidan, yangi eskiz yarating va Mega2560 taxtasini tanlang.

Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Eskizni faylga saqlang va keyingi nusxasini oling Nanonyam kutubxonasi. Kutubxonalar sarlavhalarini kiritish to'g'ri bo'lardi, lekin men Arduino-da alohida fayllar kompilyatsiyasini qanday yozishni bilmayman, shuning uchun hozircha biz kutubxonalarni to'g'ridan-to'g'ri (va barchasini birdaniga) kiritamiz:

#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"

To'g'ridan-to'g'ri Arduino-dan o'rnatilishi mumkin bo'lgan "Arduino uchun Nanonyam" maxsus modulini yaratish yanada to'g'ri bo'ladi. Buni tushunganimdan so'ng, men buni qilaman, lekin hozircha men virtual mashina bilan ishlashning mohiyatini ko'rsataman. Biz quyidagi kodni yozamiz:

//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}

Ushbu dastur yordamida eskiz bu yerdan yuklab olish mumkin. Funktsiyalarning batafsil tavsifi saytida qidirish. Umid qilamanki, ushbu koddagi sharhlar uning mohiyatini tushunish uchun etarli. Bu erda funktsiya sys_Nanonyam() virtual mashina uchun "parol" rolini o'ynaydi, bu virtual funktsiyalardagi cheklovlarni olib tashlaydi. Ushbu funksiya bo'lmasa, dastur 3 soniya ishlagandan keyin yopiladi.

Biz "Tekshirish" tugmasini bosamiz va hech qanday xato bo'lmasligi kerak.

Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Endi siz ikkilik faylni (proshivka) olishingiz kerak. Menyuni tanlang "Sketch>>Ikkilik faylni eksport qilish (CTRL+ALT+S)".

Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Bu ikkita HEX faylni eskiz papkasiga ko'chiradi. Biz faqat "with_bootloader.mega" prefiksisiz faylni olamiz.

Nanonyam virtual mashinasiga HEX faylni ko'rsatishning bir necha yo'li mavjud, ularning barchasi tasvirlangan Ushbu sahifada. Men faylning yonida yaratishni taklif qilaman Nanonyam.exe fayl yo'l, unda HEX faylimizga to'liq yo'lni ro'yxatdan o'tkazish uchun. Shundan so'ng siz yugurishingiz mumkin Nanonyam.exe. Bizning yozuvimiz bilan oynani olamiz.

Arduino-da Windows uchun dasturlarni qanday yaratish mumkin

Xuddi shunday, siz AVR Studio yoki WinAVR kabi boshqa muhitlarda dasturlar yaratishingiz mumkin.

Nanonyam bilan tanishuvimizni shu yerda yakunlaymiz. Asosiy fikr aniq bo'lishi kerak. Ko'proq misollar veb-saytda.. Agar ushbu loyihadan foydalanishni xohlaydiganlar etarli bo'lsa, men ko'proq misollar keltiraman va virtual funktsiyalar kutubxonalarini "to'ldirishni" davom ettiraman. Loyihani ishlab chiqish uchun aniq g'oyalar va nosozliklar, xatolar va xatolar haqida hisobotlar qabul qilinadi. Ularni kontaktlarga yo'naltirish tavsiya etiladi, saytda ko'rsatilgan. Va munozaralar sharhlarda xush kelibsiz.

E'tiboringiz va yaxshi dasturlash uchun barchangizga rahmat!

Manba: www.habr.com

a Izoh qo'shish