Πίνακας περιεχομένων:

MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών: 3 βήματα
MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών: 3 βήματα

Βίντεο: MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών: 3 βήματα

Βίντεο: MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών: 3 βήματα
Βίντεο: Raspberry Pi Pico OLED (SSH1106) display tutorial using Arduino 2024, Νοέμβριος
Anonim
MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών
MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών
MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών
MicroPython στον πίνακα αισθητήρων σύνθετων τεχνών

Μια από τις πιο εκπληκτικές πτυχές του μικροελεγκτή ESP32 είναι η ικανότητά του να εκτελεί MicroPython. Αυτό μπορεί να γίνει με δύο τρόπους: εκτέλεση πλήρων προγραμμάτων Python ή διαδραστικά μέσω εφαρμογής κονσόλας. Αυτό το Instructable θα δείξει πώς να χρησιμοποιείτε το MicroPython και με τους δύο τρόπους χρησιμοποιώντας τον πίνακα αισθητήρων σύνθετων τεχνών. Πρώτα θα εκτελέσουμε ένα παράδειγμα εφαρμογής που συγκεντρώνει δεδομένα επιταχυνσιόμετρου από το IMU BNO_085 και στη συνέχεια θα χρησιμοποιήσουμε ένα σειριακό πρόγραμμα για διαδραστικό προγραμματισμό στην Python.

Επίπεδο: Αυτό το σεμινάριο προϋποθέτει κάποια γνώση της Python και ότι η Python είναι εγκατεστημένη. Υποθέτει επίσης τη γνώση βασικών εντολών τερματικού.

Εργαλεία: Τα μόνα εργαλεία που θα χρειαστούμε θα είναι το Sensor Board, ένα τερματικό πρόγραμμα και ένα σειριακό πρόγραμμα κονσόλας. Σε Mac, μπορείτε απλά να χρησιμοποιήσετε τερματικό. Σε ένα μηχάνημα Windows, θα πρέπει να κάνετε λήψη και εγκατάσταση ενός τερματικού προγράμματος. Για τη σειριακή κονσόλα. Ο στόκος είναι πάντα μια καλή επιλογή.

Βήμα 1: Λήψη υλικολογισμικού και βιβλιοθηκών

Για να ξεκινήσετε, θα πρέπει να κατεβάσουμε το προσαρμοσμένο υλικολογισμικό που παρέχεται από την Complex Arts και στη συνέχεια να το αναβοσβήνουμε στον πίνακα αισθητήρων. Μπορείτε να βρείτε το υλικολογισμικό εδώ:

Κατεβάστε το αρχείο firmware.bin και τοποθετήστε το στο φάκελο της επιλογής σας. Επίσης, τελικά θα χρειαστείτε το παράδειγμα του προγράμματος Complex Arts, οπότε ίσως να το κάνετε τώρα. μεταβείτε στη διεύθυνση: https://github.com/ComplexArts/SensorBoardPython και κάντε κλώνο ή κάντε λήψη στη θέση της επιλογής σας.

Μόλις λάβετε τα αρχεία, θα χρειαστούμε μερικά πακέτα για διασύνδεση με το ESP32. Το πρώτο πακέτο που θα χρειαστούμε είναι το esptool.py. Για να το εγκαταστήσετε, απλά πληκτρολογήστε

pip εγκατάσταση esptool

στο τερματικό.

Μόλις εγκατασταθεί το esptool, μπορούμε να διαγράψουμε και να αναβοσβήσουμε ξανά το τσιπ. Για να το κάνετε αυτό, εισαγάγετε

esptool.py --chip esp32 --port COM4 erase_flash

για τη θύρα, εισαγάγετε τη σειριακή θύρα που συμπίπτει με την πλακέτα αισθητήρων. Σε Mac, αυτό θα μοιάζει με --port /dev /ttyUSB0

Μόλις γίνει αυτό, θα αναβοσβήνουμε το τσιπ με:

esptool.py --chip esp32 --port COM4 -baud 460800 write_flash -z 0x1000 firmware.bin

Και πάλι, αλλάξτε τη θύρα ανάλογα.

Βήμα 2: Εργασία με το MicroPython

Εργασία με το MicroPython
Εργασία με το MicroPython

Εάν ελέγξουμε τη σειριακή έξοδο του πίνακα αισθητήρων σε αυτό το σημείο, θα δούμε την Python REPL (ο βρόχος ανάγνωσης-εκτύπωσης: >>>) Για να γίνει αυτό, θα χρειαστούμε ένα σειριακό πρόγραμμα κονσόλας. Το Putty είναι μια καλή επιλογή καθώς παρέχει επιλογές για SSH και telnet, αλλά και απλή σειριακή επικοινωνία όπως θα κάνουμε εδώ. putty.org. Μόλις το εγκαταστήσετε, ανοίξτε το και επιλέξτε "Serial" στην ενότητα "Τύπος σύνδεσης:" Θα πρέπει να πληκτρολογήσετε το ίδιο όνομα σειριακής θύρας που καταχωρίσατε για το esptool παραπάνω, και στη συνέχεια έναν ρυθμό baud 115200 για την ταχύτητα. Προχωρήστε και κάντε κλικ στο "Άνοιγμα". Και υπάρχει Python!

Τώρα θα θέλουμε να ανεβάσουμε και να εκτελέσουμε τον παράδειγμα κώδικα. Για να το κάνετε αυτό, μεταβείτε στο φάκελο όπου αποθηκεύσατε νωρίτερα τα παραδείγματα του SensorBoardPython. Θα χρειαστούμε το φοβερό πακέτο ampy του Adafruit. Μπορείτε να το εγκαταστήσετε με:

pip εγκατάσταση adafruit-ampy = 0.6.3

Μόλις το έχετε, χρησιμοποιήστε το ampy για να ανεβάσετε το παράδειγμα του επιταχυνσιόμετρου στον πίνακα:

ampy -p COM4 βάλτε επιταχυνσιόμετρο.py

(αλλάζοντας ανάλογα τη θύρα, φυσικά). Τώρα επαναφέρετε την πλακέτα σας με το κουμπί επαναφοράς. Θα επιστρέψουμε στο Putty σε αυτό το σημείο και στην εντολή >>>, πληκτρολογήστε

επιταχυνσιόμετρο εισαγωγής

Βιόλα! Τώρα τρέχετε τον κωδικό accelerometer.py στον πίνακα αισθητήρων! Ο κωδικός θα τρέξει για 20 δευτερόλεπτα και μετά θα σταματήσει. Παρατηρήστε ότι ενώ λειτουργεί ο κωδικός του επιταχυνσιόμετρου, η μπλε λυχνία LED στον πίνακα αναβοσβήνει. Για όσους είναι πιο εξοικειωμένοι με την Python, θα παρατηρήσετε ότι αυτό γίνεται χωρίς νήματα και χωρίς καθυστέρηση (). Αυτό οφείλεται στη χρήση της βιβλιοθήκης Python asyncio, η οποία παρέχει εξαιρετικές μεθόδους για ταυτόχρονη εκτέλεση εργασιών και είναι εξαιρετικά χρήσιμη σε ενσωματωμένες πλατφόρμες όπως το ESP32. Εάν δεν είστε εξοικειωμένοι με αυτό, αξίζει να το ελέγξετε. υπάρχει ένα σπουδαίο σεμινάριο εδώ: https://github.com/peterhinch/micropython-async/b… (αλλά να σας προειδοποιήσω, είναι λίγο τρελό).

Βήμα 3: MicroPython Over Serial

Επιστροφή στην εργασία που έχουμε! Όταν σταματήσει ο κωδικός του επιταχυνσιόμετρου, θα δείτε ξανά το Python >>>. Τώρα μπορούμε να προγραμματίσουμε διαδραστικά χρησιμοποιώντας τον πίνακα αισθητήρων ως διερμηνέα Python. Για να το κάνετε αυτό, εισαγάγετε

>> x = 10

>> y = 11

>> x + y

21

Παρόλο που αυτό είναι το πιο βασικό παράδειγμα, μπορούμε εύκολα να αρχίσουμε να δημιουργούμε πιο πολύπλοκο κώδικα χρησιμοποιώντας τις βιβλιοθήκες Complex Arts ως αφετηρία. Αυτό σας επιτρέπει να εκτελείτε μετρήσεις θέσης και κίνηση εν κινήσει, με έλεγχο σε πραγματικό χρόνο. Με τις καρφίτσες GPIO που διατίθενται στον πίνακα αισθητήρων, μπορείτε να συνδέσετε εύκολα servos, φώτα, αισθητήρες, κινητήρες ή οποιονδήποτε αριθμό φυσικών συσκευών, χρησιμοποιώντας τους είτε διαδραστικά είτε μέσω προγράμματος Python. Καλα να περνατε!

Για περισσότερες πληροφορίες, ελέγξτε αυτούς τους άλλους πόρους:

complexarts.net/home/

complexarts.net/docs/bno085/

Συνιστάται: