LBotics.at

Offizielle Dokumentation der APIs cypberpi, mbot2 und mbuild

mBot2_API_cyberpi.pdf

mbot2_API_mbot2.pdf

mbot2_API_mbuild.pdf

Import von Modulen

import cyberpi, mbot2, mbuild

Import der drei Python-Module cyberpi für CyperPi, mbot2 für das mBot2 Shield und mbuild für den Ultraschall- wie auch den Quad RGB Sensor

Fahrfunktionen

mbot2.forward(speed, time)

Mit dieser Funktion fährt der Roboter vorwärts. Achtung: Die Ausführung des Skripts wird beim Aufruf dieser Funktion für den angegebenen Zeitraum an dieser Stelle angehalten!

speed (float): 0, 1, ..., 200 (Dezimalzahlen zwischen 0 und 200, grundsätzlich von -200 bis 200, bei negativen Zahlen fährt der Roboter rückwärts)

time (float): 0, 1, ... (positive Dezimalzahlen mit 0 beginnend)

mbot2.backward(speed,time)

Mit dieser Funktion fährt der Roboter rückwärts. Achtung: Die Ausführung des Skripts wird beim Aufruf dieser Funktion für den angegebenen Zeitraum an dieser Stelle angehalten!

speed (float): 0, 1, ..., 200 (Dezimalzahlen zwischen 0 und 200, bei negativen Zahlen fährt der Roboter vorwärts)

time (float): 0, 1, ... (positive Dezimalzahlen mit 0 beginnend)

mbot2.turn_left(speed, time)

Mit dieser Funktion dreht sich der Roboter am Stand nach links, indem sich die beiden Räder in entgegengesetzte Richtungen drehen. Achtung: Die Ausführung des Skripts wird beim Aufruf dieser Funktion für den angegebenen Zeitraum an dieser Stelle angehalten!

speed (float): 0, 1, ..., 200 (Dezimalzahlen zwischen 0 und 200, grundsätzlich von -200 bis 200, bei negativen Zahlen dreht sich der Roboter nach rechts)

time (float): 0, 1, ... (positive Dezimalzahlen mit 0 beginnend)

mbot2.turn_right(speed, time)

Mit dieser Funktion dreht sich der Roboter am Stand nach rechts, indem sich die beiden Räder in entgegengesetzte Richtungen drehen. Achtung: Die Ausführung des Skripts wird beim Aufruf dieser Funktion für den angegebenen Zeitraum an dieser Stelle angehalten!

speed (float): 0, 1, ..., 200 (Dezimalzahlen zwischen 0 und 200, grundsätzlich von -200 bis 200, bei negativen Zahlen dreht sich der Roboter nach links)

time (float): 0, 1, ... (positive Dezimalzahlen mit 0 beginnend)

mbot2.straight(distance, time)

Mit mit dieser Funktion können exakte Strecken gefahren werden, deren Länge in cm angegeben wird. Achtung: Die Ausführung des Skripts wird beim Aufruf dieser Funktion für den angegebenen Zeitraum an dieser Stelle angehalten!

distance (float): 0, 1, ..., 200 (Strecke in cm, positive Dezimalzahlen von 0 beginnend, bei negativen Zahlen fährt der Roboter rückwärts)

speed (float): 0, 1, ..., 200 (Dezimalzahlen zwischen 0 und 200)

mbot2.turn(angle, speed)

Diese Funktion dient dazu, dass sich der Roboter gernau um einen angegebenen Winkel dreht.Die Ausführung des Skripts wird unmittelbar nach Aufruf dieser Funktion fortgesetzt, der Roboter beendet die Drehbewegung, wenn er den gewünschten Drehwinkel erreicht hat, oder eine andere Funktion zur Steuerung der Motoren davor aufgerufen wurde.

angle (int): ..., -2, -1, 0, 1, 2, 3, ... (Winkel in Grad, negative und positive ganzzahlige Werte, bei negativen Werten dreht sich der Roboter nach links)

speed (float): 0, 1, ..., 200 (Dezimalzahlen zwischen 0 und 200)

Motorfunktionen

mbot2.EM_set_speed(speed, port)

Mit der Funktion EM_set_speed(speed, port) wird die Drehgeschwindigkeit und die Drehrichtung eines Motors festgelegt. Bei positiven Werten für speed dreht sich der jeweilige Motor gegen den Uhrzeigersinn, bei negativen Werten dreht sich der Roboter im Uhrzeigersinn. Mit dem zweiten Wert wird festgelegt für welchen Motor der speed-Wert gesetzt werden soll. Für den linken Motor wird dieser Funktion eine 1 übergeben und für den rechten Motor eine 2. Will man erreichen, dass der Roboter in eine Richtung fährt, müssen für die beiden Motoren speed-Werte mit unterschiedlichen Vorzeichen gesetzt werden.

speed (float): -200, ..., 0, ..., 200 (Dezimalwerte von -200 bis 200, positive Werte: Drehung gegen den Uhrzeigersinn, negative Werte: Drehung im Uhrzeigersinn)

port (int): 1, 2 (1: linker Motor, 2: rechter Motor)

mbot2.EM_stop()

Mit der Funktion EM_stop() können beide Motoren angehalten werden um den Roboter anzuhalten.

LEDs am CyberPi

cyberpi.led.on(color, port)

Das Modul cyberpi stellt die Funktion led.on(color, port) zur Verfügung. Damit können einzelne, oder aber auch alle LEDs eingeschaltet und deren Farbe festgelegt werden. Wird nur ein Farbwert und kein Wert für den Parameter port angegeben, so leuchten alle LEDs in der festgelegten Farbe. Wird zusätzlich noch id=1, id=2, ..., id=5 übergeben, so bezieht sich der übergebene Farbwert auf die jeweilige LED. Hier soll die erste LED rot leuchten.

farbe (string): "red", "orange", "yellow", "green", "cyan", "blue", "purple" oder "black"

port: id=1, id=2, ..., id=5 (wird diese Angabe weggelassen, leuchten alle 5 LEDs in der angegebenen Farbe)

Display am CyberPi

cyberpi.display.show_label(text, size, x, y)

Die Funktion cyberpi.display.show_label(text, size, x, y) dient zum Ausgeben von Text am Display. Der Text wird als String übergeben, in dem Zeilenumbrüche mit der Zeichenkombination \n eingefügt werden könne. Beginnt die Ausgabe an den Koordinaten x=0 und y=0, dann können mit Schriftgröße 16 maximal 7 Zeilen mit je 15 Zeichen ausgegeben werden.

Mit dieser Funktion ist es nicht möglich, an verschiedenen Positionen hintereinander unterschiedlichen Text anzuzeigen. Beim Aufruf dieser Funktion wird vor der Ausgabe immer das gesamte Display gelöscht.

text (string): z. B. "Zeile 1\nZeile 2" (ein String mit einer Länge von 7*15=105 auszugebenden Zeichen, mit bis zu 6 Zeilenumbrüchen \n)

size (int): 12, 24, 32

x (int): 0, ..., 127

y (int): 0, ..., 127

cyberpi.display.clear()

Mit der Funktion cyberpi.display.clear() werden alle Anzeigen am Display gelöscht.

Buttons und Joystick am CyberPI

cyberpi.controller.is_press(button)

Mit der Funktion cyberpi.controller.is_press(button) kann ermittelt werden, ob ein Taster gedrückt oder der Joystick in eine Richtung gedrückt wurde. Der Rückgabewert dieser Funktion ist entweder True oder False.

button (string): "a", "b", "up", "down", "left", "right", "middle" (Strings "a" für Taster A, "b" für Taster B, "up", "down", ... für die Richtungen des Joysticks)

return (bool): True, False (boolscher Wert, True wenn ein Taster gedrückt wurde, sonst False)

Ultrasonic Sensor 2

import mbuild

Um den Ultra Sonic Sensor 2 zu verwenden, muss das Modul mbuild eingebunden werden.

mbuild.ultrasonic2.get()

Mit der Funktion mbuild.ultrasonic2.get() kann man den Abstand auslesen, den der Ultraschallsensor misst. Dieser Wert kann zwischen 3 und 300 cm liegen.

return (float): 3.0 - 300.0 (Dezimalzahlen zwischen 3.0 und 300.0)

Quad RGB Sensor

import mbuild

Um den Quad RGB Sensor zu verwenden, muss das Modul mbuild eingebunden werden.

mbuild.quad_rgb_sensor.is_line(port)

Mit der Funktion mbuild.quad_rgb_sensor.is_line(port) wird überprüft, ob sich der jeweilige Sensor über einer schwarzen Fläche (Line) befindet. Wenn ja, liefert die Funktion den Wert True, sonst den Wert False zurück.

port (int): 1, 2, 3, 4 (Position des gewünschten Sensors, 1 ganz rechts, 4 ganz links)

return (bool): True, False (True, wenn sich ein Sensor über einem schwarzen Bereich befindet, sonst False)

mbuild.quad_rgb_sensor.get_color_sta(port)

Mit der Funktion mbuild.quad_rgb_sensor.get_color_sta(port) wird ein der möglichen acht Standardfarben ermittelt, die der jeweilige der 4 Einzelsensoren erkennt. Die Farbwerte werden als Strings zurückgegeben.

port (int): 1, ..., 4 (Position des gewünschten Sensors, 1 ganz rechts, 4 ganz links)

return (string): "white", "black", "red", "green", "blue", "yellow", "cyan", "purple" (die möglichen Farben als Strings)

mbuild.quad_rgb_sensor.get_color(port)

Die Funktion mbuild.quad_rgb_sensor.get_color(port) liefert einen hexadezimalen Farbcode in der Form 0xd2a324 zurück. Dieser beinhaltet die Intensitäten von rotem, grünem und blauem Licht, des von der abgetasteten Oberfläche reflektierten Lichts.

port (int): 1, ..., 4 (Position des gewünschten Sensors, 1 ganz rechts, 4 ganz links)

return (string): "0xRRGGBB" (RR: 00-FF, GG: 00-FF, BB: 00-FF)

Externe Taster oder Schalter an Port S1 oder S2

import mbot2

Um die Extension Ports S1 und S2 einlesen zu können, muss das Python-Module mbot2 für das mBot2 Shield eingebunden werden.

mbot2.read_digital(port)

Mit der Funktion mbot2.read_digital(port) kann der elektrische Zustand des jeweiligen Ports ermittelt werden, der dabei als digitaler Eingang gesehen wird.

port (int): 1, 2  (1 für S1, 2 für S2)

return (bool): True, False (True: Kontakt geschlossen, False: Kontakt offen)

Externe Servos oder Schalter an Extension Ports S1, S2, S3 oder S4

import mbot2

Um Servos an den Ports S1, S2, S3 und S2 ansteuern zu können, muss das Python-Module mbot2 für das mBot2 Shield eingebunden werden.

mbot2.set_servo(angle, port)

Um die Drehachse eines Servos auf eine bestimmte Winkelposition zu stellen, übergibt man der Funktion mbot2.servo_set(angle, port) die gewünschte Winkelposition und den Port, an dem der Servo angeschlossen ist.

angle (int): 0, ..., 180

port (int): 1, 2, 3, 4  (1 für S1, 2 für S2, 3 für S3, 4 für S4)