Accueil

FAIRE TOURNER un SERVO-MOTEUR

 

Notre robot va se déplacer grâce a deux servo moteurs: un sur la roue droite et un sur la roue gauche.

Attention pour ce montage on utilise une alimentation séparée de celle du Propeller pour les servomoteurs : du 5 volts fourni par un pack de 4 batteries rechargeables de 1,3 volts (AA, HR6) . Ceci pour éviter des interférences : quand les servomoteurs démarrent ou s'arrétent on risque de brusques variations de voltage qui risquent de perturber le fonctionnement du Propeller. On branche la terre de cette batterie sur la terre du montage (la ligne de terre marquée en noir sur la plaque d'essai est commune aux 2 alimentations) et le 5 volts sur une ligne de 6 trous de la plaque d'essai qui seront donc tous a 5 volts : il faut donc que ces - trous n'aient aucune connection avec le Propeller qui marche avec du 3,3 volts, on les repére en marquant l'emplacement de cette ligne au marqueur ROUGE.

On utilise des servomoteurs modifiées (ici c'est l'usine qui les construit qui les a modifiés ) dits a rotation continue (ils peuvent faire des tours complets de 360 degrés alors que les servos d'origine ne tournent que d'un petit angle.

Les servo moteurs ont un connecteur a 3 fils , on va donc pour chaque moteur utiliser un connecteurs a 3 picots pour le brancher sur des trous de 3 lignes différentes de la plaque d'essai . Malheureusement les couleurs des 3 fils des servomoteurs varient d'un fournisseur a l'autre : en général il y a un fil rouge a relier au 5 volts, le fil de terre est noir ou brun, le fil pour envoyer les commandes du Propeller au servo est blanc ou orange. On intercale une résistance de 4,7 Kilo Ohms entre la patte du Propeller et ce fil.

Ici on va relier le MOTEUR (que nous supposeront être le GAUCHE) au PIN 14. mettez un autocollant avec un G pour repérer ce moteur gauche.(pour pouvoir utiliser ce que nous allons observer)

Pour faire tourner un servomoteur on lui envoie une impulsion toutes les 20 millisecondes et ensuite selon la durée de cette impulsion le servomoteur peut:

Tout repose donc sur l'envoi de ces impulsions aux servomoteurs :

Avant d'utiliser le programme qui suit lisez le attentivement et notez:

(rappelez vous que tout ce qui est aprés le signe <'> n'est pas utilisé par le programme c'est un commentaire pour vous aider a savoir ce que fait le programme)


CON
_CLKMODE =xtal1 + PLL16X ' ici le Propeller fonctionne a 80 MegaHertz: 16 fois la fréquence du quartz soit 80_000_000
_XINFREQ = 5_000_000 ' la fréquence du quartz

 

PUB moteurs

dira[14]:=1 'on ouvre la patte 14 en émission, pour pouvoir envoyer des commandes au moteur


repeat 50 'on envoie 50 impulsions séparées par 20 millisecondes (clkfreq/50)

'il faut décaler a droite les 2 lignes qui sont aprés cette ligne mais cet éditeur de pages n'en empêche!

pulsegauche(1650)' la durée de l'impulsion en microsecondes on peut aller de 1250 a 1650
waitcnt (clkfreq/50 + cnt )'on attend 1/50 de seconde (=20 millisecondes) avant d'envoyer l'impulsion suivante


PUB pulsegauche (duree)'on envoie les impulsions de la duree choisie au moteur gauche

outa[14]:=1 'on met la patte 14 a 3,3 volts et on la lasse branchée pedant le temps qui suit
waitcnt(((clkfreq/1_000_000) *duree) +cnt) 'clkfreq correspond a 1seconde et clkfreq /1_000_ 0000 c'est un millioniéme de seconde qu'on appelle une microseconde donc si duree vaut 1650 on aura une impulsion de 1650 microsecondes
outa[14]:=0 'on met la patte 14 a 0 volts


Si vous voulez faire tourner le moteur droit il suffit de recopier la méthode pulsegauche avec un couper/coller et d'appeler ce nouvel exemplaire de la méthode <pulsedroit> ; la seule différence est que le moteur droit est commandé par un autre patte du Propeller : ici on l'a branché sur la patte 15 donc on remplace 14 par 15 dans le texte de la nouvelle méthode pulsedroit qu'on vient de créer, et c'est tout .

Pour faire tourner les 2 moteurs en même temps il suffit d'écrire dans PUB moteurs:

pulsegauche (1650)

pulsedroit (1250)

waitcnt(clkfreq/50 +cnt)

et avec ces 3 lignes le robot avancera en ligne droite !