I se tasi aso na ou maua ai le manatu valea e aumai
Na ou faaigoaina le poloketi Nanonyam (Nanonyam) ma na oo lava ina sau ma se logo mo ia (na ou tusia mo le 5 minute).
Mo i latou e mafaufau i tulaga o Arduino, e mafai ona tatou fai atu o Nanonyam o se talipupuni Arduino virtual mo le puleaina o Windows.
I se isi faaupuga, Nanonyam o se masini komepiuta e faʻaogaina le firmware mo le microcontroller AVR (ATMEGA2560 ua fautuaina) e pei o le bytecode. I totonu o lenei masini komepiuta o loʻo i ai se simulator autu AVR, ae nai lo masini faʻapitoa, o loʻo i ai i tuatusi SRAM mai le 0x0060 i le 0x01FF, o loʻo i ai se faʻapitoa faʻapitoa i galuega faʻapitoa (e aofia ai galuega a le Windows API). Ma o iinei e taua tele le malamalama i le taimi lava lena: o le code mo Nanonyam e le tatau ona i ai soʻo se avanoa i le vaʻaiga manatua faʻapitoa, ina ia le faʻafuaseʻi ona valaʻau, mo se faʻataʻitaʻiga, le galuega o le tapeina o faila poʻo le faʻatulagaina o se disk. O le vaega o totoe o le SRAM manatua mai le 0x0200 i le 0xFFFF (e sili atu nai lo se microcontroller moni) e avanoa mo le tagata faʻaoga mo soʻo se faʻamoemoe. Ou te matauina i le taimi lava lena o loʻo i ai se puipuiga faʻapitoa mai le faʻafuaseʻi o le faʻalauiloaina o le firmware o se microcontroller moni (poʻo le firmware mai se isi fausaga): aʻo leʻi faʻagaoioia galuega "mataʻutia", e tatau ona e valaʻau i se galuega faʻapitoa faʻapitoa. O lo'o iai fo'i isi mea fa'apolopolo.
Mo le fatuina o polokalame mo Nanonyam, e tatau ona e faʻaogaina faletusi faʻapitoa e faʻatino uma galuega faʻapitoa o loʻo avanoa nei. La'u mai le Nanonyam virtual machine ma faletusi mo ia
Nanonyam e leai se totogi mo le fale ma pisinisi faʻaoga. O le polokalame Nanonyam o loʻo tuʻuina atu i luga o se "pei o" faavae. E le o maua mai le code source.
O lo'o i ai nei le polokalame ile vaega ole su'ega. Fa'atinoina e tusa ma le 200 galuega fa'atino e mafai ai ona e faia ni polokalame faigofie mo Windows.
E manino lava, o le fatuina o se mea faigata i se masini komepiuta e le aoga, talu ai o le manatua mo le code e na o le 256 kB. E mafai ona teuina faʻamatalaga i faila eseese, o le paʻu mo le vaega faʻataʻitaʻi e faʻatinoina i fafo. O galuega uma e faʻafaigofie ma faʻafetaui mo le 8-bit architecture.
O le a se mea e mafai ona e faia i Nanonyam? Na ou sau ma ni nai faafitauli.
Atinae o poloka polokalame
Na ou manaʻomia muamua e mamanuina se lisi lavelave mo se 128x64 dot graphic display. Ou te matua le manaʻo e faʻapipiʻi pea le firmware i totonu o se microcontroller moni e vaʻai pe faʻapefea ona foliga pixels. Ma o lea na fanau mai ai le manatu o Nanonyam. O le ata o loʻo i lalo o loʻo faʻaalia ai se ata mai se faʻaaliga OLED moni o se tasi o mea i luga o le lisi tutusa. O lea ua mafai ona ou galue i ai e aunoa ma se masini moni.
Nanonyam (i lona manatu mulimuli) o se meafaigaluega lelei mo le galueaina o poloka polokalame mo microcontrollers, ona o loʻo i ai galuega mo le galue i ata (e mafai ona e faʻataʻitaʻiina faʻaaliga ma faʻailoga), ma faila (e mafai ona e faia ni ogalaau, faitau faʻamatalaga suʻega), ma se piano (e mafai ona e faitau atu i le 10 faʻamau i le taimi e tasi), faʻatasi ai ma ports COM (o se mea ese lea).
Fausia Polokalama Vave
Mo se faʻataʻitaʻiga, e tatau ona e faʻagasolo vave 100500 faila faila. E manaʻomia le tatalaina o mea taʻitasi, fai sina suiga e tusa ai ma se algorithm faigofie, faʻasaoina ma tapuni. Afai o oe o se matai Python, ou te faamalo atu ia te oe, o loʻo ia te oe mea uma. Ae afai o oe o se arduino malo (ma e tele naua), ona fesoasoani lea o Nanonyam ia te oe i le foia o lenei faafitauli. O laʻu sini lona lua lea i Nanonyam: e faʻaopoopo le tele o galuega aoga e pei o le faʻaogaina o tusitusiga, ave faʻamalama poʻo le faʻataʻitaʻiina o ki i totonu o le polokalama (o mea uma, i le ala, ua uma ona i ai), faʻapea foʻi ma le tele o isi galuega mo le foia o galuega masani. .
Su'ega meafaigaluega e ala ile COM port
Nanonyam e mafai ona galue o se faʻamau e galue e tusa ai ma lau algorithm. E mafai ona e tusia se tamai lisi e pulea ai le masini ma faʻaalia faʻamatalaga na maua mai le taulaga. E mafai ona e fa'asaoina ma faitau fa'amaumauga mai faila mo au'ili'iliga. O se meafaigaluega aoga mo le faʻapipiʻiina faigofie ma le faʻavasegaina o meafaigaluega, faʻapea foʻi ma le fatuina o panele faʻatonutonu meafaifaaili faigofie. Mo tamaiti aoga ma saienitisi talavou, o lenei poloketi e mafai ona aoga tele.
A'oa'oga fa'apolokalame
Ae ui i lea, e pei o le Arduino project atoa, o le aoga autu o Nanonyam o loʻo taoto i le faʻafaigofieina o galuega, atinaʻe ma le faʻaulu. O le mea lea, o lenei poloketi e tatau ona fiafia i tagata fai polokalame fou ma i latou ua faamalieina i le maualuga o le arduino. I le auala, o aʻu lava e leʻi suʻesuʻeina le arduino i auiliiliga, aua sa masani ona ou faʻaaogaina WinAVR poʻo AVR Studio, ae amata i le assembler. O le mea lea, o le polokalame faʻataʻitaʻiga o loʻo i lalo o le a fai si sese, ae o loʻo galue.
Talofa Habr!
Ua oo i le taimi e faamasani ai i nisi o foliga o Nanonyam ma tusi se polokalama faigofie. O le a matou tusitusi i Arduino, ae le o le auala masani, ae i le auala ou te mafaia nei (ua uma ona ou fai atu ou te leʻi iloa lelei lenei siosiomaga). Muamua, fatuina se ata fou ma filifili le Mega2560 laupapa.
Faasaoina le ata i se faila ma kopi le isi
#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"
O le a sili atu ona saʻo le faia o se module faʻapitoa "Nanonyam mo Arduino", lea e mafai ona faʻapipiʻi saʻo mai Arduino. O le taimi lava ou te iloa ai, o le a ou faia, ae mo le taimi nei o loʻo ou faʻaalia le uiga o le galue ma se masini masini. Matou te tusia le code lea:
//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}
Tusia ma lenei polokalame
Matou te oomi le ki "Siaki" ma e le tatau ona i ai ni mea sese.
Ole taimi nei e te manaʻomia le mauaina o se faila faila (firmware). Filifili le lisi "Fa'ata'ita'i>> Fa'aulu atu i fafo faila faila (CTRL+ALT+S)".
O le a kopiina faila HEX e lua i le faila ata. Matou te ave naʻo le faila e aunoa ma le prefix "with_bootloader.mega".
E tele auala e faʻamaonia ai se faila HEX i le masini komepiuta Nanonyam, o loʻo faʻamatalaina uma
E faapena foi, e mafai ona e fatuina polokalame i isi siosiomaga, e pei o le AVR Studio poʻo le WinAVR.
O le mea lea e maeʻa ai le matou masani ma Nanonyam. E tatau ona manino le manatu autu.
Faafetai atu ia te outou uma mo lo outou gauai ma polokalame lelei!
puna: www.habr.com