Yon jou mwen te gen lide fou a pote
Mwen te rele pwojè a Nanonyam (Nanonyam) e menm te vini ak yon logo pou li (mwen te trase pou 5 minit).
Pou moun ki panse an tèm de Arduino, nou ka di ke Nanonyam se yon plak pwotèj Arduino vityèl pou kontwole Windows.
Nan lòt mo, Nanonyam se yon machin vityèl ki sèvi ak firmwèr pou mikrokontroleur AVR (ATMEGA2560 rekòmande) kòm bytecode la. Anndan machin vityèl sa a se yon similatè debaz AVR, men olye pou yo periferik, ki sitiye nan adrès SRAM soti nan 0x0060 a 0x01FF, gen yon koòdone espesyal nan fonksyon vityèl (ki gen ladan fonksyon Windows API). Ak isit la li trè enpòtan yo konprann touswit: kòd la pou Nanonyam pa ta dwe gen okenn aksè nan seri a memwa espesifye, se konsa yo pa aksidantèlman rele, pou egzanp, fonksyon an nan efase dosye oswa fòma yon disk. Rès la nan seri a memwa SRAM soti nan 0x0200 a 0xFFFF (sa a se pi plis pase nan yon mikrokontroleur reyèl) ki disponib nan itilizatè a pou nenpòt ki rezon. Mwen remake imedyatman ke gen yon pwoteksyon espesyal kont lansman aksidantèl nan firmwèr nan yon mikrokontroleur reyèl (oswa firmwèr soti nan yon lòt achitekti): anvan aktive fonksyon "danjere", ou bezwen rele yon espesyal fonksyon difisil vityèl. Gen kèk lòt karakteristik sekirite tou.
Pou kreye pwogram pou Nanonyam, ou bezwen sèvi ak bibliyotèk espesyal ki aplike tout fonksyon vityèl ki disponib kounye a. Telechaje machin vityèl Nanonyam ak bibliyotèk pou li
Nanonyam gratis pou itilizasyon kay ak komèsyal. Yo bay pwogram Nanonyam sou yon baz "tankou". Kòd sous yo pa bay.
Pwogram nan se kounye a nan faz tès la. Aplike sou 200 fonksyon vityèl ki pèmèt ou kreye pwogram senp pou Windows.
Li evidan, kreye yon bagay konplike nan tankou yon machin vityèl pa pral travay, depi memwa a pou kòd la se sèlman 256 kB. Done yo ka estoke nan dosye separe, tanpon pou pati grafik la aplike deyò. Tout fonksyon yo senplifye ak adapte pou achitekti 8-bit.
Kisa ou ka fè nan Nanonyam? Mwen te vini ak kèk pwoblèm.
Devlopman nan blòk pwogram yo
Yon fwa mwen te bezwen desine yon meni konplèks pou yon ekspozisyon grafik 128x64 pwen. Mwen reyèlman pa t 'vle toujou ap chaje firmwèr la nan yon mikrokontroleur reyèl yo wè ki jan piksèl yo gade. Se konsa lide Nanonyam te fèt. Figi ki anba a montre yon imaj ki soti nan yon ekspozisyon OLED reyèl nan youn nan atik ki nan menm meni an. Koulye a, mwen ka travay atravè li san yon aparèy reyèl.
Nanonyam (nan lide final li) se yon bon zouti pou travay blòk pwogram pou mikrokontwolè, paske gen fonksyon pou travay ak grafik (ou ka simulation ekspozisyon ak endikatè), ak dosye (ou ka fè mòso bwa, li done tès yo), ak yon klavye (ou ka li jiska 10 bouton an menm tan), ak pò COM (isit la se yon atik separe).
Kreye pwogram rapid
Pou egzanp, ou bezwen byen vit trete 100500 dosye tèks. Chak bezwen yo dwe louvri, yon ti kras modifye dapre kèk algorithm senp, sove epi fèmen. Si ou se yon mèt Python, Lè sa a, mwen felisite ou, ou gen tout bagay. Men, si ou se yon arduino fè tèt di toujou (e gen anpil nan yo), Lè sa a, Nanonyam pral ede w nan rezoud pwoblèm sa a. Sa a se dezyèm objektif mwen nan Nanonyam: ajoute anpil fonksyon itil tankou pwosesis tèks, pran Ekran oswa similye frap nan sistèm nan (tout sa yo, nan chemen an, yo deja la), osi byen ke anpil lòt fonksyon pou rezoud travay woutin. .
Tès pyès ki nan konpitè atravè pò COM
Nanonyam ka aji kòm yon tèminal ki travay selon algorithm ou. Ou ka trase yon ti meni pou kontwole aparèy la epi montre done yo resevwa nan pò a. Ou ka sove epi li done ki sòti nan dosye pou analiz. Yon zouti sou la men pou senp debogaj ak kalibrasyon pyès ki nan konpitè, osi byen ke pou kreye senp panno kontwòl enstriman vityèl. Pou etidyan ak jèn syantis, pwojè sa a ka trè itil.
Fòmasyon pwogramasyon
Sepandan, menm jan ak tout pwojè Arduino a, itilite prensipal la nan Nanonyam se nan senplifikasyon nan fonksyon, koòdone ak bootloader. Se poutèt sa, pwojè sa a ta dwe nan enterè pwogramasyon inisyasyon ak moun ki satisfè ak nivo a nan arduino. By wout la, mwen menm mwen toujou pa te etidye arduino an detay, paske mwen te toujou itilize WinAVR oswa AVR Studio, men mwen te kòmanse ak assembler. Se poutèt sa, pwogram egzanp ki anba a pral yon ti kras mal, men byen travay.
Bonjou Habr!
Li lè pou w abitye ak kèk karakteristik Nanonyam epi ekri yon pwogram ki senp. Nou pral ekri nan Arduino, men se pa nan fason nòmal la, men nan fason mwen kapab kounye a (mwen te deja di ke mwen poko kalkile anviwònman sa a trè byen). Premyèman, kreye yon nouvo desen epi chwazi tablo Mega2560 la.
Sove desen an nan yon fichye epi kopye annapre
#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"
Li ta menm pi kòrèk pou fè yon modil espesyal "Nanonyam pou Arduino", ki ka enstale dirèkteman nan Arduino. Le pli vit ke mwen kalkile li soti, mwen pral fè li, men pou kounye a mwen jis montre sans nan travay ak yon machin vityèl. Nou ekri kòd sa 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);//Задержка и разгрузка процессора
}
Fè desen ak pwogram sa a
Nou peze bouton an "Tcheke" epi pa ta dwe gen okenn erè.
Koulye a, ou bezwen jwenn yon dosye binè (firmware). Chwazi meni an "Trase>> Ekspòte dosye binè (CTRL + ALT + S)".
Sa a pral kopye de dosye HEX nan katab la trase. Nou pran sèlman fichye a san prefiks "with_bootloader.mega".
Gen plizyè fason pou presize yon fichye HEX nan machin vityèl Nanonyam, yo tout dekri
Menm jan an tou, ou ka kreye pwogram nan lòt anviwònman, tankou AVR Studio oswa WinAVR.
Se la nou fini konesans nou ak Nanonyam. Lide prensipal la ta dwe klè.
Mèsi tout pou atansyon nou ak bon pwogramasyon!
Sous: www.habr.com