 |
Usinages Le site de l'usinage et de la CNC
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
MaX-MoD gourou


Inscrit le: 17 Avr 2007 Messages: 1836 Localisation: Annecy (74)
|
Posté le: Mar Sep 18, 2007 12:18 pm Sujet du message: Carte Servos à dsPIC |
|
|
Salut à tous :D
j'ai commencé (enfin) à faire ce projet qui me tient tant à coeur (tout est dans le titre )
j'ai commencé à tester les sorties PWM et entrées encodeur des dsPIc en particulier le 30F2010 avec lequel je bosse pour le momment.
d'ici à quelques jours j'aurais fait une boucle PID pour asservir des servos DC, c'est pas compliqué.
après viendra l'interface RS232 vers le pc pour configurer tt ca, et finalement des modifs pour gérer les servos AC, Brushless DC (qui ressemblent aux moteurs AC synchrones en fait) les pas à pas (avec et ss encodeurs) 2, 3 et dans looongtemps les 5phases.
vu que j'ai pas encore internet à l'appart, ben je poste depuis la fac, de temps en temps...
je vous tiendrais au courant quant je serais devant un PC et je vous en dirais plus (j'en ai déjà dit pas mal dans d'autres sujet) je file en cours
@+
_________________
YAPSC
dsDRO |
|
| Revenir en haut de page |
|
 |
elliott pilier


Inscrit le: 05 Nov 2006 Messages: 603
|
Posté le: Mar Sep 18, 2007 5:09 pm Sujet du message: Re: Carte Servos à dsPIC |
|
|
« MaX-MoD » a écrit:
d'ici à quelques jours j'aurais fait une boucle PID pour asservir des servos DC, c'est pas compliqué.
Salut MaX-MoD
Je dois reconnaître que celà m'interesse au plus
haut point...........
Lorsque tu auras un peu de temps su tu pouvais développer
le sujet et peut-être communiquer l'algo de la PID afin que
les personnes désireuses puissent l'adapter à leur chip
et à leur compilo
|
|
| Revenir en haut de page |
|
 |
alex68 habitué

Inscrit le: 17 Déc 2006 Messages: 95 Localisation: Alsace
|
Posté le: Mar Sep 18, 2007 7:27 pm Sujet du message: |
|
|
Moi aussi j suis méga intéressé par le sujet...
J ai hate d avoir des nouvelles...
Bonne chane et a biento..
A+
|
|
| Revenir en haut de page |
|
 |
Doctor_itchy gourou

Inscrit le: 20 Avr 2007 Messages: 1792
|
Posté le: Mer Sep 19, 2007 8:33 am Sujet du message: |
|
|
je suis interesser par le model 3phase pas a pas avec entree encodeur de 1000pas par tour :D
tu pourras venir chez moi tester ton proto sur mes moteur
moi pas le temp pour developer une carte de controle :(
|
|
| Revenir en haut de page |
|
 |
Fred8 habitué


Inscrit le: 18 Mai 2007 Messages: 359 Localisation: 45 - Orléans
|
Posté le: Mer Sep 19, 2007 9:56 am Sujet du message: |
|
|
Tu as quoi comme compilateur? MPLAB C30 ?
Tu as un ICD2 pour développer? ou mieux ?
Les projets que j'ai eu à faire jusque là utilisait des PIC et avaient besoin de respecter des temps très précis et très courts, ce qui fait que je ne me suis jamais mis au C pour PIC, et çà me manque beaucoup aujourd'hui...
Lorsque tu auras ecrit un bout de code qui tourne bien, tu pourrais le diffuser? (même si c'est tout petit bout, histoire de voir comment sont faites les initialisations, les déclarations de fonctions, etc...).
Merci bcp.
A+
|
|
| Revenir en haut de page |
|
 |
MaX-MoD gourou


Inscrit le: 17 Avr 2007 Messages: 1836 Localisation: Annecy (74)
|
Posté le: Mer Sep 19, 2007 4:48 pm Sujet du message: |
|
|
oula! vives réaction en peu de temps!
« elliot » a écrit: Salut MaX-MoD
Je dois reconnaître que celà m'interesse au plus
haut point...........
Lorsque tu auras un peu de temps su tu pouvais développer
le sujet et peut-être communiquer l'algo de la PID afin que
les personnes désireuses puissent l'adapter à leur chip
et à leur compilo Wink
Oui, le code sera diffusé (je pense en licence GPL, peut-être aussi sur sourceforge) gratuitement, libre à ceux qui le veulent de l'adapter à leur chip et compilo.
la portabilité du code C est aisée puisque C30 est ANSI (d'après ce qu'on m'a dit sur jenesaisplusquelforum)
« Doctor_Ichy » a écrit: je suis interesser par le model 3phase pas a pas avec entree encodeur de 1000pas par tour :D
tu pourras venir chez moi tester ton proto sur mes moteur Laughing
moi pas le temp pour developer une carte de controle :(
Héhé si je passe dans le coin pq pas ^^
les steppers 3p c'est pour un peu plus tard, c'est dans les cartons mais ca viendra une fois que le contrôle des DC BLDC et AC 'traditionnaux'
mais tkt si j'ai besoin d'un béta-tester pour les step 3p je te le ferais savoir
« Fred8 » a écrit: Tu as quoi comme compilateur? MPLAB C30 ?
Tu as un ICD2 pour développer? ou mieux ?
Les projets que j'ai eu à faire jusque là utilisait des PIC et avaient besoin de respecter des temps très précis et très courts, ce qui fait que je ne me suis jamais mis au C pour PIC, et çà me manque beaucoup aujourd'hui...
Lorsque tu auras ecrit un bout de code qui tourne bien, tu pourrais le diffuser? (même si c'est tout petit bout, histoire de voir comment sont faites les initialisations, les déclarations de fonctions, etc...).
Merci bcp.
A+
MPLAB C30 et ICD2, les émulateurs sont encore un peu trop chers pour mon budjet (ou mon budjet encore trop petit)^^
en ce qui concerne la vitesse d'un prog en C ou ASM sur les dsPIC, ben le C à de nouveau largement l'avantage, contrairement aux PIC 12 14 16 etc.
c'est aussi du à leur architechture optimisée C.
il faut même plus passer par l'asm pour certaines opération comme la division / multiplication qui, ici, est faite en un cycle horloge.
pour le code, j'essaye de le faire propre et bien commenté avant de le diffuser, et j'utilise un max les interruptions des dsPIC qui sont très utiles et performantes. ce sera certainement ce qui nécessitera le plus d'adaptation pour passer à un autre µC.
plus d'infos sur les possibilités:
entrée encodeur 100KHz (6000trs/min pour tes 3phases Ichy!) et pas de max de divisions
fréquence PWM de 40KHz avec une résolution de 10bits, 160KHz avec 8b
régulation de l'intensité dans les bobines (pap, détection court circuit...)
Fréquence d'entrée d'au moins 50KHz, à vue de nez 100KHz possible, idem pour le calcul PID
...
la suite plus tard je me fais virer de la salle info
_________________
YAPSC
dsDRO |
|
| Revenir en haut de page |
|
 |
Doctor_itchy gourou

Inscrit le: 20 Avr 2007 Messages: 1792
|
Posté le: Mer Sep 19, 2007 4:55 pm Sujet du message: |
|
|
| oublie pas l'etage de puissançe de 0 a 325V DC en entree et en sortie ^^
|
|
| Revenir en haut de page |
|
 |
MaX-MoD gourou


Inscrit le: 17 Avr 2007 Messages: 1836 Localisation: Annecy (74)
|
Posté le: Ven Sep 21, 2007 3:31 pm Sujet du message: |
|
|
« Doctor_itchy » a écrit: oublie pas l'etage de puissançe de 0 a 325V DC en entree et en sortie ^^
Tkt, même 20KV 1KA c'est possible, faut juste trouver les IGBT^^
vu que j'aurais à commander des DC et BLDC et ptet des 3p ben je publierai les shemas etc. pour des interfaces puissance jusqu'à 300V 10A ou un truc dans le genre.
après, du momment que tu trouves les IGBT, les drivers de chez ON par exemple vont jusqu'à 1.2KV... y'a de la marge.
Bon la suite des caractéristiques:
Protection contre les surintensités des moteurs AC DC par logiciel (lecture de I par convertisseur AN) OU PAR HARDWARE, ce qui garanti une protection maximale des servos et de leur alim. en effet, si l'µC 'freeze' il risque d'appliquer du 200-300V DC aux bobines du pauvre moteur AC qui sera détruit en quelques secondes
un simples AOP et un shunt pourra assurer une protection supplémentaire, quoique dans la plus part des cas un fusible rapide bien dimentionné fera l'affaire.
Réglage par le port série via nimporte quelle console RS232 (ce qui règle le pb d'OS, puisque ce genre de log est gratuit et existe pour Win (même 3.1^^) linux mac, etc. etc.
De plus le firmware pourra évidemment être mis à jours (bootloader). là par contre il faudra étudier la possibilité d'utiliser le protocole de transmission de fichiers 'brut' via la console RS232 pour assurer la compatibilité avec un max d'OS (quoique une librairie, GTK, permet de développer des applis graphiques pour win, unix et aparemment mac).
dans les cartons également une fonction de réglage auto des paramètres PID, avec retour des temps de réponse, bande passante, nombre de pseudo-oscillations, stabilité etc. qui caractérisent le couple servo-mécanisme.
bref pas mal de boulot!
la seule limite des possibilités c'est... mon imagination^^
d'ailleurs si il vous vient à l'idée une fonction qui pourrait être intéressante, faites-le moi savoir
vos idées et remarques m'intéressent
au passage, l'un de vous aurait un servo DC avec encodeur quadrature (ou ss mais avec un axe en 6.35mm) qui tourne sous environ 12V
j'ai comme qui dirait pas la foi de creuser eBay à la fac... et je n'aurais internet que dans 15j- 3 semaines
à vendre (ou mieux à prèter ), faites une offre!
en ce qui concerne le code, ca avance, mais je pense que je vais ouvrir un vouveau sujet sur l'avancement du projet, un peu comme un worklog, et discuter ici des tests, améliorations à faire etc.
A+
_________________
YAPSC
dsDRO |
|
| Revenir en haut de page |
|
 |
Doctor_itchy gourou

Inscrit le: 20 Avr 2007 Messages: 1792
|
Posté le: Ven Sep 21, 2007 3:36 pm Sujet du message: |
|
|
| un mode micropas 256µpas :D
|
|
| Revenir en haut de page |
|
 |
MaX-MoD gourou


Inscrit le: 17 Avr 2007 Messages: 1836 Localisation: Annecy (74)
|
Posté le: Ven Sep 21, 2007 7:00 pm Sujet du message: |
|
|
tss, overkill le 256e de pas
mais si ca te fait plaisir, ben je note!
le µpas c'est pour moi à intégere d'office pour le controle des pap, spa compliqué de faire du N µpas!
Ah, autre fonction à laquelle je pensais:
le controle des BLDC sans avoir recours à des capteurs à effet hall, avec soit détection de courant nul, soit utilisation de l'encodeur quadra.
mais avec l'encodeur quadra, le pb c'est que qu'il faut réétalonner le système à chaque coupure de courant
enfin bon, je me fais encore virer :/
A+
_________________
YAPSC
dsDRO |
|
| Revenir en haut de page |
|
 |
MaX-MoD gourou


Inscrit le: 17 Avr 2007 Messages: 1836 Localisation: Annecy (74)
|
Posté le: Lun Sep 24, 2007 12:52 pm Sujet du message: |
|
|
Salut,
j'ai créé des "projets vides" pour développer une appli PID (ou autre) sur 30F2010 et 33F12jmc202, et pour tester tout ca j'ai fait un petit prog qui utilise entrée quadra, PWM et boucles de calcul de sinus décalés de 2PI/3.
en mettant une led tricolore sur les sorties PWM ca me donne une led qui change de couleur en tournant mon encodeur, c'est joli, mais ca ne fonctionne qu'en mode debug (donc connecté au pc via ICD2), mais dès que je programme le pic en release, ben... les boucles infinie deviennent finies, donc ca ne fonctionne plus >_<
j'ai d'ailleurs passé une demi journée à essayer de trouver l'erreur que j'ai pu faire... sans résultats.
ca pose donc un sacré problème quant à l'utilisation de C30 comme compilo.
il se peut qu'il soit instable... rien ne garantira le fonctionnement du contrôleur même si <<il à l'air de marcher>>.
si tel est le cas, il faut soit
-attendre que C30 devienne stable
-changer de compilo pour un compile cher ~$$$-$$$$
j'espère pouvoir régler le pb sinon je vais devoir me mettre à l'assembleur (dans ce cas attendez le contrôleur pour 1-2ans :p ) ou casser ma tirelire pour un compilo de HI-TECH (1200$ pouir la version 16b si je me souviens bien)
_________________
YAPSC
dsDRO |
|
| Revenir en haut de page |
|
 |
Fred8 habitué


Inscrit le: 18 Mai 2007 Messages: 359 Localisation: 45 - Orléans
|
Posté le: Lun Sep 24, 2007 1:20 pm Sujet du message: |
|
|
Max-Mod, j'ai déjà rencontré ce genre de pb, même si je n'ai jamais utilisé C30. Je ne pense pas du tout que C30 soit la cause de tout cela, c'est un programme largement diffusé et éprouvé dans l'industrie.
Lorsque tu utilises l'ICD2, certains paramètres comme les bits de configuration de l'horloge sont inactivés (ou plutôt "overdrived").
Avec l'ICD2, tu as une horloge commandée, ralentie (on ne fait pas de temps réel avec un ICD2, on peut juste mettre 2 points d'arrêt).
Sans ICD2, tu n'as plus d'horloge...
Combien de fois je me suis laissé avoir aussi par mon résonateur qui nécéssitait le gain maxi de l'ampli...
Idem en utilisant des conditions de debuggage dans mes programmes :
"If Debug = 1
Programme asm (boucle de tempo par ex);
Endif"
Super pratique en débug, mais si tu oublie de mettre la variable Debug à 0 en mode "Alone µC", tu shuntes toutes tes tempos, et rien ne marche...
Autre point : où as-tu eu ton DsPIC? J'ai eu un gros souci un jour sur des samples qui n'étaient pas fonctionnels à 100%, un PIC18F8720. Une fois ils marchaient, la fois d'après, non. Incapable de trouver une logique à l'histoire. Quelques semaines plus tard, je vais sur le site de Microchip, et là, un Errata est apparu, le PIC a un problème hard, il est déconseillé de l'utiliser, le remplacer par un 18F8722...
Voilà, tiens-nous au courant, et quand tu auras l'occas, je suis preneur de ton petit soft pour apprendre sur C30.
Fred8
|
|
| Revenir en haut de page |
|
 |
elliott pilier


Inscrit le: 05 Nov 2006 Messages: 603
|
|
| Revenir en haut de page |
|
 |
MaX-MoD gourou


Inscrit le: 17 Avr 2007 Messages: 1836 Localisation: Annecy (74)
|
Posté le: Lun Sep 24, 2007 5:48 pm Sujet du message: |
|
|
j'avais compris que ICD2 changait certains bits d'option
du coup j'ai essayé plusieurs configs différentes, rien n'y fait
l'oscillateur fonctionne. il n'y a pas d'erreurs mathématiques, d'adressage ou quoi que ce soit (voir le fichier traps.c).
en y repensant, je me demade si le Watchdog n'est pas activé, malgrès que je l'ai configuré éteint... je vais vérifier ca ce soir.
si ca vous intéresse, voila un petit test... on tourne l'ecodeur, on a un champ rotatif (enfin courant triphasé) sur les sorties basses PWM.
je dois encore améliorer certaines choses (commentaires code etc.) mais ca peut servir de base à un programme C30 pour 30F2010 (va falloir aussi que je me penche sur les #ifdefined __dsPIC30F... #define pour assurer la compatibilité avec les autres dsPIC30F.
les 33F auront leur projet à eux, ils sont plus complexes à utiliser (il faut -on peut enfin!!!- définir quelles pins seront assignées à quel module, plus de pièges à erreurs HW, interruptions légèrement différentes...) je l'ai un peu entamé, surtout pour savoir si mon 'bug' venait du 30F2010 (en sample ) et tester sur le 33F12jmc202 (il est quant même plus chiant en 3v3, faut faire une alim séparée etc. mais il a l'air d'en valoir la peine)
aussi j'ai regardé l'errata du 30F2010.
aparemment pas d'erreur connue...
NOTA:
le projet contient des adresses absolues.
rajouter le dossier h dans "include search directory", fenêtre project options.
il n'est pas nécessaire de rajouter le dossier c, car main.c se trouve dedans.
pour les bits de config, pas de WDT, après ca dépend de vôtre HW.
A+
| Description: |
|
 Télécharger |
| Nom du fichier: |
Test2.zip |
| Taille du fichier: |
63.1 Ko |
| Téléchargé: |
131 fois |
_________________
YAPSC
dsDRO |
|
| Revenir en haut de page |
|
 |
elliott pilier


Inscrit le: 05 Nov 2006 Messages: 603
|
|
| Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum Vous pouvez joindre des fichiers Vous pouvez télécharger des fichiers
|
|