Python Online
Home     .

Dokumentation EV3 Robotik mit globalen Funktionen

Modul import: from grobot import *
Roboter mit Fahrwerk (2 synchronisierte Motoren an MotorPort A und B):

Funktion Aktion
forward() versetzt den Roboter in die Vorwärtsbewegung
forward(time) fährt während gegebener Zeit (in ms) vorwärts, blockierende Methode
backward() versetzt den Roboter in die Rückwärtsbewegung
backward(time) fährt während gegebener Zeit (in ms) rückwärts, blockierende Methode
left() versetzt den Roboter in die Linksdrehung
left(time) dreht während gegebener Zeit (in ms) nach links, blockierende Methode
right() versetzt den Roboter in die die Rechtsdrehung
right(time) dreht während gegebener Zeit (in ms) nach rechts, blockierende Methode
leftArc(radius) startet die Linkskurvenbewegung (Radius in m)
leftArc(radius, time) fährt während der gegebener Zeit (ms) auf dem Linksbogen (Radius in m), blockierend
rightArc(radius) startet die Rechtskurvenbewegung (Radius in m)
rightArc(radius, time) fährt während der gegebener Zeit (ms) auf dem Rechtsbogen (Radius in m), blockierend
stop() stoppt die Bewegung
setSpeed(speed) setzt die Geschwindigkeit (0..100). Wird erst beim Aufruf der nächsten Bewegungsfunktion wirksam (Standardgeschwinkigkeit speed=50)
delay(time) hält das Programm während der gegebenen Zeit (in ms) an
sleep(time) dasselbe wie delay(time)
setLED(n) schaltet LEDs: 0: aus, 1: rot, 2: grün, 3: orange, 4: grün blinkend, 5: rot blinkend, 6: rot blinkend hell, 7: grün doppelblinkend, 8: rot doppelblinkend, 9: rot doppelblinkend hell
setAlarm(n) schaltet Alarm: 0: aus, 1:ein
playTone(freq, duration) spielt einen Ton mit gegebener Frequenz (in Hertz) und Dauer (in ms)
setVolume(volume) setzt die Lautstärke (0..100). Dieser Wert wird dauerhaft gespeichert
drawString(text, x, y) schreibt einzeiligen Text an Position (x: horizontal, y: vertikal)
clearDisplay() löscht den Bildschirm
getIPAddresses()

gibt eine Liste mit allen aktiven IP Adressen zurück

getRobot() liefert die Instanz des globalen Robot zurück (zur Verwendung der OOP-Klassen)
reset() [nur S] setzt den Roboter an die Startposition/Startrichtung


Motoren (EV3 Motoren einzeln steuern):
Instanzen Port
motA , motB, motC, motD Motor am entprechenden MotorPort
motL = motA, motR = motB Linker und rechter Motor

Methoden Aktion
motX.rotate(speed) dreht den Motor motX (speed > 0: vorwärts, speed < 0: rückwärts, speed = 0: stop
motX.getMotorCount() gibt den momentanen Stand des Zählers zurück
motX.resetMotorCount() setzt den Zähler auf 0
motX.rotateTo(deg) bewegt Motor bis Umdrehungswinkel deg (0-360) und stoppt (blockierend). Setzt Zähler auf 0
motX.rotateTo(deg, blocking) wie rotateTo(deg). Nicht blockierend, falls blocking = False
motX.continueTo(deg) wie rotateTo(deg), aber Zähler wird nicht auf 0 gesetzt
motX.continueTo(deg, blocking) wie rotateTo(deg), blocking), aber Zähler wird nicht auf 0 gesetzt. Nicht blockierend, falls blocking = False
motX.continueRelativeTo(deg wie continueTo(deg), aber count ist Inkrement
motX.continueRelativeTo(deg, blocking) wie continueTo(deg, blocking), aber count ist Inkrement. Nicht blockierend, falls blocking = False
motX.isMoving() gibt True zurück, falls der Motor motX rotiert
 
Buttons:
Instanzen Position
button_escape oben links
button_enter

Mitte

button_left Cursor links
button_right Cursor rechts
button_up Cursor aufwärts
button_down Cursor abwärts

Methode Aktion
was_pressed() gibt True zurück, falls der Button seit dem letzten Aufruf gedrückt wurde
isEscapeHit() gibt True zurück, falls der Escape-Button seit dem letzten Aufruf gedrückt wurde
isEnterHit() dasselbe für den Enter-Button
isLeftHit() dasselbe für den Left-Button
isRightHit() dasselbe für den Right-Button
isUpHit() dasselbe für den Up-Button
isDownHit() dasselbe für den Down-Button

 

Lichtsensor (EV3 Colorsensor als Helligkeitssensor):
Instanzen Port
ls1, ls2, ls3, ls4 Lichtsensor am entsprechenden SensorPort

Methode Aktion
getValue() liefert die Lichtintensität (0..1023)

 

TouchSensor
Instanzen Port
ts1, ts2, ts3, ts4 Touchsensor am entsprechenden SensorPort

Methode Aktion
isPressed() liefert True, falls der Touchsensor gedrückt ist
 
Distanzsensor (EV3 Ultrasonicsensor):
Instanzen Port

us1, us2, us3, us4

Sensor am entsprechenden SensorPort


Methoden Aktion
getDistance() liefert Distanz in cm (255, falls keine reflektierendes Objekt gefunden wird, im Simulationsmodus: -1)

Bemerkung:
Diese Methoden (mit SensorPort.S1) gibt es auch als globale Funktionen (Kompatibilität zu mbrobot)

  Temperatursensor (NXT Temperatursensor):
Instanzen Port
tmp1, tmp2, tmp3, tmp4 Sensor am entsprechenden SensorPort


Methode Aktion
getTemperature() liefert die Temperatur in Grad Celsius

Bemerkung:
Diese Methode (mit SensorPort.S1) gibt es auch als globale Funktion (Kompatibilität zu mbrobot)

Temperatur- Feuchtigkeitssensor (Sensirion SHT31 über I2C):
Instanzen Port
sht1, sht2, sht3, sht4 Sensor am entsprechenden SensorPort

Methode Aktion
getValues() liefert ein Float-Tupel mit Temperatur (Grad C) und Luftfeuchtigkeit (%).


Umweltsensor (Temperatur, Luftfeuchtigkeit, Luftdruck) (Bosch BME280 über I2C):
Instanzen Port
bme1, bme2, bme3, bme4 Sensor am entsprechenden SensorPort

Methode Aktion
getValues() liefert ein Float-Tupel mit Temperatur (Grad C) , Luftfeuchtigkeit (%) und Luftdruck (hPa)

 

3-Achsen Beschleunigungssensor (ADXL345 über I2C):
Instanzen Port
adxl1, adxl2, adxl3, adxl4 Sensor am entsprechenden SensorPort

Methode Aktion
getValues() liefert ein Float-Tupel mit den Beschleunigungen in x-, y- und z-Richtung (m/s^2 im Bereich -2g .. 2g)


Infrarotsensor (EV3 Infrarotsensor mit Fernsteuermodul) am SensorPort S1:
Instanzen Port
irs Infrarotsensor an SensorPort S1

Methode Aktion
getCommand()

gibt die aktuelle Kommando-ID für die gedrückten Tasten zurück:

0: nichts gedrückt
1: oben-links
2: unten-links
3: oben-rechts
4: unten-rechts
5: oben-links+oben-rechts
6: oben-links+unten-rechts
7: unten-links+oben-rechts
8: unten-links+unten-rechts
9: Zentrum
10: unten-links+oben-links
11: oben-rechts+unten-rechts

Der rote Schiebeschalter muss ganz oben stehen (für SensorPort S1)

 

Internet (EV3 über WLAN-Adapter mit Accesspoint verbunden):
Funktion Aktion
httpGet(url) führt einen HTTP GET Request durch und liefert den Response zurück. url in der Form "http://<server>?key=value&key=value&..." oder für SSL "https://..."
httpPost(url, content) führt einen HTTP POST Request durch und liefert den Response zurück. url in der Form "http://<server>". content im Format "key=value&key=value&..." oder für SSL "https://..."
httpDelete(url) führt einen HTTP DELETE Request mit der gegebenen Ressource aus
startHTTPServer(handler)

startet einen HTTP Server (Webserver auf Port 80), der auf HTTP GET Requests hört. Bei einem GET Request wird der benutzerdefinierte Callback handler(clientIP, filename, params) aufgerufen:

clientIP: gepunktete IP-Adresse des Clients
filename: Dateiname der URL mit vorgestelltem "/". Fehlt der Dateiname: "/"
params: Dictionary mit den GET Request Parametern {key: value}.

Beispiel http://192.168.0.101/on?a=ok&b=3

clientIP = "192.168.0.101"
filename = "/on"
params = {"a" : "ok", "b" : "3"}

Die Rückgabe besteht aus kommagetrennten Werten, die in die %s-Formatangaben der gespeicherten HTML-Datei eingebaut werden, bevor sie dem Browser zurückgesendet wird. (Die Anzahl und Reihenfolge muss übereinstimmen.) Fehlt der Rückgabewert, so wird die HTML-Datei unverändert zurückgesendet

(Der Aufruf ist nicht blockierend, da der Server in einem eigenen Thread läuft.)

saveHTML(text) speichert den Text als HTML-Datei, die dem Browser bei einem GET Request zurück gesendet wird. Sie kann %-Formatangaben enthalten, die mit den Rückgabewerten des Callbacks handler(clientIP, filename, params) ersetzt werden

 

Wetterdaten

Funktion Aktion
getWeather(city, key)

macht einen Wetterdaten-Request auf http://openweathermap.org für die gewählte Stadt. Dabei wird der gegebene Authorisierungsschlüssel verwendet. Diesen kann man man kostenfrei auf diesem Host beziehen. (Wird der Parameter weggelassen, so wird ein Standardschlüssel verwendet, der maximal 60 Anfragen / min für alle Nutzer erlaubt.)

Rückgabewert: Dictionary mit den Feldern:

"status" "OK" oder Fehlerstring, der den Fehler beschreibt, z.B. "City not found" (string)
"temp" Temperatur in °C (float)
"pressure" Luftdruck in hPa (mbar) (float)
"humidity" Luftfeuchtigkeit in % (int)
"temp_min" Tagesminimum der Temperatur in °C (float)
"temp_max" Tagesmaximum der Temperatur in °C (float)
"description" Wetterlage in WPorten (deutsch) (string)
"sunrise" Sonnenaufgang in Universal Time (UTC) (string)
"sunset" Sonnenuntergang in Universal Time (UTC) (string)
"datetime" Datum - Uhrzeit (UTC) der Wettererfassung (string)

 


Lokales Datum/Zeit
für gegebene Stadt

Funktion Aktion
getHTTPDateTime(city, timezone, key)

macht einen Zeit/Datum-Request auf https://api.timezonedb.com für die gewählte Stadt.. Dabei wird der gegebene Authorisierungsschlüssel verwendet. Diesen kann man man kostenfrei auf diesem Host beziehen. (Wird der Parameter weggelassen, so wird ein Standardschlüssel verwendet, der maximal 1 Anfrage/sec für alle Nutzer erlaubt.) timezone ist entweder der Country Code oder der Landesname (englisch).

Rückgabewert: String im Format: ww yyyy-nn-dd hh:mm:ss
ww: Wochentag, yyyy: Jahr, nn: Monat, dd: Tag, hh: Stunden, mm: Minuten, ss: Sekunden
Beispiel: Mo 2018-09-10 20:27:33

Falls ein Fehler auftritt, wird None zurückgegeben

getHTTPTime(city, timezone, key) dasselbe, aber es wird nur der Zeitteil im Format hh:mm:ss zurückgegeben
getCountryCode(country) gibt den Country Code (2 Buchstaben) zum gegebenen Land (Englisch geschrieben) zurück
getCountry(countryCode) gibt das Land zum gegebenen Country Code zurück
countryCodes Dictionary mit code:country