leds

7. LEDs

 

 

DU LERNST HIER...

 

wie du die 8 farbigen LEDs ansprechen kannst,  die vorne, seitwärts links, hinten und seitwärts rechts angebracht sind. Diese werden immer als ein Paar verwendet und mit den symbolischen Konstanten LED_FRONT, LED_LEFT, LED_REAR, RED_RIGHT bzw. den Zahlen 0, 1, 2, 3 identifiziert.

 

 

MUSTERBEISPIEL

 

Mit deinem Programm willst du ein Lauflicht erstellen, wobei die vorderen LEDs rot, die linken grün, die hinteren blau und die rechten gelb leuchten. Ein LED-Paar ist softwaremässig wiederum ein Objekt, das du mit Angabe seiner Identifkation erstellst, also:

 Position  Mit Konstanten  Mit Zahlen
 Vorne  ledFront = Led(LED_FRONT)  ledFront = Led(0)
 Links  ledLeft = Led(LED_LEFT)  ledLeft = Led(1)
 Hinten  ledRear = Led(LED_REAR)  ledRear = Led(2)
 Rechts  ledRight = Led(LED_RIGHT)  ledRight = Led(3)

Um ein LED-Paar in einer bestimmten Farbe einzuschalten, verwendest du die Funktion setColor(color), wobei du die Farbe als String (X11-Color) angibst, also beispielsweise

ledFront.setColor("red").

Du kannst auch setColor(r, g, b) mit den drei RGB-Werten (je im Bereich 0...255) verwenden, also für rot:

ledFront.setColor(255, 0, 0).

Um ein LED-Paar auszuschalten, verwendest du die Farbe "black" bzw. den
RGB-Wert (0, 0, 0).

 

from raspisim import *
#from raspibrick import *

robot = Robot()
ledFront = Led(LED_FRONT)
ledLeft = Led(LED_LEFT)
ledRight = Led(LED_RIGHT)
ledRear = Led(LED_REAR)

while not robot.isEscapeHit():
    ledFront.setColor("red")
    Tools.delay(2000)
    ledFront.setColor("black")
    ledLeft.setColor("green")
    Tools.delay(2000)
    ledLeft.setColor("black")
    ledRear.setColor("blue")
    Tools.delay(2000)
    ledRear.setColor("black")
    ledRight.setColor("white")
    Tools.delay(2000)
    ledRight.setColor("black")
robot.exit()
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 

 

MERKE DIR...

 

dass du auch alle LEDs miteinander ansprechen kannst. Dazu verwendest du beim Aufruf nicht eine Objektvariable, sondern den Präfix Led.

Alle LEDs mit einer bestimmten Farbe einschalten:
Led.setColorAll(farbe)    oder    Led.setColorAll(r, g, b)

Alle LEDs ausschalten:
Led.clearAll()     oder      Led.setColorAll("black")

Beispielsweise kannst du alle LEDs wie folgt blinken lassen:

from raspisim import *
#from raspibrick import *

robot = Robot()
while not robot.isEscapeHit():
    Led.setColorAll("white")
    Tools.delay(200)
    Led.clearAll()
    Tools.delay(200)
robot.exit()
Programmcode markieren (Ctrl+C kopieren, Ctrl+V einfügen)

 

 

ZUM SELBST LÖSEN

 

 


1.


Der Roboter soll in senkrechter Richtung zu einer Wand fahren und bei rund 10 cm zur Wand den Rückwärtsgang einschalten und 3 s. rückwärts fahren. Nachher soll er wieder vorwärts fahren.

 

2.

Lasse den Roboter einer kurvenreichen Kante entlang fahren. Wenn er auf einem Rechtsbogen fährt, so schalte die rechten LEDs ein, wenn er auf einem Linksbogen fährt, so schalte die linken LEDs ein und wenn er geradeaus fährt, dann schalte alle LEDs aus.

Verwende  im Simulationsmodus den Context:

 

 
 
RobotContext.useBackground("sprites/border.gif")
RobotContext.setStartPosition(230, 490)

 

   

 

6-1
Fachliche Hinweise:

Die Liste target definiert das reflektierende Objekt. Sie enthält die Koordinaten der 4 Eckpunkte relativ zum Mittelpunkt des Rechtecks. useTarget() verwendet ein Spritebild bar0.gif zur Darstellung des Objekts.