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/