Indray andro dia nahazo hevitra adala aho mba hifangaro
Nantsoiko hoe Nanonyam (Nanonyam) ilay tetikasa ary nanamboatra logo ho azy mihitsy aza aho (5 minitra iray manontolo aho vao nanao sary).
Ho an'ireo izay mieritreritra momba ny Arduino, dia afaka milaza isika fa Nanonyam dia virtoaly Arduino ampinga hifehy Windows.
Amin'ny teny hafa, Nanonyam dia milina virtoaly izay mampiasa ny firmware ho an'ny microcontroller AVR (ATMEGA2560 soso-kevitra) ho bytecode. Ao anatin'ity milina virtoaly ity dia misy simulator kernel AVR, fa raha tokony ho ny periferika, izay hita ao amin'ny adiresy SRAM 0x0060 hatramin'ny 0x01FF, dia misy interface tsara amin'ny fiasa virtoaly (anisan'izany ny Windows API functions). Ary eto dia zava-dehibe ny mahatakatra avy hatrany: ny kaody ho an'ny Nanonyam dia tsy tokony hanana fidirana amin'ny faritra fitadidiana voatondro, mba tsy hiantsoana tsy nahy, ohatra, ny asan'ny famafana rakitra na fandrafetana kapila. Ny fitadidiana SRAM sisa tavela manomboka amin'ny 0x0200 ka hatramin'ny 0xFFFF (lehibe kokoa noho ny amin'ny microcontroller tena izy) dia azon'ny mpampiasa amin'ny tanjona rehetra. Tokony ho marihiko avy hatrany fa misy fiarovana manokana amin'ny fanombohana tsy nahy ny firmware amin'ny microcontroller tena izy (na firmware avy amin'ny maritrano hafa): alohan'ny hanombohan'ny asa "mampidi-doza" dia mila miantso asa virtoaly sarotra manokana ianao. Misy singa fiarovana hafa ihany koa.
Mba hamoronana programa ho an'i Nanonyam dia mila mampiasa tranomboky manokana ianao izay mampihatra ny fiasa virtoaly rehetra misy ankehitriny. Ampidino ny milina virtoaly Nanonyam sy ny tranomboky
Ny Nanonyam dia maimaim-poana ho an'ny fampiasana an-trano sy ara-barotra. Ny programa Nanonyam dia omena amin'ny fototra "toy ny misy". Tsy misy kaody loharano nomena.
Amin'izao fotoana izao dia eo amin'ny sehatry ny fitsapana ny programa. Fampiasa virtoaly 200 eo ho eo no nampiharina izay ahafahanao mamorona programa tsotra ho an'ny Windows.
Mazava ho azy fa tsy ho azo atao ny mamorona zavatra sarotra amin'ny milina virtoaly toy izany, satria tsy misy afa-tsy 256 kB fahatsiarovana ho an'ny kaody. Ny angona dia azo tehirizina amin'ny rakitra misaraka, ny buffer ho an'ny ampahany grafika dia ampiharina ivelany. Ny fiasa rehetra dia notsorina ary namboarina ho an'ny maritrano 8-bit.
Inona no azonao atao any Nanonyam? Nahita olana maromaro aho.
Fitsapana sakana fandaharana
Indray mandeha aho dia nila namolavola menu sarotra ho an'ny fampisehoana sary 128x64 pixel. Tena tsy tiako ny hampiditra tsy tapaka ny firmware ao anaty microcontroller tena izy mba hijerena ny endriky ny pixel. Toy izany no nahaterahan'ny hevitra momba an'i Nanoyam. Ny sary etsy ambany dia sary avy amin'ny fampisehoana OLED tena izy amin'ny iray amin'ireo singa ao amin'io sakafo io ihany. Ankehitriny dia afaka miasa amin'izany aho tsy misy fitaovana tena izy.
Nanonyam (amin'ny endriny farany) dia fitaovana tsara amin'ny fampandehanana ny programa blocs ho an'ny microcontrollers, satria manana fiasa miasa amin'ny grafika (azonao atao ny manahaka ny fampisehoana sy ny tondro), miaraka amin'ny rakitra (azonao atao ny manao logs, mamaky angona fitsapana), miaraka amin'ny klavier (afaka mamaky bokotra 10 ianao miaraka), miaraka amin'ny seranana COM (misy singa miavaka eto).
Mamorona fandaharana haingana
Ohatra, mila manamboatra rakitra lahatsoratra 100500 haingana ianao. Ny tsirairay dia mila sokafana, ovaina kely araka ny algorithm tsotra, voatahiry ary mihidy. Raha master Python ianao dia arahabaina fa manana ny zava-drehetra ianao. Fa raha lehilahy Arduino inveterate ianao (ary maro amin'izy ireo), dia hanampy anao hamaha ity olana ity i Nanonyam. Izany indrindra no tanjoko faharoa ao amin'ny Nanonyam: manampy asa mahasoa maro toy ny fanodinana lahatsoratra, famoronana pikantsary na fakan-tsarimihetsika ao amin'ny rafitra (izay rehetra, raha ny marina, dia efa misy), ary koa ny asa maro hafa amin'ny famahana ny fahazarana. asa.
Fanandramana fitaovana amin'ny alΓ lan'ny seranan-tsambo COM
Nanonyam dia afaka miasa toy ny terminal izay miasa araka ny algorithm anao. Azonao atao ny manao sary sakafo kely hifehezana ny fitaovana ary hampiseho ny angona voaray avy amin'ny seranana. Azonao atao ny mitahiry sy mamaky angona avy amin'ny rakitra ho an'ny fanadihadiana. Fitaovana mety ho an'ny debugging tsotra sy ny calibration ny fitaovana, ary koa ny famoronana tontonana fanaraha-maso fitaovana virtoaly tsotra. Ity tetikasa ity dia mety ho tena ilaina ho an'ny mpianatra sy tanora mpahay siansa.
Fanofanana fandaharana
Na izany aza, toy ny amin'ny tetikasa Arduino iray manontolo, ny tena mahasoa an'i Nanonyam dia miankina amin'ny fahatsoran'ny asany, ny interface ary ny bootloader. Noho izany, ity tetikasa ity dia tokony hahaliana ny mpandrindra vaovao sy ireo izay afa-po amin'ny ambaratonga Arduino. Raha ny marina, izaho dia mbola tsy nianatra Arduino amin'ny antsipiriany, satria nampiasa WinAVR na AVR Studio foana aho, ary nanomboka tamin'ny assembler. Noho izany, ny programa ohatra etsy ambany dia ho diso kely, fa tena miasa.
Salama, Habr!
Fotoana izao hahafantarana ny sasany amin'ireo endri-javatra an'i Nanonyam sy hanoratana programa tsotra. Amin'ny Arduino no hanoratantsika, fa tsy amin'ny fomba mahazatra, fa amin'ny fomba azoko izao (efa nilaza aho fa tsy mbola azoko tsara ity tontolo ity). Voalohany, mamorona sketsa vaovao ary safidio ny tabilao Mega2560.
Tehirizo ao anaty rakitra ny kisary ary adika eo akaikiny
#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"
Tsara kokoa aza ny manao module manokana "Nanonyam for Arduino", izay azo apetraka mivantana avy amin'ny Arduino. Raha vao hitako izany dia hataoko izany, fa amin'izao fotoana izao dia asehoko fotsiny ny maha-zava-dehibe ny miasa amin'ny milina virtoaly. Manoratra ity code manaraka ity izahay:
//Π‘ΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡ Π² ΠΎΠΊΠ½Π΅
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);//ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΈ ΡΠ°Π·Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°
}
Sketch miaraka amin'ity programa ity
Tsindrio ny bokotra "Check" ary tsy tokony hisy lesoka.
Ankehitriny dia mila maka ny rakitra binary (firmware) ianao. Safidio ny sakafo "Sketch>> Export rakitra binary (CTRL+ALT+S)".
Amin'ity tranga ity, rakitra HEX roa no hadika amin'ny lahatahiry misy ny sketch. Ny rakitra ihany no raisinay raha tsy misy ny tovana βwith_bootloader.megaβ.
Misy fomba maro hanondroana rakitra HEX mankany amin'ny milina virtoaly Nanonyam, voalaza fa izy rehetra
Toy izany koa, afaka mamorona programa amin'ny tontolo hafa ianao, ohatra, ao amin'ny AVR Studio na WinAVR.
Eto no hamaranay ny fampahafantarana an'i Nanonyam. Tokony hazava ny hevi-dehibe.
Misaotra anareo rehetra tamin'ny fifantohana sy ny fandaharana faly!
Source: www.habr.com