Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: OTA
- Schritt 2: Ameba Flash-Speicher-Layout
- Schritt 3: Boot-Flow
- Schritt 4: Beispiel
Video: Arduino Over the Air (OTA) programmieren - Ameba Arduino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
Es gibt viele Wi-Fi-Mikrocontroller auf dem Markt, viele Hersteller genießen es, ihren Wi-Fi-Mikrocontroller mit Arduino IDE zu programmieren. Eine der coolsten Funktionen, die ein Wi-Fi-Mikrocontroller zu bieten hat, wird jedoch oft übersehen, nämlich das Programmieren und Hochladen Ihres Codes aus der Ferne und drahtlos mit der OTA-Funktion (Over-The-Air).
In diesem Instructable zeige ich Ihnen, wie Sie OTA auf Ihrem Wi-Fi-Mikrocontroller mit der allgegenwärtigen Arduino IDE auf dem Ameba Arduino Wi-Fi-Mikrocontroller einrichten!
Lieferungen
Ameba Arduino x 1
Schritt 1: OTA
OTA (Over-The-Air) bezieht sich auf den Online-Upgrade-Mechanismus über das Internet.
Arduino IDE bietet eine OTA-Funktion, die dem Workflow in der obigen Abbildung folgt.
(i) Arduino IDE sucht über mDNS nach Geräten mit Arduino IDEOTA-Dienst im lokalen Netzwerk.
(ii) Da der mDNS-Dienst auf Ameba läuft, antwortet Ameba auf die mDNS-Suche und öffnet den spezifischen TCP-Port für die Verbindung.
(iii) Der Benutzer entwickelt ein Programm in der Arduino IDE. Wenn Sie fertig sind, wählen Sie den Netzwerkport.
(iv) Klicken Sie auf Hochladen. Dann sendet Arduino IDE das OTA-Image über TCP an Ameba, Ameba speichert das Image an einer bestimmten Adresse und stellt die Boot-Option so ein, dass beim nächsten Mal von diesem Image gestartet wird.
Der Workflow besteht aus drei Teilen: mDNS-, TCP- und OTA-Image-Prozess. Details zu mDNS werden im mDNS-Tutorial beschrieben. Die TCP-Socket-Programmierung wird beim Übertragen von Bildern verwendet und ist bereits in der OTA-API enthalten.
Im nächsten Abschnitt werden wir die Verarbeitung des OTA-Images besprechen und einige grundlegende Kenntnisse zum Ameba-Flash-Speicher-Layout und zum Boot-Flow einführen.
Schritt 2: Ameba Flash-Speicher-Layout
Die Flash-Speichergröße von Ameba RTL8195A beträgt 2 MB und reicht von 0x00000000 bis 0x00200000. Die Flash-Speichergröße von Ameba RTL8710 beträgt jedoch 1 MB. Um die Verwendung verschiedener Boards zu ermöglichen, gehen wir davon aus, dass das Flash-Speicherlayout 1 MB beträgt.
Wie in der Abbildung oben gezeigt, belegt das Ameba-Programm drei Teile des Flash-Speichers:
- Boot-Image:
Das heißt, der Bootloader. Wenn Ameba hochfährt, legt es das Boot-Image im Speicher ab und führt die Initialisierung durch. Darüber hinaus bestimmt es, wo nach dem Bootloader fortgefahren werden soll. Der Bootloader schaut sich die OTA-Adresse und den Recovery-Pin im Systemdatenbereich an und bestimmt, welches Image anschließend ausgeführt wird. Am Ende des Bootloaders legt er das Image im Speicher ab und fährt mit der Ausführung fort.
- Standardbild 2:
In diesem Teil wird der Entwicklercode platziert, die Adresse beginnt bei 0x0000B000. Die ersten 16 Bytes sind der Image-Header, 0x0000B008~0x0000B00F umfasst die Signatur, mit der überprüft wird, ob das Image gültig ist. Das Signaturfeld hat zwei gültige Werte, um das neue Bild vom alten Bild zu unterscheiden.
- OTA-Bild:
Die Daten in diesem Teil sind auch Entwicklercode. Standardmäßig beginnt dieser Teil des Speichers bei 0x00080000 (kann geändert werden). Die Hauptunterschiede zwischen OTA-Image und Standard-Image 2 sind die Flash-Speicheradresse und der Signaturwert.
Abgesehen vom Code gibt es einige Datenblöcke:
- Systemdaten:
Der Systemdatenblock beginnt bei 0x00009000. Es gibt zwei OTA-bezogene Daten:
1. OTA-Adresse: 4 Byte Daten ab 0x00009000. Es teilt die OTA-Image-Adresse mit. Wenn der OTA-Adresswert ungültig ist (d. h. 0xFFFFFFFF), kann das OTA-Image im Flash-Speicher nicht richtig geladen werden.
2. Wiederherstellungs-Pin: 4 Byte Daten beginnend mit 0x00009008. Der Wiederherstellungs-Pin wird verwendet, um zu bestimmen, welches Image (Standard-Image 2 oder OTA-Image) ausgeführt werden soll, wenn beide Images gültig sind. Wenn der Wiederherstellungs-Pin-Wert ungültig ist (d. h. 0xFFFFFFFF), wird das neue Image standardmäßig ausgeführt.
Systemdaten werden entfernt, wenn wir ein Programm über DAP auf Ameba hochladen. Das heißt, die OTA-Adresse wird entfernt und Ameba stellt fest, dass kein OTA-Image vorhanden ist.
- Kalibrierungsdaten: Die peripheren Kalibrierungsdaten werden in diesem Block platziert. Normalerweise sollten diese Daten nicht gelöscht werden.
Schritt 3: Boot-Flow
Aus dem Bild oben, Wir diskutieren die folgenden Szenarien: (i) OTA wird nicht verwendet, verwenden Sie DAP, um das Programm hochzuladen:
In dieser Situation überprüft der Bootloader die Signatur des Standardimages 2 und die OTA-Adresse. Da die OTA-Adresse entfernt wurde, wird das Standardbild 2 zur Ausführung ausgewählt.
(ii) OTA-Image wird an Ameba übertragen, OTA-Adresse ist korrekt eingestellt, Wiederherstellungs-Pin ist nicht gesetzt:
Ameba hat ein aktualisiertes Image über OTA erhalten, die Signatur von Standardimage 2 würde auf alte Signatur gesetzt.
Bootloader überprüft die Signatur von Standardimage 2 und OTA-Adresse. Es wird feststellen, dass die OTA-Adresse ein gültiges OTA-Image enthält. Da der Wiederherstellungs-Pin nicht gesetzt ist, wählt er das neue Bild (d. h. das OTA-Bild) aus, das ausgeführt werden soll.
(iii) Das OTA-Image wird an Ameba übertragen, die OTA-Adresse ist richtig eingestellt, der Wiederherstellungs-Pin ist eingestellt:
Ameba hat ein aktualisiertes Image über OTA erhalten, die Signatur von Standardimage 2 würde auf alte Signatur gesetzt.
Bootloader überprüft die Signatur von Standardimage 2 und OTA-Adresse. Es wird feststellen, dass die OTA-Adresse ein gültiges OTA-Image enthält. Überprüfen Sie dann den Wiederherstellungs-Pin-Wert. Wenn der Recovery-Pin mit LOW verbunden ist, wird das neue Image (d. h. das OTA-Image) ausgeführt. Wenn der Recovery-Pin mit HIGH verbunden ist, wird das alte Image (d. h. das Standardimage 2) ausgeführt.
Schritt 4: Beispiel
Um die OTA-Funktion zu verwenden, aktualisieren Sie bitte die DAP-Firmware auf Version > 0.7 (v0.7 ist nicht enthalten). Die werkseitige Standard-DAP-Firmware ist Version 0.7. Bitte befolgen Sie die Anweisungen zum Aktualisieren der DAP-Firmware:
Öffnen Sie das Beispiel: "Datei" -> "Beispiele" -> "AmebaOTA" -> "ota_basic"
Geben Sie die ssid- und Kennwortinformationen in den Beispielcode für die Netzwerkverbindung ein.
Es gibt einige Parameter im Zusammenhang mit OTA:
§ MY_VERSION_NUMBER:In der ersten Version müssen wir die OTA-Adresse und den Wiederherstellungs-Pin festlegen. Da dieses Mal das Hochladen über USB die erste Version ist, müssen wir diesen Wert nicht ändern.
§ OTA_PORT:Arduino IDE findet Ameba über mDNS. Ameba teilt der Arduino IDE mit, dass der TCP-Port 5000 geöffnet wird, um auf das OTA-Image zu warten.
§ RECOVERY_PIN: Konfigurieren Sie den Pin, der für die Wiederherstellung verwendet wird. Wir verwenden hier Pin 18.
Dann verwenden wir das USB-Upload-Programm zu Ameba. Klicken Sie auf Tools -> Ports, überprüfen Sie den zu verwendenden seriellen Port:
Bitte beachten Sie, dass die Arduino IDE einen Port für das Upload-Programm und das Ausgabeprotokoll verwendet. Um die Situation zu vermeiden, dass das Protokoll bei Verwendung von OTA nicht ausgegeben werden kann, verwenden wir anstelle des seriellen Monitors ein anderes serielles Port-Terminal (z. B. Tera term oder putty), um die Protokollnachricht zu beobachten.
Klicken Sie dann auf Upload und drücken Sie die Reset-Taste.
In der Log-Meldung:
1. Zwischen „===== Enter Image 1====“und „Enter Image 2 ====“finden Sie „Flash Image 2:Addr 0xb000“. Dies bedeutet, dass Ameba festlegt, von Default Image 2 bei 0xb000 zu booten.
2. Nach „Enter Image 2 ====“finden Sie „This is version 1“. Dies ist die Protokollnachricht, die wir in der Skizze hinzufügen.
3. Nachdem Ameba mit dem AP verbunden ist und die IP-Adresse „192.168.1.238“erhält, aktiviert es mDNS und wartet auf den Client.
Als Nächstes ändern wir "MY_VERSION_NUMBER" auf 2.
Klicken Sie auf "Extras" -> "Port", Sie sehen eine Liste der "Netzwerkports". Suchen Sie "MyAmeba at 192.168.1.238 (Ameba RTL8195A)", MyAmeba ist der mDNS-Gerätename, den wir im Beispielcode festgelegt haben, und "192.168.1.238" ist die IP von Ameba.
Wenn Sie den Netzwerkport von Ameba nicht finden können, bestätigen Sie bitte:
- ob sich Ihr Computer und Ameba im selben lokalen Netzwerk befinden?
- Versuchen Sie, die Arduino-IDE neu zu starten.
- Überprüfen Sie die Protokollnachricht im Serial Monitor, um zu sehen, ob Ameba erfolgreich mit dem AP verbunden ist.
Klicken Sie dann auf Hochladen. Dieses Mal wird das Programm über TCP hochgeladen. Im Protokollterminal können Sie Informationen zur Clientverbindung anzeigen.
Wenn das OTA-Image erfolgreich heruntergeladen wurde, wird Ameba neu gestartet und das folgende Protokoll wird im Protokollterminal angezeigt.
- Zwischen „===== Enter Image 1====“und „Enter Image 2 ====“sehen Sie eine Log-Meldung „Flash Image 2:Addr 0x80000“. Dies bedeutet, dass Ameba festlegt, von OTA Image bei 0x80000 zu booten.
- Nach „Enter Image 2 ====“ist das Protokoll „This is version 2“die Nachricht, die wir in der Skizze hinzufügen.
Um das vorherige Bild wiederherzustellen, nachdem das OTA-Image auf Ameba heruntergeladen wurde, verbinden Sie den Wiederherstellungs-Pin, den wir in der Skizze festgelegt haben (d. h. Pin 18) mit HIGH (3,3 V) und drücken Sie Reset.
Dann wird beim Booten das Default Image 2 gewählt. Beachten Sie, dass das heruntergeladene OTA-Image nicht gelöscht wird, sobald der Wiederherstellungs-Pin von HIGH getrennt wird, wird das OTA-Image ausgeführt.
Wir fassen den Entwicklungsablauf mit OTA in der folgenden Abbildung zusammen.
Empfohlen:
So programmieren und veröffentlichen Sie Matlab 2016b in Word (Anleitung für Anfänger): 4 Schritte
So codieren und veröffentlichen Sie Matlab 2016b in Word (Einsteigerhandbuch): Matlab ist ein leistungsstarkes Sprachprogramm, das zum Berechnen technischer Ergebnisse verwendet wird. Es hat die Fähigkeit, Visualisierungen, Berechnungen und Programmierung auf benutzerfreundliche Weise zu integrieren. Mit diesem Programm kann der Benutzer Probleme und Lösungen veröffentlichen
Einen kabellosen Air-Klavierhandschuh herstellen – wikiHow
So stellen Sie einen drahtlosen Air-Piano-Handschuh her: Zwecke und Funktionen: Unser Projekt für tragbare Technologie besteht darin, einen drahtlosen Air-Piano-Handschuh mit synchronisierten Lichtern unter Verwendung von Basiselektronik, einem Mikrocontroller wie einem HexWear und einem Laptop mit Arduino- und Max 8-Software zu entwickeln . Die Einsatzmöglichkeiten unseres Projektes
Programmieren in C-simple Tutorial – wikiHow
So programmieren Sie in C-simple Tutorial: Bitte kommentieren Sie, wenn Sie dies mögen! Dieses Instructable wird jedem beibringen, ein einfaches Programm in der Programmiersprache C zu schreiben. Was Sie brauchen: einen Macintosh-Computer mit installierten Entwicklertools und etwas Gehirnleistung
So programmieren Sie Audacity für die Aufnahme zu einem bestimmten Zeitpunkt – wikiHow
So programmieren Sie Audacity für die Aufnahme zu einem bestimmten Zeitpunkt: Es ist ein schneller Trick, verwenden Sie ihn zum Spionieren, zum Aufzeichnen eines Telefonats oder einfach zum Aufzeichnen Ihrer Geschichtsunterrichtsrede, während Sie unterwegs sind Verwenden der beliebten Open-Source-App Audacitylet's begin
Programmieren mit dem MSW-Logo – wikiHow
Programmieren mit dem MSW-Logo: UPDATE: NEW AWESOME BOX FILE. REVISION V2.9UPDATE 30. Juli 2009: AWESOME BOX-DATEI VERSION 3.0 HINZUFÜGEN 16. August 2009: HINZUGEFÜGTER SCREENSHOT DER AWESOME BOX V3.0Diese Anleitung wird Ihnen beibringen, wie man MSW Logo verwendet. MSW Logo ist eine pädagogische Programmierung