Inhaltsverzeichnis:

MicroPython auf der Sensorplatine von Complex Arts - Gunook
MicroPython auf der Sensorplatine von Complex Arts - Gunook

Video: MicroPython auf der Sensorplatine von Complex Arts - Gunook

Video: MicroPython auf der Sensorplatine von Complex Arts - Gunook
Video: 35C3 - MicroPython – Python for Microcontrollers - deutsche Übersetzung 2024, November
Anonim
MicroPython auf dem Complex Arts Sensor Board
MicroPython auf dem Complex Arts Sensor Board
MicroPython auf dem Complex Arts Sensor Board
MicroPython auf dem Complex Arts Sensor Board

Einer der erstaunlichsten Aspekte des ESP32-Mikrocontrollers ist seine Fähigkeit, MicroPython auszuführen. Dies kann auf zwei Arten erfolgen: Ausführen vollständiger Python-Programme oder interaktiv über eine Konsolenanwendung. Dieses Instructable zeigt, wie MicroPython in beide Richtungen mit dem Complex Arts Sensor Board verwendet wird. Wir führen zuerst eine Beispielanwendung aus, die Beschleunigungsmesserdaten von der BNO_085 IMU sammelt, dann verwenden wir ein serielles Programm, um interaktiv in Python zu programmieren.

Level: Dieses Tutorial setzt einige Python-Kenntnisse voraus und dass Python installiert ist. Es setzt auch die Kenntnis grundlegender Terminalbefehle voraus.

Tools: Die einzigen Tools, die wir benötigen, sind das Sensor Board, ein Terminalprogramm und ein serielles Konsolenprogramm. Auf einem Mac können Sie einfach das Terminal verwenden. Auf einem Windows-Computer müssen Sie ein Terminalprogramm herunterladen und installieren. Für die serielle Konsole. Spachtelmasse ist immer eine gute Wahl.

Schritt 1: Abrufen der Firmware und Bibliotheken

Um zu beginnen, müssen wir die benutzerdefinierte Firmware von Complex Arts herunterladen und dann auf das Sensor Board flashen. Die Firmware finden Sie hier:

Laden Sie die Datei firmware.bin herunter und legen Sie sie im Ordner Ihrer Wahl ab. Sie werden schließlich auch das Complex Arts-Beispielprogramm benötigen, also können Sie das gleich jetzt tun; Gehen Sie zu: https://github.com/ComplexArts/SensorBoardPython und git clone oder laden Sie es an den Ort Ihrer Wahl herunter.

Sobald Sie die Dateien haben, benötigen wir einige Pakete für die Verbindung mit dem ESP32. Das erste Paket, das wir benötigen, ist esptool.py. Um es zu installieren, geben Sie einfach ein

pip installieren esptool

im Terminal.

Sobald esptool installiert ist, können wir den Chip löschen und dann neu flashen. Geben Sie dazu ein

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

Geben Sie für den Port den seriellen Port ein, der mit der Sensorplatine übereinstimmt. Auf einem Mac würde das etwa so aussehen --port /dev/ttyUSB0

Sobald dies erledigt ist, flashen wir den Chip mit:

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

Ändern Sie auch hier den Port entsprechend.

Schritt 2: Arbeiten mit MicroPython

Arbeiten mit MicroPython
Arbeiten mit MicroPython

Wenn wir an dieser Stelle die serielle Ausgabe des Sensor Boards überprüfen, sehen wir die Python REPL (die read-eval-print-Schleife: >>>). Dazu benötigen wir ein serielles Konsolenprogramm. Putty ist eine gute Option, da es Optionen für SSH und Telnet bietet, aber auch einfache serielle Kommunikation, wie wir es hier tun werden. putty.org. Sobald Sie das installiert haben, öffnen Sie es und wählen Sie „Seriell“unter „Verbindungstyp:“Sie müssen den gleichen seriellen Portnamen eingeben, den Sie oben für das esptool eingegeben haben, dann eine Baudrate von 115200 für die Geschwindigkeit. Fahren Sie fort und klicken Sie auf "Öffnen". Und es gibt Python!

Jetzt wollen wir unseren Beispielcode hochladen und ausführen. Gehen Sie dazu in den Ordner, in dem Sie zuvor die SensorBoardPython-Beispiele gespeichert haben. Wir brauchen das fantastische Ampy-Paket von Adafruit. Das kannst du installieren mit:

pip install adafruit-ampy=0.6.3

Sobald Sie es haben, verwenden Sie ampy, um das Beschleunigungsmesser-Beispiel auf das Board hochzuladen:

ampy -p COM4 set accelerometer.py

(natürlich den Port entsprechend ändern). Setzen Sie nun Ihr Board mit der Reset-Taste zurück. Wir kehren an dieser Stelle zu Putty zurück und geben an der >>> Eingabeaufforderung ein

Beschleunigungsmesser importieren

Viola! Sie führen jetzt den accelerometer.py-Code auf der Sensorplatine aus! Der Code wird 20 Sekunden lang ausgeführt und dann angehalten. Beachten Sie, dass die blaue LED auf der Platine blinkt, während der Beschleunigungsmessercode ausgeführt wird. Für diejenigen, die besser mit Python vertraut sind, werden Sie feststellen, dass dies ohne Threading und ohne delay() erfolgt. Dies liegt an der Verwendung der Asyncio-Bibliothek von Python, die großartige Methoden zum gleichzeitigen Ausführen von Aufgaben bietet und auf eingebetteten Plattformen wie dem ESP32 sehr nützlich ist. Wenn Sie damit nicht vertraut sind, sollten Sie es sich ansehen. Hier gibt es ein großartiges Tutorial: https://github.com/peterhinch/micropython-async/b… (aber seien Sie gewarnt, es ist ein wenig berauschend).

Schritt 3: MicroPython über seriell

Zurück zur Aufgabe! Wenn der Beschleunigungsmesser-Code anhält, sehen Sie wieder Python >>>. Jetzt können wir interaktiv programmieren, indem wir das Sensor Board als unseren Python-Interpreter verwenden. Geben Sie dazu ein

>>x = 10

>>y = 11

>>x + y

21

Obwohl dies das grundlegendste Beispiel ist, können wir leicht damit beginnen, komplexeren Code zu erstellen, indem wir die Complex Arts-Bibliotheken als Ausgangspunkt verwenden. Auf diese Weise können Sie Positionsmessungen und Bewegungen im Handumdrehen mit Echtzeitsteuerung durchführen. Mit den auf der Sensorplatine verfügbaren GPIO-Pins können Sie problemlos Servos, Lichter, Sensoren, Motoren oder eine beliebige Anzahl physischer Geräte anschließen, indem Sie sie entweder interaktiv oder über ein Python-Programm verwenden. Spaß haben!

Weitere Informationen finden Sie in diesen anderen Ressourcen:

complexarts.net/home/

complexarts.net/docs/bno085/

Empfohlen: