Taula de continguts:
- Subministraments
- Pas 1: OTA
- Pas 2: Disseny de memòria flash Ameba
- Pas 3: arrenca el flux
- Pas 4: Exemple
Vídeo: Programació d'Arduino Over the Air (OTA) - Ameba Arduino: 4 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:12
Hi ha molts microcontroladors Wi-Fi al mercat, a molts fabricants els agrada programar el seu microcontrolador Wi-Fi mitjançant Arduino IDE. Tanmateix, sol passar per alt una de les funcions més interessants que ofereix un microcontrolador Wi-Fi, és a dir, programar i penjar el codi de forma remota i sense fils mitjançant la funció OTA (Over-The-Air).
En aquest instructiu, us mostraré com configurar OTA al vostre microcontrolador Wi-Fi mitjançant l’omnipresent Arduino IDE al microcontrolador Wi-Fi Ameba Arduino.
Subministraments
Ameba Arduino x 1
Pas 1: OTA
OTA (Over-The-Air) fa referència al mecanisme d’actualització en línia a través d’Internet.
Arduino IDE ofereix la funció OTA, que segueix el flux de treball de la figura anterior.
(i) Arduino IDE cerca mitjançant mDNS dispositius amb el servei Arduino IDEOTA a la xarxa local.
(ii) Com que el servei mDNS s’executa a Ameba, Ameba respon a la cerca mDNS i obre el port TCP específic per a la connexió.
(iii) L'usuari desenvolupa un programa en Arduino IDE. Quan hàgiu acabat, trieu el port de xarxa.
(iv) Feu clic a penja. A continuació, Arduino IDE envia la imatge OTA a Ameba mitjançant TCP, Ameba desa la imatge en una adreça específica i estableix l’opció d’arrencada per arrencar des d’aquesta imatge la propera vegada.
El flux de treball consta de tres parts: procés d'imatges mDNS, TCP i OTA. Els detalls relacionats amb mDNS es descriuen al tutorial de mDNS. La programació de sòcol TCP s’utilitza en la transferència d’imatges i ja es proporciona a l’API OTA.
A la següent secció, parlarem de com processar la imatge OTA i introduirem alguns coneixements bàsics sobre el disseny de la memòria flash Ameba i el flux d’arrencada.
Pas 2: Disseny de memòria flash Ameba
La mida de la memòria flash d’Ameba RTL8195A és de 2 MB, oscil·la entre 0x00000000 i 0x00200000. Tot i això, la mida de la memòria flash d'Ameba RTL8710 és d'1 MB. Per adaptar-se a l'ús de diferents taules, suposem que el disseny de la memòria flash és d'1 MB.
Com es mostra a la figura anterior, el programa Ameba ocupa tres parts de la memòria flash:
- Imatge d'arrencada :
És a dir, el carregador d’arrencada. Quan Ameba arrenca, col·loca la imatge d’arrencada a la memòria i realitza la inicialització. A més, determina on s'ha de procedir després del gestor d'arrencada. El carregador d'arrencada mira l'adreça OTA i el pin de recuperació a l'àrea de dades del sistema i determina quina imatge s'executarà després. Al final del carregador d’arrencada, col·loca la imatge a la memòria i abans d’executar-la.
- Imatge predeterminada 2 :
El codi de desenvolupador es troba en aquesta part, l'adreça comença a partir de 0x0000B000. Els primers 16 bytes són la capçalera de la imatge, 0x0000B008 ~ 0x0000B00F comprèn la signatura, que s'utilitza per verificar si la imatge és vàlida. El camp de signatura té dos valors vàlids per distingir la imatge nova de la imatge anterior.
- Imatge OTA :
Les dades d'aquesta part també són codi de desenvolupador. Per defecte, aquesta part de memòria comença a partir de 0x00080000 (es pot canviar). Les principals diferències entre la imatge OTA i la imatge predeterminada 2 són l’adreça de la memòria flash i el valor de la signatura.
A part del codi, hi ha alguns blocs de dades:
- Dades del sistema :
El bloc de dades del sistema comença a partir de 0x00009000. Hi ha dues dades relacionades amb l’OTA:
1. Adreça OTA: dades de 4 bytes a partir de 0x00009000. Indica l'adreça de la imatge OTA. Si el valor de l'adreça OTA no és vàlid (és a dir, 0xFFFFFFFF), la imatge OTA de la memòria flash no es pot carregar correctament.
2. Pin de recuperació: dades de 4 bytes a partir de 0x00009008. El pin de recuperació s'utilitza per determinar quina imatge (imatge predeterminada 2 o imatge OTA) s'ha d'executar quan les dues imatges siguin vàlides. Si el valor del pin de recuperació no és vàlid (és a dir, 0xFFFFFFFF), la nova imatge s'executarà per defecte.
Les dades del sistema s’eliminaran quan pengem el programa a Ameba mitjançant DAP. És a dir, s'eliminarà l'adreça OTA i Ameba determinarà que no hi ha cap imatge OTA.
- Dades de calibració : Les dades de calibració perifèriques es col·loquen en aquest bloc. Normalment, aquestes dades no s’han d’eliminar.
Pas 3: arrenca el flux
De la imatge superior, Discutim els escenaris següents: (i) OTA no s'utilitza, utilitzeu DAP per carregar el programa:
En aquesta situació, el carregador d’arrencada comprova la signatura de la imatge predeterminada 2 i l’adreça OTA. Com que s'elimina l'adreça OTA, se seleccionarà la imatge 2 per defecte per executar-la.
(ii) La imatge OTA es transfereix a Ameba, l'adreça OTA s'estableix correctament, el pin de recuperació no està definit :
Ameba ha rebut una imatge actualitzada mitjançant OTA; la signatura de la imatge predeterminada 2 es definiria com a signatura antiga.
El carregador d'arrencada comprova la signatura de la imatge predeterminada 2 i l'adreça OTA. Trobarà que l’adreça OTA conté una imatge OTA vàlida. Com que el pin de recuperació no està definit, tria la nova imatge (és a dir, la imatge OTA) que s’executarà.
(iii) La imatge OTA es transfereix a Ameba, l'adreça OTA s'estableix correctament, el pin de recuperació està establert :
Ameba ha rebut una imatge actualitzada mitjançant OTA; la signatura de la imatge predeterminada 2 es definiria com a signatura antiga.
El carregador d'arrencada comprova la signatura de la imatge predeterminada 2 i l'adreça OTA. Trobarà que l’adreça OTA conté una imatge OTA vàlida. A continuació, comproveu el valor del pin de recuperació. Si el pin de recuperació està connectat a BAIX, s’executarà la nova imatge (és a dir, la imatge OTA). Si el pin de recuperació està connectat a HIGH, s’executarà la imatge antiga (és a dir, la imatge predeterminada 2).
Pas 4: Exemple
Per utilitzar la funció OTA, actualitzeu el firmware DAP a la versió> 0.7 (la v0.7 no està inclosa). El firmware DAP per defecte de fàbrica és la versió 0.7. Seguiu les instruccions per actualitzar el firmware DAP:
Obriu l'exemple: "Fitxer" -> "Exemples" -> "AmebaOTA" -> "ota_basic"
Empleneu la informació de ssid i contrasenya al codi de mostra per a la connexió de xarxa.
Hi ha alguns paràmetres relacionats amb l'OTA:
§ MY_VERSION_NUMBER : A la primera versió, hem d’establir l’adreça OTA i el pin de recuperació. Com que aquesta vegada carreguem per USB és la primera versió, no cal que canviem aquest valor.
§ OTA_PORT : Arduino IDE trobarà Ameba mitjançant mDNS. Ameba li dirà a Arduino IDE que obre el port TCP 5000 per esperar la imatge OTA.
§ RECOVERY_PIN : Configureu el pin que s'utilitza per a la recuperació. Aquí fem servir el pin 18.
A continuació, fem servir el programa de càrrega USB a Ameba. Feu clic a Eines -> Ports, comproveu el port sèrie que voleu utilitzar :
Tingueu en compte que Arduino IDE utilitza un port per carregar el programa i el registre de sortida. Per evitar que el registre no es pugui generar quan fem servir OTA, fem servir un altre terminal de port sèrie (per exemple, terme Tera o massilla) en lloc del monitor sèrie per veure el missatge de registre.
A continuació, feu clic a Carrega i premeu el botó de restabliment.
Al missatge de registre:
1. Entre "===== Introduïu la imatge 1 ====" i "Introduïu la imatge 2 ====", podeu trobar "Imatge Flash 2: Addr 0xb000". Això significa que Ameba decideix arrencar des de la imatge predeterminada 2 a 0xb000.
2. Després de "Introduïu la imatge 2 ====", podeu trobar "Aquesta és la versió 1". Aquest és el missatge de registre que afegim a l'esbós.
3. Després que Ameba es connecti a AP i obtingui l'adreça IP "192.168.1.238", activa mDNS i espera el client.
A continuació, modificem "MY_VERSION_NUMBER" a 2.
Feu clic a "Eines" -> "Port" per veure una llista de "ports de xarxa". Cerqueu "MyAmeba a 192.168.1.238 (Ameba RTL8195A)", MyAmeba és el nom del dispositiu mDNS que hem definit al codi de mostra i "192.168.1.238" és la IP d'Ameba.
Si no trobeu el port de xarxa d’Ameba, confirmeu:
- si el vostre equip i Ameba es troben a la mateixa xarxa local?
- proveu de reiniciar Arduino IDE.
- comproveu el missatge de registre a Serial Monitor per veure si Ameba està connectat amb AP correctament.
A continuació, feu clic a penja. Aquesta vegada, el programa es carregarà mitjançant TCP. Al terminal de registre, podeu veure la informació de connexió del client.
Quan la imatge OTA es baixi correctament, Ameba es reiniciarà i es mostrarà el registre següent al terminal de registre.
- Entre "===== Introduïu la imatge 1 ====" i "Introduïu la imatge 2 ====", podeu veure un missatge de registre "Imatge Flash 2: Addr 0x80000". Això significa que Ameba decideix arrencar des de la imatge OTA a 0x80000.
- Després de "Introduïu la imatge 2 ====", el registre "Aquesta és la versió 2" és el missatge que afegim a l'esbós.
Per recuperar la imatge anterior després de descarregar la imatge OTA a Ameba, connecteu el pin de recuperació que hem definit a l'esbós (és a dir, el pin 18) a HIGH (3,3 V) i premeu reset.
A continuació, es seleccionarà la imatge 2 per defecte en arrencar. Tingueu en compte que la imatge OTA descarregada no s’esborra, un cop desconnectat el pin de recuperació de HIGH, s’executarà la imatge OTA.
A la figura següent resumim el flux de desenvolupament mitjançant OTA.
Recomanat:
Cable de programació de bricolatge amb Arduino Uno - Baofeng UV-9R Plus: 6 passos (amb imatges)
Cable de programació de bricolatge mitjançant Arduino Uno - Baofeng UV-9R Plus: Ei, tothom, aquesta és una guia senzilla sobre com convertir el cable per a auriculars / auriculars Baofeng UV-9R (o més) en un cable de programació mitjançant un Ardunio UNO com a USB Convertidor de sèrie. [EXCLUSIÓ DE RESPONSABILITAT] No em faig responsable de cap dany causant
Programació Arduino mitjançant mòbil -- Arduinodroid -- Arduino Ide per a Android -- Parpelleig: 4 passos
Programació Arduino mitjançant mòbil || Arduinodroid || Arduino Ide per a Android || Parpelleig: subscriu-me al meu canal de youtube per obtenir més vídeos … Arduino és una placa, que es pot programar directament per USB. És molt senzill i econòmic per a projectes universitaris i escolars o fins i tot en prototips de productes. Molts dels productes es basen en primer lloc per a mi
Programació d'un Arduino Utilitzant un altre Arduino per mostrar un text de desplaçament sense biblioteca: 5 passos
Programar un Arduino Utilitzant un altre Arduino per mostrar un text de desplaçament sense biblioteca: Sony Spresense o Arduino Uno no són tan cars i no requereixen molta energia. Tot i això, si el vostre projecte té una limitació de potència, espai o fins i tot pressupost, us recomanem que utilitzeu Arduino Pro Mini. A diferència d’Arduino Pro Micro, Arduino Pro Mi
Introducció a Esp 8266 Esp-01 amb Arduino IDE - Instal·lació de taules Esp a Arduino Ide i programació Esp: 4 passos
Introducció a Esp 8266 Esp-01 amb Arduino IDE | Instal·lació de taules Esp a Arduino Ide i programació Esp: En aquest instructables aprendrem a instal·lar taules esp8266 a Arduino IDE i a programar esp-01 i penjar-hi codi. Com que les taules esp són tan populars, vaig pensar a corregir un instructablesfor això i la majoria de la gent té problemes
Arduino més barat -- Arduino més petit -- Arduino Pro Mini -- Programació -- Arduino Neno: 6 passos (amb imatges)
Arduino més barat || Arduino més petit || Arduino Pro Mini || Programació || Arduino Neno: …………………………. SUBSCRIU-SE Al meu canal de YouTube per obtenir més vídeos ……. Aquest projecte tracta sobre com connectar un arduino més petit i barat de la història. L’arduino més petit i barat és arduino pro mini. És similar a arduino