Πίνακας περιεχομένων:
Βίντεο: Προγραμματισμός Arduino Over the Air (OTA) - Ameba Arduino: 4 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:33
Υπάρχουν πολλοί μικροελεγκτές Wi-Fi στην αγορά, πολλοί κατασκευαστές απολαμβάνουν τον προγραμματισμό του μικροελεγκτή Wi-Fi χρησιμοποιώντας το Arduino IDE. Ωστόσο, ένα από τα πιο ωραία χαρακτηριστικά που έχει να προσφέρει ένας μικροελεγκτής Wi-Fi τείνει να αγνοείται, δηλαδή ο προγραμματισμός και η αποστολή του κώδικα σας από απόσταση και ασύρματα χρησιμοποιώντας τη λειτουργία OTA (Over-The-Air).
Σε αυτό το Instructable, θα σας δείξω πώς μπορείτε να ρυθμίσετε το OTA στον μικροελεγκτή Wi-Fi χρησιμοποιώντας πανταχού παρόν Arduino IDE στον μικροελεγκτή Ameba Arduino Wi-Fi!
Προμήθειες
Ameba Arduino x 1
Βήμα 1: OTA
Το OTA (Over-The-Air) αναφέρεται στον διαδικτυακό μηχανισμό αναβάθμισης μέσω Διαδικτύου.
Το Arduino IDE προσφέρει τη δυνατότητα OTA, η οποία ακολουθεί τη ροή εργασίας στο παραπάνω σχήμα.
(i) Το Arduino IDE αναζητά μέσω mDNS συσκευές με υπηρεσία Arduino IDEOTA σε τοπικό δίκτυο.
(ii) Δεδομένου ότι η υπηρεσία mDNS εκτελείται στο Ameba, η Ameba απαντά στην αναζήτηση mDNS και ανοίγει τη συγκεκριμένη θύρα TCP για σύνδεση.
(iii) Ο χρήστης αναπτύσσει πρόγραμμα στο Arduino IDE. Όταν ολοκληρωθεί, επιλέξτε τη θύρα δικτύου.
(iv) Κάντε κλικ στο στοιχείο μεταφόρτωση. Στη συνέχεια, το Arduino IDE στέλνει την εικόνα OTA στο Ameba μέσω TCP, το Ameba αποθηκεύει την εικόνα σε συγκεκριμένη διεύθυνση και ορίζει την επιλογή εκκίνησης για εκκίνηση από αυτήν την εικόνα την επόμενη φορά.
Η ροή εργασίας αποτελείται από τρία μέρη: διαδικασία εικόνας mDNS, TCP και OTA. Οι λεπτομέρειες που σχετίζονται με το mDNS περιγράφονται στο σεμινάριο του mDNS. Ο προγραμματισμός υποδοχών TCP χρησιμοποιείται στη μεταφορά εικόνας και παρέχεται ήδη στο API OTA.
Στην επόμενη ενότητα, θα συζητήσουμε τον τρόπο επεξεργασίας της εικόνας OTA και θα εισαγάγουμε κάποιες βασικές γνώσεις σχετικά με τη διάταξη της μνήμης flash Ameba και τη ροή εκκίνησης.
Βήμα 2: Διάταξη μνήμης Flash Ameba
Το μέγεθος της μνήμης flash του Ameba RTL8195A είναι 2MB, κυμαίνεται από 0x00000000 έως 0x00200000. Ωστόσο, το μέγεθος της μνήμης flash του Ameba RTL8710 είναι 1MB. Για να ταιριάξουμε με τη χρήση διαφορετικών πλακετών, υποθέτουμε ότι η διάταξη της μνήμης flash είναι 1MB.
Όπως φαίνεται στο παραπάνω σχήμα, το πρόγραμμα Ameba καταλαμβάνει τρία μέρη της μνήμης flash:
- Εικόνα εκκίνησης
Δηλαδή, το bootloader. Όταν ξεκινάει το Ameba, τοποθετεί την εικόνα εκκίνησης στη μνήμη και εκτελεί προετοιμασία. Επιπλέον, καθορίζει πού θα προχωρήσει μετά το πρόγραμμα εκκίνησης. Το πρόγραμμα εκκίνησης κοιτάζει τη διεύθυνση OTA και την καρφίτσα ανάκτησης στην περιοχή δεδομένων συστήματος και καθορίζει ποια εικόνα θα εκτελεστεί στη συνέχεια. Στο τέλος του bootloader, τοποθετεί την εικόνα στη μνήμη και προχωρά στην εκτέλεσή της.
- Προεπιλεγμένη εικόνα 2
Ο κωδικός προγραμματιστή τοποθετείται σε αυτό το μέρος, η διεύθυνση ξεκινά από 0x0000B000. Τα πρώτα 16 byte είναι η κεφαλίδα της εικόνας, 0x0000B008 ~ 0x0000B00F περιλαμβάνει την Υπογραφή, η οποία χρησιμοποιείται για να επαληθεύσει εάν η εικόνα είναι έγκυρη. Το πεδίο υπογραφής έχει δύο έγκυρες τιμές για τη διάκριση της νέας εικόνας από την παλιά.
- Εικόνα OTA
Τα δεδομένα σε αυτό το μέρος είναι επίσης κώδικας προγραμματιστή. Από προεπιλογή, αυτό το μέρος της μνήμης ξεκινά από 0x00080000 (μπορεί να αλλάξει). Οι κύριες διαφορές μεταξύ της εικόνας OTA και της προεπιλεγμένης εικόνας 2 είναι η διεύθυνση μνήμης flash και η τιμή υπογραφής.
Εκτός από τον κώδικα, υπάρχουν μερικά μπλοκ δεδομένων:
- Δεδομένα συστήματος
Το μπλοκ δεδομένων συστήματος ξεκινά από 0x00009000. Υπάρχουν δύο δεδομένα που σχετίζονται με OTA:
1. Διεύθυνση OTA data 4 bytes δεδομένα ξεκινώντας από 0x00009000. Λέει τη διεύθυνση εικόνας OTA. Εάν η τιμή της διεύθυνσης OTA δεν είναι έγκυρη (δηλ. 0xFFFFFFF), η εικόνα OTA στη μνήμη flash δεν μπορεί να φορτωθεί σωστά.
2. Καρφίτσα ανάκτησης by 4 byte δεδομένων ξεκινώντας από 0x00009008, Το pin αποκατάστασης χρησιμοποιείται για να καθορίσει ποια εικόνα (προεπιλεγμένη εικόνα 2 ή εικόνα OTA) θα εκτελεστεί όταν και οι δύο εικόνες είναι έγκυρες. Εάν η τιμή του πείρου ανάκτησης δεν είναι έγκυρη (δηλαδή, 0xFFFFFFF), η νέα εικόνα θα εκτελεστεί από προεπιλογή.
Τα δεδομένα του συστήματος θα αφαιρεθούν όταν ανεβάσουμε πρόγραμμα στο Ameba μέσω DAP. Δηλαδή, η διεύθυνση OTA θα καταργηθεί και η Ameba θα καθορίσει ότι δεν υπάρχει εικόνα OTA.
- Δεδομένα βαθμονόμησης : Τα περιφερειακά δεδομένα βαθμονόμησης τοποθετούνται σε αυτό το μπλοκ. Κανονικά αυτά τα δεδομένα δεν πρέπει να διαγραφούν.
Βήμα 3: Ροή εκκίνησης
Από την παραπάνω εικόνα, Συζητάμε τα ακόλουθα σενάρια: (i) Το OTA δεν χρησιμοποιείται, χρησιμοποιήστε το DAP για να ανεβάσετε πρόγραμμα:
Σε αυτήν την περίπτωση, ο φορτωτής εκκίνησης ελέγχει την υπογραφή της προεπιλεγμένης εικόνας 2 και τη διεύθυνση OTA. Δεδομένου ότι η διεύθυνση OTA έχει αφαιρεθεί, η προεπιλεγμένη εικόνα 2 θα επιλεγεί για εκτέλεση.
(ii) Η εικόνα OTA μεταφέρεται στο Ameba, η διεύθυνση OTA έχει ρυθμιστεί σωστά, η καρφίτσα ανάκτησης δεν έχει οριστεί :
Η Ameba έλαβε ενημερωμένη εικόνα μέσω OTA, η υπογραφή της προεπιλεγμένης εικόνας 2 θα οριστεί σε παλιά υπογραφή.
Το πρόγραμμα εκκίνησης ελέγχει την υπογραφή της προεπιλεγμένης εικόνας 2 και τη διεύθυνση OTA. Θα διαπιστώσει ότι η διεύθυνση OTA περιέχει έγκυρη εικόνα OTA. Δεδομένου ότι ο πείρος αποκατάστασης δεν έχει οριστεί, επιλέγει τη νέα εικόνα (δηλαδή, εικόνα OTA) που θα εκτελεστεί.
(iii) Η εικόνα OTA μεταφέρεται στο Ameba, η διεύθυνση OTA έχει οριστεί σωστά, ο κωδικός ανάκτησης έχει οριστεί
Η Ameba έλαβε ενημερωμένη εικόνα μέσω OTA, η υπογραφή της προεπιλεγμένης εικόνας 2 θα οριστεί σε παλιά υπογραφή.
Το πρόγραμμα εκκίνησης ελέγχει την υπογραφή της προεπιλεγμένης εικόνας 2 και τη διεύθυνση OTA. Θα διαπιστώσει ότι η διεύθυνση OTA περιέχει έγκυρη εικόνα OTA. Στη συνέχεια, ελέγξτε την τιμή του πείρου ανάκτησης. Εάν η καρφίτσα ανάκτησης είναι συνδεδεμένη στο LOW, θα εκτελεστεί η νέα εικόνα (δηλ. Εικόνα OTA). Εάν η καρφίτσα ανάκτησης είναι συνδεδεμένη στο HIGH, η παλιά εικόνα (δηλαδή η προεπιλεγμένη εικόνα 2) θα εκτελεστεί.
Βήμα 4: Παράδειγμα
Για να χρησιμοποιήσετε τη λειτουργία OTA, αναβαθμίστε το υλικολογισμικό DAP σε έκδοση> 0,7 (δεν περιλαμβάνεται το v0.7). Το εργοστασιακά προεπιλεγμένο υλικολογισμικό DAP είναι η έκδοση 0.7. Ακολουθήστε τις οδηγίες για την αναβάθμιση του υλικολογισμικού DAP:
Ανοίξτε το παράδειγμα: "Αρχείο" -> "Παραδείγματα" -> "AmebaOTA" -> "ota_basic"
Συμπληρώστε τις πληροφορίες ssid και κωδικού πρόσβασης στο δείγμα κώδικα για σύνδεση δικτύου.
Υπάρχουν ορισμένες παράμετροι που σχετίζονται με το OTA:
§ MY_VERSION_NUMBER : Στην πρώτη έκδοση, πρέπει να ορίσουμε διεύθυνση OTA και καρφίτσα ανάκτησης. Δεδομένου ότι αυτή τη φορά που ανεβάζουμε μέσω USB είναι η πρώτη έκδοση, δεν χρειάζεται να αλλάξουμε αυτήν την τιμή.
§ OTA_PORT : Το Arduino IDE θα βρει το Ameba μέσω mDNS. Η Ameba θα πει στο Arduino IDE ότι ανοίγει τη θύρα TCP 5000 για να περιμένει την εικόνα OTA.
EC RECOVERY_PIN : Διαμορφώστε τον πείρο που χρησιμοποιείται για ανάκτηση. Χρησιμοποιούμε τον πείρο 18 εδώ.
Στη συνέχεια, χρησιμοποιούμε πρόγραμμα μεταφόρτωσης USB στο Ameba. Κάντε κλικ στην επιλογή Εργαλεία -> Θύρες, ελέγξτε τη σειριακή θύρα για χρήση
Λάβετε υπόψη ότι το Arduino IDE χρησιμοποιεί μία θύρα για μεταφόρτωση προγράμματος και έξοδο καταγραφής. Για να αποφύγουμε την κατάσταση κατά την οποία το αρχείο καταγραφής δεν μπορεί να εξέλθει όταν χρησιμοποιούμε OTA, χρησιμοποιούμε άλλο τερματικό σειριακής θύρας (π.χ. όρο Tera ή στόκος) αντί για σειριακή οθόνη για παρακολούθηση μηνυμάτων καταγραφής.
Στη συνέχεια, κάντε κλικ στο κουμπί μεταφόρτωσης και πατήστε το κουμπί επαναφοράς.
Στο μήνυμα καταγραφής:
1. Μεταξύ "===== Enter Image 1 ====" και "Enter Image 2 ====", μπορείτε να βρείτε το "Flash Image 2: Addr 0xb000". Αυτό σημαίνει ότι η Ameba αποφασίζει να εκκινήσει από την προεπιλεγμένη εικόνα 2 σε 0xb000.
2. Μετά το "Enter Image 2 ====", μπορείτε να βρείτε "This is version 1". Αυτό είναι το μήνυμα καταγραφής που προσθέτουμε στο σκίτσο.
3. Αφού συνδεθεί το Ameba στο AP και λάβει τη διεύθυνση IP "192.168.1.238", ενεργοποιεί το mDNS και περιμένει τον πελάτη.
Στη συνέχεια, τροποποιούμε το "MY_VERSION_NUMBER" σε 2.
Κάντε κλικ στην επιλογή "Εργαλεία" -> "Θύρα", μπορείτε να δείτε μια λίστα με "Θύρες δικτύου". Βρείτε "MyAmeba at 192.168.1.238 (Ameba RTL8195A)", MyAmeba είναι το όνομα συσκευής mDNS που ορίσαμε σε δείγμα κώδικα και "192.168.1.238" είναι η IP του Ameba.
Εάν δεν μπορείτε να βρείτε τη θύρα δικτύου της Ameba, επιβεβαιώστε:
- εάν ο υπολογιστής σας και η Ameba βρίσκονται στο ίδιο τοπικό δίκτυο;
- προσπαθήστε να κάνετε επανεκκίνηση του Arduino IDE.
- ελέγξτε το μήνυμα καταγραφής στο Serial Monitor για να δείτε εάν το Ameba είναι συνδεδεμένο με επιτυχία στο AP.
Στη συνέχεια, κάντε κλικ στο στοιχείο μεταφόρτωση. Αυτή τη φορά το πρόγραμμα θα μεταφορτωθεί μέσω TCP. Στο τερματικό καταγραφής, μπορείτε να δείτε πληροφορίες σύνδεσης προγράμματος -πελάτη.
Όταν η εικόνα OTA γίνει λήψη με επιτυχία, το Ameba θα επανεκκινήσει και το ακόλουθο αρχείο καταγραφής θα εμφανιστεί στο τερματικό καταγραφής.
- Μεταξύ "===== Enter Image 1 ====" και "Enter Image 2 ====", μπορείτε να δείτε ένα μήνυμα καταγραφής "Flash Image 2: Addr 0x80000". Αυτό σημαίνει ότι η Ameba αποφασίζει να ξεκινήσει από την εικόνα OTA σε 0x80000.
- Μετά το "Enter Image 2 ====", το αρχείο καταγραφής "This is version 2" είναι το μήνυμα που προσθέτουμε στο σκίτσο.
Για να ανακτήσετε την προηγούμενη εικόνα μετά τη λήψη της εικόνας OTA στο Ameba, συνδέστε τον ακροδέκτη ανάκτησης που ορίσαμε στο σκίτσο (δηλαδή, τον πείρο 18) στο HIGH (3,3V) και πατήστε επαναφορά.
Στη συνέχεια, επιλέγεται η προεπιλεγμένη εικόνα 2 κατά την εκκίνηση. Σημειώστε ότι η λήψη της εικόνας OTA δεν διαγράφεται. Μόλις αποσυνδεθεί το pin ανάκτησης από το HIGH, η εικόνα OTA θα εκτελεστεί.
Συνοψίζουμε τη ροή ανάπτυξης χρησιμοποιώντας OTA στο παρακάτω σχήμα.
Συνιστάται:
Προγραμματισμός ATmega328 Με Arduino IDE χρησιμοποιώντας 8MHz Crystal: 4 βήματα
Προγραμματισμός ATmega328 Με Arduino IDE χρησιμοποιώντας 8MHz Crystal: Σε αυτό το Instuctable θα καλύψω έναν βήμα προς βήμα οδηγό προγραμματισμού ενός ATmega328P IC (Ο ίδιος μικροελεγκτής που υπάρχει στο Arudino UNO) χρησιμοποιώντας Arduino IDE και ένα Arduino UNO ως προγραμματιστή για να κάνετε τον εαυτό σας προσαρμοσμένο Arduino, για να φτιάξετε τα έργα σας
Προγραμματισμός Arduino μέσω κινητού -- Arduinodroid -- Arduino Ide για Android -- Αναβοσβήνει: 4 βήματα
Προγραμματισμός Arduino μέσω κινητού || Arduinodroid || Arduino Ide για Android || Blink: Εγγραφείτε στο κανάλι μου στο youtube για περισσότερα βίντεο …… Το Arduino είναι σανίδα, το οποίο μπορεί να προγραμματιστεί απευθείας μέσω USB. Είναι πολύ απλό και φθηνό για έργα κολλεγίων και σχολείων ή ακόμα και σε πρωτότυπα προϊόντα. Πολλά προϊόντα βασίζονται πρώτα σε αυτό για
Προγραμματισμός ενός Arduino χρησιμοποιώντας ένα άλλο Arduino για την εμφάνιση ενός κυλιόμενου κειμένου χωρίς βιβλιοθήκη: 5 βήματα
Προγραμματισμός ενός Arduino Χρησιμοποιώντας ένα άλλο Arduino για την εμφάνιση ενός κειμένου κύλισης χωρίς βιβλιοθήκη: Το Sony Spresense ή το Arduino Uno δεν είναι τόσο ακριβά και δεν απαιτούν πολλή ισχύ. Ωστόσο, εάν το έργο σας έχει περιορισμούς ισχύος, χώρου ή ακόμη και προϋπολογισμού, μπορείτε να χρησιμοποιήσετε το Arduino Pro Mini. Σε αντίθεση με το Arduino Pro Micro, το Arduino Pro Mi
Ξεκινώντας με το Esp 8266 Esp-01 Με το Arduino IDE - Εγκατάσταση πινάκων Esp στο Arduino Ide και προγραμματισμός Esp: 4 βήματα
Ξεκινώντας με το Esp 8266 Esp-01 Με το Arduino IDE | Εγκατάσταση πινάκων Esp στο Arduino Ide και προγραμματισμός Esp: Σε αυτά τα εκπαιδευτικά προγράμματα θα μάθουμε πώς να εγκαθιστούμε πίνακες esp8266 στο Arduino IDE και πώς να προγραμματίζουμε esp-01 και να ανεβάζουμε κώδικα σε αυτό. Δεδομένου ότι οι πίνακες esp είναι τόσο δημοφιλείς, σκέφτηκα να διορθώσω ένα εκπαιδευτικό αυτό και οι περισσότεροι άνθρωποι αντιμετωπίζουν πρόβλημα
Το φθηνότερο Arduino -- Το μικρότερο Arduino -- Arduino Pro Mini -- Προγραμματισμός -- Arduino Neno: 6 βήματα (με εικόνες)
Το φθηνότερο Arduino || Το μικρότερο Arduino || Arduino Pro Mini || Προγραμματισμός || Arduino Neno: …………………………. Εγγραφείτε στο κανάλι μου στο YouTube για περισσότερα βίντεο ……. . Αυτό το έργο αφορά τον τρόπο διασύνδεσης ενός μικρότερου και φθηνότερου arduino ποτέ. Το μικρότερο και φθηνότερο arduino είναι το arduino pro mini. Είναι παρόμοιο με το arduino