Robot suiveur de ligne picaxe 18M2

alexhenry

New Member
Bonsoir,
Nous devons réaliser un robot suiveur de ligne qui dépose 3 balles de pingpong dans des plots situés à 4cm de la ligne.

Mes composants sont les suivants:
-carte picaxe 18m-2
-capteur de Distance GP2D120 IR Sharp
-capteur de ligne 3 diodes émettrices
-servomoteur
-2 moto réducteurs sur la sortie 1 et 2

Il ne nous reste que très peu de temps pour terminer notre robot, et nous sommes face à plusieurs problèmes:

-nous ne savons pas où brancher le servo moteur qui est l'actionneur de la fonction "déposer la balle" ( qui ne doit tourner que dans un seul sens en 5v)


-niveau programme pour le capteur, on souhaite demander à la carte de faire un "gosub mouv" lorsque la sortie du capteur de distance est suppérieur à 2V (le capteur situé à moins de x cm, je crois qu'il faut convertir les volts en quantum):

do
readadc captplot,v0
if v0 > 2 then gosub mouv

M'éclairer un peu serait très sympa.

Merci, alex
 
Last edited:

PieM

Senior Member
Bonjour Alex,

Un servo sur le 18M2 peut se brancher sur toute sortie, en utilisant la commande servo et servopos. Voir manuel 2 page 204 . Il tourne dans un sens ou dans une autre en fonction de la largeur des impulsions reçues.

Concernant le Sharp, il délivre une tension analogique fonction de la distance mais inversement proportionnelle à celle ci ! (non linéaire). Plus la cible est proche, plus la tension est élevée.

En principe, pour une distance de l'ordre de 4 cm, la tension est d'environ 2.8V, et 0.4V pour 30 cm.
La lecture analogique (0 à 255 pour 0V à 5V) va donc donner une valeur de 255/5*0.4 soit 20 pour la distance de 30 cm, et 255/5*2.8 soit 142 pour la distance de 4 cm.
(ces valeurs restent à étalonner).

si "mouv" est le sous programme de dépôt de la balle
Le programme comprendra donc :

readadc captplot,v0
if v0 > 140 then gosub mouv
 

alexhenry

New Member
Bonsoir PieM,
merci beaucoup pour toutes ces explications. J'essaierai de faire quelques tests demain si j'ai du temps.

Voici mon sous programme mouv:
symbol vit = 50
symbol arret = 2000



mouv:
low motD_AV
low motG_AV
servo servomot, vit
pause 2000
servo servomot, arret
return
 

PieM

Senior Member
Bonjour,

Relire la doc concernant la commande servo: sur le 18M2 le port acceptant la commande servo est le port B (B.0 à B.7) et le paramètre pulse ne peut être celui indiqué (2000)

Syntax:
SERVO pin,pulse

- Pin is a variable/constant which specifies the i/o pin to use. (pin compris entre B.0 et B.7)
- Pulse is variable/constant (75-225) which specifies the servo position
 
Top