Mit den Methoden isUpHit(), isDownHit() usw. kann man abfragen, ob einer der Brick-Buttons UP, DOWN, LEFT, RIGHT, ENTER und ESCAPE.PUNKT WEG gedrückt wurde.. Im direkten und Simulationsmodus entsprechen der EV3-Buttons die Tastaturtasten UP, DOWN, LEFT, RIGHT, ENTER und ESCAPE.
Beispiel 1: Roboter mit Tastaturtasten steuern
|
|
Brick-Buttons |
# Ro10a.py from simrobot import * #from ev3robot import * robot = LegoRobot() gear = Gear() robot.addPart(gear) while not robot.isEscapeHit(): if robot.isDownHit(): gear.backward() elif robot.isUpHit(): gear.forward() elif robot.isLeftHit(): gear.leftArc(0.2) elif robot.isRightHit(): gear.rightArc(0.2) elif robot.isEnterHit(): gear.stop() robot.exit() |
Programmcode markieren
|
Erklärungen zum Programmcode:
if isDownHit(): gibt True zurück, wenn die Taste Down (Remote- und Simulationsmodus) oder der Button Down im autonomen Modus gedrückt wurde. |
Beispiel 2: Roboter wird durch eine Hindernisbahn gesteuert.
|
Erklärungen zum Programmcode:
forward(3200) : im Simulationsmodus besteht die Bahn aus gleich langen Wegstücken |
Beispiel 3: Um eine komplexere Bahn zu durchfahren, werden zusätzlich die Tasten UP und DOWN verwendet.
Für den realen Roboter kann eine beliebige Hindernisbahn gebaut werden, wobei das Programm nur im direkten Modus sinnvoll ist, da man die Brick-Buttons während des Fahrens schlecht bedienen kann. |
# Ro10c.py from simrobot import * #from ev3robot import * RobotContext.useBackground("sprites/bg2.gif") RobotContext.setStartPosition(410, 470) robot = LegoRobot() gear = Gear() robot.addPart(gear) while not robot.isEscapeHit(): if robot.isUpHit(): gear.forward() elif robot.isDownHit(): gear.stop() elif robot.isLeftHit(): gear.left(550) elif robot.isRightHit(): gear.right(550) robot.exit() |
Programmcode markieren
|
Aufgaben: Serie 10 |
1) |
Der Roboter soll mit den Tastatur-Tasten durch den nebenstehenden Parcours gesteuert werden. Für die Simulation kannst du das Hintergrundbild bg3.gif verwenden: RobotContext.useBackground("sprites/bg3.gif")
RobotContext.setStartPosition(410, 475)
|
|
|
2) |
Mit der Hilfe der Tastatur-Tasten kannst du den Roboter durch den Kanal steuern. Für die Simulation kannst du das Hintergrundbild channel.gif benutzen RobotContext.useBackground("sprites/channel.gif")
RobotContext.setStartPosition(35, 245)
RobotContext.setStartDirection(0)
|
|
|
|
|