Einn daginn fékk ég þá vitlausu hugmynd að koma með
Ég kallaði verkefnið Nanonyam (Nanonyam) og kom meira að segja með lógó fyrir það (ég teiknaði í 5 mínútur).
Fyrir þá sem hugsa út frá Arduino, getum við sagt að Nanonyam er sýndar Arduino skjöldur til að stjórna Windows.
Með öðrum orðum, Nanonyam er sýndarvél sem notar fastbúnaðinn fyrir AVR örstýringuna (mælt er með ATMEGA2560) sem bækikóða. Inni í þessari sýndarvél er AVR kjarnahermir, en í stað jaðartækja, sem eru staðsett á SRAM vistföngum frá 0x0060 til 0x01FF, er sérstakt viðmót við sýndaraðgerðir (þar á meðal Windows API aðgerðir). Og hér er mjög mikilvægt að skilja strax: Kóðinn fyrir Nanonyam ætti ekki að hafa neinn aðgang að tilgreindu minnissviði, svo að það kalli ekki óvart, til dæmis, aðgerðina að eyða skrám eða forsníða disk. Afgangurinn af SRAM minni á bilinu 0x0200 til 0xFFFF (þetta er meira en í alvöru örstýringu) er í boði fyrir notandann í hvaða tilgangi sem er. Ég tek strax eftir því að það er sérstök vörn gegn því að ræsa vélbúnaðar raunverulegs örstýringar fyrir slysni (eða vélbúnaðar úr öðrum arkitektúr): áður en þú kveikir á „hættulegum“ aðgerðum þarftu að hringja í sérstaka erfiða sýndaraðgerð. Það eru líka nokkrir aðrir öryggiseiginleikar.
Til að búa til forrit fyrir Nanonyam þarftu að nota sérstök bókasöfn sem útfæra allar sýndaraðgerðir sem eru tiltækar. Sæktu Nanonyam sýndarvélina og bókasöfn fyrir hana
Nanonyam er ókeypis fyrir heimilis- og viðskiptanotkun. Nanonyam forritið er veitt á „eins og er“ grunni. Frumkóði er ekki gefinn upp.
Forritið er nú í prófunarfasa. Innleiddi um 200 sýndaraðgerðir sem gera þér kleift að búa til einföld forrit fyrir Windows.
Augljóslega mun það ekki virka að búa til eitthvað flókið í slíkri sýndarvél, þar sem minni fyrir kóðann er aðeins 256 kB. Hægt er að geyma gögn í aðskildum skrám, biðminni fyrir grafíska hlutann er útfærður að utan. Allar aðgerðir eru einfaldaðar og aðlagaðar fyrir 8-bita arkitektúr.
Hvað er hægt að gera í Nanonyam? Ég kom upp með nokkur vandamál.
Þróun forritablokka
Ég þurfti einu sinni að hanna flókna valmynd fyrir 128x64 punkta grafískan skjá. Ég vildi virkilega ekki hlaða fastbúnaðinum stöðugt inn í alvöru örstýringu til að sjá hvernig punktarnir líta út. Og þannig fæddist hugmyndin um Nanonyam. Myndin hér að neðan sýnir mynd frá alvöru OLED skjá af einum af hlutunum á sama valmyndinni. Nú get ég unnið í gegnum það án alvöru tækis.
Nanonyam (í lokahugmynd sinni) er gott tól til að vinna úr forritablokkum fyrir örstýringar, þar sem það eru aðgerðir til að vinna með grafík (hægt er að líkja eftir skjám og vísum), með skrám (hægt að búa til loga, lesa prófunargögn), með lyklaborð (þú getur lesið allt að 10 hnappa á sama tíma), með COM tengi (hér er sérstakt atriði).
Að búa til hraðforrit
Til dæmis þarftu að vinna hratt úr 100500 textaskrám. Það þarf að opna hvern og einn, breyta örlítið í samræmi við einfalt reiknirit, vista og loka. Ef þú ert Python meistari, þá óska ég þér til hamingju, þú hefur allt. En ef þú ert harður arduino (og þeir eru margir), þá mun Nanonyam hjálpa þér við að leysa þetta vandamál. Þetta er annað markmið mitt í Nanonyam: að bæta við mörgum gagnlegum aðgerðum eins og textavinnslu, að taka skjámyndir eða líkja eftir ásláttum í kerfinu (sem allar eru nú þegar til staðar), auk margra annarra aðgerða til að leysa venjubundin verkefni .
Prófa vélbúnað í gegnum COM tengi
Nanonyam getur virkað sem flugstöð sem virkar í samræmi við reikniritið þitt. Þú getur teiknað litla valmynd til að stjórna tækinu og sýna gögnin sem berast frá höfninni. Þú getur vistað og lesið gögn úr skrám til greiningar. Handhægt tæki fyrir einfalda kembiforrit og kvörðun vélbúnaðar, sem og til að búa til einföld sýndarstjórnborð. Fyrir nemendur og unga vísindamenn getur þetta verkefni verið mjög gagnlegt.
Forritunarþjálfun
Hins vegar, eins og með allt Arduino verkefnið, liggur helsta gagnsemi Nanonyam í einföldun aðgerða, viðmóts og ræsiforrits. Þess vegna ætti þetta verkefni að vera áhugavert fyrir byrjendur forritara og þá sem eru ánægðir með stig arduino. Við the vegur, sjálfur hef ég ekki enn lært arduino í smáatriðum, vegna þess að ég notaði alltaf WinAVR eða AVR Studio, en byrjaði með assembler. Þess vegna mun forritið hér að neðan vera svolítið rangt, en alveg virka.
Halló Habr!
Það er kominn tími til að kynnast nokkrum eiginleikum Nanonyam og skrifa einfalt forrit. Við munum skrifa í Arduino, en ekki á venjulegan hátt, heldur eins og ég get núna (ég sagði nú þegar að ég hef ekki fundið út þetta umhverfi mjög vel ennþá). Fyrst skaltu búa til nýja skissu og velja Mega2560 borðið.
Vistaðu skissuna í skrá og afritaðu næst
#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"
Það væri enn réttara að búa til sérstaka einingu „Nanonyam fyrir Arduino“ sem hægt er að setja upp beint frá Arduino. Um leið og ég átta mig á því mun ég gera það, en í bili er ég bara að sýna kjarnann í því að vinna með sýndarvél. Við skrifum eftirfarandi kóða:
//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}
Skissa með þessu forriti
Við ýtum á "Athugaðu" hnappinn og það ættu ekki að vera neinar villur.
Nú þarftu að fá tvöfalda skrá (fastbúnað). Veldu valmyndina "Skissa >> Flytja út tvíundarskrá (CTRL+ALT+S)".
Þetta mun afrita tvær HEX skrár í skissumöppuna. Við tökum aðeins skrána án forskeytsins "with_bootloader.mega".
Það eru nokkrar leiðir til að tilgreina HEX skrá fyrir Nanonyam sýndarvélina, þeim er öllum lýst
Á sama hátt geturðu búið til forrit í öðru umhverfi, eins og AVR Studio eða WinAVR.
Hér ljúkum við kynnum okkar af Nanonyam. Meginhugmyndin ætti að vera skýr.
Þakka ykkur öllum fyrir athyglina og góða forritun!
Heimild: www.habr.com