LinuxÉdu

Mous’Edu : Robot à moustaches pour un labyrinthe

Les robots moustaches sont des robots équipés de capteurs d’obstacle par pression mécanique. Les capteurs ont souvent la forme de moustache.

Mous’Edu, robot moustache de LinuxEdu, fonctionne avec :

– une carte Arduino,

– deux servomoteurs,

– deux contacteurs

– deux résistances 10kOhms

Fabrication du robot :

Le châssis est usiné à l’aide d’une machine à commande numérique CharlyRobot.

Téléchargement du fichier d’usinage .grl : chassis_robot7

Les deux servomoteurs sont modifiés pour être à rotation continu.

Ils seront ensuite testés pour trouver leur neutre.

Branchement des fils de connections :

Réalisation du programme avec PhysicalEtoys :

Réalisation du programme en C :

#include
#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3
#define SERVOG 1
#define SERVOD 0
#define VMAX 5
Servo servog;
Servo servod;
int getNeutral(int s)
{
if(s == SERVOG)
return 86;
else
return 84;
}
void handleS(int s, int speed)
{
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30};
int pos = getNeutral(s);
int acc;
if (speed < 0)
acc = - tab[abs(speed)];
else
acc = tab[speed];
if(s == SERVOG)
servog.write(pos += acc);
else
servod.write(pos -= acc);
}
void move(int direction)
{
int m1 = 0, m2 = 0;
switch(direction)
{
case DROITE: m1 = 1; m2 = -1; break;
case GAUCHE: m1 = -1; m2 = 1; break;
case AVANT: m1 = 1; m2 = 1; break;
case ARRIERE: m1 = -1; m2 = -1; break;
}
handleS(SERVOG, m1*VMAX);
handleS(SERVOD, m2*VMAX);
}
void setup()
{
servog.attach(10);
servod.attach(9);
move(AVANT);
}
void loop()
{
delay(15);
}

Source :

http://www.robot-maker.com/index.php?/tutorials/article/10-roby/

Comments are closed.