Përmbajtje:
Video: Programimi i Arduino mbi Ajrin (OTA) - Ameba Arduino: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:15
Ka shumë mikrokontrollues Wi-Fi atje në treg, shumë krijues kënaqen duke programuar mikrokontrolluesin e tyre Wi-Fi duke përdorur Arduino IDE. Sidoqoftë, një nga veçoritë më interesante që duhet të ofrojë një mikrokontrollues Wi-Fi ka tendencë të anashkalohet, që është programimi dhe ngarkimi i kodit tuaj nga distanca dhe pa tel duke përdorur funksionin OTA (Over-The-Air).
Në këtë udhëzues, unë do t'ju tregoj se si të vendosni OTA në mikrokontrolluesin tuaj Wi-Fi duke përdorur Arduino IDE të kudogjendur në mikrokontrolluesin Ameba Arduino Wi-Fi!
Furnizimet
Ameba Arduino x 1
Hapi 1: OTA
OTA (Over-The-Air) i referohet mekanizmit të azhurnimit në internet përmes Internetit.
Arduino IDE ofron funksionin OTA, i cili ndjek rrjedhën e punës në figurën e mësipërme.
(i) Arduino IDE kërkon përmes mDNS për pajisje me shërbimin Arduino IDEOTA në rrjetin lokal.
(ii) Meqenëse shërbimi mDNS po funksionon në Ameba, Ameba i përgjigjet kërkimit të mDNS dhe hap portën specifike TCP për lidhje.
(iii) Përdoruesi zhvillon programin në Arduino IDE. Kur të përfundoni, zgjidhni portën e rrjetit.
(iv) Klikoni ngarkimin. Pastaj Arduino IDE dërgon imazhin OTA tek Ameba përmes TCP, Ameba e ruan imazhin në adresë specifike dhe vendos opsionin e nisjes për të nisur nga ky imazh herën tjetër.
Rrjedha e punës përbëhet nga tre pjesë: procesi i imazhit mDNS, TCP dhe OTA. Detajet që lidhen me mDNS përshkruhen në tutorialin e mDNS. Programimi i foleve TCP përdoret në transferimin e imazhit dhe tashmë ofrohet në OTA API.
Në pjesën tjetër, ne do të diskutojmë se si të përpunojmë imazhin OTA dhe do të prezantojmë disa njohuri bazë mbi paraqitjen e kujtesës flash Ameba dhe rrjedhën e nisjes.
Hapi 2: Paraqitja e kujtesës Ameba Flash
Madhësia e kujtesës flash të Ameba RTL8195A është 2MB, varion nga 0x00000000 në 0x00200000. Sidoqoftë, madhësia e kujtesës flash të Ameba RTL8710 është 1MB. Për t'iu përshtatur përdorimit të tabelave të ndryshme, supozojmë se faqosja e kujtesës flash është 1MB.
Siç tregohet në figurën e mësipërme, programi Ameba zë tre pjesë të kujtesës flash:
- Imazhi i nisjes
Kjo është, bootloader. Kur Ameba fillon, vendos imazhin e nisjes në memorje dhe kryen fillimin. Për më tepër, ajo përcakton se ku të vazhdohet pas bootloader. Bootloader shikon adresën OTA dhe pinin e rimëkëmbjes në zonën e të dhënave të sistemit dhe përcakton se cili imazh do të ekzekutohet më pas. Në fund të ngarkuesit, ai vendos imazhin në kujtesë dhe vazhdon ta ekzekutojë atë.
- Imazhi i paracaktuar 2 :
Kodi i zhvilluesit vendoset në këtë pjesë, adresa fillon nga 0x0000B000. 16 bajtët e parë janë titulli i figurës, 0x0000B008 ~ 0x0000B00F përmban Nënshkrimin, i cili përdoret për të verifikuar nëse imazhi është i vlefshëm. Fusha e nënshkrimit ka dy vlera të vlefshme për të dalluar imazhin e ri nga imazhi i vjetër.
- Imazhi OTA
Të dhënat në këtë pjesë janë gjithashtu kodi i zhvilluesit. Si parazgjedhje, kjo pjesë e kujtesës fillon nga 0x00080000 (mund të ndryshohet). Dallimet kryesore midis imazhit OTA dhe Imazhit të paracaktuar 2 janë adresa e kujtesës flash dhe vlera e Nënshkrimit.
Përveç kodit, ka disa blloqe të të dhënave:
- Të dhënat e sistemit
Blloku i të dhënave të sistemit fillon nga 0x00009000. Ekzistojnë dy të dhëna të lidhura me OTA:
1. Adresa OTA data 4 bajt të dhëna duke filluar nga 0x00009000. Ai tregon adresën e Imazhit OTA. Nëse vlera e adresës OTA është e pavlefshme (d.m.th., 0xFFFFFFF), imazhi OTA në kujtesën flash nuk mund të ngarkohet saktë.
2. Rimëkëmbja Pin : 4 bajt të dhëna duke filluar nga 0x00009008, Pika e rimëkëmbjes përdoret për të përcaktuar se cila imazh (Imazhi i paracaktuar 2 ose Imazhi OTA) do të ekzekutohet kur të dy imazhet janë të vlefshme. Nëse vlera e kunjit të rimëkëmbjes është e pavlefshme (d.m.th., 0xFFFFFFF), imazhi i ri do të ekzekutohet si parazgjedhje.
Të dhënat e sistemit do të hiqen kur ngarkojmë programin në Ameba përmes DAP. Kjo do të thotë, adresa OTA do të hiqet dhe Ameba do të përcaktojë që nuk ka imazh OTA.
- Të dhënat e kalibrimit data Të dhënat e kalibrimit periferik vendosen në këtë bllok. Normalisht këto të dhëna nuk duhet të fshihen.
Hapi 3: Boot Flow
Nga imazhi i mësipërm, Ne diskutojmë skenarët e mëposhtëm: (i) OTA nuk përdoret, përdorni DAP për të ngarkuar programin:
Në këtë situatë, bootloader kontrollon nënshkrimin e imazhit të paracaktuar 2 dhe adresën OTA. Meqenëse adresa OTA është hequr, imazhi i paracaktuar 2 do të zgjidhet për t'u ekzekutuar.
(ii) Imazhi OTA transferohet në Ameba, adresa OTA është vendosur si duhet, kunja e rimëkëmbjes nuk është vendosur
Ameba ka marrë imazh të azhurnuar përmes OTA, nënshkrimi i imazhit të paracaktuar 2 do të vendoset në nënshkrimin e vjetër.
Bootloader kontrollon nënshkrimin e imazhit të paracaktuar 2 dhe adresën OTA. Do të zbulojë se adresa OTA përmban një imazh të vlefshëm OTA. Meqenëse kunja e rimëkëmbjes nuk është vendosur, ajo zgjedh imazhin e ri (p.sh., imazhin OTA) që do të ekzekutohet.
(iii) Imazhi OTA transferohet në Ameba, adresa OTA është vendosur si duhet, kunja e rimëkëmbjes është vendosur
Ameba ka marrë imazh të azhurnuar përmes OTA, nënshkrimi i imazhit të paracaktuar 2 do të vendoset në nënshkrimin e vjetër.
Bootloader kontrollon nënshkrimin e imazhit të paracaktuar 2 dhe adresën OTA. Do të zbulojë se adresa OTA përmban një imazh të vlefshëm OTA. Pastaj kontrolloni vlerën e pinit të rimëkëmbjes. Nëse kunja e rimëkëmbjes është e lidhur me LOW, imazhi i ri (p.sh., imazhi OTA) do të ekzekutohet. Nëse kunja e rimëkëmbjes është e lidhur me HIGH, imazhi i vjetër (p.sh., imazhi i paracaktuar 2) do të ekzekutohet.
Hapi 4: Shembull
Për të përdorur funksionin OTA, azhurnoni firmware DAP në versionin> 0.7 (v0.7 nuk përfshihet). Firmware i paracaktuar i fabrikës DAP është versioni 0.7. Ndiqni udhëzimet për të azhurnuar firmware DAP:
Hap shembullin: "Skedari" -> "Shembuj" -> "AmebaOTA" -> "ota_basic"
Plotësoni informacionin ssid dhe fjalëkalimin në kodin shembull për lidhjen me rrjetin.
Ka disa parametra që lidhen me OTA:
§ MY_VERSION_NUMBER : Në versionin e parë, ne duhet të vendosim adresën OTA dhe pinin e rimëkëmbjes. Meqenëse këtë herë që ngarkojmë përmes USB është versioni i parë, nuk kemi nevojë ta ndryshojmë këtë vlerë.
§ OTA_PORT : Arduino IDE do të gjejë Ameba përmes mDNS. Ameba do t'i tregojë Arduino IDE se hap portën TCP 5000 për të pritur për imazhin OTA.
§ RECOVERY_PIN : Konfiguroni kunjin e përdorur për rikuperim. Ne përdorim pinin 18 këtu.
Pastaj ne përdorim programin e ngarkimit USB në Ameba. Klikoni Veglat -> Portet, kontrolloni portën serike për t'u përdorur
Ju lutemi vini re se Arduino IDE përdor një port për ngarkimin e programit dhe outputlog. Për të shmangur situatën që regjistri nuk mund të dalë kur përdorim OTA, ne përdorim terminalin tjetër të portit serik (p.sh. termi Tera ose stuko) në vend të monitorit serik për të parë mesazhin e regjistrit.
Pastaj klikoni ngarkimin dhe shtypni butonin e rivendosjes.
Në mesazhin e regjistrit:
1. Mes “===== Fut Imazhin 1 ====” dhe “Fut Imazhin 2 ====”, mund të gjesh “Flash Image 2: Addr 0xb000”. Kjo do të thotë që Ameba vendos të fillojë nga Imazhi i Parazgjedhur 2 në 0xb000.
2. Pas "Enter Image 2 ====", mund të gjeni "This is version 1". Ky është mesazhi i regjistrit që shtojmë në skicë.
3. Pasi Ameba është e lidhur me AP dhe merr adresën IP "192.168.1.238", aktivizon mDNS dhe pret klientin.
Tjetra, ne modifikojmë "MY_VERSION_NUMBER" në 2.
Klikoni "Tools" -> "Port", mund të shihni një listë të "Porteve të Rrjetit". Gjeni "MyAmeba në 192.168.1.238 (Ameba RTL8195A)", MyAmeba është emri i pajisjes mDNS që kemi vendosur në kodin mostër, dhe "192.168.1.238" është IP e Ameba.
Nëse nuk mund të gjeni portin e rrjetit të Ameba, ju lutemi konfirmoni:
- nëse kompjuteri juaj dhe Ameba janë në të njëjtin rrjet lokal?
- përpiquni të rinisni Arduino IDE.
- kontrolloni mesazhin e regjistrit në Serial Monitor për të parë nëse Ameba është e lidhur me AP me sukses.
Pastaj klikoni ngarkimin. Këtë herë programi do të ngarkohet përmes TCP. Në terminalin e regjistrit, mund të shihni informacionin e lidhjes së klientit.
Kur imazhi OTA shkarkohet me sukses, Ameba do të rindizet dhe regjistri i mëposhtëm do të shfaqet në terminalin e regjistrit.
- Midis "===== Fut Imazhin 1 ====" dhe "Fut Imazhin 2 ====", mund të shihni një mesazh log "Flash Image 2: Addr 0x80000". Kjo do të thotë që Ameba vendos të fillojë nga OTA Image në 0x80000.
- Pas "Fut Imazhin 2 ====", regjistri "Ky është versioni 2" është mesazhi që shtojmë në skicë.
Për tu rikuperuar në imazhin e mëparshëm pasi imazhi OTA është shkarkuar në Ameba, ju lutemi lidhni kunjin e rimëkëmbjes që vendosëm në skicë (d.m.th., pin 18) në HIGH (3.3V) dhe shtypni reset.
Pastaj imazhi i paracaktuar 2 do të zgjidhet kur fillon. Vini re se imazhi i shkarkuar OTA nuk fshihet, pasi kunja e rimëkëmbjes të shkëputet nga HIGH, imazhi OTA do të ekzekutohet.
Ne përmbledhim rrjedhën e zhvillimit duke përdorur OTA në figurën e mëposhtme.
Recommended:
Kabllo programimi DIY duke përdorur Arduino Uno - Baofeng UV -9R Plus: 6 hapa (me fotografi)
Kabllo programimi DIY duke përdorur Arduino Uno-Baofeng UV-9R Plus: Hej të gjithëve, ky është një udhëzues i thjeshtë se si ta shndërroni kabllon tuaj Baofeng UV-9R (ose plus) të Kufës / veshit në një kabllo programimi duke përdorur një Ardunio UNO si USB Konvertues serik. [Mospranimi] Unë nuk marr asnjë përgjegjësi për ndonjë dëm të shkaktuar
Programimi Arduino përmes celularit -- Arduinodroid -- Arduino Ide për Android -- Blink: 4 hapa
Programimi Arduino përmes celularit || Arduinodroid || Arduino Ide për Android || Blink: Ju lutemi regjistrohuni në kanalin tim në youtube për më shumë video …… Arduino është bord, i cili mund të programohet direkt përmes USB. Veryshtë shumë e thjeshtë dhe e lirë për projektet e kolegjit dhe shkollës apo edhe në prototipin e produkteve. Shumë prej produkteve së pari ndërtohen mbi të për
Programimi i një Arduino duke përdorur një Arduino tjetër për të shfaqur një tekst rrotullues pa bibliotekë: 5 hapa
Programimi i një Arduino Duke përdorur një Arduino tjetër për të shfaqur një tekst rrotullues pa bibliotekë: Sony Spresense ose Arduino Uno nuk janë aq të shtrenjta dhe nuk kërkojnë shumë energji. Sidoqoftë, nëse projekti juaj ka kufizime në fuqi, hapësirë apo edhe buxhet, mund të dëshironi të merrni parasysh përdorimin e Arduino Pro Mini. Ndryshe nga Arduino Pro Micro, Arduino Pro Mi
Fillimi Me Esp 8266 Esp-01 Me Arduino IDE - Instalimi i bordeve të Esp në Arduino Ide dhe Programimi i Esp: 4 hapa
Fillimi Me Esp 8266 Esp-01 Me Arduino IDE | Instalimi i bordeve Esp në Arduino Ide dhe Programimi Esp: Në këtë udhëzues do të mësojmë se si të instalojmë bordet esp8266 në Arduino IDE dhe si të programojmë esp-01 dhe të ngarkojmë kodin në të. Meqenëse bordet e esp janë kaq të njohura, kështu që mendova të drejtoja një instruktor për ky dhe shumica e njerëzve përballen me probleme
Arduino më e lirë -- Arduino më e vogël -- Arduino Pro Mini -- Programimi -- Arduino Neno: 6 hapa (me fotografi)
Arduino më e lirë || Arduino më e vogël || Arduino Pro Mini || Programimi || Arduino Neno: …………………………. Ju lutemi SUBSCRIBE në kanalin tim në YouTube për më shumë video ……. Ky projekt ka të bëjë me mënyrën e ndërlidhjes me një arduino më të vogël dhe më të lirë ndonjëherë. Arduino më e vogël dhe më e lirë është arduino pro mini. Similarshtë e ngjashme me arduino