Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

arduino + accelerometre + pid

Bonjour,

 

Presque nouveau sous Labview et Arduino, je souhaiterai effectuer un simple asservissement à l'aide d'un PID.

La fonction est relativement simple.

Un accéleromètre deux axes (X/Y) est relié à l'Arduino sur les bornes analogiques.

J'ai converti les tensions en angles et lorsque je bouge l'accéleromètre, je fonctionne bien sur la plage 0-180 degrés des servos en X et Y.

Vous pouvez voir le schéma joint à ce post.

 

Maintenant que tout cela fonctionne correctement, je souhaiterai utiliser la fonction PID, de sorte à ce que mes deux servos en X et Y aient toujours une assiette nulle (Normal au plan terrestre), avec l'accéleromètre monté sur le support des servos.

Donc, envoyer une ref. à 0 en X et Y (qui correspond à 90° des servos), et les maintenir quelque soit l'angle dans la plage des 0-180°.

 

J'ai fait plusieurs essais, mais à chaque fois, je divise ma plage en deux (0-90°) et mon système oscille violement bien qu'ayant mis un filtre de lissage.

 

Auriez-vous une solution ?

 

Merci pour votre aide.

 

Amitiés,

 

Christophe

0 Compliments
Message 1 sur 3
3 684 Visites

Hello,

 

Je ne suis pas sûr de ce qui ne va pas ? Est-ce le réglage des paramètres du PID ? Si c'est le cas, je pense qu'un petit tour sur ce ptetit white paper aidera :

http://www.ni.com/white-paper/3782/en#toc3

 

Cdt,

Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.

0 Compliments
Message 2 sur 3
3 667 Visites

Boujour,

 

A ma connaissance, l'implementation d'un PID géré par Labview avec une arduino et le toolkit LIFA comme vous souhaitez le faire n'est pas faisable.

La communication serie entre LV et l'arduino constitue un goulot d'étranglement trop important pour cela.

 

Une solution, serait de coder la partie PID dans le sketch de l'arduino directement, et de n'utiliser labview que pour l'interface graphique, mais ça demandera un peu plus de boulot et des compétences de programation en C.

 

Si la reactivité du systéme n'est pas critique, un systeme en boucle ouverte avec une moyenne mobile pour lisser le signal issu du capteur devrait fonctionner sans intervenir sur la programmation de l'arduino, le systéme aura cependant inevitablement un certain retard...

 

Bon courage.

 

Antoine

 

0 Compliments
Message 3 sur 3
3 664 Visites