Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 44

Commande de controle de moteur pap



  1. #1
    Molleyjow

    Commande de controle de moteur pap


    ------

    Bonjour nous sommes un groupe d'élèves de Terminales Ssi, nous avons à rendre pour le mois d'avril un Projet Plutitechnique Encadré. Nous fabiquons une poursuite de scène automatisée.

    Bref notre problème se pose pour la commande des moteurs pas à pas (un en abscisses et l'autre en ordonnées).
    En effet après avoir pensé utiliser un Automate Programmable Industriel, aujourd'hui notre prof d'élec a commencé son cours sur le language Flowcode.

    L'utilisation de microcontroleurs PIC nous a donc paru plus évidente et moins couteuse que l'API.
    Le problème est que nous ne connaissons pas le brochage exact de ces microcontroleurs (simplifié en classe) et nos recherches ont été nules...
    C'est pourquoi nous vous demandons les références un microcontroleur PIC dotté de minimum 16 entrées d'informations et de suffisament de sorties pour la commande de deux moteurs pas à pas (4 ou 6 fils chacun).
    Nous utiliserons le logiciel de codage graphique FLOWCODE 4.

    Merci d'avance

    -----

  2. Publicité
  3. #2
    Franck-026

    Re : Commande de controle de moteur pap

    Deja, evite flowcode qui est une grosse daube pour ceux qui croient que c'est plus rapide. En effet flowcode sort un fichier asm totalement inbitable et incorrigible. Autant prendre une maquette vierge chez Mr Bigonoff, et tout programmer a la mano.
    Apprendre flowcode a l'ecole? n'importe quoi. Le prof devrait plutot vous apprendre a programmer en asm proprement, ca sera plus profitable....

  4. #3
    Molleyjow

    Re : Commande de controle de moteur pap

    Il nous a dit que le flowcode était l'un des language les plus simples pour controler un PIC (pour l'instant j'en ait bien l'impression aussi puisque ça ressemble fortement au grafcet), cela permet d'après lui de controler un système même assez compliqué en étant débutant. Puis nous aurons le language flowcode au bac, ça nous permettra de réviser au passage ^^

  5. #4
    Franck-026

    Re : Commande de controle de moteur pap

    simple mais terriblement buggué si bien que tu dois y revenir a la main pour trouver les erreurs, et que le fichier asm cree est impossible a debuguer...
    Vous avez un prof "knor minute soupe" qui n'a jamais appris a programmer un µC reellement....

    Le flowcode au bac... Pourquoi pas culture de chichon au BTS pendant qu'on y est? l'EN c'est vraiment devenu n'importe quoi....
    Dernière modification par Franck-026 ; 07/11/2011 à 20h30.

  6. A voir en vidéo sur Futura
  7. #5
    Molleyjow

    Re : Commande de controle de moteur pap

    Tu n'a pas tord à propos de mon prof ^^

    Mais notre programme sera extrêmement simple; Je m'explique:

    Notre système est en fait un projecteur de poursuite de scène qui éclaire les acteurs sur scène. Considérons qu'il n'y a qu'une seule personne sur la scène. Le sol de cette scène est en fait un tapis sensitis qui fonctionne comme des boutons poussoirs (un peu dans ce principe:http://www.interface-z.com/produits/...ion-Tapis.pdf; sauf que nous aurons nous 8 sorties en abscisses et 8 en ordonnées au lieu d'une par dalle) ensuite nous ferons une programmation suivant les dalles activées du déplacement des moteurs partant d'une origine (centre du tapis) et se déplacant chaqun d'eux de -xpas ou +xpas... Je ne sais pas si tu as bien compris ?!
    Pour plus de renseignements n'hésite pas demande moi

  8. #6
    Franck-026

    Re : Commande de controle de moteur pap

    Pas si extremement simple que ca... enfin vas y utilise flowmachin, mais si ca bugue, on t'aura prevenu...

  9. Publicité
  10. #7
    Molleyjow

    Re : Commande de controle de moteur pap

    Je me suis surement exprimé maladroitement mais c'est 1000 fois plus simple que sur le lien (pas de language midi, mais seulement 16 boutons poussoirs au total.

    On a déja un gros boulot sur la partie mécanique et la confection du tapis... puis nous sommes en terminale donc ca veut dire gros boulot pour les écoles et grosse pat d'orientation donc pas le temps d'apprendre un nouveau language... (je veut bien que tu m'en indique des simples et graphiques si possible... J'y jetterais un coup d'oeuil et m'y mettrai si jamais "flowmachin" part en couill** :P)

    Et ne connais tu donc pas de PIC à 16 entrées minimum + 8 ou 12 sorties ??

  11. #8
    Molleyjow

    Re : Commande de controle de moteur pap

    Quelqu'un aurait-il une réponse ?? Merci

  12. #9
    RISC

    Re : Commande de controle de moteur pap

    Salut,

    La meilleure façon de sélectionner un PIC pour ton besoin est d'utiliser le logiciel MAPS (version offline) que tu peux télécharger ici : http://www.microchip.com/MAPS.

    Pour ton projet tu peux par exemple utiliser un PIC16F887 (40 broches).
    Pour la documentation, tout ce trouve sur la page de chaque PIC. Pour le PIC16F887 c'est ici.
    Autre possibilité, un PIC18F4520 dans la famille PIC18.

    a+

  13. #10
    Molleyjow

    Re : Commande de controle de moteur pap

    Merci RISC

    Je viens de regarder la datasheet du PIC16F887 et c'est exactement ce qu'il me faut. Les entrées/sorties sonc les "RA, RB, RC..." si j'ai bien compris, mais que signifient les "OSC, CLK, ICS, etc." (ça n'a pas d'importance je pense mais j'ose demander je le saurais au moins)

    Est-il programmable en Flowcode, ou si toi aussi tu pense qu'il n'est pas bien que peut-tu me conseiller comme code simple et graphique de préférence ?? (nous n'avons entammé la programmation de µC qu'aujourd'hui et ne ferons que du flowcode)

    A+

  14. #11
    Franck-026

    Re : Commande de controle de moteur pap

    FLOWCODE EST UTILISE PAR LES PROFS QUI NE CONNAISSENT RIEN EN PROGRAMMATION...

    Sinon, je ne peux te renvoyer que sur les cours de Mr Bigonoff www.bigonoff.org... Il y a toute la theorie sur la vraie programmation en assembleur de quasi tous les PICS. La partie 1 est la base avec les 16F84A et ensuite, il y a un cours sur la migration vers les 18F. Sans cet apprentissage, tu ne sauras jamais programmer un pic vraiment. Et flowcode n'est vraiment pas un outil et un chemin valable pour apprendre a programmer.
    Comme je dis toujours:
    - le datasheet de ton PIC avec la maquette de depart deja faite, ou alors tu fais ta maquette de depart
    - MPLAB pour programmer ton programme de ton PIC.

    Là, tu pourras dire que tu as programmé en ASM .

  15. #12
    Molleyjow

    Re : Commande de controle de moteur pap

    D'accord, j'irai étudier ce système de codage... Au pire ça sera tout bénef pour moi

    Mais avant de se lancer tête baissée dans le projet, nous voulons vous demander votre avis à propos d'une autre manière de commander les moteurs.

    En fait notre capteur est un tapis sensitif, il comporte 8 dalles horizontales et 8 dalles verticales; ce qui nous ferait donc 64 positions possibles au total, mais pour des raisons de précision nous allons inclure des positions intermédiaires (explication plus précise si vous ne comprenez pas, sur demande), ce qui nous ferait au final 15 positions horizontales et 15 verticales donc 225 positions possibles au total.

    Donc notre objectif serait à travers d'un µC d'après les 16 entrées du tapis, par combinaison x/y, de donner la position voulue sur une échelle de 0 à 224 en sortie de celui-ci.
    Premièrement, est-ce que ceci est possible ??

    Si oui serait-il possible de controller ensuite deux moteurs pap ou deux servo-moteurs (le plus simple) suivant la sortie donnée par le µC ??
    Exemple: si la position "origine" se situe en bas à gauche du tapis (x=0 et y=0) sera-t-il possible de positionnet le moteur automatiquement si on donne la sortie 56 (x=3 et y=1.5), de nimporte quelle position antérieure, aussi bien la 6ème que la 200éme ??

    Excusez moi pour le paté, mais la programmation est une chose nouvelle pour moi :S

  16. Publicité
  17. #13
    nornand

    Re : Commande de controle de moteur pap

    bsr
    tres interressant comme projet, ceci dit il manque quelque données , la dimention des tapis et la distance du projecteur de poursuite par rapport a la scène , car meme sur un projecteur de poursuite le faisceau est divergent donc il va eclairé plusieurs dalles a la fois , et 225 positions c'est peut etre trop
    en general il se trouve a un certaine distance de la scene et sous un certain angle .

  18. #14
    Molleyjow

    Re : Commande de controle de moteur pap

    Je suis en train de faire les schémas électriques de fonctionnement ainsi que ceux du tapis dès que tout est prêt je le poste
    De plus nous n'utiliserons pas un projecteur, mais un laser (prété par le pôle physique-chimie) pour pouvoir bien situer l'endroit visé (nous avons une paire de lunettes à fibre optique pour protéger l'utilisateur ^^ ), notre projecteur serait à environ 4 - 5 mètres du tapis qui lui fait 3m par 3m.

  19. #15
    Molleyjow

    Re : Commande de controle de moteur pap

    Voila les schémas simplifiés du fonctionnement

    Donc il s'agit d'un tapis d'environ 3m par 3m, le projecteur serait à 4 ou 5 mêtres du tapis et à une hauteur d'environ 2m à 2m50 (tout cela suivant la salle qui nous sera prétée pour installer le système)
    Il me semble avoir lu ici et la qu'il faut mettre une horloge au PIC car elle n'est pas intégrée, mais pouvez vous m'expliquer comment elle se fabrique et quel temps me conseillez vous pour que le système soit le plus réactif possible ??
    Je pense ne rien avoir oublié, sinon demandez moi
    Images attachées Images attachées

  20. #16
    Molleyjow

    Re : Commande de controle de moteur pap

    Quelqu'un aurait une solution ?

  21. #17
    nornand

    Re : Commande de controle de moteur pap

    bjr
    je revient juste sur les dimensions du systeme

    15 tapis de 3m = 45 m de large sur 45 m de long si le projecteur est a 5 m du bord ca lui fait une rotation de 160°

    donc 27;5m de chaque cote un carre de 3/3

    a 50 m il va falloir un systeme d'une precision extreme pour le pointage ! je pense qu'il faut dejas mettre ca en équation pour estimer les angles de tir et les errreurs admissibles.

  22. #18
    Antoane
    Responsable technique

    Re : Commande de controle de moteur pap

    Bonjour,
    Un µC a besoin d'une horloge pour fonctionner, fournie (très généralement) par un quartz câblé entre OSCI et OSCO.
    MCLR est le reset, à mettre au +5V en fonctionnement normal.

    Je pense que, dans un premier temps :
    - travaille avec 64positions,
    - travaille avec des interrupteurs câblés comme tu l'as fait.
    Si tu as le temps (et le courage ) tu pourras passer à 255 positions et un câblage des interrupteurs en matrice.

    Concernant le langage de programmation :
    - Non, Flowcode n'est pas une bonne approche des µC ;
    - Non, Flowcode n'est pas un langage de programmation à conseiller à quelqu'un qui souhaite programmer en dehors du lycée ;
    - Non, Flowcode ne permet pas de comprendre ce qu'il se passe dans le µC.

    Néanmoins, Flowcode apprend la programmation, les bases de l'algorithmique. Il apprend à réfléchir de manière structurée.
    Il permet de faire faire des trucs amusants à des S qui n'ont trop souvent pas plaisir à entendre parler de µC. Pour se réjouir d'avoir réussi à faire clignoter une led après plusieurs heures de travail, il faut une "maturité" que n'ont pas beaucoup d'entre eux. Alors qu'avec Flowcode, au bout de quelques heures de cours, on gère I/O, module PWM, (interruptions, I²C)...
    Enfin, concernant le débuggage, c'est certes beaucoup plus compliqué sous Flowcode que directement en asm, mais il y a bien moins d'erreur : Il faut vraiment le vouloir pour avoir une erreur de compilation en n'utilisant que les blocs courants.

    En conclusion, si ton but est de faire un "bon" PPE, de t'entrainer pour le Bac, de t'amuser : utilise Flowcode.
    En revanche, si tu compte continuer à programmer après le bac, pas d'hésitation : saute cette perte de temps et choisi le C ou l'ASM. Attention cependant : se sera beaucoup plus long, et pas sûr que ton prof puisse t'aider.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  23. Publicité
  24. #19
    Molleyjow

    Re : Commande de controle de moteur pap

    Non le tapis fait exactement 250 à 260 cm de large par 250 à 260 cm de long (8 dalles horizontales et 8 dalles verticales espacées entre elles de 1 à 2 cm)
    Le projecteur serait à 400cm du tapis

    Disons que le tapis serait en 260*260:
    Angle de rotation moteur= 2*(Tan-1(130/400))
    = 2*18.0 = 36.0°

    Le moteur aura une rotation de 36° d'un extrème à l'autre... Les positions ne dépendent pas de la structure du tapis mais seulement de la combinaison de plusieurs dalles entre elles (si l'on met les 2 pieds uniquement sur une seule dalle la position sera exactement celle de la dalle, exemple position 1 dans la 3ème pièce jointe, par contre si l'on à les pieds sur 2 dalles différentes la position sera alors le centre de ces deux, comme la position 2 dans la 3ème pièce jointe.

  25. #20
    Antoane
    Responsable technique

    Re : Commande de controle de moteur pap

    Tu ne peux pas te contenter d'envoyer les données au moteur et ensuite à lui d'aller là-bas
    Tu devras dire au pas à pas de faire 150pas vers la droite puis 46 vers l'avant, en envoyant le bon nombre d'impulsions comme il faut.

    Pour la gestion du système : tu as deux solutions :
    - avec capteur disant au µC ou est le projecteur ;
    - sans ce capteur.

    Avec capteur :
    Tu sais où doit aller le projo (par exemple en (52,12)), tu sais où est le projo (par exemple en 52,19)), tu en déduit vers où il doit aller (ici : vers l'avant), et il y va tant qu'il n'est pas là ou il faut. Dans ce cas, ça marche aussi bien avec un pas à pas qu'avec un moto-réducteur.

    Sans capteur :
    Tu sais où tu dois aller (en (46,58)), tu sais où tu es (en (13,42)) car, depuis le début, tu calcules ta position en temps réel, en fonction de tes déplacements. Tu sais donc qu'il faut que tu te déplace de 33 vers la gauche et de 16 vers le bas. Tu sais donc qu'il faut envoyer 330 pas au moteur pas à pas n°1 et 160 au n°2. C'est plutôt moins précis car tu accumules l'erreur, qu'il y a risque de faire sauter un pas... Mais tu n'as pas besoin de capteur, et ça, c'est vraiment un plus.

    méthode n°1.5 : entre les deux : pas de capteur position du projo, mais un capteur qui compte les tours que font les moteur de déplacement. Dans ce cas, pas à pas ou moto-réducteur, c'est au choix.


    edit : j'avais pas bien saisi le truc, donc finalement, solution 1=solution 1.5, et c'est la meilleur
    Dernière modification par Antoane ; 09/11/2011 à 14h30.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  26. #21
    Molleyjow

    Re : Commande de controle de moteur pap

    La solution 2 est celle que nous pensions faire, question budget c'est la plus interessante.

    Pour le capteur de position du capteur tu pense à un codeur incrémental ? Car dans ce cas c'est impossible niveau budget (environ 100 euros)

    Dans les deux cas, puis-je commander, disons un moteur pas a pas bipolaire en traitant la sortie du PIC au travers d'un autre PIC, qui gèrerait lui 8 sorties pour chaque moteur (4 pour chaque sens) elles mêmes controlant des transistors pour la commande de puissance ??

  27. #22
    Antoane
    Responsable technique

    Re : Commande de controle de moteur pap

    Un moteur pàp unipolaire est plus simple à commander.

    Ce que tu proposes n'est pas impossible, mais c'est pas une bonne idée : pourquoi utiliser deux µC quand un seul peut faire l'affaire ? ça ne simplifiera pas la commande car comment vas-tu faire communiquer les deux puces ?

    Pour le capteur, tu n'as pas forcément besoin d'un capteur de compétition offrant 16kimpulsions par tours : une quarantaine suffiront, et ça c'est faisable à la main : s'il est placé sur l'axe moteur, avant le réducteur, une précision de 10 ou 20° sera bien suffisante.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  28. #23
    Molleyjow

    Re : Commande de controle de moteur pap

    Je pensais les faire communiquer en utilisant comme entrée de la seconde le numéro de position obtenu grace à la sortie de la première puce, Ainsi on aurait vraiment eu un programme de codage et un de commande, mais si tu dis qu'avec une seule puce c'est possible j'y réfléchirais. Pour la programmation nous utiliserons flowcode, ou alors nous nous arrangerons avec "les programmateurs" que l'on a dans la classe contre une aide à leur projet (c'est la l'avantage d'avoir la même classe 2 ans de suite !)

    Pour les moteurs nous verrons avec ce que nous avons en stock au lycée ou nous désosserons des imprimantes. A moins que nous n'utilisions ceci: http://www.robotshop.com/eu/inclineu...servocity.html, au moins on éviterai les erreurs dues à la précision de la mécanique. Avec des servomoteurs, ne pourrait-on pas les controler en leur transmettant juste le numéro de position voulue (aprés les avoir programmés) ??

  29. #24
    Molleyjow

    Re : Commande de controle de moteur pap

    Up........

  30. Publicité
  31. #25
    Antoane
    Responsable technique

    Re : Commande de controle de moteur pap

    Désolé, je suis en "vacances" et n'ai pas souvent accès à internet.
    Pour contrôler un cervomoteur : tu envois une impulsion (qq ms toutes les 2àms environ) dont la largeur dépend de l'angle désiré en sortie. C'est asservi à l'intérieur, mais il faut connaitre précisément cet angle en fonction de la largeur de l'impulsion. Je ne sais pas ce que disent les constructeurs (jamais utilisé).
    Le module que tu propose me parait cher et pas forcément adapté : 2lbs, c'est tout juste 1kg, comparé au poids d'un projecteur de scène...
    Tu peux, non : tu dois séparer les deux parties du programmes mais pas en 2puces : en deux macros. (c'est plus simple à gérer, à écrire et à dépanner)
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  32. #26
    Molleyjow

    Re : Commande de controle de moteur pap

    Par rapport au poids, pas d'inquiétude, nous utiliserons un vieux laser de physique-chimie en tant que "projecteur". Moins lourd, moins cher, et plus précis pour un tel projet.

    Donc sachant cela, le module nous simplifierait vraiment la tache et nous ferait gagner beaucoup de temps. Il y aurait donc un servo à controler pour la position verticale (fourni dans l'ensemble) et pour la position horizontale j'ai récupéré un vieux moteur pap d'imprimante 200 pas, donc 1.8°/pas.

    Et enfin, qu'est-ce qu'un macro ?!

  33. #27
    Antoane
    Responsable technique

    Re : Commande de controle de moteur pap

    Reçu.
    Pour le pas à pas, il faudra peut-être prévoir un réducteur, car 1,8°/par pas, c'est pas mal.

    Une macro, c'est un sous-programme. Un morceau de code que tu appelles quand c'est nécessaire dans ton programme. C'est utile pour alléger le code et pour simplifier la lecture. Par exemple, dans ton cas, tu vas régulièrement faire tourner le moteur d'un pas. Au lieu d'avoir un programme principal sous la forme :
    Code:
    ....
    i=0
    tant que il faut tourner à droite
         i=i+1
         si i=5 i=1
         mettre la sortie n°i à 1
         mettre la sortie n°i à 0
    fin tant que
    ...
    Tu vas mettre :
    Code:
    ....
    tant que il faut tourner à droite
          macro : tourner à droite
    fin tant que 
    ....
    
    
    definition macro : tourner à droite
         i=i+1
         si i=5 i=1
         mettre la sortie n°i à 1
         mettre la sortie n°i à 0
    fin def macro
    Bon, ici, c'est à peine plus intéressant car on ne gagne que 3 lignes, mais imagine sur un programme plus long...

    De mémoire (j'ai pas Flowcode sur le PC du bureau ), c'est l'icône juste au-dessus (ou au dessous) de "routine composant".
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  34. #28
    Molleyjow

    Re : Commande de controle de moteur pap

    Merci Antoane, le réducteur on va le faire tout simplement en gardant la courroie de l'imprimante et en remplaçant seulement le pignon qui se fixera sir l'axe du laser.

    Les infos à propos du macros sont très intéressantes, mais est-il possible de créer un code capable de calculer suivant la position instantanée le nombre de pas en abscisses et ordonnées. (suivant si l'on veut aller sur un point précis du tapis à partir d'une autre position sans forcément passer par l'origine ) ??

    On ne sais pas encore si l'on utilisera Flowcode ou le langage C, cela dépendra du temps qu'il nous restera pour la programmation.

  35. #29
    Antoane
    Responsable technique

    Re : Commande de controle de moteur pap

    est-il possible de créer un code capable de calculer suivant la position instantanée le nombre de pas en abscisses et ordonnées
    Oui, bien sûr.

    C'est une histoire de vecteur déplacement et de relation de Chasles... Je te laisse trouver.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  36. #30
    Molleyjow

    Re : Commande de controle de moteur pap

    Ok ok ça marche

    Bon ben nous allons enfin pouvoir commencer le projet. Nous vous recontacterons en cas de problème.

    Merci pour tous vos messages !

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Moteur pap commandé par opto via circuit imprimante
    Par Sebka33 dans le forum Électronique
    Réponses: 6
    Dernier message: 13/12/2010, 14h49
  2. commande de moteur pap
    Par ABN84 dans le forum Électronique
    Réponses: 5
    Dernier message: 10/03/2008, 22h46
  3. Commande moteur PAP bipol. 400pas
    Par thomasalbert1993 dans le forum Électronique
    Réponses: 5
    Dernier message: 16/08/2006, 13h55
  4. Commande Moteur PAP bipolaire
    Par zanzeoo dans le forum Électronique
    Réponses: 1
    Dernier message: 09/01/2005, 17h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.