Se connecter / S'enregistrer
Votre question

Servomoteur sous Flowcode

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
2 Mars 2010 15:50:55

Bonjour à vous amis du forum .

Je viens à vos aujourd'hui car, dans le cadre d'un projet en cours, je dois effectuer un petit robot . Mon jolie petit cahier des charges m'oblige à utiliser Flowcode . Et je suis légèrement perdu je vous avouerais .

J'explique le problème . J'ai un petit robot équipé de deux capteurs ( Émetteur/Récepteur de lumière , type CNY70 ) .
Ce robot possède deux roues motrice, et donc deux servomoteurs .
Je souhaite que quand les deux capteurs soit au niveau logique 1 ( Appelons les capteur Cgauche et Cdroit ), le moteur tourne a une vitesse constante .
Quand le Cgauche ne capte plus ( donc a un niveau logique 0), on coupe le servomoteur droit et on fait ralentir la vitesse du servomoteur gauche . Comme sa le robot fait un virage, mais a vitesse réduit, ce qui rend le mouvement plus souple .

J'ai lu et fait pas mal de tutoriels sous Flowcode, donc le reste du programme me pose moins de problème, mais je vous avouerais qu'a part un système MLI ( avec un truc PWM, que j'ai vu sur des forums, et qui m'a l'air bien compliqué ), je vois pas trop comment faire .

Le programme ressemblerait a sa :

  1. Tant que ( Cdroite et CG = 1)
  2. Moteur tourne normalement
  3. Fin tant que
  4.  
  5. Si Cdroite = 0 et Cgauche = 1
  6. Couper moteur gauche
  7. Ralentir moteur droit


J'ai le choix entre un PIC 16F88 ou 18F452 .

Merci à ceux qui essaieront de m'expliquer comment faire tourner ces servomoteur .

Autres pages sur : servomoteur flowcode

3 Mars 2010 07:14:11

Un petit up pour trouver une personne qui sait comment faire tourner un servomoteur sous flowcode =D
m
0
l
14 Mars 2010 12:29:41

up ?
m
0
l
25 Mars 2010 12:54:41

Si je dit pas de connerie.
Pour piloter ton servo, tu dois le faire en largeur d'impulsion, et ce, toutes les 20ms.
C'est a dire, que, tu envoie un signal a une sortie du pic pendant x ms, puis, tu n'envoie plus rien et tu répètes l'opération, toutes les 20ms.
Le x dépend de ton servo. En général, pour 1.5ms, le servo est en position centrale, ou "en roue libre". Pour 2.2ms, il tourne dans le sens 1, pour 0.8ms, dans le sens 2. Par contre, sans passer par du PWM, impossible de faire varier la vitesse progressivement, ce sera marche, ou arret...

Un programme du genre devrait fonctionnner :

Citation :
tant que ( CD=1 et CG=1 )
A1 = 1
A2 = 1
pause 0.8ms ( ou plutot, pause 8/10ms car je crois que flowcode refuse que l'on écrive des nombres non entier )
A1 = 0
A2 = 0
pause 19.2ms
fin tant que

tant que ( CD=0 et CG=1 )
A1 = 1
pause 0.8ms ( ou plutot, pause 8/10ms car je crois que flowcode refuse que l'on écrive des nombres non entier )
A1 = 0
pause 19.2ms
fin tant que

Dans ce cas, tes servo serait brancher au entrer A1 et A2...
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS