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
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
Elektronik-Fibel
Elektronik einfach und leicht verständlich
Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.


