Kuidas luua Arduinos Windowsi jaoks programme

Kuidas luua Arduinos Windowsi jaoks programme

Ühel päeval tuli mul hull idee tuua 500 laserpointerit ühes kohas. Ma veetsin palju aega ja tegin seda. See tuli suurejooneline ja kasutu, aga mulle meeldis. Kuus kuud tagasi tuli mul veel üks hull idee. Seekord sugugi mitte suurejooneline, aga palju kasulikum. Ka mina kulutasin sellele palju aega. Ja selles artiklis tutvustan oma teise hullumeelse idee beetaversiooni.

Panin projektile nimeks Nanonyam (Nanonyam) ja mõtlesin sellele isegi logo välja (joonistasin 5 minutit).

Kuidas luua Arduinos Windowsi jaoks programme

Neile, kes mõtlevad Arduino mõistes, võime öelda, et Nanonyam on virtuaalne Arduino kilp Windowsi juhtimiseks.

Teisisõnu on Nanonyam virtuaalne masin, mis kasutab baitkoodina AVR-i mikrokontrolleri püsivara (soovitatav on ATMEGA2560). Selle virtuaalmasina sees on AVR-i tuumasimulaator, kuid välisseadmete asemel, mis asuvad SRAM-i aadressidel 0x0060 kuni 0x01FF, on virtuaalsete funktsioonide (sh Windows API funktsioonide) jaoks spetsiaalne liides. Ja siin on väga oluline kohe aru saada: Nanonyami koodil ei tohiks olla juurdepääsu määratud mäluvahemikule, et mitte kogemata kutsuda näiteks failide kustutamise või ketta vormindamise funktsiooni. Ülejäänud SRAM-i mäluvahemik 0x0200 kuni 0xFFFF (seda on rohkem kui päris mikrokontrolleri puhul) on kasutajale igal eesmärgil saadaval. Märgin kohe, et tõelise mikrokontrolleri püsivara (või muust arhitektuurist pärit püsivara) juhusliku käivitamise eest on olemas spetsiaalne kaitse: enne "ohtlike" funktsioonide aktiveerimist peate helistama spetsiaalsele keerulisele virtuaalfunktsioonile. Samuti on mõned muud turvaelemendid.

Nanonyami programmide loomiseks peate kasutama spetsiaalseid teeke, mis rakendavad kõiki praegu saadaolevaid virtuaalseid funktsioone. Laadige alla Nanonyami virtuaalmasin ja selle jaoks teegid Seejärel saab. Kuid virtuaalse funktsiooni kirjelduse leht. Ja jah, minu sait on väga primitiivne ja pole mobiilseadmete jaoks kohandatud.

Nanonyam on kodu- ja ärikasutuseks tasuta. Nanonyami programmi pakutakse "nagu on". Lähtekoodi ei pakuta.

Programm on praegu testimisfaasis. Rakendatud umbes 200 virtuaalset funktsiooni, mis võimaldavad luua Windowsi jaoks lihtsaid programme.
Ilmselgelt sellises virtuaalmasinas millegi keerulise loomine ei toimi, kuna koodi mälu on vaid 256 kB. Andmeid saab salvestada eraldi failidesse, graafilise osa puhver on realiseeritud väliselt. Kõik funktsioonid on lihtsustatud ja kohandatud 8-bitise arhitektuuri jaoks.

Mida saate Nanonyamis teha? Mul tekkis paar probleemi.

Programmiplokkide arendamine

Mul oli kunagi vaja kujundada 128x64-punktilise graafilise ekraani jaoks keerukas menüü. Ma tõesti ei tahtnud püsivara pidevalt päris mikrokontrollerisse laadida, et näha, kuidas pikslid välja näevad. Ja nii sündiski Nanonyami idee. Alloleval joonisel on kujutatud pilti päris OLED-ekraanilt ühest sama menüü üksusest. Nüüd saan sellega hakkama ilma päris seadmeta.

Kuidas luua Arduinos Windowsi jaoks programme

Nanonyam (oma lõplikus idees) on hea tööriist mikrokontrollerite programmiplokkide väljatöötamiseks, kuna seal on funktsioonid graafikaga töötamiseks (saate simuleerida kuvasid ja indikaatoreid), failidega (saate teha logisid, lugeda testandmeid), koos klaviatuur (saate lugeda kuni 10 nuppu korraga), COM-portidega (siin on eraldi üksus).

Kiirprogrammide loomine

Näiteks peate kiiresti töötlema 100500 XNUMX tekstifaili. Igaüks neist tuleb avada, mõne lihtsa algoritmi järgi veidi muuta, salvestada ja sulgeda. Kui olete Pythoni meister, siis õnnitlen teid, teil on kõik olemas. Aga kui olete paadunud arduino (ja neid on palju), aitab Nanonyam teid selle probleemi lahendamisel. See on minu teine ​​eesmärk Nanonyamis: lisada süsteemis palju kasulikke funktsioone, nagu tekstitöötlus, ekraanipiltide tegemine või klahvivajutuste simuleerimine (muide, kõik need on juba olemas), samuti palju muid funktsioone rutiinsete ülesannete lahendamiseks. .

Riistvara testimine COM-pordi kaudu

Nanonyam võib toimida terminalina, mis töötab teie algoritmi järgi. Seadme juhtimiseks ja pordist saadud andmete kuvamiseks saate joonistada väikese menüü. Saate salvestada ja lugeda failidest andmeid analüüsimiseks. Mugav tööriist riistvara lihtsaks silumiseks ja kalibreerimiseks, samuti lihtsate virtuaalsete instrumentide juhtpaneelide loomiseks. Üliõpilastele ja noortele teadlastele võib see projekt olla väga kasulik.

Programmeerimise koolitus

Kuid nagu kogu Arduino projekti puhul, seisneb Nanonyami peamine kasulikkus funktsioonide, liidese ja alglaaduri lihtsustamises. Seetõttu peaks see projekt huvi pakkuma algajatele programmeerijatele ja neile, kes on arduino tasemega rahul. Muide, ma ise pole siiani arduinot täpsemalt uurinud, sest kasutasin alati WinAVR-i või AVR Studiot, aga alustasin assemblerist. Seetõttu on allolev näidisprogramm veidi vale, kuid üsna töötav.

Tere Habr!

On aeg tutvuda mõne Nanonyami funktsiooniga ja kirjutada lihtne programm. Kirjutame Arduinos, aga mitte tavapärasel viisil, vaid nii, nagu ma praegu oskan (ma juba ütlesin, et ma pole seda keskkonda veel väga hästi välja mõelnud). Esmalt looge uus visand ja valige Mega2560 tahvel.

Kuidas luua Arduinos Windowsi jaoks programme

Salvestage visand faili ja kopeerige järgmisena Nanonyami raamatukogu. Õige oleks lisada teekide päised, kuid ma ei tea, kuidas Arduinosse üksikute failide kompileerimist kirjutada, nii et praegu kaasame 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 teha spetsiaalne moodul “Nanonyam for Arduino”, mille saab paigaldada otse Arduinost. Niipea kui ma selle välja mõtlen, teen seda, aga praegu näitan vaid virtuaalmasinaga töötamise olemust. 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);//Задержка и разгрузка процессора
}

Visanda selle programmiga saab alla laadida siit. Funktsioonide üksikasjalik kirjeldus otsi saidilt. Loodan, et selle koodi kommentaaridest piisab, et mõista selle olemust. Siin funktsioon sys_Nanonyam() mängib virtuaalmasina "parooli" rolli, mis eemaldab virtuaalsete funktsioonide piirangud. Ilma selle funktsioonita suletakse programm pärast 3 sekundit.

Vajutame nuppu "Kontrolli" ja vigu ei tohiks olla.

Kuidas luua Arduinos Windowsi jaoks programme

Nüüd peate hankima binaarfaili (püsivara). Valige menüü "Sketch>> Ekspordi binaarfail (CTRL+ALT+S)"

Kuidas luua Arduinos Windowsi jaoks programme

See kopeerib kaks HEX-faili visandikausta. Võtame ainult faili ilma eesliiteta "with_bootloader.mega".

Nanonyami virtuaalmasinale HEX-faili määramiseks on mitu võimalust, neid kõiki kirjeldatakse sellel lehel. Soovitan luua faili kõrvale Nanonyam.exe faili tee, kuhu registreerida meie HEX-faili täielik tee. Pärast mida saate joosta Nanonyam.exe. Saame akna, millel on meie kiri.

Kuidas luua Arduinos Windowsi jaoks programme

Samamoodi saate luua programme ka teistes keskkondades, näiteks AVR Studio või WinAVR.

Siin lõpetame Nanonyamiga tutvumise. Põhiidee peaks olema selge. Rohkem näiteid on veebisaidil.. Kui on piisavalt soovijaid seda projekti kasutama, siis teen veel näiteid ja jätkan virtuaalsete funktsiooniteekide "täitmist". Aktsepteeritakse konkreetseid ideid projekti arendamiseks ja teateid talitlushäiretest, vigadest ja vigadest. Soovitav on suunata nad kontaktidele, veebisaidil näidatud. Ja arutelu on teretulnud kommentaarides.

Tänan teid kõiki tähelepanu ja hea programmeerimise eest!

Allikas: www.habr.com

Lisa kommentaar