Accueil

 

Montage des servomoteurs et des roues sur une carcasse en plastique

et mise en route des moteurs droit et gauche

Pour réaliser sans peine une carcasse de robot on peut la créer comme suit:

 

Ici on relie le MOTEUR GAUCHE au PIN 14 et le MOTEUR DROIT au PIN 15.

Pour qu'un robot aille en marche avant, arriére, ou tourne a droite ou a gauche il suffit de combiner les commandes envoyées aux 2 moteurs avec des durées d'impulsions bien choisies entre 1250 et 1650 microsecondes.

En envoyant un plus on moins grand nombre de ces impulsions ,séparées par des temps de délai de 20 millisecondes, on fait avancer plus ou moins le robot

Le programme principal appelé <moteurs> fait déplacer le robot en appelant les méthodes utilisées pour avancer, reculer, tourner.

En fait ici on envoie une impulsion au moteur droit puis une autre au moteur gauche puis on attend 20 millisecondes (clkfreq/50) et on recommence.

Pour ne pas abimer les servomoteurs il ne faut pas passer brutalement de la marche avant a la marche arriére , on met une attente d'environ un tiers de seconde (clkfreq/3) a chaque changement de vitesse important.

 


CON' ne vous inquitez pas des 2 lignes qui suivent, retenez seulement qu'elles permettent de régler la vitesse de l'horloge du Propeller
_CLKMODE =xtal1 + PLL16X ' le Propeller fonctionne a 80 MHZ
_XINFREQ = 5_000_000 ' la fréquence du quartz

VAR

long Time

PUB moteurs


dira[15]:=1 'on ouvre la patte 15 en émission pour le moteur droit
dira[14]:=1 'on ouvre la patte 14 en émission pour le moteur gauche


avancer(100)'on avance de 100 impulsions
waitcnt(clkfreq/3 +cnt)'on attend que les moteurs s'arrétent


droite(60)' on tourne a droite pendant 60 impulsions
waitcnt(clkfreq/3 +cnt)

avancer(100)
waitcnt(clkfreq/3 +cnt)


gauche(60)
waitcnt(clkfreq/3 +cnt)


reculer(100)
waitcnt(clkfreq/3 +cnt)


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

outa[14]:=1
waitcnt(((clkfreq/1_000_000) *duree) +cnt) 'clkfreq correspond a 1seconde et ici on calcule la duree réelle de chaque impulsion
outa[14]:=0

PUB pulsedroit (duree)'même chose pour le moteur droit

outa[15]:=1
waitcnt(((clkfreq/1_000_000)*duree) +cnt)
outa[15]:=0

PUB avancer(impulses) 'pour faire avancer le robot on combine des impulsions sur les servomoteurs droit et gauche

repeat impulses'il faut décaler a droite tout ce qui est aprés cette ligne mais cet éditeur de pages n'en empêche!

pulsegauche(1650)
pulsedroit(1250)
waitcnt (clkfreq/50 +cnt)

PUB reculer (impulses)

repeat impulses

pulsegauche(1250)
pulsedroit(1650)
waitcnt (clkfreq/50 +cnt)

PUB droite (impulses) 'pour tourner a droite on fait tourner les servos a fond dans le sens des aiguilles d'une montre

repeat impulses

pulsegauche(1650)
pulsedroit(1650)
waitcnt (clkfreq/50 +cnt)


PUB gauche (impulses)

repeat impulses

pulsegauche(1250)
pulsedroit(1250)
waitcnt (clkfreq/50 +cnt)