Si të krijoni programe për Windows në Arduino

Si të krijoni programe për Windows në Arduino

Një ditë më erdhi ideja e çmendur për të sjellë 500 tregues lazer në një vend. Kalova shumë kohë dhe e bëra. Doli spektakolare dhe e padobishme, por më pëlqeu. Gjashtë muaj më parë pata një tjetër ide të çmendur. Këtë herë, aspak spektakolare, por shumë më e dobishme. Kam shpenzuar gjithashtu shumë kohë për të. Dhe në këtë artikull, unë paraqes një version beta të idesë sime të dytë të çmendur.

Unë e quajta projektin Nanonyam (Nanonyam) dhe madje dola me një logo për të (vizatova për 5 minuta).

Si të krijoni programe për Windows në Arduino

Për ata që mendojnë për Arduino, mund të themi se Nanonyam është një mburojë virtuale Arduino për kontrollin e Windows.

Me fjalë të tjera, Nanonyam është një makinë virtuale që përdor firmware për mikrokontrolluesin AVR (rekomandohet ATMEGA2560) si bytekod. Brenda kësaj makine virtuale është një simulator bërthamor AVR, por në vend të pajisjeve periferike, të cilat janë të vendosura në adresat SRAM nga 0x0060 në 0x01FF, ekziston një ndërfaqe e veçantë për funksionet virtuale (përfshirë funksionet API të Windows). Dhe këtu është shumë e rëndësishme të kuptohet menjëherë: kodi për Nanonyam nuk duhet të ketë qasje në gamën e specifikuar të memories, në mënyrë që të mos thërrasë aksidentalisht, për shembull, funksionin e fshirjes së skedarëve ose formatimit të një disku. Pjesa tjetër e diapazonit të memories SRAM nga 0x0200 në 0xFFFF (kjo është më shumë se në një mikrokontrollues të vërtetë) është në dispozicion të përdoruesit për çdo qëllim. Vërej menjëherë se ekziston një mbrojtje e veçantë kundër lëshimit aksidental të firmuerit të një mikrokontrollues të vërtetë (ose firmware nga një arkitekturë tjetër): përpara se të aktivizoni funksionet "të rrezikshme", duhet të telefononi një funksion të veçantë virtual të ndërlikuar. Ka edhe disa veçori të tjera sigurie.

Për të krijuar programe për Nanonyam, duhet të përdorni biblioteka speciale që zbatojnë të gjitha funksionet virtuale aktualisht të disponueshme. Shkarkoni makinën virtuale Nanonyam dhe bibliotekat për të Ju pastaj mund të. Dhe këtu faqja e përshkrimit të funksionit virtual. Dhe po, faqja ime është shumë primitive dhe jo e përshtatur për pajisjet mobile.

Nanonyam është falas për përdorim shtëpiak dhe komercial. Programi Nanonyam ofrohet mbi bazën "siç është". Kodi burimor nuk është dhënë.

Programi është aktualisht në fazën e testimit. Zbatuar rreth 200 funksione virtuale që ju lejojnë të krijoni programe të thjeshta për Windows.
Natyrisht, krijimi i diçkaje të komplikuar në një makinë të tillë virtuale nuk do të funksionojë, pasi memoria për kodin është vetëm 256 kB. Të dhënat mund të ruhen në skedarë të veçantë, buferi për pjesën grafike zbatohet nga jashtë. Të gjitha funksionet janë thjeshtuar dhe përshtatur për arkitekturën 8-bit.

Çfarë mund të bëni në Nanonyam? Dola me disa probleme.

Zhvillimi i blloqeve të programit

Dikur më duhej të dizajnoja një menu komplekse për një ekran grafik 128x64 pika. Me të vërtetë nuk doja të ngarkoja vazhdimisht firmuerin në një mikrokontrollues të vërtetë për të parë se si duken pikselët. Dhe kështu lindi ideja e Nanonyam. Figura më poshtë tregon një imazh nga një ekran i vërtetë OLED i një prej artikujve në të njëjtën menu. Tani mund ta punoj pa një pajisje të vërtetë.

Si të krijoni programe për Windows në Arduino

Nanonyam (në idenë e tij përfundimtare) është një mjet i mirë për përpunimin e blloqeve të programit për mikrokontrolluesit, pasi ka funksione për të punuar me grafikë (mund të simuloni ekranet dhe treguesit), me skedarë (mund të bëni regjistra, të lexoni të dhënat e provës), me një tastierë (mund të lexoni deri në 10 butona në të njëjtën kohë), me porte COM (këtu është një artikull i veçantë).

Krijimi i programeve të shpejta

Për shembull, ju duhet të përpunoni shpejt 100500 skedarë teksti. Secili duhet të hapet, të modifikohet pak sipas një algoritmi të thjeshtë, të ruhet dhe mbyllet. Nëse jeni mjeshtër i Python-it, atëherë ju përgëzoj, keni gjithçka. Por nëse jeni një arduino i ngurtësuar (dhe ka shumë prej tyre), atëherë Nanonyam do t'ju ndihmojë në zgjidhjen e këtij problemi. Ky është qëllimi im i dytë në Nanonyam: të shtoj shumë funksione të dobishme si përpunimi i tekstit, marrja e pamjeve nga ekrani ose simulimi i tastierëve në sistem (të gjitha, meqë ra fjala, janë tashmë atje), si dhe shumë funksione të tjera për zgjidhjen e detyrave rutinë. .

Testimi i harduerit përmes portit COM

Nanonyam mund të veprojë si një terminal që funksionon sipas algoritmit tuaj. Mund të vizatoni një meny të vogël për të kontrolluar pajisjen dhe për të shfaqur të dhënat e marra nga porti. Ju mund të ruani dhe lexoni të dhëna nga skedarët për analizë. Një mjet i dobishëm për korrigjimin dhe kalibrimin e thjeshtë të harduerit, si dhe për krijimin e paneleve të thjeshta të kontrollit të instrumenteve virtuale. Për studentët dhe shkencëtarët e rinj, ky projekt mund të jetë shumë i dobishëm.

Trajnim programimi

Sidoqoftë, si me të gjithë projektin Arduino, dobia kryesore e Nanonyam qëndron në thjeshtimin e funksioneve, ndërfaqes dhe ngarkuesit. Prandaj, ky projekt duhet të jetë me interes për programuesit fillestarë dhe ata që janë të kënaqur me nivelin e arduino. Nga rruga, unë vetë ende nuk kam studiuar arduino në detaje, sepse gjithmonë kam përdorur WinAVR ose AVR Studio, por kam filluar me assembler. Prandaj, shembulli i programit më poshtë do të jetë pak i gabuar, por mjaft funksional.

Përshëndetje Habr!

Është koha të njiheni me disa veçori të Nanonyam dhe të shkruani një program të thjeshtë. Ne do të shkruajmë në Arduino, por jo në mënyrën e zakonshme, por në mënyrën që mundem tani (e thashë tashmë që nuk e kam kuptuar akoma shumë mirë këtë mjedis). Së pari, krijoni një skicë të re dhe zgjidhni tabelën Mega2560.

Si të krijoni programe për Windows në Arduino

Ruani skicën në një skedar dhe kopjojeni më pas Biblioteka Nanonyam. Do të ishte e saktë të përfshinim titujt e bibliotekave, por nuk di si të shkruaj përmbledhje skedarësh individualë në Arduino, kështu që tani për tani ne thjesht do t'i përfshijmë bibliotekat drejtpërdrejt (dhe të gjitha menjëherë):

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

Do të ishte edhe më e saktë të krijoni një modul të veçantë "Nanonyam për Arduino", i cili mund të instalohet direkt nga Arduino. Sapo ta kuptoj, do ta bëj, por tani për tani po tregoj vetëm thelbin e punës me një makinë virtuale. Ne shkruajmë kodin e mëposhtëm:

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

Skico me këtë program mund të shkarkohet këtu. Përshkrimi i detajuar i funksioneve kërkoni në faqe. Shpresoj që komentet në këtë kod të jenë të mjaftueshme për të kuptuar thelbin e tij. Këtu funksion sys_Nanonyam() luan rolin e një "fjalëkalimi" për makinën virtuale, e cila heq kufizimet në funksionet virtuale. Pa këtë funksion, programi do të mbyllet pas 3 sekondash funksionimi.

Shtypim butonin "Kontrollo" dhe nuk duhet të ketë asnjë gabim.

Si të krijoni programe për Windows në Arduino

Tani ju duhet të merrni një skedar binar (firmware). Zgjidhni menunë "Sketch>>Eksporto skedarin binar (CTRL+ALT+S)".

Si të krijoni programe për Windows në Arduino

Kjo do të kopjojë dy skedarë HEX në dosjen e skicës. Marrim vetëm skedarin pa prefiksin "with_bootloader.mega".

Ka disa mënyra për të specifikuar një skedar HEX në makinën virtuale Nanonyam, të gjitha ato janë përshkruar në këtë faqe. Unë sugjeroj të krijoni pranë skedarit Nanonyam.exe файл rrugë, në të cilën të regjistrohet shtegu i plotë për skedarin tonë HEX. Pas së cilës mund të vraponi Nanonyam.exe. Ne marrim një dritare me mbishkrimin tonë.

Si të krijoni programe për Windows në Arduino

Në mënyrë të ngjashme, mund të krijoni programe në mjedise të tjera, si AVR Studio ose WinAVR.

Këtu përfundojmë njohjen tonë me Nanonyam. Ideja kryesore duhet të jetë e qartë. Më shumë shembuj janë në faqen e internetit.. Nëse ka mjaft njerëz të gatshëm për të përdorur këtë projekt, atëherë unë do të bëj më shumë shembuj dhe do të vazhdoj të "mbush" bibliotekat e funksioneve virtuale. Pranohen ide konkrete për zhvillimin e projektit dhe raporte për keqfunksionime, defekte dhe defekte. Këshillohet që t'i drejtoni në kontakte, treguar në faqen e internetit. Dhe diskutimi është i mirëpritur në komente.

Faleminderit të gjithëve për vëmendjen dhe programimin e mirë!

Burimi: www.habr.com

Shto një koment