Unihiker K10: Cheat Sheet für MicroPython
Die grundlegenden Befehle von MicroPython sind beim Unihiker K10 mit dem Mikrocontroller ESP32-S3 nicht anders als bspw. bei einem RP2040 oder einem anderen Mikrocontroller.
Darüberhinaus sind im Unihiker K10 Bauteile und Sensoren integriert, die softwareseitig individuell angesprochen werden müssen. Hierzu sind in der MicroPython-Firmware für den Unihiker K10 zusätzliche Bibliotheken enthalten, die vom Hersteller DFRobot bereitgestellt werden, aber mit MicroPython nichts zu tun haben.
Eine vollständige Befehlsreferenz für diese Bibliotheken gibt es nicht. Vom Hersteller DFRobot werden nur ein paar Programmcode-Beispiele für alle Bauteile und Sensoren bereitgestellt, die sich auf dem Board befinden.
Damit ist leider nicht das gesamte Leistungsspektrum aller Bauteile abrufbar, wie sie beworben werden. Das ist nur mit Mind+ möglich.
Übersicht: Onboard-Komponenten des Unihiker K10 programmieren
Im folgenden sind ein paar Programmcode-Beispiele herausgegriffen, getestet und um eine Beschreibung ergänzt.
- Onboard-RGB-LEDs programmieren
- Display programmieren
- Onboard-Taster programmieren
- WLAN-Verbindung herstellen
- Mikrofon und Lautsprecher programmieren
- Temperatur-Sensor programmieren
- Beschleunigungssensor programmieren
- Lichtsensor programmieren
- Kamera programmieren
Onboard-RGB-LEDs programmieren
Im unteren Bereich des Unihiker K10 befinden sich hinter dem Display 3 RGB-LEDs, die sich einzeln mit verschiedenen Farben programmieren lassen.
Die Farben lassen sich wahlweise mit einzelnen Dezimalwerten für RGB oder einem hexadezimalen Wert angeben.
# Bibliotheken laden from unihiker_k10 import rgb import time # LED links (0 = kein Farbanteil / 255 = höchster Farbanteil) rgb.write(0, R=255, G=0, B=0) # Rot time.sleep(2) # LED mitte rgb.write(1, R=0, G=255, B=0) # Grün time.sleep(2) # LED rechts rgb.write(2, R=0, G=0, B=255) # Blau time.sleep(2) # Alle LEDs ausschalten rgb.clear()
Display programmieren
Das Display ILI9341 muss vor der Ausgabe initialisiert werden. Anschließend kann man eine Hintergrundfarbe (als Hexcode) einstellen und zum Beispiel Text ausgeben. Der Text kann zeilenweise oder frei positioniert werden.
# Bibliotheken laden from unihiker_k10 import screen import time # Initialisieren: Display screen.init() # Display: Hintergrund-Farbe (weiß) screen.show_bg(color=0xffffff) screen.show_draw() time.sleep(2) # Display: Hintergrund-Farbe (schwarz) screen.show_bg(color=0x000000) screen.show_draw() time.sleep(2) # Display: Hintergrund-Farbe (weiß) screen.show_bg(color=0xffffff) screen.show_draw() time.sleep(2) # Display: Text for row in range (1, 18): screen.draw_text(text=str(row)+'. Zeile', line=row-1, color=0x000000) screen.show_draw() time.sleep(1) # Display: Inhalt löschen screen.clear()
Onboard-Taster programmieren
Variante 1
Die Taster A und B an der Seite können initialisiert und ihr Status abgefragt werden.
Zu beachten ist, dass die Taster nicht entprellt sind.
# Bibliotheken laden from unihiker_k10 import button import time # Initialisieren: Taster A (oben) btn_a = button(button.a) # Initialiseren: Taster B (unten) btn_b = button(button.b) # Wiederholung (Endlos-Schleife) while True: time.sleep(0.1) # Taster A gedrückt if btn_a.status() == 1: print('Taster A gedrückt') time.sleep(0.2) # Taster B gedrückt if btn_b.status() == 1: print('Taster B gedrückt') time.sleep(0.2)
Variante 2
Wenn der Programmcode nicht nur mit dem Abfragen des Status eines Tasters beschäftigt sein soll, kann man separate Funktionen definieren, die ausgeführt werden, wenn ein Taster gedrückt und losgelassen wird.
# Bibliotheken laden from unihiker_k10 import button import time # Initialisieren: Taster A (oben) btn_a = button(button.a) # Initialiseren: Taster B (unten) btn_b = button(button.b) # Funktionen def button_a_pressed(): print('Taster A gedrückt') def button_a_released(): print('Taster A losgelassen') def button_b_pressed(): print('Taster B gedrückt') def button_b_released(): print('Taster B losgelassen') # Aufruf von Funktionen, wenn Taster gedrückt werden btn_a.event_pressed = button_a_pressed btn_b.event_pressed = button_b_pressed # Aufruf von Funktionen, wenn Taster losgelassen werden btn_a.event_released = button_a_released btn_b.event_released = button_b_released # Wiederholung (Endlos-Schleife) while True: time.sleep(0.1) pass
WLAN-Verbindung herstellen
Wenn man eine Verbindung zu einem WLAN herstellen will, dann empfiehlt es sich nicht die MicroPython-Funktionen, sondern die von der Unihiker-Firmware zu verwenden.
# Bibliotheken laden from unihiker_k10 import wifi # WLAN-Zugangsdaten wlan_ssid = 'WLAN-Name' wlan_pwd = 'WLAN-Passwort' # WLAN-Verbindung herstellen print('WLAN: Verbindung zu', wlan_ssid, 'wird hergestellt') wifi.connect(wlan_ssid, wlan_pwd, timeout=50000) # WLAN-Verbindung prüfen if wifi.status() == True: print('WLAN: Verbindung hergestellt') else: print('WLAN: Verbindung NICHT hergestellt') # Netzwerk-Informationen abrufen und anzeigen print('WLAN:', wifi.info())
Mikrofon und Lautsprecher programmieren
Aufnahme starten und als WAV-Datei im Flash-Speicher speichern:
# Bibliotheken laden from unihiker_k10 import mic import time # Countdown for sec in range (5, 1, -1): print('Aufnahme startet in', sec, 'Sekunden', end=" \r") time.sleep(1) print('Aufnahme startet jetzt für 5 Sekunden') # Aufnahme starten und als Datei speichern mic.recode_sys('record.wav', time=5) print('Aufnahme beendet')
WAV-Datei vom Flash-Speicher abspielen:
# Bibliotheken laden from unihiker_k10 import speaker # Aufnahme abspielen speaker.play_sys_music('record.wav')
Temperatur-Sensor programmieren
Der Temperatur- und Luftfeuchtigkeitssensor AHT20 liefert die Temperatur wahlweise in Grad Celsius und Grad Fahrenheit. Die Luftfeuchtigkeit in %RH.
# Bibliotheken laden from unihiker_k10 import temp_humi import time # Temperatur in Grad Celsius print(' Temperatur:', temp_humi.read_temp(), '°C') # Temperatur in Grad Fahrenheit print(' Temperatur:', temp_humi.read_temp_f(), '°F') # Luftfeuchtigkeit in Prozent print('Luftfeuchtigkeit:', temp_humi.read_humi(), '%RH')
Beschleunigungssensor programmieren
Der Beschleunigungssensor SC7A20H liefert Daten der Beschleunigung bzw. der Schwerkraft in Richtung der X-, Y- und Z-Achse. Damit kann man die Lage oder Position des Unihiker K10 bestimmen.
# Bibliotheken laden from unihiker_k10 import screen, acce import time # Initialisieren: Display screen.init() screen.show_bg(color=0xffffff) # Wiederholung (Endlos-Schleife) while True: # Werte ermitteln in m/s² acc_x = round(acce.read_x(), 1) acc_y = round(acce.read_y(), 1) acc_z = round(acce.read_z(), 1) screen.draw_text(text='X: ' + str(acc_x), line=1, color=0x000000) screen.draw_text(text='Y: ' + str(acc_y), line=2, color=0x000000) screen.draw_text(text='Z: ' + str(acc_z), line=3, color=0x000000) screen.show_draw() time.sleep(1)
Lichtsensor programmieren
Der Lichtsensor LTR303ALS liefert Daten der Beleuchtungsstärke in Lux.
# Bibliotheken laden from unihiker_k10 import light import time # Wiederholung (Endlos-Schleife) while True: print(light.read(), end=' Lux \r') time.sleep(1)
Kamera programmieren
Die Kamera mit dem Bildsensor GC2145 muss initialisiert werden. Es ist möglich, das Kamerabild auf dem Display anzuzeigen.
# Bibliotheken laden from unihiker_k10 import screen, camera # Initialisierung: Display screen.init() # Initialisierung: Kamera camera.init() # Kamera auf dem Display anzeigen screen.show_camera(camera)
Weitere verwandte Themen:
- Unihiker K10 von DFRobot
- Unihiker K10: Hardware, Anschlüsse und Schnittstellen
- Unihiker K10: Programmieren mit MicroPython
- Unihiker K10: MicroPython installieren
Frag Elektronik-Kompendium.de
Elektronik-Set Starter Edition
Elektronik erleben mit dem Elektronik-Set Starter Edition
Perfekt für Einsteiger und Wiedereinsteiger
- Elektronik-Einstieg ohne Vorkenntnisse
- Schnelles Verständnis für Bauteile und Schaltsymbole
- Ohne Lötkolben experimentieren: Bauteile einfach stecken
Keine Lust alleine zu experimentieren?
Dann buche einen „Online-Workshop Elektronik Starter“ zum Elektronik-Set dazu. Unsere Online-Workshops sind praxisorientiert und bietet eine grundlegende und fundierte Einarbeitung in die Elektronik.
Elektronik-Set Starter Edition
Elektronik erleben mit dem Elektronik-Set Starter Edition
Perfekt für Einsteiger und Wiedereinsteiger
- Elektronik-Einstieg ohne Vorkenntnisse
- Schnelles Verständnis für Bauteile und Schaltsymbole
- Ohne Lötkolben experimentieren: Bauteile einfach stecken
Keine Lust alleine zu experimentieren?
Dann buche einen Online-Workshop Elektronik Starter zum Elektronik-Set dazu. Unsere Online-Workshops sind praxisorientiert und bietet eine grundlegende und fundierte Einarbeitung in die Elektronik.
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.