Obsah:
Video: Programování Arduino Over the Air (OTA) - Ameba Arduino: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
Na trhu je mnoho mikrokontrolérů Wi-Fi, mnoho výrobců si programování svého Wi-Fi mikrokontroléru užívá pomocí Arduino IDE. Jedna z nejlepších funkcí, které může mikrokontrolér Wi-Fi nabídnout, však bývá přehlížena, a to programování a odesílání kódu na dálku a bezdrátově pomocí funkce OTA (Over-The-Air).
V tomto Instructable vám ukážu, jak nastavit OTA na vašem Wi-Fi mikrokontroléru pomocí všudypřítomného Arduino IDE na Wi-Fi mikrokontroléru Ameba Arduino!
Zásoby
Ameba Arduino x 1
Krok 1: OTA
OTA (Over-The-Air) označuje mechanismus online aktualizace přes internet.
Arduino IDE nabízí funkci OTA, která sleduje pracovní postup na obrázku výše.
(i) Arduino IDE vyhledává prostřednictvím mDNS zařízení se službou Arduino IDEOTA v místní síti.
(ii) Protože je na Amebě spuštěna služba mDNS, Ameba reaguje na vyhledávání mDNS a otevírá konkrétní port TCP pro připojení.
(iii) Uživatel vyvíjí program v Arduino IDE. Po dokončení vyberte síťový port.
(iv) Klikněte na nahrát. Poté Arduino IDE odešle obrázek OTA Ameba přes TCP, Ameba uloží obrázek na konkrétní adresu a nastaví možnost bootování, aby se z tohoto obrazu spustilo příště.
Pracovní postup se skládá ze tří částí: obrazový proces mDNS, TCP a OTA. Podrobnosti týkající se mDNS jsou popsány v kurzu mDNS. Při přenosu obrazu se používá programování soketu TCP a je již k dispozici v OTA API.
V další části budeme diskutovat o tom, jak zpracovat obraz OTA, a představíme některé základní znalosti o rozložení flash paměti Ameba a toku zavádění.
Krok 2: Rozložení paměti Ameba Flash
Velikost flash paměti Ameba RTL8195A je 2 MB, pohybuje se od 0x00000000 do 0x00200000. Velikost flash paměti Ameba RTL8710 je však 1 MB. Aby to vyhovovalo použití různých desek, předpokládáme, že rozložení paměti flash je 1 MB.
Jak ukazuje obrázek výše, program Ameba zabírá tři části flash paměti:
- Boot Image :
Tedy zavaděč. Když se Ameba spustí, umístí spouštěcí obraz do paměti a provede inicializaci. Dále určuje, kam pokračovat po zavaděči. Bootloader se podívá na adresu OTA a pin pro obnovení v oblasti systémových dat a určí, který obraz bude následně spuštěn. Na konci zavaděče umístí obrázek do paměti a spustí jej.
- Výchozí obrázek 2 :
V této části je umístěn kód vývojáře, adresa začíná od 0x0000B000. Prvních 16 bajtů je záhlaví obrázku, 0x0000B008 ~ 0x0000B00F obsahuje podpis, který slouží k ověření, zda je obrázek platný. Pole podpisu má dvě platné hodnoty, které odlišují nový obrázek od starého.
- OTA obrázek :
Data v této části jsou také kódem vývojáře. Ve výchozím nastavení začíná tato část paměti od 0x00080000 (lze změnit). Hlavní rozdíly mezi obrázkem OTA a výchozím obrázkem 2 jsou adresa paměti flash a hodnota podpisu.
Kromě kódu existuje několik datových bloků:
- Systémová data :
Blok systémových dat začíná od 0x00009000. Existují dvě data související s OTA:
1. Adresa OTA data 4 bajty data od 0x00009000. Sděluje adresu obrázku OTA. Pokud je hodnota adresy OTA neplatná (tj. 0xFFFFFFFF), obrázek OTA do paměti Flash nelze správně načíst.
2. Pin pro obnovení data 4 bajty dat počínaje 0x00009008, pin pro obnovení slouží k určení, který obrázek (výchozí obrázek 2 nebo obrázek OTA) se má spustit, když jsou oba obrázky platné. Pokud je hodnota PIN pro obnovení neplatná (tj. 0xFFFFFFFF), bude ve výchozím nastavení spuštěn nový obrázek.
Systémová data budou odstraněna, když nahrajeme program do Ameba přes DAP. To znamená, že adresa OTA bude odstraněna a Ameba určí, že neexistuje žádný obrázek OTA.
- Kalibrační data : V tomto bloku jsou umístěna periferní kalibrační data. Obvykle by tato data neměla být vymazána.
Krok 3: Boot Flow
Z výše uvedeného obrázku
Diskutujeme o následujících scénářích: (i) OTA se nepoužívá, použijte DAP k nahrání programu:
V této situaci zavaděč zkontroluje podpis výchozí bitové kopie 2 a adresy OTA. Protože je adresa OTA odstraněna, bude pro spuštění vybrán výchozí obrázek 2.
(ii) OTA obraz je přenesen na Ameba, OTA adresa je nastavena správně, obnovovací pin není nastaven :
Ameba obdržela aktualizovaný obrázek prostřednictvím OTA, podpis výchozího obrázku 2 by byl nastaven na starý podpis.
Bootloader kontroluje podpis výchozího obrázku 2 a adresy OTA. Zjistí, že adresa OTA obsahuje platný obrázek OTA. Protože pin pro obnovení není nastaven, zvolí nový obraz (tj. Obrázek OTA), který má být spuštěn.
(iii) OTA obraz je přenesen na Ameba, OTA adresa je nastavena správně, obnovovací pin je nastaven :
Ameba obdržela aktualizovaný obrázek prostřednictvím OTA, podpis výchozího obrázku 2 by byl nastaven na starý podpis.
Bootloader kontroluje podpis výchozího obrázku 2 a adresy OTA. Zjistí, že adresa OTA obsahuje platný obrázek OTA. Poté zkontrolujte hodnotu kolíku pro obnovení. Pokud je pin pro obnovení připojen k LOW, bude spuštěn nový obraz (tj. Obraz OTA). Pokud je pin pro obnovení připojen k VYSOKÉ, bude spuštěn starý obraz (tj. Výchozí obrázek 2).
Krok 4: Příklad
Chcete -li používat funkci OTA, aktualizujte firmware DAP na verzi> 0,7 (v0.7 není součástí dodávky). Výchozí tovární firmware DAP je verze 0.7. Při aktualizaci firmwaru DAP postupujte podle pokynů:
Otevřete příklad: „Soubor“-> „Příklady“-> „AmebaOTA“-> „ota_basic“
Vyplňte informace o ssid a hesle v ukázkovém kódu pro připojení k síti.
S OTA souvisí několik parametrů:
§ MY_VERSION_NUMBER : V první verzi musíme nastavit adresu OTA a PIN pro obnovení. Protože tentokrát je první verzí nahrávání přes USB, nemusíme tuto hodnotu měnit.
§ OTA_PORT : Arduino IDE najde Amebu prostřednictvím mDNS. Ameba řekne Arduino IDE, že otevře TCP port 5000 a čeká na obrázek OTA.
§ RECOVERY_PIN : Konfigurujte pin používaný pro obnovu. Zde používáme pin 18.
Poté použijeme program pro nahrávání USB do Ameba. Klikněte na Nástroje -> Porty, zkontrolujte sériový port, který chcete použít :
Vezměte prosím na vědomí, že Arduino IDE používá jeden port pro nahrávání programu a výstupní protokol. Abychom se vyhnuli situaci, že protokol nelze vygenerovat, když používáme OTA, používáme ke sledování zprávy protokolu jiný terminál sériového portu (např. Termín Tera nebo tmel) místo sériového monitoru.
Poté klikněte na nahrát a stiskněte tlačítko reset.
Ve zprávě protokolu:
1. Mezi „===== Zadejte obrázek 1 ====“a „Zadejte obrázek 2 ====“najdete „Flash Image 2: Addr 0xb000“. To znamená, že Ameba určí spuštění z výchozího obrázku 2 na 0xb000.
2. Po „Zadejte obrázek 2 ====“najdete „Toto je verze 1“. Toto je zpráva protokolu, kterou přidáváme do skici.
3. Poté, co se Ameba připojí k AP a získá IP adresu „192.168.1.238“, aktivuje mDNS a čeká na klienta.
Dále upravíme „MY_VERSION_NUMBER“na 2.
Klikněte na „Nástroje“-> „Port“, zobrazí se seznam „Síťové porty“. Najděte „MyAmeba at 192.168.1.238 (Ameba RTL8195A)“, MyAmeba je název zařízení mDNS, který jsme nastavili v ukázkovém kódu, a „192.168.1.238“je IP Ameby.
Pokud nemůžete najít síťový port Ameba, potvrďte prosím:
- zda jsou váš počítač a Ameba ve stejné místní síti?
- zkuste restartovat Arduino IDE.
- zkontrolujte zprávu protokolu v Serial Monitor, abyste zjistili, zda je Ameba úspěšně připojena k AP.
Poté klikněte na nahrát. Tentokrát bude program nahrán přes TCP. V terminálu protokolu vidíte informace o připojení klienta.
Po úspěšném stažení obrazu OTA se Ameba restartuje a v protokolu se zobrazí následující protokol.
- Mezi „===== Zadejte obrázek 1 ====“a „Zadejte obrázek 2 ====“můžete vidět zprávu protokolu „Flash Image 2: Addr 0x80000“. To znamená, že Ameba určí spuštění z OTA Image při 0x80000.
- Po „Enter Image 2 ====“je protokol „This is version 2“zprávou, kterou přidáváme do skici.
Chcete -li se po stažení obrázku OTA do Ameba obnovit na předchozí obrázek, připojte obnovovací pin, který jsme nastavili ve skice (tj. Pin 18), na HIGH (3,3 V) a stiskněte reset.
Poté bude při spuštění vybrán výchozí obrázek 2. Všimněte si toho, že stažený obraz OTA není odstraněn, jakmile bude pin pro obnovení odpojen od HIGH, bude spuštěn obraz OTA.
Shrneme vývojový tok pomocí OTA na následujícím obrázku.
Doporučuje:
Programování ATmega328 pomocí Arduino IDE pomocí krystalu 8 MHz: 4 kroky
Programování ATmega328 s Arduino IDE pomocí 8MHz krystalu: V tomto Instuctable se budu věnovat krok za krokem průvodce programováním IC ATmega328P (stejný mikrokontrolér, jaký je k dispozici na Arudino UNO) pomocí Arduino IDE a Arduino UNO jako programátora, abyste se stali vlastní Arduino, aby vaše projekty
Zajímavé pokyny pro programování programování pro návrháře-ovládání barev: 10 kroků
Zajímavé pokyny pro programování programování pro návrháře-ovládání barev: V předchozích kapitolách jsme si řekli více o tom, jak použít kód k tvarování namísto bodů znalostí o barvě. V této kapitole prozkoumáme tento aspekt znalostí hlouběji
ATtiny85 Nositelné vibrační sledování aktivity Sledování a programování ATtiny85 s Arduino Uno: 4 kroky (s obrázky)
ATtiny85 Wearable Vibration Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: How to make the wearable activity tracking watch? Toto je nositelný gadget navržený tak, aby vibroval, když detekuje stagnaci. Trávíte většinu času na počítači jako já? Sedíte hodiny, aniž byste si to uvědomovali? Pak je toto zařízení f
PROGRAMOVÁNÍ AT89S52 pomocí ARDUINO: 4 kroky
PROGRAMOVÁNÍ AT89S52 S POUŽITÍM ARDUINO: In-System Programming (ISP) neboli In-Circuit Serial Programming (ICSP) je schopnost některých programovatelných logických zařízení, mikrokontrolérů a dalších vestavěných zařízení programovat při instalaci v kompletním systému, nikoli vyžadovat chi
Začínáme s Esp 8266 Esp-01 s Arduino IDE - Instalace desek Esp do Arduino Ide a programování Esp: 4 kroky
Začínáme s Esp 8266 Esp-01 s Arduino IDE | Instalace desek Esp do Arduino Ide a Programování Esp: V tomto návodu se naučíme, jak nainstalovat desky esp8266 do Arduino IDE a jak do nich naprogramovat esp-01 a nahrát kód. Protože desky esp jsou tak populární, přemýšlel jsem o opravě instructables pro toto a většina lidí čelí problému