Sida loogu sameeyo barnaamijyada Windows ee Arduino

Sida loogu sameeyo barnaamijyada Windows ee Arduino

Maalin maalmaha ka mid ah waxaan lahaa fikrad waalan oo aan keeno 500 oo tilmaame laser ah oo hal meel ah. Waqti badan ayaan ku qaatay waana sameeyay. Waxay noqotay mid cajiib ah oo aan faa'iido lahayn, laakiin waan ka helay. Lix bilood ka hor waxaan lahaa fikrad kale oo waalan. Markan, haba yaraatee ma aha mid cajiib ah, laakiin aad uga faa'iido badan. Sidoo kale waqti badan ayaan ku qaatay. Maqaalkan, waxaan ku soo bandhigayaa nooca beta ee fikradayda waalida ah ee labaad.

Mashruuca waxaan u bixiyay Nanonyam (Nanonyam) oo xitaa waxaan la yimid calaamad (waxaan sawiray 5 daqiiqo).

Sida loogu sameeyo barnaamijyada Windows ee Arduino

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 Waxaad markaa awood. Iyo halkan bogga sharaxaadda shaqada dalwaddii. Oo haa, goobtaydu waa mid aad u asal ah oo aan ku habboonayn aaladaha mobilada.

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.

Sida loogu sameeyo barnaamijyada Windows ee Arduino

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.

Sida loogu sameeyo barnaamijyada Windows ee Arduino

Ku kaydi sawir-gacmeedka fayl oo koobi ku xiga Maktabadda Nanonyam. Way saxnaan lahayd in lagu daro madaxyada maktabadaha, laakiin ma aqaano sida loo qoro isku dubaridka faylalka gaarka ah ee Arduino, markaa hadda waxaan si toos ah ugu dari doonaa maktabadaha (iyo dhammaan hal mar):

#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 waxaa lagala soo bixi karaa halkan. Sharaxaad faahfaahsan oo ku saabsan shaqooyinka ka raadi goobta. Waxaan rajeynayaa in faallooyinka ku jira koodhkan ay ku filan yihiin in la helo nuxurka. Halkan ka shaqee sys_Nanonyam () wuxuu u ciyaaraa doorka "password" ee mashiinka farsamada, kaas oo ka saaraya xannibaadaha shaqooyinka farsamada. Hawshan la'aanteed, barnaamijku wuu xidhmi doonaa 3 ilbiriqsi ka dib marka la shaqeeyo.

Waxaan riixnaa badhanka "Check" mana aha inay jiraan wax khalad ah.

Sida loogu sameeyo barnaamijyada Windows ee Arduino

Hadda waxaad u baahan tahay inaad hesho faylka binary (firmware). Dooro liiska"Sawir >> Dhoofinta faylka binary (CTRL+ALT+S)Β«.

Sida loogu sameeyo barnaamijyada Windows ee Arduino

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 on this page. Waxaan soo jeedinayaa in la abuuro meel ku xigta faylka Nanonyam.exe faylka waddo, kaas oo lagu diiwaangelinayo jidka buuxa ee faylkayaga HEX. Taas ka dib waad ordi kartaa Nanonyam.exe. Waxaan helnaa daaqad ay ku qoran tahay qoraalkayaga.

Sida loogu sameeyo barnaamijyada Windows ee Arduino

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. Tusaalooyin badan ayaa ku yaal mareegaha.. Haddii ay jiraan dad ku filan oo doonaya inay isticmaalaan mashruucan, markaa waxaan samayn doonaa tusaalooyin badan oo aan sii wadi doono "buuxinta" maktabadaha shaqada farsamada. Fikradaha la taaban karo ee horumarinta mashruuca iyo warbixinnada cilladaha, dhiqlaha iyo dhiqlaha waa la aqbalayaa. Waxaa lagu talinayaa in lagu hagaajiyo xiriirada, lagu tilmaamay goobta. doodana waa lagu soo dhawaynayaa faallooyinka.

Waad ku mahadsan tahay dhammaantiin dareenkaaga iyo barnaamijka wanaagsan!

Source: www.habr.com

Add a comment