Da der C3PO Roboter noch etwas Platz auf dem Dach hat, soll er eine Displayanzeige erhalten. Eine geeignet Bibliothek zur Ansteuerung des Displays habe ich hier gefunden:
https://github.com/dhylands/python_lcd/tree/master/lcd
Folgende Bibliotheken benötigt man aus dem Repository:
i2c_lcd.py und lcd_api.py
Am Besten man kopiert sie in den lib Unterordner auf dem ESP32.
Als Beispiel soll ein einfacher Rechner dienen:
# test.py
from machine import I2C, SoftI2C, Timer, Pin
from i2c_lcd import I2cLcd
DEFAULT_I2C_ADDR = 0x27
i2c = SoftI2C(scl=Pin(26), sda=Pin(25), freq=400000)
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
lcd.clear()
lcd.putstr('Init')
count = 0
timer = Timer(-1)
def set_counter(t):
global lcd
global count
global sensors
count = count + 1
lcd.clear() # Clears the LCD,
a = count
b = count + count
c = a + b
lcd.putstr(f"Rechner: {a} + {b} = {c}")
def start():
global timer
sensors.start(100)
timer.init(freq=1, mode=Timer.PERIODIC, callback=set_counter)
def stop():
global timer
timer.deinit()