Bienvenu(e)! Identification Créer un nouveau profil

Recherche avancée

Mon projet asservissement 6 moteurs avec l USB

Envoyé par kikisurface 
Mon projet asservissement 6 moteurs avec l USB
dimanche 25 février 2007 19:40:46
Bonjour,

Voila mon projet

J ai un bras motorise par 6 moteurs pas a pas (6 fils mais on peut oublier les points milieu a cas ou et dire que se sont des moteur pas a pas 4 fils j ai oublie la définition avec les mots savant XX-polaire). Il n y a pas de capteur de position sur ces moteurs mais au pire je peux les implanter.

Je souhaite asservir en position ce bras 6 axes via l interface USB HID que propose ce site (avec le 18F4550).

Je compte utiliser le PIC 18f4550 pour piloter un ou des pic qui contrôlerons mes 6 moteurs.

Une foule de questions se bousculent… je suis donc allé trainer sur tout plein de site pour répondre a mes questions (ou pour m en poser des autres).

Etant sans cahier des charges et sans réel connaissance des limites des pics et de l interface HID avec le 18f4550 j ai l impression de me perdre tout seul.

Voila certaine de mes questions (je viendrai poster des autres questions au fur et a mesures)

1) Est ce que je peux commander plusieurs sorties de l interface USB (18F4550) sans perturber les autres…

EX :
a)
- Je demande a RB7 de générer un signal carre de 70 fronts montants (comme avec la led de l exemple)
- Je demande a RB6 de générer un signal carre de 60 fronts montants (comme avec la led de l exemple)

Et tout un coup pendant que l interface USB s amuse à me faire les signaux que je demande sur RB6 et RB7 je demande de lire un signal analogique ou de générer un autre signal SANS que RB6 et RB7 soit dérangées.

2) La commande de mes moteurs pas a pas…. Mon esprit a du mal à imaginer command un pic peux gérer 2 ou plusieurs moteurs pas a pas.

EX :

Imaginons que j souhaite asservir en positions 2 moteurs pas a pas avec un seul pic…
J imagine que
RA0 serai la clock pour le moteur A et RA1 le sens de rotation du moteur A et de que RB0 serai la clock pour le moteur B et RB1 le sens de rotation du moteur B.

Maintenant j envoie 70 fronts montant sur RA0 et 60 fronts sur RB0 (peut importe le sens de rotation…)

Est-ce que le pic arrivera a voir tous les fronts ??? et si je change de sens de rotation d un moteur en cours de route ??? et si je décale RA0 genre de 2 secondes ???

Comme les pic sont séquentiel j ai peur de ne pas pouvoir gérer deux moteur a la fois mais de faire tourner un moteur d attendre qu il soit aller 70 front plus loin et en suite de faire tourner l autre… j espère que j arrive a faire passer le message ce n est pas évident…

Sinon j ai entendu parler du 16f628 (le remplaçant du 16f84) est ce que le programmateur de ce site permet de le programmer le 628 ou est ce qu il faut faire des changements ?

BREF pour l instant je regarde comment asservir en position mon bras juste en comptant le nombre de pas que je fais faire a mes moteurs (en ayant une position initial connu évidement)

D avance merci
kikisurface

Ps je fais mes études dans un pays étranger…. Les claviers sont en QWERTY sans accent…

Re: Mon projet asservissement 6 moteurs avec l USB
lundi 26 février 2007 21:13:23
Salut,

Je vois ou ça coince pour toi...

Enfait tu dois absolument apprendre a te servir du timer et des interruption de celui-ci... Celuiç ci te permet a fréquence constante que tu programmes d'exécuter un bout de code....


Exemple ici :

[www.roboticus.org]

Grâce au timer tu vois pouvoir inclure une base de temps dans ton programme qui te permettra de faire fonctionner plusieur processus a condition que leur vitesse d'exécution ne soit pas non plus trop importante.... tu travailleras dans des fréquence de l'ordre de 1 à 10khz max ce qui est déjà très bien pour ton application...

Quand tu changes l'état d'une sortie, demande une conversion analogique ou quoi que ce soit, tu fais appel à des schéma électronique intégré dans le pic, une conversion analogique n'est pas un process software mais hardware, si tu lis le datasheet du pic tu comprendras tres vite comment ça marche...

Tu as aussi d'autre source d'interruption comme les interruption sur les entrées (appel un bout de programme quand l'état change) mais aussi des compteurs, des pwm, et ... qui te permette de creer des signaux ou de compter des impulsions de façon completement hardware... Renseigne toi sur ce sujet tu y trouveras tout ce qui faut...

Pour récapituler :
Regarde dans le datasheet :
Les timer, les compteurs (pour compter des impulsions), les interruptions et quand tu maitrises ça tu as tout ce qu'il faut

Bonne continuation

Benjamin
Re: Mon projet asservissement 6 moteurs avec l USB
lundi 26 février 2007 23:10:27
j ai commencer a lire les choses sur les interruptions... hum ca semble magnifique.. des idees me viennent. Mais la je vais dornir smiling smiley il est 0h00 heure francaise.

je viendrai vous tenir au courant au fur et a mesure... avec des photos pour la fin evidement...

see you later!
Re: Mon projet asservissement 6 moteurs avec l USB
mardi 27 février 2007 08:31:42
Ok super!
Re: Mon projet asservissement 6 moteurs avec l USB
mercredi 28 février 2007 14:17:25
Bonjour,

Voila je commence l aventure avec l interface USB (HID)

J ai ‘imprimer’ la carte de programmation de pic de ce site mais il y a une difference entre le typon donne et la vue composant page 2 de votre fichier PDF (au niveau de la pate 14 et 15 de CI1 et 3 autres trous pret de C1 il y a des trous en plus)

J ai survoler le forum je n ai vu personne relever cette curiosite....

J attend le pic 18f4550 pour tester votre exemple avec la led et le bouton pousoir smiling smiley

...Comme j attend ma commande de composant, je vais me rencarder sur un pic pouvant me commander 6 moteurs pas a pas (6*(4+2) pattes d entre sortie.. GLOUP ou alors 2 pic pour 2*3 moteurs ..etc )

J ai entendu parler du 16f628 (le remplaçant du 16f84) est ce que le programmateur de ce site permet de programmer le 628 ou est ce qu il faut faire des changements ?

D avance merci
Mathieu


Ps toujours avec le clavier qwerty.... les accents y en a pas...



Modifié 1 fois. Dernière modification le 28/02/07 14:18 par kikisurface.
Re: Mon projet asservissement 6 moteurs avec l USB
mercredi 28 février 2007 16:09:12
Salut,

Enfait c'est tout a fait normal les 5 trous en plus... C'est justement pour ça que j'ai rajouter ce programmateur sur le site... C'est 5 "trous" te permette de mettre des fils pour récupérer les 5 signaux nécessaires à la programmation du pic afin de pouvoir brancher un autre pic dessus qui n'aurait pas le même boitier comme le 18f4550 par exemple...

C'est 5 fils sont les ICSP (in circuit serial programming) c'est a dire le fil +, la masse, le mclr et les deux pin de communication des données, et à l'aide de l'adaptateur tu peux alors programmer un 18f4550....

Pour ce qui est du 16f628 il faut que tu vois la position des de ses broches ICSP, c'est à dire le plus simple ce que tu regardes dans le datasheet du 16f84a que tu vois les broches (+, -, mclr, RB7 et RB6 je pense) tu regardes leur noms et leur caractéristique (c'est dans le début du datasheet) et tu recherche dans le datasheet du 16f628 les broches correspondante, il te suffit alors de faire un adapteur qui va reprendre les signaux dans les 5 trous destinés à cette application sur le programmateur et qui va sur ton 16f628...

J'admet c'est un peu "bourrin" mais ça marche tres bien winking smiley

Bonne continuation

Benjamin
Re: Mon projet asservissement 6 moteurs avec l USB
mercredi 28 février 2007 18:33:02
bonsoir,

Je vais faire ca... evidement je vous tient au courant.

MERCI
Mathieu
Re: Mon projet asservissement 6 moteurs avec l USB
jeudi 1 mars 2007 19:58:34
Bonsoir,

Encore moi. J ai recut mes PIC 18F4550 gratuit de microchip via la "poste" ce soir smiling smiley.

Par contre en regardant le schema du programateur de 16f84 et le TYPON, je me demande comment le circuit fonctionne...

- Je me demande ou est relie le "0V" (Pin 5 de CI1).
- Et j ai du mal a voir a quoi sert D5 (zener 8
2V) dans cette configuration elle va toujours etre passante.
- De meme D6 (zener 5.1V)??? entre +5V et 0V

J ai hate de tester ca smiling smiley mais il me manque des composants et un pc smiling smiley (Je n ai pas de PC perso j utilise les pc de l universite confused smiley )

J ai l autorisation d installer des logiciel demain ou lundi alors je vais tout installer d un coup...

- MPLAB IDE v7.50 Full Zipped Installation www.microchip.com je n ose pas prendre "MPLAB IDE v7.52 Interim Release – Full Zipped Installation"
- MPLAB C18 Compiler v3.10 Student Edition www.microchip.com
- ic prog
- winPic 800
- easy HID

* Il me semble qu il y a des precotions a prendre avec l installation de C18... [mathieu.agopian.free.fr]

Sinon avec tout ca je pense que j ai tout pour faire l exemple de ce site... n est ce pas?

Vivement vendredi ou lundi ...

Ciao
Mathieu





Modifié 1 fois. Dernière modification le 01/03/07 20:19 par kikisurface.
Re: Mon projet asservissement 6 moteurs avec l USB
jeudi 1 mars 2007 21:30:26
Salut,

Tout devrait se passer correctement, un petit conseil, icprog ne sert a rien winking smiley winpic8000 fonctionne beaucoup mieux...

Pour l'installation du compilateur C installe mplab en premier, et quand le compilateur s'installe il se met tout de suite dans mplab donc pas de probleme

Pour ce qui est du programmateur, j'ai un peu de mal à froid à te dire quoi, je te l'avoue, c'est pas moi qui l'ai créé... Ce qu'il ne faut pas oublier c'est que le port série travail dans des tension de -12 à + 12Volt et de plus la pin 5 du db 9 c'est le 0 volt, donc en gros, il positionne le 0volt du port com à +5Volt et crée une dpp de 5volt depuis le -12 avec les diodes pour positionner la masse du pic... C'est plus ou moins comme ça que je le vois... Mais je te rassure, ça fait quelques années que je l'utilise et jamais eu de probleme...

A+

Benjamin
Re: Mon projet asservissement 6 moteurs avec l USB
mardi 13 mars 2007 17:13:22
Bonsoir,

Un bon point pour toi Benjamin.

- le programmateur marche bien. il n y a rien a faire (juste brancher et envoyer le *.hex avec winpic 800) Au passage la programmation du 16f628 marche directement sur le dil de ton programmateur... trop bien.

- Ton programme aussi a l air de fonctionner (je n ai tester que la led qui clignote smiling smiley ) hihihihih trop bien.

Conclusion je vais pouvoir enfin essayer de faire mes petits programmes pour tester et repondre a certaine de mes questions... et apres j essais de commander mon bras (3 pic 16F628 + interface de puissance )

je vous tient au courant et il suivra des photos et surement une petit video sur YOUTUBE

Merci @+
kiki
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter