Kazalo:
- Zaloge
- 1. korak: OTA
- Korak: Postavitev bliskovnega pomnilnika Ameba
- 3. korak: zagonski tok
- 4. korak: Primer
Video: Programiranje Arduina po zraku (OTA) - Ameba Arduino: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:03
Na trgu je veliko mikrokrmilnikov Wi-Fi, mnogi proizvajalci uživajo v programiranju svojega mikrokrmilnika Wi-Fi z uporabo Arduino IDE. Vendar pa je ena najbolj kul funkcij, ki jih ponuja mikrokrmilnik Wi-Fi, ponavadi spregledana, to je programiranje in nalaganje kode na daljavo in brezžično s funkcijo OTA (Over-The-Air).
V tem navodilu vam bom pokazal, kako nastaviti OTA na svojem mikrokrmilniku Wi-Fi z uporabo vseprisotnega Arduino IDE na mikrokrmilniku Wi-Fi Ameba Arduino!
Zaloge
Ameba Arduino x 1
1. korak: OTA
OTA (Over-The-Air) se nanaša na spletni mehanizem za nadgradnjo prek interneta.
Arduino IDE ponuja funkcijo OTA, ki sledi poteku dela na zgornji sliki.
(i) Arduino IDE po mDNS išče naprave s storitvijo Arduino IDEOTA v lokalnem omrežju.
(ii) Ker storitev mDNS deluje na Amebi, se Ameba odzove na iskanje mDNS in odpre posebna vrata TCP za povezavo.
(iii) Uporabnik razvija program v Arduino IDE. Ko končate, izberite omrežna vrata.
(iv) Kliknite naloži. Nato Arduino IDE pošlje sliko OTA Amebi prek TCP, Ameba shrani sliko na določen naslov in nastavi možnost zagona, da se naslednjič zažene s te slike.
Delovni potek je sestavljen iz treh delov: proces podobe mDNS, TCP in OTA. Podrobnosti v zvezi z mDNS so opisane v vadnici mDNS. Programiranje vtičnice TCP se uporablja pri prenosu slike in je že vključeno v OTA API.
V naslednjem razdelku bomo razpravljali o tem, kako obdelati sliko OTA, in predstavili nekaj osnovnih znanj o postavitvi bliskovnega pomnilnika Ameba in zagonskem toku.
Korak: Postavitev bliskovnega pomnilnika Ameba
Velikost bliskovnega pomnilnika Ameba RTL8195A je 2 MB, giblje se od 0x00000000 do 0x00200000. Vendar je velikost bliskovnega pomnilnika Ameba RTL8710 1 MB. Za uporabo različnih plošč predpostavljamo, da je postavitev pomnilnika flash 1 MB.
Kot je prikazano na zgornji sliki, program Ameba zaseda tri dele pomnilnika flash:
- zagonska slika:
Se pravi zagonski nalagalnik. Ko se Ameba zažene, shrani zagonsko sliko v pomnilnik in izvede inicializacijo. Poleg tega določa, kam nadaljevati po zagonskem nalagalniku. Bootloader pogleda naslov OTA in obnovitveni pin v območju sistemskih podatkov in določi, katera slika se bo nato izvedla. Na koncu zagonskega nalagalnika sliko shrani v pomnilnik in pred tem izvede njeno izvedbo.
- Privzeta slika 2:
Koda razvijalca je v tem delu, naslov se začne od 0x0000B000. Prvih 16 bajtov je glava slike, 0x0000B008 ~ 0x0000B00F vsebuje podpis, ki se uporablja za preverjanje, ali je slika veljavna. Polje za podpis ima dve veljavni vrednosti za razlikovanje nove slike od stare slike.
- OTA slika:
Podatki v tem delu so tudi koda razvijalca. Ta del pomnilnika se privzeto začne od 0x00080000 (lahko ga spremenite). Glavne razlike med sliko OTA in privzeto sliko 2 so naslov pomnilnika flash in vrednost podpisa.
Poleg kode obstaja še nekaj podatkovnih blokov:
- Sistemski podatki:
Sistemski podatkovni blok se začne od 0x00009000. Obstajata dva podatka, povezana z OTA:
1. Naslov OTA: 4 -bajtni podatki od 0x00009000. Prikaže naslov slike OTA. Če vrednost naslova OTA ni veljavna (npr. 0xFFFFFFFF), slike OTA v pomnilniku flash ni mogoče pravilno naložiti.
2. Obnovitveni pin: 4 -bajtni podatki, ki se začnejo od 0x00009008, obnovitveni pin se uporablja za določitev, katero sliko (privzeto sliko 2 ali sliko OTA), ki bo izvedena, ko sta obe sliki veljavni. Če vrednost obnovitvenega zatiča ni veljavna (npr. 0xFFFFFFFF), bo nova slika privzeto izvedena.
Sistemski podatki bodo odstranjeni, ko program naložimo v Amebo prek DAP. To pomeni, da bo naslov OTA odstranjen in Ameba bo ugotovila, da ni slike OTA.
- Podatki o kalibraciji: V tem bloku so podatki o perifernih kalibracijah. Običajno teh podatkov ne bi smeli izbrisati.
3. korak: zagonski tok
Na zgornji sliki, Razpravljamo o naslednjih scenarijih: (i) OTA se ne uporablja, za nalaganje programa uporabite DAP:
V tem primeru zagonski nalagalnik preveri podpis privzete slike 2 in naslov OTA. Ker je naslov OTA odstranjen, bo za izvedbo izbrana privzeta slika 2.
(ii) Slika OTA se prenese v Amebo, naslov OTA je nastavljen pravilno, obnovitveni pin ni nastavljen:
Ameba je prejela posodobljeno sliko prek OTA, podpis privzete slike 2 bi bil nastavljen na stari podpis.
Bootloader preveri podpis privzete slike 2 in naslov OTA. Ugotovil bo, da naslov OTA vsebuje veljavno sliko OTA. Ker obnovitveni pin ni nastavljen, izbere novo sliko (tj. Sliko OTA) za izvedbo.
(iii) slika OTA se prenese v Amebo, naslov OTA je pravilno nastavljen, obnovitveni pin je nastavljen:
Ameba je prejela posodobljeno sliko prek OTA, podpis privzete slike 2 bi bil nastavljen na stari podpis.
Bootloader preveri podpis privzete slike 2 in naslov OTA. Ugotovil bo, da naslov OTA vsebuje veljavno sliko OTA. Nato preverite vrednost obnovitvenega zatiča. Če je obnovitveni pin priključen na LOW, se bo izvedla nova slika (tj. Slika OTA). Če je obnovitveni pin priključen na HIGH, bo stara slika (tj. Privzeta slika 2) izvedena.
4. korak: Primer
Če želite uporabljati funkcijo OTA, nadgradite vdelano programsko opremo DAP na različico> 0.7 (v0.7 ni vključen). Tovarniško privzeta vdelana programska oprema DAP je različica 0.7. Sledite navodilom za nadgradnjo vdelane programske opreme DAP:
Odprite primer: "Datoteka" -> "Primeri" -> "AmebaOTA" -> "ota_basic"
V vzorčni kodi za omrežno povezavo vnesite podatke ssid in geslo.
Obstaja nekaj parametrov, povezanih z OTA:
§ MY_VERSION_NUMBER: V prvi različici moramo nastaviti naslov OTA in pin za obnovitev. Ker je tokratna nalaganje prek USB -ja prva različica, nam te vrednosti ni treba spreminjati.
§ OTA_PORT: Arduino IDE bo Amebo našel prek mDNS. Ameba bo Arduinu IDE povedal, da odpre vrata 5000 TCP, da počaka na sliko OTA.
§ RECOVERY_PIN: Konfigurirajte pin, ki se uporablja za obnovitev. Tukaj uporabljamo pin 18.
Nato uporabimo program za nalaganje USB v Amebo. Kliknite Orodja -> Vrata, preverite serijska vrata za uporabo:
Upoštevajte, da Arduino IDE uporablja ena vrata za program za nalaganje in izhodni dnevnik. Da bi se izognili situaciji, ko dnevnika ne moremo prikazati, ko uporabljamo OTA, namesto serijskega monitorja za ogled sporočila dnevnika uporabljamo druge terminale za serijska vrata (npr. Izraz Tera ali kit).
Nato kliknite naloži in pritisnite gumb za ponastavitev.
V sporočilu dnevnika:
1. Med “===== Enter Image 1 ====” in “Enter Image 2 ====” lahko najdete “Flash Image 2: Addr 0xb000”. To pomeni, da se Ameba odloči za zagon s privzete slike 2 pri 0xb000.
2. Po “Enter Image 2 ====” lahko najdete “This is version 1”. To je sporočilo dnevnika, ki ga dodamo v skico.
3. Ko se Ameba poveže z AP in dobi naslov IP »192.168.1.238«, aktivira mDNS in čaka na odjemalca.
Nato spremenimo »MY_VERSION_NUMBER« na 2.
Kliknite "Orodja" -> "Vrata", prikaže se seznam "Omrežna vrata". Poiščite "MyAmeba na 192.168.1.238 (Ameba RTL8195A)", MyAmeba je ime naprave mDNS, ki smo jo nastavili v vzorčni kodi, in "192.168.1.238" je IP Amebe.
Če ne najdete omrežnega porta Ameba, potrdite:
- ali sta vaš računalnik in Ameba v istem lokalnem omrežju?
- poskusite znova zagnati Arduino IDE.
- v serijskem monitorju preverite sporočilo dnevnika in preverite, ali je Ameba uspešno povezana z dostopno točko.
Nato kliknite naloži. Tokrat bo program naložen prek TCP. V terminalu dnevnika si lahko ogledate podatke o povezavi odjemalca.
Ko bo slika OTA uspešno prenesena, se bo Ameba znova zagnal in naslednji dnevnik se bo prikazal v terminalu dnevnika.
- Med “===== Enter Image 1 ====” in “Enter Image 2 ====” lahko vidite sporočilo dnevnika “Flash Image 2: Addr 0x80000”. To pomeni, da se Ameba odloči za zagon iz slike OTA pri 0x80000.
- Po “Enter Image 2 ====” je dnevnik “This is version 2” sporočilo, ki ga dodamo v skico.
Če želite obnoviti prejšnjo sliko, potem ko je slika OTA naložena v Amebo, povežite obnovitveni zatič, ki smo ga nastavili na skici (tj. Pin 18), na VISOKO (3,3 V) in pritisnite reset.
Pri zagonu bo nato izbrana privzeta slika 2. Upoštevajte, da prenesena slika OTA ni izbrisana, ko se obnovitveni zatič odklopi od HIGH, se bo slika OTA izvedla.
Na naslednji sliki povzemamo razvojni tok z uporabo OTA.
Priporočena:
Programiranje ATmega328 z Arduino IDE z 8MHz Crystal: 4 koraki
Programiranje ATmega328 z Arduino IDE z uporabo 8MHz Crystal: V tem Instuctableu bom opisal korak za korakom programiranje ATmega328P IC (isti mikrokrmilnik, ki je prisoten na Arudino UNO) z uporabo Arduino IDE in Arduino UNO kot programer, da naredite sebe Arduino po meri za izdelavo vaših projektov
Arduino programiranje prek mobilnega telefona -- Arduinodroid -- Arduino Ide za Android -- Utripa: 4 koraki
Arduino programiranje prek mobilnega telefona || Arduinodroid || Arduino Ide za Android || Blink: Prosim, naročite se na moj youtube kanal za več videov …… Arduino je plošča, ki jo je mogoče programirati neposredno prek USB -ja. Je zelo preprost in poceni za študentske in šolske projekte ali celo za prototip izdelkov. Mnogi izdelki najprej temeljijo na njem za
Programiranje Arduina s Sphero RVR: 4 koraki
Programiranje Arduina s Sphero RVR: Lani oktobra je izšel Sphero RVR. To je bil robot kot noben drug robot. Najprej bi ga lahko programirali z Micro: bit, Raspberry PI in Arduino. Lahko bi ga naredili tudi za več različnih funkcij. LED diode lahko spremenijo barvo
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: 5 korakov
Programiranje Arduina z uporabo drugega Arduina za prikaz drsnega besedila brez knjižnice: Sony Spresense ali Arduino Uno nista tako draga in ne zahtevata veliko energije. Če pa ima vaš projekt omejeno moč, prostor ali celo proračun, razmislite o uporabi Arduino Pro Mini. Za razliko od Arduino Pro Micro, Arduino Pro Mi
Začnite z Esp 8266 Esp-01 z Arduino IDE - Namestitev plošč Esp v Arduino Ide in programiranje Esp: 4 koraki
Začnite z Esp 8266 Esp-01 z Arduino IDE | Namestitev plošč Esp v Arduino Ide in programiranje Esp: V tem navodilu se bomo naučili, kako namestiti plošče esp8266 v Arduino IDE in kako programirati esp-01 in naložiti kodo vanj. Ker so plošče esp tako priljubljene, sem razmišljal, da bi popravil navodila za to in večina ljudi se sooča s težavo