Raspberry Pi Pico: OLED-Display zum Anzeigen der Kommandozeile

Ein mehrzeiliges OLED-Display kann vergleichsweise einfach als Ersatz für die Anzeige der Kommandozeile in der Thonny Python IDE verwendet werden. Ein OLED-Display mit 128 x 64 Pixeln hat 6 ganze Zeilen mit jeweils 16 Zeichen.
So ein OLED-Display ist dann praktisch, wenn man den Raspberry Pi Pico ohne Host-Computer betreibt, aber trotzdem aussagekräftige Text-Informationen bekommen möchte, die man eigentlich auf der Kommandozeile der Thonny Python IDE per „print“ ausgeben würde.

Wenn Du noch keine Erfahrung mit einem OLED-Display hast, dann empfiehlt es sich zuerst mit der Ansteuerung über den I2C-Schnittstelle und die Programmierung vertraut zu machen. Außerdem wird eine externe Bibliothek benötigt.

Aufbau und Bauteile

Raspberry Pi Pico: OLED-Display mit I2C programmieren (SSD1306)

Hinweis: In diesem Beispiel wird ein 0,96 Zoll großes OLED-Display mit 128 x 64 Pixeln verwendet.

Raspberry Pi Pico Display
Pin 38 GND GND
Pin 36 VCC +3,3V VCC
Pin 22 GPIO 17 SCL/SCK
Pin 21 GPIO 16 SDA

MicroPython-Bibliotheken für I2C und das Display

Um das Display über die I2C-Schnittstelle softwareseitig ansteuern zu können, ist eine externe MicroPython-Bibliothek erforderlich. Der Download und die Installation kann bequem über den Paketmanager der Thonny Python IDE erfolgen.

Programmcode

In diesem Programmcode sind zwei Besonderheiten:

  1. Es gibt eine Funktion mit dem Namen „print_oled“, die das selbe macht, wie „print“ auf der Kommandozeile in der Thonny Python IDE. In der Regel kann man „print“ durch „print_oled“ ersetzen.
  2. Über Ausnahmebehandlungen ist sichergestellt, dass der Programmcode auch dann noch funktioniert, wenn kein Display oder wenn es fehlerhaft angeschlossen sein sollte. In dem Fall wird alles per „print“ auf der Kommandozeile ausgegeben.
# Bibliotheken laden
from machine import Pin
import time

# Zeilen für die Shell
shell = []

# I2C und OLED-Display Initialisieren
try:
    from machine import I2C
    import ssd1306
    i2c = I2C(0, scl=Pin(17), sda=Pin(16))
    display = ssd1306.SSD1306_I2C(128, 64, i2c)
    display.fill(0)
    display.show()
except:
    print('Kein Display verfügbar')

# Funktion: OLED-Display als Shell
def print_oled(*args):
    try:
        display.fill(0)
        text = ''
        for x in (args): text += str(x) + ' '
        shell.append(text)
        next_row = len(shell) - 1
        for row in range (50, 0, -10):
            display.text(shell[next_row], 0, row)
            if next_row == 0: break
            next_row = next_row - 1
        display.show()
    except:
        print(*args)

print('Schleife starten!')

for Nummer in range(1, 10):
    print_oled('Nummer:', Nummer)
    time.sleep(0.5)

print('Schleife beendet!')

Hinweis: Natürlich ersetzt die benutzerdefinierte Funktion die originale Funktion nicht. Es unterstützt nicht den vollständigen Funktionsumfang von „print“. Es kann aber ausreichen, wenn man den Raspberry Pi Pico ohne Host-Computer betreibt und trotzdem aussagekräftige Textinformationen ausgeben will.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren