Kuidas luua Arduino programmid Windowsile

Kuidas luua Arduino programmid Windowsile

Kord tuli mulle pähe hull mõte tuua kokku 500 laserpunktijat ühte kohta. Ma kulutasin sellele palju aega ja tegin selle ära. Tuli silmapaistev ja kasutu, aga mulle meeldis. Pool aastat tagasi tuli mulle veel üks hull mõte. Seekord ei olnud see üldse silmapaistev, aga palju kasulikum. Samuti kulutasin sellele palju aega. Ja selles artiklis esitan oma teise hullumeelse idee beetaversiooni.

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

Kuidas luua Arduino programmid Windowsile

Neile, kes mõtlevad Arduino terminoloogias, võib öelda, et Nanonyam on virtuaalne Arduino shield Windowsi juhtimiseks.

Teisisõnu, Nanonyam on virtuaalne masin, kus AVR mikrokontrolleri (soovitatav ATMEGA2560) püsivara kasutatakse baitkoodina. Selles virtuaalses masinas on AVR tuuma simulaator, kuid selle asemel, et perifeersed seadmed asuksid SRAM aadressidel 0x0060 kuni 0x01FF, on seal spetsiaalne liides virtuaalsete funktsioonide jaoks (sealhulgas Windows API funktsioonid). On äärmiselt oluline kohe selgeks teha, et Nanonyami jaoks kirjutatud kood ei tohi sisaldada mingeid viiteid nimetatud mälu vahemikule, et mitte kogemata käivitada näiteks failide kustutamise või ketta vormindamise funktsioone. Ülejäänud SRAM mälu vahemik aadressidel 0x0200 kuni 0xFFFF (mis on rohkem kui reaalses mikrokontrolleris) on kasutajale vabalt kasutamiseks. Tahan kohe märkida, et on olemas spetsiaalne kaitse reaalse mikrokontrolleri (või muu arhitektuuri püsivara) juhusliku käivitamise eest: enne „ohtlike“ funktsioonide aktiveerimist tuleb kutsuda spetsiaalne keeruline virtuaalne funktsioon. On olemas ka muid kaitseelemente.

Nanonyam-i jaoks programmide loomiseks tuleb kasutada spetsiaalseid teeke, kus on rakendatud kõik praegu saadaval olevad virtuaalsed funktsioonid. Laadi alla Nanonyam-i virtuaalmasin ja selle teegid. siit. Ja siin virtuaalsete funktsioonide kirjeldamise leht. Jah, minu veebisait on väga primitiivne ja mitte mobiilseadmetele kohandatud.

Nanonyam on tasuta koduseks ja kommertskasutuseks. Nanonyam'i programm antakse välja „nagu on“ tingimustel. Algkoodi ei jagata.

Praegu on programm testimise faasis. Rakendatud on umbes 200 virtuaalset funktsiooni, mis võimaldavad luua lihtsaid programme Windowsile.
Selgelt, et sellises virtuaalses masinas on keeruliste asjade loomine võimatu, kuna koodile on ainult 256 kB mälu. Andmeid saab salvestada eraldi failides, graafika osa vahemeri on rakendatud väliselt. Kõik funktsioonid on lihtsustatud ja kohandatud 8-bitisele arhitektuurile.

Mida on võimalik Nanonyam'is teha? Olen välja mõelnud mitmeid ülesandeid.

Programmi plokkide töötlemine

Kord pidin arendama keerulist menüüd 128×64 punktilise graafikaanäidiku jaoks. Mul oli väga vastumeelne pidevalt laadida tarkvara tõelisse mikrokontrollerisse, et näha, kuidas pikslid välja näevad. Nii sündiski idee Nanonyam. Alloleval joonisel on näide tõelisest OLED-ekraanist ühelt sellest menüüst. Nüüd saan seda töötada ilma reaalse seadmeta.

Kuidas luua Arduino programmid Windowsile

Nanonyam (oma lõplikus kontseptsioonis) on hea tööriist mikrokontrollerite tarkvarablokkide arendamiseks, kuna seal on graafikafunktsioonid (saab simuleerida ekraane ja indikaatoreid), failihaldus (võib teha logisid, lugeda testandmeid), klaviatuuri kasutamine (saab lugeda kuni 10 nuppu korraga), COM-portide kasutamine (siin on eraldi punkt).

Kiirete programmide loomine

Näiteks peate kiiresti töötlema 100500 tekstifaili. Iga fail tuleb avada, veidi muuta mõne lihtsa algoritmi järgi, salvestada ja sulgeda. Kui olete Python'i meister, siis on teil kõik olemas. Kuid kui olete jäik arduino kasutaja (nagu paljud meist), siis aitab Nanonyam teid selle ülesande lahendamisel. See on minu teine eesmärk Nanonyamis: lisada palju kasulikke funktsioone, nagu tekstide töötlemine, ekraanipiltide loomine või klahvivajutuste simuleerimine süsteemis (need funktsioonid on juba olemas) ning palju muid funktsioone igapäevaste ülesannete täitmiseks.

Riistvaratootjate testimine COM-pordi kaudu

Nanonyam võib tegutseda teie algoritmi järgi töötava terminalina. Võite joonistada väikese menüü seadme juhtimiseks ja kuvada portaali kaudu saadud andmeid. Andmeid on võimalik salvestada ja faile lugeda analüüsi jaoks. See on mugav tööriist lihtsaks riistvara tõrkeotsinguks ja kalibreerimiseks, samuti lihtsate virtuaalsete kontrollpaneelide loomiseks seadme jaoks. Üliõpilastele ja noortele teadlastele võib see projekt olla väga kasulik.

Programmeermise koolitus

Kuid nagu kogu Arduino projektis seisneb Nanonyami põhiline kasulikkus funktsioonide, liidese ja laadija lihtsuses. Seetõttu peaks see projekt huvitama algajaid programmeerijaid ja neid, kes on rahul Arduino tasemega. Muide, ma pole ise veel Arduino't detailselt uurinud, kuna olen alati kasutanud WinAVR-i või AVR Studio't ning alustasin assembleerimisest. Seega on allolev programm näide veidi vale, kuid täiesti töötav.

Tere, Habr!

On aeg tutvuda mõne Nanonyami funktsiooniga ja kirjutada lihtne programm. Kirjutame Arduino's, kuid mitte nii, nagu tavaliselt, vaid nii, nagu ma praegu oskan (ma juba mainisin, et ma pole selle keskkonnaga veel väga hästi tuttav). Esiteks loome uue skeemi ja valime Mega2560 plaadi.

Kuidas luua Arduino programmid Windowsile

Salvestame skeemi faili ja kopeerime kõrval Nanonyami teegi. Õige oleks lisada teekide pealkirjad, kuid ma ei tea, kuidas Arduino's eraldi failide kompileerimist kirjutada, seega lisame praegu 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"

Olen juba mõelnud spetsiaalse mooduli loomisele „Nanonyam for Arduino”, mille saab otse Arduino'sse installida. Kui ma sellega harjun, teen selle valmis, aga praegu näitan lihtsalt, kuidas virtuaalne masin töötab. Kirjutame sellise 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);//Задержка и разгрузка процессора
}

Selle programmi skeem on saadaval siit. Funktsioonide üksikasjaliku kirjelduse leiate veebisaidilt. Loodan, et selle koodi kommentaarid on piisavad, et mõista põhisisu. Siin funktsioon sys_Nanonyam() teenib „parooli” rolli virtuaalsele masinale, mis eemaldab piirangud virtuaalsetele funktsioonidele. Ilma selle funktsioonita programm sulgeb end kolme sekundiga.

Klickime nuppu „Kontrolli” ja vigu ei tohiks olla.

Kuidas luua Arduino programmid Windowsile

Nüüd on vaja saada binaarfail (firmavärk). Valime menüü „Skeem>>Ekspordib binaarfaili (CTRL+ALT+S)«.

Kuidas luua Arduino programmid Windowsile

Sellega kopeeritakse skeemi kausta kaks HEX-faili. Me võtame ainult faili, millel ei ole eelnevat „with_bootloader.mega”.

On mitu viisi, kuidas määrata HEX-fail virtuaalsele masinale Nanonyam, kõik need on kirjas sellel lehel. Soovitan luua faili kõrval Nanonyam.exe fail Nanonyam.path, kus on kirjas täielik tee meie HEX-failini. Pärast seda saab alustada Nanonyam.exe. Saame akna koos meie kirjutisega.

Kuidas luua Arduino programmid Windowsile

Samuti saab programme luua ka muudes keskkondades, nagu AVR Studio või WinAVR.

Sellega lõpetame tutvumise Nanonyamiga. Peamine idee peaks olema arusaadav. Veel näiteid on veebisaidil. Kui on piisavalt soovijaid selle projekti kasutamiseks, siis teen rohkem näiteid ja jätkan virtuaalsete funktsioonide raamatukogude "täiendamist". Konkreetsed ideed projekti arendamiseks ja aruanded probleemide, tõrgete ja vigade kohta on teretulnud. Soovitatav on neid saata kontaktide kaudu, mis on toodud veebisaidil. Arutelu on kommentarides teretulnud.

Kõigile tänud tähelepanu eest ja edu programmeerimisel!

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster