Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: OTA
- Hakbang 2: Layout ng Memory ng Ameba Flash
- Hakbang 3: Daloy ng Boot
- Hakbang 4: Halimbawa
Video: Programming Arduino Over the Air (OTA) - Ameba Arduino: 4 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Mayroong maraming Wi-Fi microcontroller doon sa merkado, maraming gumagawa ang nasisiyahan sa pag-program ng kanilang Wi-Fi microcontroller gamit ang Arduino IDE. Gayunpaman, ang isa sa mga pinaka-cool na tampok na inaalok ng isang Wi-Fi microcontroller ay may posibilidad na hindi pansinin, iyon ang pag-program at pag-upload ng iyong code mula sa malayo at wireless gamit ang pagpapaandar ng OTA (Over-The-Air).
Sa Instructable na ito, ipapakita ko sa iyo kung paano mag-set up ng OTA sa iyong Wi-Fi microcontroller gamit ang lahat ng pook na Arduino IDE sa Ameba Arduino Wi-Fi microcontroller!
Mga gamit
Ameba Arduino x 1
Hakbang 1: OTA
Ang OTA (Over-The-Air) ay tumutukoy sa online na mekanismo ng pag-upgrade sa pamamagitan ng Internet.
Nag-aalok ang Arduino IDE ng tampok na OTA, na sumusunod sa daloy ng trabaho sa figure sa itaas.
(i) Ang Arduino IDE ay naghahanap sa pamamagitan ng mDNS para sa mga aparato na may serbisyo ng Arduino IDEOTA sa lokal na network.
(ii) Dahil ang serbisyo ng mDNS ay tumatakbo sa Ameba, tumutugon si Ameba sa paghahanap ng mDNS at binubuksan ang tukoy na port ng TCP para sa koneksyon.
(iii) Gumagawa ang gumagamit ng programa sa Arduino IDE. Kapag nakumpleto, pumili ng port ng network.
(iv) Mag-click sa upload. Pagkatapos ang Arduino IDE ay nagpapadala ng imahe ng OTA sa Ameba sa pamamagitan ng TCP, nai-save ng Ameba ang imahe sa tukoy na address at nagtatakda ng pagpipilian ng boot upang mag-boot mula sa imaheng ito sa susunod.
Ang daloy ng trabaho ay binubuo ng tatlong bahagi: proseso ng imahe ng mDNS, TCP at OTA. Ang mga detalyeng nauugnay sa mDNS ay inilarawan sa mDNS tutorial. Ginagamit ang TCP socket programming sa paglilipat ng imahe at naibigay na sa OTA API.
Sa susunod na seksyon, tatalakayin namin kung paano iproseso ang imahe ng OTA, at ipakilala ang ilang pangunahing kaalaman sa layout ng memorya ng flash ng Ameba at daloy ng boot.
Hakbang 2: Layout ng Memory ng Ameba Flash
Ang laki ng flash memory ng Ameba RTL8195A ay 2MB, mula sa 0x00000000 hanggang 0x00200000. Gayunpaman, ang laki ng flash memory ng Ameba RTL8710 ay 1MB. Upang magkasya ang paggamit ng iba't ibang mga board, ipinapalagay namin na ang flash memory layout ay 1MB.
Tulad ng ipinakita sa pigura sa itaas, ang programa ng Ameba ay sumasakop sa tatlong bahagi ng memorya ng flash:
- Imahe ng Boot :
Iyon ay, ang bootloader. Kapag nag-boot ang Ameba, inilalagay nito ang imahe ng boot sa memorya at nagsasagawa ng pagsisimula. Bukod dito, tinutukoy nito kung saan magpapatuloy pagkatapos ng bootloader. Tumitingin ang Bootloader sa OTA address at pag-recover pin sa lugar ng data ng system at tinutukoy kung aling imahe ang naisakatuparan pagkatapos. Sa pagtatapos ng bootloader, inilalagay nito ang imahe sa memorya at nagtagumpay upang maisagawa ito.
- Default na Larawan 2 :
Ang developer code ay inilalagay sa bahaging ito, ang address ay nagsisimula sa 0x0000B000. Ang unang 16 byte ay ang header ng imahe, 0x0000B008 ~ 0x0000B00F sumasaklaw sa Lagda, na ginagamit upang mapatunayan kung ang imahe ay wasto. Ang patlang ng lagda ay may dalawang wastong halaga upang makilala ang bagong imahe mula sa lumang imahe.
- Larawan ng OTA :
Ang data sa bahaging ito ay code ng developer din. Bilang default, ang bahaging ito ng memorya ay nagsisimula sa 0x00080000 (maaaring mabago). Ang pangunahing pagkakaiba sa pagitan ng OTA na imahe at Default na Imahe 2 ay ang flash memory address at halaga ng Lagda.
Bukod sa code, maraming mga bloke ng data:
- Data ng System :
Ang bloke ng data ng system ay nagsisimula sa 0x00009000. Mayroong dalawang data na nauugnay sa OTA:
1. OTA address : 4 bytes data na nagsisimula sa 0x00009000. Sinasabi nito ang address ng OTA Image. Kung ang halaga ng address ng OTA ay hindi wasto (ibig sabihin, 0xFFFFFFFF), ang imahe ng OTA sa flash memory ay hindi maaaring mai-load nang tama.
2. Recovery Pin : 4 bytes data na nagsisimula sa 0x00009008, Ginagamit ang recovery pin upang matukoy kung aling imahe (default Image 2 o OTA Image) ang naisasagawa kapag ang parehong imahe ay wasto. Kung ang halaga ng pag-recover pin ay hindi wasto (ibig sabihin, 0xFFFFFFFF), ang bagong imahe ay papatayin bilang default.
Aalisin ang data ng system kapag nag-upload kami ng programa sa Ameba sa pamamagitan ng DAP. Iyon ay, ang address ng OTA ay aalisin at matutukoy ng Ameba na walang imaheng OTA.
- Data ng Pagkakalibrate : Ang data ng pagkakalibreng peripheral ay inilalagay sa bloke na ito. Karaniwan ang data na ito ay hindi dapat tanggalin.
Hakbang 3: Daloy ng Boot
Mula sa imahe sa itaas, Tinalakay namin ang mga sumusunod na sitwasyon: (i) Hindi ginagamit ang OTA, gamitin ang DAP upang mag-upload ng programa:
Sa sitwasyong ito, suriin ng bootloader ang lagda ng default na imahe 2 at OTA address. Dahil ang address ng OTA ay tinanggal, ang default na imahe 2 ay mapipili upang maipatupad.
(ii) Ang imahe ng OTA ay inililipat sa Ameba, ang OTA address ay itinakda nang tama, ang setting ng pag-recover ay hindi nakatakda :
Nakatanggap si Ameba ng na-update na imahe sa pamamagitan ng OTA, ang lagda ng default na imahe 2 ay maitatakda sa lumang pirma.
Sinusuri ng Bootloader ang lagda ng default na imahe 2 at OTA address. Mahahanap nito ang address ng OTA na naglalaman ng wastong imahe ng OTA. Dahil hindi nakatakda ang recovery pin, pipiliin nito ang bagong imahe (ibig sabihin, imahe ng OTA) na naisasagawa.
(iii) Ang imahe ng OTA ay inilipat sa Ameba, ang OTA address ay itinakda nang tama, ang recovery pin ay nakatakda :
Nakatanggap si Ameba ng na-update na imahe sa pamamagitan ng OTA, ang lagda ng default na imahe 2 ay maitatakda sa lumang pirma.
Sinusuri ng Bootloader ang lagda ng default na imahe 2 at OTA address. Mahahanap nito ang address ng OTA na naglalaman ng wastong imahe ng OTA. Pagkatapos suriin ang halaga ng pag-recover ng pin. Kung ang recovery pin ay konektado sa LOW, ang bagong imahe (ibig sabihin, OTA na imahe) ay papatayin. Kung ang recovery pin ay konektado sa TAAS, ang lumang imahe (ibig sabihin, default na imahe 2) ay papatayin.
Hakbang 4: Halimbawa
Upang magamit ang tampok na OTA, mangyaring i-upgrade ang DAP firmware sa bersyon> 0.7 (hindi kasama ang v0.7). Ang default na firmware ng firmware ng DAP ay ang bersyon 0.7. Mangyaring sundin ang tagubilin upang i-upgrade ang DAP firmware:
Buksan ang halimbawa: "File" -> "Mga Halimbawa" -> "AmebaOTA" -> "ota_basic"
Punan ang impormasyon ng ssid at password sa sample code para sa koneksyon sa network.
Mayroong ilang mga parameter na nauugnay sa OTA:
§ MY_VERSION_NUMBER : Sa unang bersyon, kailangan naming itakda ang OTA address at pag-recover pin. Dahil sa oras na ito na mag-upload kami sa pamamagitan ng USB ay ang unang bersyon, hindi namin kailangang baguhin ang halagang ito.
§ OTA_PORT : Makikita ng Arduino IDE si Ameba sa pamamagitan ng mDNS. Sasabihin ni Ameba sa Arduino IDE na binubuksan nito ang TCP port 5000 upang maghintay para sa imahe ng OTA.
§ RECOVERY_PIN : I-configure ang ginamit na pin para sa paggaling. Gumagamit kami ng pin 18 dito.
Pagkatapos ay gumagamit kami ng USB upload program sa Ameba. Mga Tool sa Pag-click -> Mga Port, suriin ang serial port upang magamit :
Mangyaring tandaan na ang Arduino IDE ay gumagamit ng isang port para sa upload program at outputlog. Upang maiwasan ang sitwasyon na ang log ay hindi maaaring ma-output kapag gumagamit kami ng OTA, gumagamit kami ng iba pang serial port terminal (hal., Term ng Tera o masilya) sa halip na serial monitor upang manuod ng mensahe sa log.
Pagkatapos i-click ang upload at pindutin ang pindutan ng pag-reset.
Sa log message:
1. Sa pagitan ng "===== Ipasok ang Larawan 1 ====" at "Ipasok ang Larawan 2 ====", mahahanap mo ang "Flash Image 2: Addr 0xb000". Nangangahulugan ito na tinutukoy ng Ameba na mag-boot mula sa Default na Larawan 2 sa 0xb000.
2. Pagkatapos ng "Ipasok ang Larawan 2 ====", mahahanap mo ang "Ito ang bersyon 1". Ito ang mensahe ng log na idinagdag namin sa sketch.
3. Matapos ang Ameba ay konektado sa AP at nakakakuha ng IP address na "192.168.1.238", pinapagana nito ang mDNS at naghihintay para sa kliyente.
Susunod, binago namin ang "MY_VERSION_NUMBER" sa 2.
I-click ang "Mga Tool" -> "Port", maaari mong makita ang isang listahan ng "Mga port sa network". Hanapin ang "MyAmeba sa 192.168.1.238 (Ameba RTL8195A)", ang MyAmeba ay ang pangalan ng aparato ng mDNS na itinakda namin sa sample code, at ang "192.168.1.238" ay ang IP ng Ameba.
Kung hindi mo mahanap ang networkport ng Ameba, mangyaring kumpirmahin:
- kung ang iyong computer at Ameba ay nasa parehong lokal na network?
- subukang i-restart ang Arduino IDE.
- suriin ang mensahe ng pag-log sa Serial Monitor upang makita kung matagumpay na nakakonekta ang Ameba sa AP.
Pagkatapos mag-click sa upload. Sa oras na ito ang programa ay maa-upload sa pamamagitan ng TCP. Sa log terminal, maaari mong makita ang impormasyon sa koneksyon ng client.
Kapag ang imahe ng OTA ay matagumpay na na-download, mag-reboot ang Ameba at ang pagsunod sa log ay ipapakita sa log terminal.
- Sa pagitan ng "===== Ipasok ang Imahe 1 ====" at "Ipasok ang Larawan 2 ====", maaari mong makita ang isang mensahe sa log na "Flash Image 2: Addr 0x80000". Nangangahulugan ito na tinutukoy ng Ameba na mag-boot mula sa OTA Image sa 0x80000.
- Pagkatapos ng "Ipasok ang Larawan 2 ====", ang log na "Ito ang bersyon 2" ay ang mensahe na idinagdag namin sa sketch.
Upang mabawi ang nakaraang imahe pagkatapos na ma-download ang imahe ng OTA sa Ameba, mangyaring ikonekta ang recover pin na itinakda namin sa sketch (ibig sabihin, pin 18) sa HIGH (3.3V), at pindutin ang reset.
Pagkatapos ang Default na imahe 2 ay pipiliin kapag nag-boot. Tandaan na ang na-download na imaheng OTA ay hindi tinanggal, sa sandaling ang pag-recover ng pin ay naka-disconnect mula sa TAAS, ang OTA na imahe ay papatayin.
Buod namin ang daloy ng pag-unlad gamit ang OTA sa sumusunod na pigura.
Inirerekumendang:
Air - True Mobile Air Guitar (Prototype): 7 Hakbang (na may Mga Larawan)
Air - True Mobile Air Guitar (Prototype): Okay so, Ito ay magiging isang napaka maikling pagtuturo tungkol sa unang bahagi ng wakas na makalapit sa isang pangarap ko sa pagkabata. Noong bata pa ako, palagi kong pinapanood ang aking mga paboritong artista at banda na tumugtog ng gitara nang hindi malinis. Sa aking paglaki, ako ay
Pagtuklas ng Air Polusyon + Pagsasala ng Air: 4 na Hakbang
Pagtuklas ng Air Pollution + Air Filtration: Ang mga mag-aaral (Aristobulus Lam, Victor Sim, Nathan Rosenzweig at Declan Loges) ng German Swiss International School ay nakipagtulungan sa mga tauhan ng MakerBay upang makabuo ng isang pinagsamang sistema ng pagsukat ng polusyon sa hangin at pagiging epektibo ng pagsala ng hangin. Ito
Programming-driven na Programming sa FTC: 4 na Hakbang
Programming-drivenn Programming sa FTC: Sa taong ito, ang aming koponan ay gumawa ng mahusay na pakikitungo sa pagpapaunlad ng software na hinimok ng kaganapan para sa aming robot. Pinapayagan ng mga programang ito ang koponan na tumpak na makabuo ng mga autonomous na programa at kahit na maulit na mga kaganapan sa tele-op. Habang gumagana ang software ay tumatawag ito
ESP01 Moodlight With Firebase in Realtime + OTA: 7 Hakbang
ESP01 Moodlight With Firebase in Realtime + OTA: Sinusuportahan nito ang R-G-B mode at Fade effect. Mayroon ding suporta para sa kontrol ng ilaw. Suporta para sa pag-update ng OTA
HRV (Home Air Exchanger) Arduino Controller Sa Air Economizer: 7 Hakbang (na may Mga Larawan)
HRV (Home Air Exchanger) Arduino Controller Sa Air Economizer: HRV Arduino Controller sa Air EconomizerKaya ang aking kasaysayan sa proyektong ito ay nakatira ako sa Minnesota at ang aking circuit board ay pinirito sa aking LifeBreath 155Max HRV. Ayokong bayaran ang $ 200 para sa bago. Palagi kong ginusto ang isang bagay na may kasamang air economizer