Der Raspberry Pi Pico verfügt leider über keinen RESET-Taster, diesen können wir jedoch ganz einfach in unsere Schaltung hinzufügen und wie du das machst, zeige ich dir hier nun in diesem kurzen Beitrag.
Im letzten Beitrag Raspberry Pi Pico Pinout: Eine ausführliche Übersicht habe ich dir bereits eine kleine Schaltung gezeigt, wie du diesen Taster an den Pi Pico anschließt, an diesen möchte ich anknüpfen und etwas mehr in die Tiefe gehen.
Inhaltsverzeichnis
- Warum sollte man einen RESET-Taster an den Raspberry Pi Pico anschließen?
- Was passiert bei einem RESET des Mikrocontrollers?
- RESET bei Verbindung zu einer Entwicklungsumgebung
- Benötigte Ressourcen für den Anschluss eines RESET-Tasters an den Pi Pico
- Aufbau einer Schaltung mit RESET-Taster
- Funktion des RESET-Tasters
- Alternative mit dem ArduPico
Warum sollte man einen RESET-Taster an den Raspberry Pi Pico anschließen?
Mit einem RESET-Taster kann man den Mikrocontroller neu starten und so alle Variablen, Felder und Objekte neu initialisieren. Dieses ist besonders wichtig, wenn das Programm bei einem Fehler in einem unbestimmten Zustand ist.
Des Weiteren kann es je nach Anwendungsfall auch vorkommen, dass der Speicher ausgeht und so der Mikrocontroller ebenso in einen unbestimmten Zustand geht.
Du siehst also, der RESET-Taster ist gar nicht so unnütz.
Was passiert bei einem RESET des Mikrocontrollers?
Wenn du einen RESET am Mikrocontroller durchführst, werden alle Daten im flüchtigen Speicher gelöscht. Zu diesen Daten gehören die bereits aufgezählten Variablen, Felder und auch Objekte.
Ein Problem kann hier auftreten, wenn du Motoren, Servos etc. angeschlossen hast und diese Zustände verlierst, hier musst du bei der Programmierung im Voraus handeln.
RESET bei Verbindung zu einer Entwicklungsumgebung
Eine Besonderheit ist der RESET bei aktiver Verbindung zu einer Entwicklungsumgebung wie der Thonny IDE. Wenn du aus der Entwicklungsumgebung das Programm gestartet hast und dann den RESET-Taster betätigst, dann verliert die IDE die Verbindung und du musst dann das Programm manuell starten.
Um dieses zu umgehen, musst du dein Programm in den Autostart legen und als boot.py speichern. Jedoch kommst du dann leider nicht mehr an deinen Code, da dein Programm sozusagen dauerhaft läuft.
Benötigte Ressourcen für den Anschluss eines RESET-Tasters an den Pi Pico
Für den Anschluss eines RESET-Tasters an den Pi Pico benötigst du lediglich zwei Kabel und einen Taster.
Aufbau einer Schaltung mit RESET-Taster
Um den RESET-Taster zu demonstrieren habe ich eine kleine Schaltung aufgebaut, an welcher ein OLED-Display angeschlossen ist, auf welchem die Zahlen von 1 bis 99 im Sekundentakt angezeigt werden.
Das eigentlich interessante an dieser Schaltung sollte hier jedoch nur der Taster sein, welcher zwischen RUN & GND geschaltet ist.
Funktion des RESET-Tasters
Für den RESET-Taster benötigen wir keine einzige Zeile Code, denn dieser zieht lediglich den PIN RUN gegen Ground (GND). Im nachfolgenden kleinen Video siehst du die Funktion.
In der Schaltung ist ein kleines OLED-Display integriert, auf welchem die Zahlen von 1 bis n durchlaufen. Wenn man nun den blauen RESET-Taster betätigt, dann wird der Index wieder von 1 begonnen.
Programm in Micropython auf dem Raspberry Pi Pico
Der Vollständigkeit halber hier das Programm, welches auf dem Pi Pico abläuft.
from machine import Pin, I2C import time import ssd1306 i2c = I2C(1, sda=Pin(26), scl=Pin(27)) display = ssd1306.SSD1306_I2C(70, 40, i2c) index = 0 while True: display.fill(0) display.show() index = index + 1 display.text(str(index), 20, 18, 1) display.show() time.sleep(1)
Alternative mit dem ArduPico
Wenn du den WisdPi ArduPico – Raspberry Pi Pico Adapter benutzt, dann hast du bereits einen RESET-Taster (sowie weitere Features) zur Hand.
Auf diese Platine, welche den Formfaktor des Arduino UNO hat, kannst du den Pi Pico, mit und ohne WiFi Support anbringen.