Kuidas luua Arduino-s programme Windowsile

Kuidas luua Arduino-s programme Windowsile

Ühel päeval tuli mul pähe kummaline mõte tuua kokku 500 laserpointerit ühte kohta. Kulutasin sellele palju aega ja tegin seda. Tuli välja efektne ja kasututu, aga mulle meeldis. Pool aastat tagasi tuli mulle jälle üks kummaline mõte. Seekord mitte kuigi efektne, kuid palju kasulikum. Kulutasin sellele samuti palju aega. Selles artiklis esitan ma oma teise kummalise idee beetaversiooni.

Nimetasin projekti Nanonyam (Naanonyaam) ja isegi kujundasin sellele logo (jõudsin joonistada lausa 5 minutit).

Kuidas luua Arduino-s programme Windowsile

Need, kes mõtlevad Arduino terminoloogias, võivad öelda, et Nanonyam on virtuaalne Arduino-shield Windowsi juhtimiseks.

Teisisõnu, Nanonyam on virtuaalne masin, kus byte-koodina kasutatakse AVR mikroprotsessorile mõeldud püsivara (soovitatav ATMEGA2560). Selle virtuaalse masina sees asub AVR tuumasimulaator, kuid periferiaseadmestik, mis asub SRAM aadressidel 0x0060 kuni 0x01FF, on asendatud spetsiaalse liidese virtuaalsete funktsioonide jaoks (sealhulgas Windows API funktsioonid). Siinkohal on väga oluline kohe mõista: Nanonyami kood ei tohi omada ühtegi viidet määratud mäluaadresside vahemikule, et mitte kogemata näiteks kutsuda esile failide kustutamise või ketta vormindamise funktsiooni. Ülejäänud SRAM mäluaadresside vahemik 0x0200 kuni 0xFFFF (see on rohkem kui reaalsetes mikroprotsessorites) on kasutaja jaoks igasugusteks otstarveteks saadaval. Rõhutan, et selleks on olemas spetsiaalne kaitse reaalse mikroprotsessori (või muu arhitektuuri püsivara) kogemata aktiveerimise eest: enne

ohtlike funktsioonide aktiveerimist tuleb kutsuda esile spetsiaalne nutikas virtuaalne funktsioon. Olemas on ka teised kaitsemehhanismid.Programmi loomiseks Nanonyami jaoks tuleb kasutada spetsiaalseid raamatukogusid, kus on rakendatud kõik praegu saadaval olevad virtuaalsed funktsioonid. Laadige alla virtuaalne masin Nanonyam ja raamatukogud selle jaoks siit.Aga siin on

virtuaalsete funktsioonide kirjeldamise leht. Jah, mu sait on väga primitiivne ja ei ole kohandatud mobiilseadmete jaoks. Nanonyam programm on tasuta koduseks ja äritootmiseks. Nanonyam programm antakse «nagu on» ja allika kood ei ole esitatud.

Hetkel on programm testimise faasis. Rakendatud on umbes 200 virtuaalset funktsiooni, mis võimaldavad luua lihtsaid programme Windowsile.
On selge, et sellises virtuaalses masinas keerulist midagi luua ei õnnestu, kuna koodiks on vaid 256 kB mälu. Andmeid saab hoida eraldi failides, graafika jaoks mõeldud puhver on väliselt teostatud. Kõik funktsioonid on lihtsustatud ja kohandatud 8-bitise arhitektuuri jaoks.

Mida saab Nanonyam'is teha? Olen välja mõelnud mitu ülesannet.

Programmi moodulite arendamine

Kord oli mul vaja arendada keeruline menüü 128×64 punkti graafilise ekraani jaoks. Ei olnud kahju pidevalt laadida püsivara reaalsesse mikrokontrollerisse, et vaadata, kuidas pikslid välja näevad. Nii sündis idee Nanonyam. Alloleval joonisel on pilt reaalsest OLED-ekraanist ühe punkti kohta sellest menüüst. Nüüd saan seda töötada ilma reaalse seadmeta.

Kuidas luua Arduino-s programme Windowsile

Nanonyam (oma lõpliku mõttega) on hea tööriist mikrokontrollerite programmide moodulite arendamiseks, kuna seal on funktsioonid graafikaga töötamiseks (saab simuleerida ekraane ja indikaatoreid), failidega (saab teha logisid, lugeda testandmeid), klaviatuuriga (saab lugeda kuni 10 nuppu korraga), COM-portidega (sellega seoses on eraldi punkt).

Kiirete programmide loomine

Näiteks, teil on kiiresti vaja töödelda 100500 tekstifaili. Igaüht tuleb avada, veidi muuta ühe lihtsa algoritmi järgi, salvestada ja sulgeda. Kui olete Python'i meister, siis õnnitlen teid, kõik on teil olemas. Aga kui olete kindel Arduino kasutaja (ja neid on palju), siis Nanonyam aitab selles ülesandes. Just see on minu teine eesmärk Nanonyam'is: lisada palju kasulikke funktsioone nagu tekstide töötlemine, ekraanipiltide loomine või klahvivajutuste simuleerimine süsteemis (kõik see on juba olemas) ning palju teisi funktsioone rutiinsete ülesannete lahendamiseks.

Raudvara testimine COM-pordi kaudu

Nanonyam võib tegutseda terminalina, mis töötab teie algoritmi järgi. Saate joonistada väikese menüü, et juhtida seadet ja kuvada portist saadud andmeid. Andmeid saab salvestada ja faile lugeda analüüsimiseks. Mugav tööriist lihtsaks riistvara silumiseks ja kalibreerimiseks, samuti lihtsate virtuaalsete juhtpaneelide loomiseks seadme jaoks. Üliõpilastele ja noortele teadlastele võib see projekt olla väga kasulik.

Programmeerimise õppimine

Nagu kogu Arduino projektis, seisneb Nanonyami põhikasulikkus funktsioonide, liidese ja laadija lihtsuses. Seetõttu peaks see projekt olema huvitav algajatele programmeerijatele ja neile, kellele sobib Arduino tase. Üksikasjalikult ei ole ma veel Arduino't õppinud, kuna olen alati kasutanud WinAVR või AVR Studio ning alustanud assembleriga. Seetõttu on allolev programmi näide veidi vale, kuid täiesti töökindel.

Tere, Habr!

On aeg tutvuda mõnede Nanonyami funktsioonidega ja kirjutada lihtne programm. Kirjutame Arduino's, kuid mitte nii, nagu tavaliselt, vaid nii, nagu ma praegu oskan (ma olen juba öelnud, et ei tunne seda keskkonda veel hästi). Alustuseks loome uue skeemi ja valime laua Mega2560.

Kuidas luua Arduino-s programme Windowsile

Salvestame skeemi faili ja kopeerime kõrvale Nanonyami teegi. Õige oleks kaasata teegipealkirjad, kuid ma ei tea, kuidas Arduino's eraldi faile kompileerida, seega lisame teegid otse (ja kõik korraga):

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

Veelgi õigem oleks luua spetsiaalne moodul "Nanonyam for Arduino", mille saaks otse Arduino'st installida. Kui ma sellega toime jõuan, teen selle ära, aga praegu demonstreerin lihtsalt virtuaalse masina tööpõhimõtet. Kirjutame järgmise koodi:

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

Skeem selle programmi jaoks on saadaval siit. Funktsioonide üksikasjalikku kirjelduse otsige veebisaidilt. Loodan, et selle koodi kommentaarid on piisavad, et mõista sisu. Siin mängib funktsioon sys_Nanonyam() rolli "paroolina" virtuaalses masinas, eemaldades virtuaalfunktsioonide piirangud. Ilma selle funktsioonita sulgub programm kolme sekundi jooksul.

Klõpsame nuppu "Kontrolli" ja vigu ei tohi olla.

Kuidas luua Arduino-s programme Windowsile

Nüüd tuleb saada binaarfail (puhastus). Valime menüü "Skeem>>Binaarfaili ekspordimine (CTRL+ALT+S)«.

Kuidas luua Arduino-s programme Windowsile

Sellega kopeeritakse skeemiga kausta kaks HEX-faili. Me võtame ainult faili ilma «with_bootloader.mega» lisamiseta.

On mitu viisi näidata HEX-faili virtuaalmasinale Nanonyam, kõik need on kirjas sellel lehel. Pakun, et loome faili kõrval Nanonyam.exe fail Nanonyam.path, kus on kirjas meie HEX-faili täispikkus. Pärast seda saab käivitada Nanonyam.exe. Saame akna meie tekstiga.

Kuidas luua Arduino-s programme Windowsile

Sarnaselt saab luua programme ka muudes keskkondades, näiteks AVR Studio või WinAVR.

Sellega lõpetame Nanonyami tutvustamise. Peamine idee peaks olema selge. Lisaks on näiteid ka veebis. Kui on piisavalt soovijaid seda projekti kasutada, siis teen rohkem näiteid ja jätkan virtuaalfunktsioonide raamatukogude täiendamist. Ootan konkreetseid ideid projekti arendamiseks ning aruandeid vigadest, tõrgetest ja ekslike detailide kohta. Soovitav on need saata kontaktide kaudu, mida on märgitud veebilehel. Arutelu on kommentaarides teretulnud.

Aitäh kõigile tähelepanu eest ja head programmeerimist!

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster