Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

uC et faire deux choses presque en même temps



  1. #1
    hoffmann

    uC et faire deux choses presque en même temps


    ------

    Bonjour,
    J'aimerais avoir votre avis sur la question suivante :

    Dans mon projet j'utilise un servo moteur ainsi que pleins d'autres chose (gps, lcd etc).

    Tout fonctionne bien !

    Aujourd'hui j'ai remplacé le servo par un petit moteur DC monté avec un potentiomètre (pour connaitre sa position).

    Comment feriez-vous à ma place pour que le programme arrive à gérer l'asservissement (même grossier) en position du moteur + tout le reste ?

    Iriez-vous jusqu'a mettre des threads dessus ?
    J'ai pensez à faire une interruptions toutes les X temps, mais j'ai peur que ça arrive pendant ma réception trame gps...
    Ou alors appeler ma fonction asservissement plein de fois dans le programme...

    J'attends vos conseils avec impatience.

    Cordialement

    -----
    Hoffmann

  2. Publicité
  3. #2
    Franck-026

    Re : uC et faire deux choses presque en même temps

    alors utilise ta reception de trame en interruption plutot...

  4. #3
    ftorama

    Re : uC et faire deux choses presque en même temps

    Normalement, une routine d'interruption doit être la plus courte possible et donc ne devrait pas être gêné par les autres, ni gêner les autres....

    Maintenant, selon ton micro, il y a différentes possibilités:
    - changer la priorité des interruptions au risque de perdre des trames NMEA
    - autoriser le nesting des interruptions (ré-entrance peut-être en français), c'est-à-dire la possibilité d'exécuter une interruption au milieu d'une autre interruption
    - utiliser un mécanisme de DMA pour capturer les trames NMEA et vérifier le buffer pendant le temps libre. Solution "marteau pour écraser une mouche à mon avis".
    - confier la régulation PID à un micro dédié. Au prix ou sont les µC, ça ne vaut parfois pas le coup de se priver.

    Enfin, et comme il y a de fortes chances que tu utilises un PID dans ta régul, assure-toi de choisir un micro qui dispose au moins des instructions de multiplication. Ça fera des centaines, voire des milliers de cycle machine économisés à chaque itération....

    Sinon le système multi-tâches peut être aussi une solution, mais me paraît lourd à mettre en oeuvre pour si peu. A priori, FemtoOS est plutôt simple sur AVR, pas encore essayé: http://www.femtoos.org/
    Dernière modification par ftorama ; 02/12/2011 à 07h16.
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

  5. #4
    xberger

    Re : uC et faire deux choses presque en même temps

    Bonjour,

    Dans un premier temps, il faut identifier lesquelles des tâches sont les plus prioritaires.
    Le critère le plus important c'est dévaluer le risque encouru si l'interruption n'est pas exécutée ou est exécutée en retard.

    Pour la réception des trames utilise une interruption et rempli un buffer. A décoder dans la tâche de fond, pendant le temps libre du MCU.

    Je te conseille de cadencer la régulation avec l'interruption la plus prioritaire et d'y faire tous tes calculs associés.
    Il faut que dans le pire des cas la durée de cette interruption soit inférieure à sa périodicité. Sinon tu ne vas pas décoder les trames ou pire zapper des exécution de la routine d'asservissement.

    Après si la charge de l'asservissement est trop lourd pour le MCU, c'est aussi possible de le faire en analogique et que le MCU ne fasse que fixer la valeur d'asservissement.

    Cordialement

    Xavier

  6. Comparatifs

    Gagnez du temps et de l'argent grâce à nos comparatifs de produits. Parmi nos sujets :
  7. #5
    jiherve

    Re : uC et faire deux choses presque en même temps

    Bonsoir,
    en principe il faut un système préemptif (avec IT) pour assurer l'asservissement, pour les trame GPS il serait souhaitable que l'UART soit muni d'une FIFO ou d'un DMA.
    Ce genre d'application était déjà réalisable avec un 6809 doté des bons périphériques il y a 25 ans, asservissement sur NMI à 1Khz, UART sur IRQ, partie graphique sur FIRQ mais tout en assembleur optimisé!
    JR
    l'électronique c'est pas du vaudou!

  8. A voir en vidéo sur Futura
  9. #6
    punky591

    Re : uC et faire deux choses presque en même temps

    Bonjour,

    Pourquoi remplacer un servomoteur qui fait très bien son asservissement tout seul, par un moteur avec un potentiomètre qu'il faut du coup gérer en plus de tout vos autres périphériques? Surtout en sachant qu'un servo-moteur est un moteur... avec un potentiomètre et sa régulation.

    Je ne vois pas l'intérêt, pouvez-vous l'expliquer?

  10. Publicité
  11. #7
    hoffmann

    Re : uC et faire deux choses presque en même temps

    Bonjour,
    tout d'abord déjà un très grand merci pour toutes vos remarques et suggestion ! Je suis plus dans une phase d'avant projet ou je me fait une idée de la faisabilité de mon truc !

    Pour répondre plus précisément à punky.
    Alors oui le servo moteur répondait très bien à cette problématique et était d'ailleur utilisé pour ma V1 mais je galérais au niveau de la mécanique pour arrive à un mouvement de translation (mouvement que j'ai besoin). Je sais c'est tout bête : une bielle manivelle mais avec mes moyens du bord (en bois) c'est plus dur !

    ; )
    Hoffmann

  12. #8
    Blue Sn4ke

    Re : uC et faire deux choses presque en même temps

    Sinon, tu démontes le servo moteur pour récupérer l'électronique et tu cables dessus ton moteur et ton potentiomètre externe .
    Comme ça tu contrôles ton mécanisme exactement comme un servo.

    Attention toutefois à ce que le pont en H de l'électronique du servo puisse supporter le courant de ton moteur s'il est plus gourmand.

  13. #9
    punky591

    Re : uC et faire deux choses presque en même temps

    Bonjour,

    Dans ce cas je propose Sn4ke, récupérer l'électronique et l'adapter si nécessaire a votre moteur

  14. #10
    ftorama

    Re : uC et faire deux choses presque en même temps

    Autant mettre un micro dédié à l'asservissement, ça prendra moins de temps que de massacrer un servo pour au final en virer les 3/4
    Quand un homme a faim, mieux vaut lui aprendre à pecher que de lui donner un poisson.

Discussions similaires

  1. Possibilité de faire deux licences en même temps ?
    Par aurelietkd31 dans le forum Orientation après le BAC
    Réponses: 9
    Dernier message: 26/05/2011, 14h45
  2. Possibilité de faire deux licences en même temps ?
    Par aurelietkd31 dans le forum Orientation après le BAC
    Réponses: 1
    Dernier message: 13/05/2011, 17h09
  3. QR - Le cerveau peut-il gérer trois choses en même temps ?
    Par RSSBot dans le forum Commentez les actus, dossiers et définitions
    Réponses: 1
    Dernier message: 22/12/2010, 17h30
  4. Un pic peut-il faire deux choses à la fois ?
    Par Kowentin dans le forum Électronique
    Réponses: 40
    Dernier message: 29/08/2008, 13h58
Découvrez nos comparatifs produits sur l'informatique et les technologies.