home

Documentation Robotics

Module imports:

from simrobot import *
from nxtrobot import *
from ev3robot import *

LegoRobot

Fonction Action

LegoRobot()

Génère un objet LegoRobot modélisant une brique NXT, EV3 ou simulé dépourvue de moteur et de capteurs tout en établissant une connexion à la brique. Les capteurs et moteurs doivent ensuite être ajoutés avec addPart()

addPart(part)

Ajoute un composant (capteur, moteur ou châssis) au robot

clearDisplay()

Réinitialise l’écran [mode simulation: barre d’état]

drawString(text, x, y)

Écrit le texte text à la position x, y [Mode simulation : dans la barre d’état, (x, y) est dans ce cas ignoré]

isEnterHit()

Indique True si le bouton ENTER de la brique était pressé [Sur le NXT et en mode simulation : correspond à la touche Esc]

isEscapeHit() Indique True si le bouton ESCAPE de la brique était pressé [Sur le NXT et en mode simulation : correspond à la touche Esc]

isLeftHit()

Indique True si le bouton LEFT de la brique était pressé [Sur le NXT et en mode simulation : correspond à la touche directionnelle gauche]

isRightHit()

Indique True si le bouton RIGHT de la brique était pressé [Sur le NXT et en mode simulation : correspond à la touche directionnelle droite]

isUpHit()

Indique True si le bouton UP de la brique était pressé [Sur le NXT et en mode simulation : correspond à la touche directionnelle haut]

isDownHit() Indique True si le bouton DOWN de la brique était pressé [Sur le NXT et en mode simulation : correspond à la touche directionnelle bas]

playTone(frequency, duration)

Joue un son de fréquence frequency (en Hz) et de durée duration (ms) [Simulation mode: non disponible]

setVolume(volume)

Règle le volume pour la restitution des sons (Compris entre 0 et 100)

playSample(tag, volume) Joue le fichier WAV avec le volume donné (0..100) du dossier /home/root/music en utilisant le nom du fichier song<tag>.wav (tag: integer) (fonction non-bloquante). Format WAV accepté: mono, 8 bit unsigned ou 16 bit signed avec un maximum de 11025 Hz. [Simulation mode: non disponible]
playSampleWait(tag, volume) Idem, mais bloquant jusqu'à la fin de l'émission [Simulation mode: non disponible]
setAlarm(on) avec on = 1 un signal sonore d'alarme est emis jusqu'à ce que la fonction soit appelée avec on = 0

setLED(pattern)

Ajuste les LEDS du EV3: 0: éteint, 1: vert, 2: rouge, 3: rouge brillant, 4: vert clignotant, 5: rouge clignotant, 6: rouge brillant clignotant, 7: double clignotement vert, 8: double clignotement rouge, 9: double clignotement rouge brillant

exit()

Arrête le robot et termine la connexion

isConnected()

Indique True si la connexion est établie ou si la fenêtre de simulation n'est pas fermée

reset()

En mode simulation : place le robot dans la position / direction de départ



Gear (Essieu = deux moteurs synchronisés)

Gear()

Génère un objet Gear modélisant un châssis équipé d’un essieu constitué de deux moteurs synchronisés connectés sur les ports A et B

backward()

Fait rouler le châssis en arrière (méthode non bloquante)

backward(ms)

Roule en arrière pendant l’intervalle de temps ms (méthode bloquante)

isMoving()

Idem, en tournant pendant ms millisecondes (méthode bloquante)

forward()

Fait avancer le châssis (méthode non bloquante)

forward(ms)

Fait avancer le châssis pendant l’intervalle de temps indiqué par ms (méthode bloquante)

left()

Tourne à gauche (méthode non bloquante)

left(ms)

Tourne à gauche pendant ms millisecondes (méthode bloquante)

leftArc(radius)

Tourne à gauche en formant un arc de cercle de rayon radius (méthode non bloquante)

leftArc(radius, ms)

Idem, en tournant pendant ms millisecondes (méthode bloquante)

right()

Tourne à droite (méthode non bloquante)

right(ms)

Idem, en tournant pendant ms millisecondes (méthode bloquante)

rightArc(radius)

Tourne à droite en formant un arc de cercle de rayon radius (méthode non bloquante)

rightArc(radius, ms)

Idem, en tournant pendant ms millisecondes (méthode bloquante)

setSpeed(speed)

Règle la vitesse du robot. Vitesse par défault = 30.

stop()

Arrête le châssis / l’essieu

getLeftMotorCount() Retourne la valeur actuelle du compteur du moteur gauche [non disponible en mode simulation]
getRightMotorCount() Retourne la valeur actuelle du compteur du moteur droit [non disponible en mode simulation]
resetLeftMotorCount() Remet à 0 le compteur du moteur gauche [non disponible en mode simulation]
resetRightMotorCount() Remet à 0 le compteur du moteur droit [non disponible en mode simulation]



TurtleRobot

TurtleRobot()

Génère un objet TurtleRobot modélisant un robot ayant un comportement de tortue. Le robot doit être équipé d’un châssis monté sur un essieu entraîné par les moteurs connectés aux ports A et B

backward()

Recule (méthode non bloquante)

backward(step)

Recule du nombre de pas spécifié (méthode bloquante)

forward()

Avance (méthode non bloquante)

forward(step)

Avance du nombre de pas spécifié (méthode bloquante)

left()

Tourne à gauche (méthode non bloquante)

left(angle)

Tourne à gauche (méthode non bloquante)

right()

Tourne à droite (méthode non bloquante)

right(angle)

Tourne à droite de l’angle angle (méthode bloquante)

setTurtleSpeed(speed)

Règle la vitesse du châssis à speed



Motor

Motor(MotorPort.port)

Génère un objet Motor modélisant un moteur virtuel branché sur le port moteur A, B, C, ou D

backward()

Fait tourner les moteurs à l’envers

forward()

Fait tourner les moteurs à l’endroit

setSpeed(speed)

Règle la vitesse du moteur

isMoving()

Retourne True si le moteur est en rotation

stop()

Arrête le moteur

getMotorCount() Retourne la valeur actuelle du compteur de moteur
resetMotorCount() Réinitialise le compteur du moteur à 0 et le fait tourner jusqu’à ce que le compteur atteigne la valeur count. (méthode bloquante)
rotateTo(count) Idem que rotateTo(count), mais de manière non bloquante lorsque blocking = False
rotateTo(count, blocking) Idem que rotateTo(count), mais de manière non bloquante lorsque blocking = False
continueTo(count) Idem que rotateTo(count, False), mais sans réinitialiser le compteur à 0
continueTo(count, blocking) Idem que rotateTo(count), mais de manière non bloquante lorsque blocking = False
continueRelativeTo(count) Idem que continueTo(count), mais avec un incrément de count pour le compteur
continueRelativeTo(count, blocking) Idem que continueTo(count, blocking), mais avec un incrément de count pour le compteur
setAcceleration(acc) Règle l'acceleration au départ (en degrée/sec/sec. Standard:: 6000) [non disponible en mode simulation]



LightSensor

LichtSensor(SensorPort.port)

Génère un objet LightSensor modélisant un capteur optique (photosensible) branché sur le port S1, S2, S3, ou S4

LightSensor(SensorPort.port,
dark = onDark)

Enregistre la fonction de rappel onDark

LightSensor(SensorPort.port,
bright = onBright)

Enregistre la fonction de rappel onBright

activate(True)

Active la LED du capteur photosensible, ce qui est nécessaire pour mesurer l’intensité lumineuse diffusée par une surface au sol (uniquement sur la brique NXT)

activate(False)

Désactive laLED du capteur photosensible

getValue()

Indique la valeur lue par le capteur photosensible (nombre entre 0 et 1000)

setTriggerLevel(level)

Ajuste le seuil de déclenchement



ColorSensor

ColorSensor(SensorPort.port)

Génère un objet ColorSensor modélisant un capteur de couleurs branché sur un des ports S1, S2, S3, ou S4

getColor()

Retourne la couleur mesurée par le capteur sous forme d’un objet Color possédant les méthodes getRed(), getGreen() et getBlue() permettant d’obtenir les composantes RVB comprises entre 0 et 255.

getColorID()

Retourne l’identifiant de la couleur actuellement mesurée : 0: indefinit, 1: noir, 2: bleu, 3:vert, 4: jaune, 5: rouge, 6: blanc

getColorStr()

Retourne la couleur mesurée par une chaine de caractères (BLACK, BLUE, GREEN, YELLOW, RED, WHITE ou UNDEFINED)

getLightValue()

Retourne la luminosité de la couleur mesurée selon le modèle TSL = Teinte, Saturation, Lumière, (HSG = Hue, Saturation, Lightness)



TouchSensor

TouchSensor(SensorPort.port)

Génère un objet TouchSensor modélisant un capteur tactile branché sur un des ports S1, S2, S3, ou S4

TouchSensor(SensorPort.port, pressed = onPressed, released = onReleased)

Idem, en rattachant les gestionnaires d’événements onPressed(port), onReleased(port)

isPressed()

Retourne True si le capteur tactile est enfoncé



SoundSensor

SoundSensor(SensorPort.port)

Génère un objet SoundSensor modélisant un capteur sonore branché sur un des ports S1, S2, S3, ou S4.Pour EV3 utiliser le capteur type NXT: NxtSoundSensor(SensorPort.port)

SoundSensor(SensorPort.port, loud = onLoud, quiet = onQuiet)

Rattache les gestionnaires d’événements onLoud(port, value) , onQuiet(port, value) déclenchés lorsque la valeur mesurée passe au-dessus du seuil critique

getValue()

Retourne le niveau sonore mesuré

setTriggerLevel(level)

Règle le seuil de déclenchement pour les événements



UltrasonicSensor

UltrasonicSensor(SensorPort.port)

Génère un objet UltrasonicSensor modélisant un capteur ultrasonique branché sur un des ports S1, S2, S3, ou S4

getDistance()

Retourne la distance mesurée par le capteur en [cm]. Retourne 255 si la mesure échoue (aucune cible) [en mode simulation: -1]

setTriggerLevel(level)

Règle le seuil de déclenchement (valeur par défaut : 10)

far(port, level), near(port, level)

Paramètres nommés du constructeur UltrasonicSensor permettant d’enregistrer un gestionnaire d’événements (fonction de rappel). La fonction de rappel far = onFar est déclenchée lorsque la distance passe au-dessus du seuil de déclenchement et near = onNear lorsqu’elle passe au-dessous du seuil

setProximityCircleColor(color)

En mode simulation: Règle la couleur du cercle de proximité

setMeshTriangleColor(color)

En mode simulation: Règle la couleur des triangles de maillage (mesh)

setBeamAreaColor(color) En mode simulation: Règle la couleur du cône de détection

eraseBeamArea()

En mode simulation: Efface le cône de détection


GyroRateSensor (seulement EV3)

GyroRateSensor(SensorPort.port)

Génère un objet GyroRateSensor branché sur un des ports S1, S2, S3, S4

getValue() Retourne la vitesse de rotation (degrées par seconde, positive contre le sens horaire)

 

GyroAngleSensor (seulement EV3)

GyroAngleSensor(SensorPort.port)

Génère un objet GyroAngleSensor branché sur un des ports S1, S2, S3, S4

getValue() Retourne l'orientation actuelle par rapport à la position de départ (degrées, positive contre le sens horaire)
reset() Ajuste la position de départ

 

InfraredSensor (seulement EV3)

IRRemoteSensor(SensorPort.port)

Génère un objet IRRemoteSensor modélisant un capteur infrarouge branché sur un des ports S1, S2, S3, ou S4

getCommand()

Retourne l’ID de la commande courante : 0:Rien, 1:Supérieur-gauche, 2: Inférieur-droit, 3:Supérieur-droit, 4:inférieur-droit, 5:Supérieur-gauche&supérieur-droit, 6:Supérieur-gauche&inférieur-droit, 7:inférieur-gauche&supérieur-droit, 8:inférieur-gauche&inférieur-droit, 9:Bouton-central, 10:inférieur-gauche&supérieur-gauche, 11:Supérieur-droit&inférieur-droit. Le canal est sélectionné par le slider rouge. 1=position supérieure, 4= position inférieure. Cela correspond au numéro de port sur lequel est attaché le capteur

actionPerformed(port, command)

Paramètres nommés du constructeur UltrasonicSensor permettant d’enregistrer un gestionnaire d’événements onActionPerformed (fonction de rappel)

IRSeekSensor(SensorPort.port)

Génère un objet IRSeekSensor modélisant un capteur infrarouge de recherche branché sur un des ports S1, S2, S3, ou S4. La source IR active de la télécommande doit être activée (bouton central de la télécommande)

v = getValue()

v.bearing spécifie la direction (-12..12) et v.distance la distance (en cm) à la source IR.

Le canal est sélectionné par le slider rouge. 1=position supérieure, 4= position inférieure. Cela correspond au numéro de port sur lequel est attaché le capteur

IRDistanceSensor(SensorPort.port)

Génère un objet IRDistanceSensor modélisant un capteur infrarouge de mesure de distances branché sur un des ports S1, S2, S3, ou S4. La cible doit être en mesure de réfléchir le rayonnement IR

getDistance()

Retourne la distance (en cm) à la cible



TemperatureSensor (seulement EV3)

TemperatureSensor(SensorPort.port)

Génère un objet TemperatureSensor modélisant un capteur de température (thermomètre) branché sur un des ports S1, S2, S3, ou S4. Modèle de capteur NXT géré : Temperature Sensor 9749

getTemperature()

Retourne la température en degrés Celsius comprise entre -55 et 128



ArduinoLink (seulement EV3)

ArduinoLink(SensorPort.port)

Crée un objet ArduinoLink modélisant un maître I2C permettant une connexion à une carte de développement Arduino sur un des ports S1, S2, S3, ou S4

getReply(request, reply)

Envoie la requête (nombre entier entre 0 et 255) vers l’Arduino et retourne la réponse en modifiant directement la liste reply comportant au maximum 16 nombres entiers compris entre 0 et 255

getReplyInt(request)

Idem, mais en fournissant la réponse sous la forme de la valeur de retour (nombre entier 0 et 255).

getReplyString(request)

Idem, mais en fournissant la réponse sous la forme de la valeur de retour (chaîne de caractères de longueur maximale 15).



RobotContext (seulement simulation)

setStartDirection(angle) Règle la position de départ du robot (0 = orienté vers l’Est, les angles sont orientés dans le sens des aiguilles de la montre)
setStartPosition(x, y) Règle la position de départ du robot (en pixels, origine dans le coin supérieur gauche du canevas)
showStatusBar(height) Ajoute une barre d’état de hauteur height au bas de la fenêtre
setStatusText(text) Ajoute le texte text dans la barre d’état en effaçant le texte présent
useBackground(filename) Insère l’image contenue dans le fichier filename au fond. Celle-ci peut être détectée par le capteur virtuel photosensible ou de couleur comme une surface de revêtement.
useObstacle(filename, x, y) Insère un obstacle à la position (x, y) pouvant être détecté par le capteur virtuel tactile.
useTarget(filename, mesh, x, y) Insère une cible à la position (x, y) pouvait être détectée par le capteur virtuel ultrasonique. La représentation à l’écran de l’obstacle est spécifiée par l’image contenue dans le fichier filename et le maillage triangulaire (mesh triangles) dans la liste de sommets mesh.

EV3Copy (seulement EV3, Direct Mode)

EV3Copy.copyFile(ipAddress, sourcePath, targetPath) Faire une copie du fichier local sourcePath à targetPath du EV3 avec l'adresse IP donnée (p.e. copyFile("10.0.1.1", "c:/test.wav", "/home/root/music/song1.wav")


TCP Client/Server Library (only EV3, autonomous mode)

Class TCPServer

server = TCPServer(port, stateChanged, isVerbose = False) creates a TCP socket server that listens on TCP port for a connecting client. State changes are notified by the callback stateChanged(). For isVerbose = True, debug messages are written to output window
stateChanged(state, msg)

Callback called at state change events.
state: TCPServer.PORT_IN_USE, msg: port
state: TCPServer.CONNECTED, msg: IP address of client
state: TCPServer.LISTENING, msg: port
state: TCPSever.TERMINATED, msg: empty
state: TCPServer.MESSAGE, msg: message received from client (string)

server.disconnect() closes the connection with the client and enters the LISTENING state
server.isConnected() True, if a client is connected to the server
server.terminate() closes the connection and terminates the LISTENING state. Releases the IP port
server.isTerminated() True, if the server has been terminated
server.sendMessage(msg) sends the information msg to the client (as string, the character \0 (ASCII 0) serves as end of string indicator, it is transparently added and removed)
TCPServer.getVersion() returns the module version as string

 

Class TCPClient

client = TCPClient(ipAddress, port, stateChanged, isVerbose = False)

creates a TCP socket client prepared for a connection with a TCPServer at given address (string) and port (integer). State changes are notified by the callback stateChanged(). For isVerbose = True, debug messages are written to the output window

stateChanged(state, msg) Callback called at state change events.
state: TCPClient.CONNECTING, msg: IP address:port of server
state: TCPClient.CONNECTION_FAILED, msg: IP address:port of server
state: TCPClient.CONNECTED, msg: IP address:port of server
state: TCPClient.SERVER_OCCUPIED, msg: IP address:port of server
state: TCPClient.DISCONNECTED, msg: empty
state: TCPClient.MESSAGE, msg: message received from server (string)
client.connect() creates a connection to the server (blocking until timeout). Returns True, if the connection is established; otherwise returns False
client.connect(timeout) same, but with timeout (in s) to establish the connection
client.isConnecting() True during a connection trial
client.isConnected() True, if the client is connected to a server
client.disconnect() closes the connection with the server
client.sendMessage(msg, responseTime) sends the information msg to the server (as string, the character \0 (ASCII 0) serves as end of string indicator, it is transparently added and removed). For responseTime > 0 the method blocks and waits for maximum responseTime seconds for a server reply. Returns the message or None, if a timeout occured
TCPClient.getVersion() returns the module version as string

 

Class HTTPServer (inherited from TCPServer)

server = HTTPServer(requestHandler, serverName = "EV3", port = 80, isVerbose = False)

creates and starts a simple HTTP server with the given name listening on HTTP GET requests on the given port. When a request is received, the requestHandler callback function is called with the following parameters:

clientIP: IP address of the client
filename: Filename of the GET query (string)
params: key-value pairs of GET parameters (dictionary)

The return value (string) is sent to the client as a message part of the HTTP-Respose. With Verbose = true debug information are printed.

To stop the server and release the port, terminate() should be called

getClientIP() returns the dotted IP of a connected client. If no client is connected, returns empty string
getServerIP() returns the server's IP address (static method)
(all methods of TCPServer)  


Class HTTPClient

Funktion Aktion
HTTPClient.getRequest(url, data = None)

sends a GET request to the server. url is either "http://serveraddress?key1 = value1&key2 = value2 ..." or just "http://serveraddress" and data is a directory {key1: value1, key2: value2, ..}. In this case, key and value are automatically URL encoded. For SSL (port: 443) http: is replaced by https:.
The return value is the HTTP response (without header). If an error occurs, the error description is returned

HTTPClient.postRequest(url, data = None) sends a POST request to the server. url is either "http://serveraddress?key1 = value1 & key2 = value2 ..." or just "http://serveraddress" and data is a directory {key1: value1, key2: value2, ..}. In this case, key and value are automatically URL encoded. For SSL (port: 443) http: is replaced by https:.
The return value is the HTTP response (without header). If an error occurs, the error description is returned. If an error occurs, the error description is returned
HTTPClient.deletetRequest(url, data = "") sends a DELETE request to the server. url is "http://serveraddress" and data is a string containing the file path of the file to delete. For SSL (port: 443), http: is replaced by https:.
The return value is the HTTP response (without header). If an error occurs, the error description is returned
HTTPClient.pushover(token_key, user_key, title, message)

sends a push request to the pushover server api.pushover.net with given token key, user key, title and message. For verbose = True, debug information is printed. The return value is the HTTP response (without header). If an error occurs, the error description is returned

class ThingSpeakChannel

Function Action
chn = ThingSpeakChannel(channelId, readKey, writeKey, userKey, verbose = False)

creates an instance of the ThinkSpeakChannel class for communication with an existing channel on the cloud server www.thingspeak.com. The parameters correspond to the values received from the server during the channel definition. With verbose = True, debug informationen are written to the console. userKey is assigned to the user account and not to the channel (User API Key)

chn.getData(nbEntries = -1, includeDate = True)

returns the last nbEntries records as list of dictionaries [{fieldId: value} ...] (fieldId = 1..8). For nbEntries = -1, all records are returned. For includeDate = True, the field 'data', which contains the date-time of the record's creation, is also returned. All values are strings. In case of error, None is returned

chn.getTable(nbEntries = -1, includeDate = True)

the same, but returns an instance of DbTable with the table values. In case of error, an empty table is returned

 

chn.show(nbEntries = -1, includeDate = True) the same, but shows the table contents in the console
chn.getLastValue(fieldId = 1)

returns the value of the last record with given fieldId (1..8). In case of error or if the table is empty, None is returned

chn.getFields()

returns a dictionary with the fields defined in the channel and their names: {'field1': <field name 1>, 'field2' :, <field name 2> ..}. In case of error, None is returned

chn.insert(data, timeout = 20)

makes a new table entry and returns True, if successful. data is either a single value (number or string) or a dictionary {fieldId: value, ...} for an entry in multiple fields. Fields that have no value are set to None. For free accounts, a new entry is only allowed every 15 seconds, for payed accounts every second; if the server is not yet ready to accept new data, the insertion trial is repeated every second until the timeout (in s) is reached and False is returned

chn.clear()
clears all table entries. If successful returns True

 

Weather data (only EV3, autonomous mode)

Function Action
info = weather.request(ssid, password, city, key = defaultKey, lang = 'en')

makes a weather data request at http://openweathermap.org for the given location. The given authorization key is used. This can be obtained free of charge on this host. (If the parameter is omitted, a default key is used, which allows a maximum of 60 requests / min for all users.)

Return value: Dictionary with the fields:

"status" "OK" or error string describing the error, e.g. "City not found"
"temp" Temperature in °C (float)
"pressure" Air pressure in hPa (mbar) (float)
"humidity" Humitiy in % (int)
"temp_min" Minimum daily temperature in °C (float)
"temp_max" Maximum daily temperature in °C (float)
"description" Weather description (string, language defined by parameter lang)
"sunrise" Sunrise in Universal Time (UTC) (string)
"sunset" Sunset in Universal Time (UTC) (string)
"datetime" Date-Time of weather recording (UTC) (string)

 

Temperature/Humitidy sensor (Sensirion SHT31 over I2C) (only EV3)

sht = SHTSensor(SensorPort.port) creates a sensor instance at SensorPort S1, S2, S3, S4
sht.getValues() returns temperature (deg C) and humidity (%) in a tuple (floats)

 

Environment sensor (temperature, humidity, air pressure) (Bosch BME280 over I2C) (only EV3)

bme = BMESensor(SensorPort.port) creates a sensor instance at SensorPort S1, S2, S3, S4
bme.getValues() returns temperature (deg C), humidity (%) and air pressure (hPa) in a tuple (floats)


3-axes acceleration sensor (ADXL345 over I2C) (nur EV3)

adxl = ADXLSensor(SensorPort.port) creates a sensor instance at SensorPort S1, S2, S3, S4
adxl.getValues() returns accelerations in x-, y- and z-direction (m/s^2 in range -2g .. 2g) in a tuple (floats)

Complete Online-JavaDoc : EV3JLibA (Autonomous mode)
  EV3JLib (Direct mode)
  NxtJLib (Direct mode)
  RobotSim (Simulation)

home