format_list_bulleted

Fonctions de contôle

Contrôler la vitesse ou la position de votre robot

leftMotorWrite()

Syntaxe

Robby.leftMotorWrite(velocity);

Description

leftMotorWrite() permet de contrôler la vitesse de rotation du moteur gauche en choissant le rapport cyclique de la PWM appliquée à ses bornes. La fonction ne renvoie aucune variable et prend comme argument le rapport cyclique compris entre -255 et 255 (int).

warningVous devez definir le mode de votre robot avec setMode() avant d'utiliser cette fonction.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(DIFFERENTIAL);
  Robby.leftMotorWrite(100);
  //votre code...
}

void loop(){
  //votre code...
}

rightMotorWrite()

Syntaxe

Robby.rightMotorWrite(velocity);

Description

rightMotorWrite() permet de contrôler la vitesse de rotation du moteur droit en choissant le rapport cyclique de la PWM appliquée à ses bornes. La fonction ne renvoie aucune variable et prend comme argument le rapport cyclique compris entre -255 et 255 (int).

warningVous devez definir le mode de votre robot avec setMode() avant d'utiliser cette fonction.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(DIFFERENTIAL);
  Robby.rightMotorWrite(100);
  //votre code...
}

void loop(){
  //votre code...
}

frontMotorWrite()

Syntaxe

Robby.frontMotorWrite(velocity);

Description

frontMotorWrite() permet de contrôler la vitesse de rotation du moteur avant en choissant le rapport cyclique de la PWM appliquée à ses bornes. La fonction ne renvoie aucune variable et prend comme argument le rapport cyclique compris entre -255 et 255 (int).

warningVous devez definir le mode de votre robot avec setMode() avant d'utiliser cette fonction.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(OMNIDIRECTIONAL);
  Robby.frontMotorWrite(100);
  //votre code...
}

void loop(){
  //votre code...
}

speedWrite()

Syntaxe

Pour le mode différentiel

Robby.speedWrite(linearvelocity,angularvelocity);

Pour le mode omnidirectionel

Robby.speedWrite(linearvelocity,angularvelocity,direction);

Description

speedWrite() permet de contrôler la vitesse de translation et rotation de Robby. La fonction ne renvoie aucune variable et prend comme arguments la vitesse de translation (int) et de rotation (int).

warningVous devez definir le mode de votre robot avec setMode() avant d'utiliser cette fonction.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(OMNIDIRECTIONAL);
  Robby.speedWrite(0,100,200);
  //votre code...
}

void loop(){
  //votre code...
}

stop()

Syntaxe

Robby.stop();

Description

stop() permet d'arrêter le déplacement de Robby. La fonction ne renvoie aucune variable et ne prend aucun argument.

warningVous devez definir le mode de votre robot avec setMode() avant d'utiliser cette fonction.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(DIFFERENTIAL);
  Robby.stop();
  //votre code...
}

void loop(){
  //votre code...
}

goTo()

Syntaxe

Pour le mode omnidirectionel uniquement

Robby.goTo(Xt,Yt);

Description

goTo() permet à Robby de se rendre à un point d'arrivée spécifié par ses coordonnées en mm. La fonction ne renvoie aucune variable et prend comme arguments deux float.

warningCette fonction n'est utilisable qu'avec le mode OMNIDIRECTIONAL et asservi (slaved). La fonction process() doit être placée dans la loop().

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(OMNIDIRECTIONAL);
  Robby.slaved();
  Robby.goTo(200,200);
  //votre code...
}

void loop(){
  //votre code...
}

translate()

Syntaxe

Pour les structures différentielles

Robby.translate(distance);

Pour les structures omnidirectionelles

Robby.translate(distance,direction);

Description

translate() permet à Robby de se déplacer en translation d'une distance spécifiée en mm et dans une direction spécifiée en deg (par défault 0°). La fonction ne renvoie aucune variable et prend comme arguments des float.

warningPour utiliser cette fonction, process() doit être placée dans la loop() et l'asservissement en position (slaved) activé.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(OMNIDIRECTIONAL);
  Robby.slaved();
  Robby.translate(500.,200.);
  //votre code...
}

void loop(){
  //votre code...
}

pointTo()

Syntaxe

Robby.pointTo(angle);

Description

pointTo() permet de tourner Robby suivant une direction spécifiée (comprise entre 0° et 360°). La fonction ne renvoie aucune variable et prend comme argument un float.

warningPour utiliser cette fonction, process() doit être placée dans la loop() et l'asservissement en position (slaved) activé.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(DIFFERENTIAL);
  Robby.slaved();
  Robby.pointTo(200);
  //votre code...
}

void loop(){
  //votre code...
}

turn()

Syntaxe

Robby.turn(angle);
Robby.turn(angle,rounds);

Description

turn() permet de tourner Robby d'un angle spécifié (compris entre 0° et 360°) et d'un nombre de tour spécifié (par défault 0). La fonction ne renvoie aucune variable et prend comme argument un float et un int.

warningPour utiliser cette fonction, process() doit être placée dans la loop() et l'asservissement en position (slaved) activé.

Exemple

#include <BRAINZY.h>

float angle = 200; //tourner de 200°
int rounds = 2; //faire 2 tours

void setup(){
  Robby.setMode(DIFFERENTIAL);
  Robby.slaved();
  Robby.turn(angle,rounds);
  //votre code...
}

void loop(){
  //votre code...
}

turnAround()

[PAS ENCRORE IMPLÉMENTÉ]

isActionDone()

Syntaxe

Robby.isActionDone();

Description

isActionDone() permet de vérifier si Robby a fini une action ou un déplacement issu des fonctions translate(), goTo(), turn(), turnAround() et/ou pointTo(). La fonction renvoie un bool (true si l'action est finie, false sinon) et ne prend aucun argument.

warningPour utiliser cette fonction, process() doit être placée dans la loop() et l'asservissement en position (slaved()) activé, sinon la fonction renvoit par défault true.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(DIFFERENTIAL);
  Robby.slaved();
  USB.begin(9600);
  Robby.turn(90);
  //votre code...
}

void loop(){
  USB.println(Robby.isActionDone());
  //votre code...
}

waitActionDone()

TODO