Lektion 3 von 5Robotik mit fischertechnik
Robotik mit fischertechnik · Lektion 3 · 30 Minuten
Lampen und Taster
Das lernst du
- Lampen an O1 bis O8 ein- und ausschalten und dimmen
- Einen Taster an einem I-Eingang abfragen
- Die vertauschte Logik von
state()verstehen (0=gedrückt)
Der Code in dieser Lektion stammt aus dem Buch „Python für Roboter“, Kapitel 3.2 und 3.4, und läuft hier unverändert im Simulator. Zum Buch bei Amazon ↗
Licht an!
Lampen und LEDs brauchen keine Drehrichtung. Sie kommen an die einfachen Ausgänge O1 bis O8. Mit setLevel(...) stellst du die Helligkeit ein: von 0 (aus) bis 512 (volle Helligkeit).
import ftrobopy
from time import sleep
txt = ftrobopy.ftrobopy("localhost", 65000)
rote_lampe = txt.output(1) # Lampe an O1
gruene_lampe = txt.output(2) # Lampe an O2
# Lampen einzeln an- und ausschalten
rote_lampe.setLevel(512) # volle Helligkeit
sleep(1)
rote_lampe.setLevel(0) # aus
# Lampe langsam heller werden lassen (Dimmen)
for helligkeit in range(0, 513, 64):
gruene_lampe.setLevel(helligkeit)
sleep(0.1)Im Schaltpult siehst du die Lampen. Die grüne wird Schritt für Schritt heller – das nennt man Dimmen.
Merke: Motoren und Lampen folgen demselben Muster wie bei Pybricks: Erst das Objekt für den richtigen Anschluss erstellen, dann darüber steuern. Dieses Muster gilt für fast jede Robotik-Plattform.
Taster abfragen
Ein Taster kommt an einen Eingang I1 bis I8. Mit txt.input(...) bekommst du ihn, mit state() fragst du ihn ab. So steht es im Ampel-Projekt aus dem Buch (Kapitel 3.4):
taster = txt.input(1) # Taster an I1
# Fussgaenger-Anforderung pruefen: bei ftrobopy bedeutet state() == 0,
# dass der Taster gedrueckt ist (Kontakt geschlossen) - nicht 1!
anforderung = taster.state() == 0
Achtung, vertauschte Logik! Bei ftrobopy heißt
state() == 0: Der Kontakt ist geschlossen, der Taster ist gedrückt.state() == 1heißt: losgelassen. Das ist genau andersherum, als man denkt. Im Simulator ist es genauso wie am echten TXT.
Im Schaltpult kannst du den Taster mit der Maus, dem Finger oder der Leertaste gedrückt halten. Das komplette Ampel-Programm baust du in Lektion 5.
Deine Aufgabe
Jetzt bist du dran
Übung 3.2 aus dem Buch: Baue eine Lichtorgel mit drei Lampen an O1, O2 und O3. Sie leuchten nacheinander auf: erst O1, dann O2, dann O3 – jede für 0,2 Sekunden (setLevel(512), sleep(0.2), setLevel(0)). Wiederhole das ganze Muster zehnmal mit einer for-Schleife.
import ftrobopy
from time import sleep
txt = ftrobopy.ftrobopy("localhost", 65000)
lampen = [txt.output(1), txt.output(2), txt.output(3)]
# Zehnmal: jede Lampe kurz aufleuchten lassen- Denkanstoß
Eine Schleife über die Liste:
forlampe in lampen:lampe.setLevel(512)…sleep(0.2)…lampe.setLevel(0) - Welcher Befehl hilft?
Schalte jede Lampe nach
sleep(0.2)wieder aus, bevor die nächste angeht.Pack die Schleife über die Lampen in eine zweite Schleife
forrunde inrange(10). - Lückencode – ergänze die ___
import ftrobopy from time import sleep txt = ftrobopy.ftrobopy("localhost", 65000) lampen = [txt.output(1), txt.output(2), txt.output(3)] for runde in ___: for lampe in ___: lampe.setLevel(___) sleep(___) lampe.setLevel(___)
Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.
Lösung anzeigen🔒 Erst nach allen Hinweisen oder 2 Prüf-Versuchen
Versuch es erst selbst – aus Fehlern lernt man am meisten. Hier ist eine mögliche Lösung:
import ftrobopy
from time import sleep
txt = ftrobopy.ftrobopy("localhost", 65000)
lampen = [txt.output(1), txt.output(2), txt.output(3)]
for runde in range(10):
for lampe in lampen:
lampe.setLevel(512)
sleep(0.2)
lampe.setLevel(0)