Zum Inhalt springen
BetaEN
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() == 1 heiß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

Ohne Hinweise gelöst gibt es einen ⭐ auf deiner Fortschrittsseite.

Lösung anzeigen

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)