I kekahi lā ua loaʻa iaʻu ka manaʻo pupule e lawe mai
Ua kāhea au i ka papahana Nanonyam (Nanonyam) a hiki mai me kahi hōʻailona no ia (kaʻi au no 5 mau minuke).
No ka poʻe e noʻonoʻo e pili ana i ka Arduino, hiki iā mākou ke ʻōlelo ʻo Nanonyam kahi pale Arduino virtual no ka hoʻomalu ʻana i ka Windows.
I nā huaʻōlelo ʻē aʻe, ʻo Nanonyam kahi mīkini uila e hoʻohana ana i ka firmware no ka microcontroller AVR (ATMEGA2560 manaʻo ʻia) e like me ka bytecode. Aia i loko o kēia mīkini virtual he AVR core simulator, akā ma kahi o nā peripherals, aia ma nā helu SRAM mai 0x0060 a i 0x01FF, aia kahi kikowaena kūikawā i nā hana virtual (me nā hana Windows API). A eia ka mea nui e hoʻomaopopo koke: ʻaʻole pono ke komo ʻana o ke code no Nanonyam i ka pae hoʻomanaʻo i ʻōlelo ʻia, i ʻole e kāhea hewa ʻole, no ka laʻana, ka hana o ka holoi ʻana i nā faila a i ʻole ka hoʻopili ʻana i kahi disk. ʻO ke koena o ka pae hoʻomanaʻo SRAM mai 0x0200 a i 0xFFFF (ʻoi aku kēia ma mua o kahi microcontroller maoli) i loaʻa i ka mea hoʻohana no kekahi kumu. Hoʻomaopopo koke wau aia kahi pale kūikawā i ka hoʻomaka ʻana o ka firmware o kahi microcontroller maoli (a i ʻole firmware mai kahi hale hana ʻē aʻe): ma mua o ka hoʻāla ʻana i nā hana "pilikia", pono ʻoe e kāhea i kahi hana virtual tricky kūikawā. Aia kekahi mau hiʻohiʻona palekana.
No ka hana ʻana i nā polokalamu no Nanonyam, pono ʻoe e hoʻohana i nā hale waihona puke kūikawā e hoʻokō i nā hana virtual āpau i loaʻa i kēia manawa. Hoʻoiho i ka mīkini virtual Nanonyam a me nā hale waihona puke no ia
He manuahi ʻo Nanonyam no ka home a me ka hoʻohana pāʻoihana. Hāʻawi ʻia ka papahana Nanonyam ma ke kumu "as is". ʻAʻole hāʻawi ʻia ke code kumu.
Aia ka papahana i ka manawa ho'āʻo. Hoʻokō ʻia ma kahi o 200 mau hana virtual e ʻae iā ʻoe e hana i nā polokalamu maʻalahi no Windows.
ʻOiaʻiʻo, ʻaʻole e hana ka hana ʻana i kahi mea paʻakikī i loko o ia mīkini virtual, no ka mea ʻo 256 kB wale nō ka hoʻomanaʻo no ke code. Hiki ke mālama ʻia ka ʻikepili i nā faila ʻokoʻa, hoʻokō ʻia ka buffer no ka ʻāpana kiʻi ma waho. Ua maʻalahi a hoʻololi ʻia nā hana āpau no ka hoʻolālā 8-bit.
He aha kāu e hana ai ma Nanonyam? Ua hele mai au me kekahi mau pilikia.
Ke kūkulu ʻana i nā poloka papahana
Pono wau e hoʻolālā i kahi papa kuhikuhi paʻakikī no kahi hōʻike kiʻi kiko 128x64. ʻAʻole wau i makemake e hoʻouka mau i ka firmware i loko o kahi microcontroller maoli e ʻike i ke ʻano o nā pika. A no laila ua hānau ʻia ka manaʻo o Nanoyam. Hōʻike ka kiʻi ma lalo i kahi kiʻi mai kahi hōʻike OLED maoli o kekahi o nā mea ma ka papa kuhikuhi like. I kēia manawa hiki iaʻu ke hana me ia me ka ʻole o kahi hāmeʻa maoli.
ʻO Nanonyam (ma kona manaʻo hope) he mea hana maikaʻi no ka hana ʻana i nā poloka papahana no nā microcontrollers, ʻoiai aia nā hana no ka hana ʻana me nā kiʻi (hiki iā ʻoe ke hoʻohālikelike i nā hōʻike a me nā hōʻailona), me nā faila (hiki iā ʻoe ke hana i nā lāʻau, heluhelu i ka ʻikepili hōʻike), me kahi kīpē (hiki iā ʻoe ke heluhelu i nā pihi 10 i ka manawa like), me nā awa COM (eia kahi mea ʻokoʻa).
Ka hana ʻana i nā polokalamu wikiwiki
No ka laʻana, pono ʻoe e hana wikiwiki i nā faila kikokikona 100500. Pono e wehe ʻia kēlā me kēia, hoʻololi iki ʻia e like me kekahi algorithm maʻalahi, mālama ʻia a pani ʻia. Inā he haku Python ʻoe, a laila mahalo wau iā ʻoe, loaʻa iā ʻoe nā mea āpau. Akā inā he arduino paʻakikī ʻoe (a he nui nā mea o lākou), a laila e kōkua ʻo Nanonyam iā ʻoe i ka hoʻoponopono ʻana i kēia pilikia. ʻO kēia kaʻu pahuhopu lua ma Nanonyam: e hoʻohui i nā hana pono he nui e like me ka hoʻoili ʻana i nā kikokikona, ka lawe ʻana i nā screenshots a i ʻole ka hoʻohālikelike ʻana i nā kī kī i loko o ka ʻōnaehana (ʻo ia mau mea a pau, ma ke ala, aia i laila), a me nā hana ʻē aʻe he nui no ka hoʻoponopono ʻana i nā hana maʻamau. .
Ke hoʻāʻo ʻana i ka lako ma o ke awa COM
Hiki iā Nanonyam ke hana ma ke ʻano he kikowaena e hana ana e like me kāu algorithm. Hiki iā ʻoe ke kahakiʻi i kahi papa kuhikuhi liʻiliʻi e hoʻomalu i ka hāmeʻa a hōʻike i ka ʻikepili i loaʻa mai ke awa. Hiki iā ʻoe ke mālama a heluhelu i ka ʻikepili mai nā faila no ka nānā ʻana. He mea hana maʻalahi no ka debugging maʻalahi a me ka calibration o nā lako, a me ka hana ʻana i nā panela hoʻokele mea hana maʻalahi. No nā haumāna a me nā ʻepekema ʻōpio, hiki ke hoʻohana nui ʻia kēia papahana.
Aʻo papahana
Eia naʻe, e like me ka papahana Arduino holoʻokoʻa, ʻo ka pono nui o Nanonyam aia i ka maʻalahi o nā hana, interface a me ka bootloader. No laila, pono kēia papahana e hoihoi i nā polokalamu polokalamu hou a me ka poʻe i māʻona i ka pae o arduino. Ma ke ala, ʻaʻole wau i aʻo i ka arduino i ka kikoʻī, no ka mea ua hoʻohana mau wau iā WinAVR a i ʻole AVR Studio, akā hoʻomaka me ka assembler. No laila, he hewa iki ka papahana laʻana ma lalo nei, akā hana maoli.
Aloha Habr!
ʻO ka manawa kēia e kamaʻāina ai i kekahi mau hiʻohiʻona Nanonyam a kākau i kahi papahana maʻalahi. E kākau mākou ma Arduino, akā ʻaʻole ma ke ʻano maʻamau, akā ma ke ala e hiki ai iaʻu i kēia manawa (ua ʻōlelo mua wau ʻaʻole wau i noʻonoʻo maikaʻi i kēia kaiapuni). ʻO ka mea mua, e hana i kahi kiʻi kiʻi hou a koho i ka papa Mega2560.
E mālama i ka sketch i kahi faila a kope aʻe
#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"
ʻOi aku ka pololei o ka hana ʻana i kahi module kūikawā "Nanonyam no Arduino", hiki ke hoʻokomo pololei ʻia mai Arduino. I koʻu noʻonoʻo ʻana, e hana wau, akā i kēia manawa ke hōʻike wale nei au i ke ʻano o ka hana ʻana me kahi mīkini virtual. Kākau mākou i kēia code:
//Сразу после запуска рисуем текст в окне
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);//Задержка и разгрузка процессора
}
Kākau me kēia polokalamu
Kaomi mākou i ke pihi "Check" a ʻaʻohe hewa.
I kēia manawa pono ʻoe e kiʻi i kahi faila binary (firmware). E koho i ka papa kuhikuhi "Sketch >> Hoʻokuʻu aku i ka waihona binary (CTRL+ALT+S)".
E kope kēia i ʻelua faila HEX i ka waihona sketch. Lawe mākou i ka faila me ka ʻole o ka prefix "with_bootloader.mega".
Nui nā ala e kuhikuhi ai i kahi faila HEX i ka mīkini virtual Nanonyam, ua wehewehe ʻia lākou a pau
Pēlā nō, hiki iā ʻoe ke hana i nā papahana ma nā wahi ʻē aʻe, e like me AVR Studio a i ʻole WinAVR.
ʻO kēia kahi a mākou e hoʻopau ai i kā mākou kamaʻilio ʻana me Nanonyam. Pono e akaka ka manao nui.
Mahalo iā ʻoukou a pau no ko ʻoukou nānā ʻana a me ka hoʻolālā maikaʻi!
Source: www.habr.com