Listing 4
spi.py
from machine import Pin, SPI from time import sleep spi = SPI(0, sck=Pin(2), mosi=Pin(3), miso=Pin(4), baudrate=100000) cs = Pin(5, Pin.OUT) cs.value(1) # sperren cs.value(0) # freigeben buffer_out=bytearray([0x01, 0x80, 0x00]) # Kanal 1 single buffer_in=bytearray(3) spi.write_readinto(buffer_out, buffer_in ) cs.value(1) # sperren print(((buffer_in[1] & 0x03) << 8) | buffer_in[2])
UART-Testprogramm
Die seriellen Schnittstellen des Pi Pico lassen sich testen, indem man sie über Kreuz miteinander verbindet. Dadurch landen die von einer Schnittstelle gesendeten Daten im Eingangspuffer der anderen.
Wie Listing 5 zeigt, konfigurieren Sie die beiden seriellen Schnittstellen in den Zeilen 3 und 4 analog. Dabei geben Sie die GPIO-Pins und die Datenübertragungsparameter der Schnittstelle an. Danach wird über serial0 eine Nachricht versendet (Zeile 6). Sie lässt sich danach wieder aus dem Puffer von serial1 auslesen (Zeile 9). Die Kommunikation funktioniert genauso in die entgegengesetzte Richtung.
Listing 5
uart.py
from machine import UART, Pin
from time import sleep
serial0 = UART(0, baudrate=115200, tx=Pin(12), rx=Pin(13), bits=8, parity=None, stop=1)
serial1 = UART(1, baudrate=115200, tx=Pin(8), rx=Pin(9), bits=8, parity=None, stop=1)
send = 'Ei Gude, wie?'
serial0.write(send)
print('Daten gesendet:', send)
sleep(0.1)
receive = serial1.readline()
print('Daten empfangen:', receive.decode('utf-8'))
Fazit
Hinter Mpremote verbirgt sich eine schnelle und robuste Alternative zu den IDEs, die üblicherweise zur MicroPython-Programmierung Verwendung finden. Die Bedienung geht einfach von der Hand, Sie verwenden den Texteditor Ihrer Wahl. Darüber hinaus schont Mpremote den Flash-Speicher des Mikrocontrollers.
MicroPython unterstützt die üblichen Schnittstellen in vollem Umfang, alles funktioniert wie erwartet. Für Halbleiter, die ein etwas komplexeres Zugriffsverfahren erfordern, gibt es im Internet meist eine passende Bibliothek. Sollte tatsächlich einmal etwas fehlen, implementieren Sie mit MicroPython kurzerhand selbst eine Lösung. (csi)
Der Autor
Martin Mohr hat die komplette Entwicklung der modernen Computertechnik live miterlebt. Nach dem Studium entwickelte er überwiegend Java-Applikationen. Mit dem Raspberry Pi erwachte seine alte Liebe zur Elektronik wieder.
Infos
- Raspberry Pi Pico: https://buyzero.de/products/raspberry-pi-pico-w-h-konfigurator-pico-pico-w-pico-h-pico-wh
- BME680-Sensor bestellen: https://www.amazon.de/CJMCU-680-Temperatur-Feuchtesensor-Modulh%C3%B6he-Entwicklungsboard/dp/B07G16X8YH/
- Datenblatt BME680: https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme680-ds001.pdf
- MicroPython-Bibliothek zum BME680: https://github.com/robert-hh/BME680-Micropython
- MCP3008 bestellen: https://www.reichelt.de/10-bit-serieller-a-d-wandler-8-kanal-2-7v-spi-dip-16-mcp3008-i-p-p280371.html
- Datenblatt MCP3008: https://cdn-reichelt.de/documents/datenblatt/A200/MC3008.pdf
- KiCad: https://www.kicad.org
- Mpremote: https://docs.micropython.org/en/latest/reference/mpremote.html





