Inhoudsopgave:

MicroPython op het Complex Arts Sensor Board - Ajarnpa
MicroPython op het Complex Arts Sensor Board - Ajarnpa

Video: MicroPython op het Complex Arts Sensor Board - Ajarnpa

Video: MicroPython op het Complex Arts Sensor Board - Ajarnpa
Video: Moving from Arduino to MicroPython - 10 Things you need to know. 2024, November
Anonim
MicroPython op het Complex Arts Sensor Board
MicroPython op het Complex Arts Sensor Board
MicroPython op het Complex Arts Sensor Board
MicroPython op het Complex Arts Sensor Board

Een van de meest verbazingwekkende aspecten van de ESP32-microcontroller is de mogelijkheid om MicroPython uit te voeren. Dit kan op twee manieren: volledige Python-programma's draaien, of interactief via een consoletoepassing. Deze Instructable zal laten zien hoe MicroPython te gebruiken is in beide richtingen met behulp van het Complex Arts Sensor Board. We zullen eerst een voorbeeldtoepassing uitvoeren die versnellingsmetergegevens verzamelt van de BNO_085 IMU, daarna zullen we een serieel programma gebruiken om interactief te programmeren in Python.

Niveau: Deze tutorial veronderstelt enige kennis van Python en dat Python is geïnstalleerd. Het veronderstelt ook kennis van elementaire terminalcommando's.

Hulpmiddelen: de enige hulpmiddelen die we nodig hebben, zijn het sensorbord, een terminalprogramma en een serieel consoleprogramma. Op een Mac kun je gewoon terminal gebruiken. Op een Windows-computer moet u een terminalprogramma downloaden en installeren. Voor de seriële console. Putty is altijd een goede keuze.

Stap 1: De firmware en bibliotheken verkrijgen

Om te beginnen, moeten we de aangepaste firmware van Complex Arts downloaden en deze vervolgens naar het sensorbord flashen. De firmware is hier te vinden:

Download het bestand firmware.bin en plaats het in de map van uw keuze. Je zult uiteindelijk ook het Complex Arts-voorbeeldprogramma nodig hebben, dus je kunt dat net zo goed nu doen; ga naar: https://github.com/ComplexArts/SensorBoardPython en git clone of download naar de locatie van uw keuze.

Zodra je de bestanden hebt, hebben we een paar pakketten nodig voor de interface met de ESP32. Het eerste pakket dat we nodig hebben is esptool.py. Om het te installeren, typt u gewoon

pip install esptool

in de terminal.

Zodra esptool is geïnstalleerd, kunnen we de chip wissen en opnieuw flashen. Voer hiervoor in

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

voer voor de poort de seriële poort in die samenvalt met de sensorkaart. Op een Mac zou dat er ongeveer zo uitzien --port /dev/ttyUSB0

Zodra dit is gebeurd, flitsen we de chip met:

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

Wijzig de poort opnieuw dienovereenkomstig.

Stap 2: Werken met MicroPython

Werken met MicroPython
Werken met MicroPython

Als we nu de seriële uitvoer van het sensorbord controleren, zien we de Python REPL (de read-eval-print-lus: >>>). Om dit te doen, hebben we een serieel consoleprogramma nodig. Putty is een goede optie omdat het opties biedt voor SSH en telnet, maar ook eenvoudige seriële communicatie zoals we hier zullen doen. putty.org. Zodra je dat hebt geïnstalleerd, open je het en selecteer je "Serial" onder "Connection type:" Je moet dezelfde seriële poortnaam typen die je hebt ingevoerd voor de esptool hierboven, en vervolgens een baudrate van 115200 voor de snelheid. Ga je gang en klik op "Openen". En daar is Python!

Nu willen we onze voorbeeldcode uploaden en uitvoeren. Ga hiervoor naar de map waar u eerder de SensorBoardPython-voorbeelden hebt opgeslagen. We hebben het geweldige ampy-pakket van Adafruit nodig. Dat kan je installeren met:

pip install adafruit-ampy=0.6.3

Als je het eenmaal hebt, gebruik je ampy om het voorbeeld van de versnellingsmeter naar het bord te uploaden:

ampy -p COM4 put accelerometer.py

(natuurlijk de poort dienovereenkomstig wijzigen). Reset nu je board met de reset-knop. We gaan op dit punt terug naar Putty en typ bij de >>> prompt

acceleratiemeter importeren

Altviool! U voert nu de accelerometer.py-code uit op het sensorbord! De code wordt 20 seconden uitgevoerd en stopt dan. Merk op dat terwijl de accelerometercode loopt, de blauwe LED op het bord knippert. Voor degenen die meer bekend zijn met Python, je zult merken dat dit wordt gedaan zonder threading en zonder vertraging (). Dat komt door het gebruik van de asyncio-bibliotheek van Python, die geweldige methoden biedt om taken tegelijkertijd uit te voeren en super handig is op embedded platforms zoals de ESP32. Als je er niet bekend mee bent, is het de moeite van het bekijken waard; er is hier een geweldige tutorial: https://github.com/peterhinch/micropython-async/b… (maar wees gewaarschuwd, het is een beetje bedwelmend).

Stap 3: MicroPython over serieel

Terug naar de taak bij de hand! Wanneer de accelerometercode stopt, zie je opnieuw de Python >>>. Nu kunnen we interactief programmeren met het Sensor Board als onze Python-interpreter. Voer hiervoor in

>>x = 10

>>j = 11

>>x + y

21

Hoewel dit de meest elementaire voorbeelden zijn, kunnen we gemakkelijk beginnen met het maken van complexere code met behulp van de Complex Arts-bibliotheken als uitgangspunt. Dit stelt u in staat om positiemetingen en beweging on-the-fly uit te voeren, met realtime controle. Met de GPIO-pinnen die beschikbaar zijn op het sensorbord, kunt u eenvoudig servo's, lichten, sensoren, motoren of een willekeurig aantal fysieke apparaten aansluiten, hetzij interactief, hetzij via een Python-programma. Veel plezier!

Bekijk deze andere bronnen voor meer informatie:

complexarts.net/home/

complexarts.net/docs/bno085/

Aanbevolen: