home

Dokumentation EV3 Robotik mit globalen Funktionen

(nur Realmodus, Simulationsmodus in Entwicklung)

Modul import: from grobot import *

Roboter:

Funktion Aktion
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
setLED(pattern) schaltet LEDs: 0: aus, 1: grün, 2: rot, 3: rot hell, 4: grün blinkend, 5: rot blinkend, 6: rot blinkend hell, 7: grün doppelblinkend, 8: rot doppelblinkend, 9: rot doppelblinkend hell
drawString(text, x, y) schreibt einzeiligen Text an Position x (horizontal, y (vertikal)
clearDisplay() löscht den Bildschirm
sleep(ms) hält das Programm während der gegebenen Zeit (in ms) an
getIPAddresses()

gibt eine Liste aller IP Adressen zurück, die der EV3 erhalten hat

getRobot() liefert die Instanz des globalen Robot zurück (zur Verwendung der OOP-Klassen)
exit() gibt alle Ressourcen frei. Alle Programme müssen zuletzt exit() aufrufen, damit das nächste Programm ausgeführt werden kann


Gear

(2 synchronisierte Motoren an MotorPort A und B):
Funktion Aktion
forward() startet die Vorwärtsbewegung mit vordefinierter Geschwindigkeit
backward() startet die Rückwärtsbewegung mit vordefinierter Geschwindigkeit
left() startet die Linksbewegung (rechter Motor vorwärts, linker Motor rückwärts)
right() startet die Rechtsbewegung (linker Motor vorwärts, rechter Motor rückwärts)
leftArc(radius) startet die Linkskurvenbewegung (Radius in m, nur approximativ)
rightArc(radius) startet die Rechtskurvenbewegung (Radius in m, nur approximativ)
stop() stoppt die Bewegung
setSpeed(speed) setzt die Geschwindigkeit (0..100). Wird erst beim Aufruf der nächsten Bewegungsfunktion wirksam


Motoren (EV3 oder NXT Motoren):

Instanzen Ort
motA, motB, motC, motD Motor am entprechenden MotorPort

Methoden Aktion
forward() dreht den Motor vorwärts
backward() dreht den Motor rückwärts
setSpeed(speed) setzt die Geschwindigkeit (0..100)
isMoving() gibt True zurück, falls der Motor in Bewegung ist
stop() stoppt den Motor
getMotorCount() gibt den momentanen Stand des Zählers zurück
resetMotorCount() setzt den Zähler auf 0
rotateTo(count) setzt Zähler auf 0, bewegt Motor bis Zählerstand count und stoppt (blockierend)
rotateTo(count, blocking) wie rotateTo(count), mit blocking = False nicht blockierend
continueTo(count) wie rotateTo(count), aber Zähler nicht auf 0 gesetzt
continueTo(count, blocking) wie rotateTo(count, blocking), aber Zähler nicht auf 0 gesetzt, mit blocking = False nicht blockierend
continueRelativeTo(count) wie continueTo(count), aber count ist Inkrement
continueRelativeTo(count, blocking) wie continueTo(count, blocking), aber count ist Inkrement, mit blocking = False nicht blockierend

 

Buttons:

Instanzen Ort
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

 

Lichtsensor (EV3 Colorsensor als Helligkeitssensor):

Instanzen Ort
ls1, ls2, ls3, ls4 Lichtsensor am entsprechenden SensorPort

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

 

Temperatur- Feuchtigkeitssensor (Sensirion SHT31 über I2C):

Instanzen Ort
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 Ort
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 Ort
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)

 

Distanzsensor (EV3 Ultrasonicsensor) am SensorPort S1:

Funktion Aktion
getDistance() liefert Distanz in mm (-1, falls keine reflektierendes Objekt gefunden wird)



Temperatursensor (NXT Temperatursensor) am SensorPort S1:

Funktion Aktion
getTemperature() liefert die Temperatur in Grad Celsius


Infrarotsensor (EV3 Infrarotsensor mit Fernsteuermodul) am SensorPort S1:

Instanzen Ort
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 Internet-Router 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&..." Statt http kann auch https verwendet werden
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&..." Statt http kann auch https verwendet werden
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 die benutzerdefinierte Callbackfunktion 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: Für die URL http://192.168.0.101/on?a=ok&b=3 ist filename = "/on" und 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.

Die Funktion ist blockierend. Um wieder in den Kommandomodus zu kommen, muss der Micro:LinkUp neu gebootet werden

saveHTML(text) speichert den Text als HTML-Datei, die dem Browser bei einem GET Request zugesendet wird. Sie kann %-Formatangaben enthalten, die mit den Rückgabewerten der Callbackfunktion handler ersetzt werden

 

Wetterdaten

Funktion Aktion
getWeather(city, key)

macht einen Wetterdaten-Request auf http://openweathermap.org für den gegebenen Ort. 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 Worten (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 den gegebenen Ort. 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 gegebenenen Land (englisch geschrieben) zurück
getCountry(countryCode) gibt das Land zum zum gegebenenen Country Code zurück
countryCodes Dictionary mit countryCode:country

 

home