Maalin maalmaha ka mid ah waxaan lahaa fikrad waalan oo aan keeno
Mashruuca waxaan u bixiyay Nanonyam (Nanonyam) oo xitaa waxaan la yimid calaamad (waxaan sawiray 5 daqiiqo).
Kuwa ku fekeraya Arduino, waxaan dhihi karnaa Nanonyam waa gaashaanka Arduino ee la taaban karo ee lagu xakameynayo Windows.
Si kale haddii loo dhigo, Nanonyam waa mishiin macmal ah oo u adeegsada firmware-ka microcontroller AVR (ATMEGA2560 ayaa lagu talinayaa) sida bytecode. Mashiinkan casriga ah dhexdiisa waxaa ku jira jileeyaha xudunta u ah AVR, laakiin halkii laga isticmaali lahaa meelaha durugsan, kuwaas oo ku yaal ciwaannada SRAM ee 0x0060 ilaa 0x01FF, waxaa jira is-dhexgal gaar ah oo loogu talagalay hawlaha farsamada (oo ay ku jiraan hawlaha Windows API). Oo halkan aad bay muhiim u tahay in isla markaaba la fahmo: koodhka Nanonyam waa in aanu wax marin ah u helin tirada xusuusta ee la cayimay, si aan si lama filaan ah loogu wicin, tusaale ahaan, shaqada tirtirka faylasha ama qaabaynta diskka. Inta kale ee xusuusta SRAM waxay u dhaxaysaa 0x0200 ilaa 0xFFFF (tani way ka badan tahay microcontroller-ka dhabta ah) waa u diyaar isticmaaluhu ujeedo kasta. Waxaan isla markiiba ogaaday in ay jirto ilaalin gaar ah oo ka dhan ah soo saarista shilalka ah ee firmware-ka dhabta ah ee microcontroller (ama firmware ka qaab dhismeed kale): ka hor inta aanad hawlgelin hawlaha "khatarta ah", waxaad u baahan tahay inaad wacdo shaqo farsamo oo khaas ah. Waxa jira astaamo kale oo ammaan sidoo kale.
Si aad u abuurto barnaamijyo loogu talagalay Nanonyam, waxaad u baahan tahay inaad isticmaasho maktabado gaar ah oo hirgeliya dhammaan hawlaha farsamada ee hadda jira. U soo deji mashiinka farsamada ee Nanonyam iyo maktabadaha
Nanonyam waa u bilaash isticmaalka guriga iyo ganacsiga. Barnaamijka Nanonyam waxa lagu bixiyaa "sida" ku salaysan. Koodhka isha lama bixin
Barnaamijku hadda waxa uu ku jiraa marxaladda tijaabada. Waxa la hirgaliyay ilaa 200 oo hawlo shaqo ah oo kuu ogolaanaya inaad u abuurto barnaamijyo fudud Windows.
Sida iska cad, abuurista shay adag oo ku jira mashiinka farsamada ma shaqeyn doono, maadaama xusuusta koodhka ay tahay 256 kB oo keliya. Xogta waxaa lagu kaydin karaa faylal kala duwan, kaydiyaha qaybta garaafyada waxaa laga hirgeliyay dibadda. Dhammaan hawlaha waa la fududeeyay waxaana loo habeeyey qaab dhismeedka 8-bit.
Maxaad ku samayn kartaa Nanonyam? Waxaan la imid dhowr dhibaato.
Horumarinta blocks barnaamijka
Waxaan mar u baahday inaan naqshadeeyo menu kakan oo ah bandhig garaaf ah oo 128x64 ah. Runtii ma aanan rabin in aan si joogto ah ugu shubo firmware-ka ku jira microcontroller-ka dhabta ah si aan u arko sida pixels-ku u egyihiin. Oo sidaas daraaddeed fikradda Nanonyam ayaa ku dhashay. Sawirka hoose wuxuu muujinayaa sawir laga soo qaaday bandhiga OLED ee dhabta ah ee mid ka mid ah shayada ku yaal isla menu. Hadda waxaan ku shaqeyn karaa iyada oo aan lahayn qalab dhab ah.
Nanonyam (fikirkeeda kama dambaysta ah) waa qalab wanaagsan oo loogu talagalay ka shaqaynta blocks barnaamijka ee microcontrollers, maadaama ay jiraan hawlo lagu shaqeynayo garaafyada (waxaad ku ekaan kartaa bandhigyada iyo tilmaamayaasha), faylal (waxaad samayn kartaa logs, akhri xogta tijaabada), kiiboodhka (waxaad akhrin kartaa ilaa 10 badhan isku mar), oo leh dekedaha COM (halkan waa shay gaar ah).
Abuuritaanka Barnaamijyo Degdeg ah
Tusaale ahaan, waxaad u baahan tahay inaad si dhakhso leh uga baaraandegto 100500 faylasha qoraalka ah. Mid kastaa wuxuu u baahan yahay in la furo, wax yar wax laga beddelo iyadoo la raacayo qaar ka mid ah algorithm fudud, la keydiyay oo la xiray. Haddii aad tahay Master Python, markaa waan kugu hambalyeynayaa, wax walba waad haysaa. Laakiin haddii aad tahay arduino adag (oo ay jiraan qaar badan oo iyaga ka mid ah), markaa Nanonyam ayaa kaa caawin doona xallinta dhibaatadan. Kani waa yoolka labaad ee Nanonyam: in aan ku daro hawlo badan oo faa'iido leh sida habaynta qoraalka, qaadashada sawirada ama jilitaanka furayaasha furaha ee nidaamka (dhammaantood, habka, ayaa horayba u jiray), iyo sidoo kale hawlo kale oo badan oo lagu xalliyo hawlaha caadiga ah. .
Ku tijaabi qalabka iyada oo loo marayo dekedda COM
Nanonyam wuxuu u dhaqmi karaa sidii terminal u shaqeeya si waafaqsan algorithm kaaga. Waxaad sawiri kartaa menu yar si aad u xakamayso qalabka oo aad u muujiso xogta laga helay dekedda. Waxaad kaydin kartaa oo akhrin kartaa xogta faylasha si aad u baarto. Qalab wax ku ool ah oo loogu talagalay cilladaha fudud iyo hagaajinta qalabka, iyo sidoo kale abuurista qalab fudud oo kantaroolka qalabka. Ardayda iyo saynisyahannada da'da yar, mashruucani wuxuu noqon karaa mid faa'iido leh.
Tababarka barnaamijka
Si kastaba ha ahaatee, sida dhammaan mashruuca Arduino, faa'iidada ugu weyn ee Nanonyam waxay ku jirtaa fududaynta hawlaha, interface iyo bootloader. Sidaa darteed, mashruucani waa inuu noqdaa mid ay xiisaynayaan barnaamijyada cusub iyo kuwa ku qanacsan heerka arduino. Jid ahaan, aniga naftayda weli si faahfaahsan uma baranin arduino, sababtoo ah had iyo jeer waxaan isticmaali jiray WinAVR ama AVR Studio, laakiin waxaan ku bilaabay isku-duwaha. Sidaa darteed, barnaamijka tusaalaha hoose wuxuu noqon doonaa wax yar oo khaldan, laakiin aad u shaqeynaya.
Hello Habr!
Waa markii aad baran lahayd qaar ka mid ah sifooyinka Nanonyam oo aad qorto barnaamij fudud. Waxaan ku qori doonaa Arduino, laakiin ma aha sida caadiga ah, laakiin sida aan hadda awoodo (waxaan horay u sheegay in aanan weli si fiican u ogaan deegaankan). Marka hore, samee sawir-gacmeed cusub oo dooro guddiga Mega2560.
Ku kaydi sawir-gacmeedka fayl oo koobi ku xiga
#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"
Xitaa aad ayey u saxan tahay in la sameeyo cutub gaar ah "Nanonyam for Arduino", kaas oo si toos ah looga rakiban karo Arduino. Isla markii aan ogaado, waan samayn doonaa, laakiin hadda waxaan kaliya muujinayaa nuxurka ku shaqeynta mashiinka farsamada. Waxaan qoreynaa koodka soo socda:
//Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡ Π² ΠΎΠΊΠ½Π΅
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);//ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΈ ΡΠ°Π·Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
}
Ku sawir barnaamijkan
Waxaan riixnaa badhanka "Check" mana aha inay jiraan wax khalad ah.
Hadda waxaad u baahan tahay inaad hesho faylka binary (firmware). Dooro liiska"Sawir >> Dhoofinta faylka binary (CTRL+ALT+S)Β«.
Tani waxay koobi doontaa laba faylal HEX galka sawir-gacmeedka. Waxaan qaadanaa oo kaliya feylka bilaa horgalaha "with_bootloader.mega".
Waxaa jira dhowr siyaabood oo lagu cayimi karo faylka HEX mashiinka farsamada ee Nanonyam, dhammaantood waa la sharraxay
Sidoo kale, waxaad ku abuuri kartaa barnaamijyo deegaan kale, sida AVR Studio ama WinAVR.
Tani waa halka aan ku dhammeyno isbarashadayada Nanonyam. Fikradda ugu weyn waa inay noqotaa mid cad.
Waad ku mahadsan tahay dhammaantiin dareenkaaga iyo barnaamijka wanaagsan!
Source: www.habr.com