format_list_bulleted

Fonctions de contôle

Contrôler la position de votre robot et la vitesse de ses moteurs

process()

Syntaxe

Robby.process();

Description

process() permet d'exécuter les routines de Robby (asservissement, odométrie, contrôle de la batterie, des LED...) et d'actualiser toutes les variables de votre programme. La fonction ne renvoie aucune variable et ne prend aucun argument.

warningCette fonction doit être placée dans la loop() sans aucune autres fonctions blocantes qui risqueraient d'altérer son fonctionnement.

Exemple

#include <BRAINZY.h>

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

void loop(){
  Robby.process();
  //votre code...
}

slaved()

Syntaxe

Robby.slaved();

Description

slaved() permet d'activer l'asservissement en position. La fonction ne renvoie aucune variable et ne prend aucun argument.

infoL'asservissement permet d'utiliser les fonctions de contrôle en position comme translate(), turn(), turnTo(), goTo()...

Exemple

#include <BRAINZY.h>

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

void loop(){
  Robby.process();
  //votre code...
}

noSlaved()

Syntaxe

Robby.noSlaved();

Description

noSlaved() permet de désactiver l'asservissement en position. La fonction ne renvoie aucune variable et ne prend aucun argument.

infoSi slaved() ou noSlaved() ne sont pas spécifiés dans votre code, l'asservissement en position est désactivé par défault.

Exemple

#include <BRAINZY.h>

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

void loop(){
  Robby.process();
  //votre code...
}

motorWrite()

Syntaxe

Robby.motorWrite(velocity,motorid);

Description

motorWrite() permet de piloter la vitesse de rotation du moteur identifié en choissant le rapport cyclique de la PWM appliquée à ses bornes. La fonction ne renvoie aucune variable et prend comme arguments le rapport cyclique compris entre -255 et 255 (int) et l'identifiant du moteur : LEFTMOTOR, RIGHTMOTOR, ou FRONTMOTOR.

Exemple

#include <BRAINZY.h>

void setup(){
  Robby.setMode(DIFFERENTIAL);
  Robby.motorWrite(100,LEFTMOTOR);
  //votre code...
}

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

leftMotorWrite()

Syntaxe

Robby.leftMotorWrite(velocity);

Description

leftMotorWrite() permet de piloter 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).

infoCette fonction est équivalente à motorWrite(velocity,LEFTMOTOR);

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 piloter 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).

infoCette fonction est équivalente à motorWrite(velocity,RIGHTMOTOR);

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 piloter 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).

infoCette fonction est équivalente à motorWrite(velocity,FRONTMOTOR);

Exemple

#include <BRAINZY.h>

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

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

speedWrite()

Syntaxe

Pour les structures différentielles

Robby.speedWrite(angularvelocity,translationvelocity);

Pour les structures omnidirectionelles

Robby.speedWrite(angularvelocity,xvelocity,yvelocity);

Description

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

warningPour utiliser cette fonction, process() doit être placée dans la loop().

Exemple

#include <BRAINZY.h>

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

void loop(){
  Robby.process();
  //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.

warningPour utiliser cette fonction, process() doit être placée dans la loop().

Exemple

#include <BRAINZY.h>

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

void loop(){
  Robby.process();
  //votre code...
}

goTo()

Syntaxe

Pour les structures omnidirectionelles 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(){
  Robby.process();
  //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(){
  Robby.process();
  //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(){
  Robby.process();
  //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(){
  Robby.process();
  //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(){
  Robby.process();
  USB.println(Robby.isActionDone());
  //votre code...
}