Pehea e hana ai i nā polokalamu no Windows ma Arduino

Pehea e hana ai i nā polokalamu no Windows ma Arduino

I kekahi lā ua loaʻa iaʻu ka manaʻo pupule e lawe mai 500 mau kuhikuhi laser ma kahi hoʻokahi. Ua lōʻihi ka manawa aʻu i hana ai. Ua lilo ia i mea kupanaha a make ʻole, akā makemake wau. ʻEono mahina aku nei ua loaʻa iaʻu kekahi manaʻo pupule. ʻO kēia manawa, ʻaʻole ia he mea kupanaha, akā ʻoi aku ka maikaʻi. Ua hoʻohana au i ka manawa nui ma ia mea. A ma kēia ʻatikala, hōʻike wau i kahi mana beta o kaʻu manaʻo pupule lua.

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

Pehea e hana ai i nā polokalamu no Windows ma Arduino

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 i hiki iiia. ^ E Ha yM. A eia nō ʻaoʻao wehewehe hana virtual. A ʻae, maʻamau loa kaʻu pūnaewele a ʻaʻole i hoʻololi ʻia no nā polokalamu kelepona.

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.

Pehea e hana ai i nā polokalamu no Windows ma Arduino

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

Pehea e hana ai i nā polokalamu no Windows ma Arduino

E mālama i ka sketch i kahi faila a kope aʻe hale waihona puke Nanonyam. Pono e hoʻokomo i nā poʻomanaʻo o nā hale waihona puke, akā ʻaʻole maopopo iaʻu pehea e kākau ai i ka hōʻuluʻulu ʻana o nā faila pākahi ma Arduino, no laila i kēia manawa e hoʻopili pololei mākou i nā hale waihona puke (a i ka manawa hoʻokahi):

#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 hiki ke kiʻi ʻia ma aneʻi. ʻO ka wehewehe kikoʻī o nā hana huli ma ka paena. Manaʻo wau ua lawa nā ʻōlelo i loko o kēia code e loaʻa ai ke kumu o ia mea. Eia hana sys_Nanonyam() hoʻokani i ke kuleana o kahi "hua'ōlelo" no ka mīkini virtual, kahi e hoʻopau ai i nā palena o nā hana virtual. Me ka ʻole o kēia hana, e pani ka polokalamu ma hope o 3 kekona o ka hana.

Kaomi mākou i ke pihi "Check" a ʻaʻohe hewa.

Pehea e hana ai i nā polokalamu no Windows ma Arduino

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

Pehea e hana ai i nā polokalamu no Windows ma Arduino

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 ma kēiaʻaoʻao. Manaʻo wau e hana ma kahi kokoke i ka faila Nanonyam.exe faila alahele, kahi e hoʻopaʻa inoa ai i ke ala piha i kā mākou faila HEX. Ma hope o laila hiki iā ʻoe ke holo Nanonyam.exe. Loaʻa iā mākou kahi puka makani me kā mākou palapala.

Pehea e hana ai i nā polokalamu no Windows ma Arduino

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. Aia nā laʻana hou aʻe ma ka pūnaewele.. Inā lawa ka poʻe makemake e hoʻohana i kēia papahana, a laila e hana hou au i nā hiʻohiʻona a hoʻomau i ka "hoʻopiha" i nā hale waihona puke virtual. ʻAe ʻia nā manaʻo paʻa no ka hoʻomohala ʻana i ka papahana a me nā hōʻike o nā hana hewa, nā ʻōpala a me nā pōpoki. Pono e kuhikuhi iā lākou i nā pilina, hōʻike ʻia ma ka pūnaewele. A hoʻokipa ʻia ke kūkākūkā ma nā ʻōlelo.

Mahalo iā ʻoukou a pau no ko ʻoukou nānā ʻana a me ka hoʻolālā maikaʻi!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka