Faʻafefea ona fatuina polokalame mo Windows i Arduino

Faʻafefea ona fatuina polokalame mo Windows i Arduino

I se tasi aso na ou maua ai le manatu valea e aumai 500 faʻailoga laser i le nofoaga e tasi. Sa ou faaaluina le tele o le taimi ma faia. Na iu ina ofoofogia ma leai se aoga, ae sa ou fiafia i ai. I le ono masina talu ai na ou maua ai se isi manatu valea. O le taimi lenei, e le o se mea ofoofogia, ae sili atu ona aoga. Sa ou faaaluina foi le tele o le taimi i ai. Ma i lenei tusiga, ou te tuʻuina atu se kopi beta o loʻu manatu valea lona lua.

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).

Faʻafefea ona fatuina polokalame mo Windows i Arduino

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 e te mafaia iinei. Ma iinei itulau fa'amatalaga galuega fa'akomepiuta. Ma ioe, o laʻu 'upega tafaʻilagi e matua tuai ma e le fetaui mo masini feaveaʻi.

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.

Faʻafefea ona fatuina polokalame mo Windows i Arduino

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.

Faʻafefea ona fatuina polokalame mo Windows i Arduino

Faasaoina le ata i se faila ma kopi le isi Faletusi Nanonyam. E saʻo le aofia ai o ulutala o faletusi, ae ou te le iloa pe faʻafefea ona tusia le tuʻufaʻatasia o faila taʻitasi i Arduino, o lea mo le taimi nei o le a matou faʻaaofia saʻo faletusi (ma i le taimi e tasi):

#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 e mafai ona sii mai iinei. Fa'amatalaga auiliili o galuega su'e ile saite. Ou te faʻamoemoe o faʻamatalaga i lenei code e lava e maua ai le autu. O galuega iinei sys_Nanonyam() faia le matafaioi o se "password" mo le masini komepiuta, lea e aveesea tapulaa i luga o galuega tauave virtual. A aunoa ma lenei galuega, o le a tapunia le polokalame pe a uma le 3 sekone o le gaioiga.

Matou te oomi le ki "Siaki" ma e le tatau ona i ai ni mea sese.

Faʻafefea ona fatuina polokalame mo Windows i Arduino

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)".

Faʻafefea ona fatuina polokalame mo Windows i Arduino

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 i luga o lenei itulau. Ou te fautua atu e fai i tafatafa o le faila Nanonyam.exe faila ala, lea e lesitala ai le ala atoa i la matou faila HEX. A uma ona e tamoe Nanonyam.exe. Matou te maua se faʻamalama ma a matou faʻamatalaga.

Faʻafefea ona fatuina polokalame mo Windows i Arduino

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. E tele faʻataʻitaʻiga o loʻo i luga o le upega tafaʻilagi.. Afai e lava tagata o loʻo naunau e faʻaoga lenei poloketi, ona ou faia lea o nisi faʻataʻitaʻiga ma faʻaauau pea ona "faatumu" faletusi aoga. Manatu sima mo le atinaʻeina o le poloketi ma lipoti o faʻaletonu, bugs ma bugs e talia. E fautuaina e fa'atonu i latou i feso'ota'iga, fa'aalia i luga o le saite. Ma e talia le talanoaga i faʻamatalaga.

Faafetai atu ia te outou uma mo lo outou gauai ma polokalame lelei!

puna: www.habr.com

Faaopoopo i ai se faamatalaga