Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino Commande moteur Brushless par RC

Sujet résolu
    6 décembre 2013 à 14:48:39

    Salut à tous,

    Je suis actuellement en train d'essayer de fabriquer moi même un quadricopter et j'aurai besoin de votre aide.

    En effet, j'ai une télécommande crantée pour pouvoir régler les gaz.

    J'ai donc utilisé un Oscilloscope pour pouvoir déterminer la plage de mon contrôleur (Qui fonctionne en PWM )

    Le problème qui je rencontre est le suivant : Comment puis-je mettre sous arduino de telle sorte que j'ai en entrée la modulation de pulsation.

    En effet, j'ai réussi pensé a utilisé la librairie servo.h et j'ai aussi mis mon moteur ( pour l'instant je fais un test sur un seul moteur ) sur le pin voulu. Seulement je ne vois pas comment passer en paramètre  la pulsation que l'on peut récupérer du contrôleur.  

    merci D'avance

    • Partager sur Facebook
    • Partager sur Twitter
      6 décembre 2013 à 20:14:55

      Comme tu l'as surement vu sur ton oscilloscope, les variateurs ainsi que les servo se contrôlent avec un PWM assez particulier :

      - période du signal : 20ms

      - temps à l'état haut pour une commande à 0% : 1ms

      - temps à l'état haut pour une commande à 100% : 2ms

      Enfaite, c'est un PWM de 50Hz dont le rapport cyclique varie entre 5% (commande à 0%°) et 10% (commande à 100%)

      =====

      Pour faire ton drone, il te faut donc pouvoir lire un tel signal (pour récupérer les info de la télécommande) et aussi l'écrire (pour controler les variateurs).

      =====

      Dans tous les cas, tu auras besoin timer pour avoir une base de temps précise.

      Une première chose à voir, c'est de s'assurer que ton arduino possède au moins 5 timers :

      - 4 pour générer les 4 PWM pour tes 4 variateurs

      - 1 pour lire les signaux de ton récepteur

      =====

      En ce qui concerne la génération des PWM, tu as la librairie servo qui peut le faire, mais peut-elle être utilisé pour générer 4 signal indépendant ?

      Il te faut lire la doc pour ça.

      Regarder le code source peut aussi être interessant, comme ça, tu apprendra à te servir des timers directement.

      =====

      Pour ce qui est de la lecture des signaux, il te faudra un timer et des interruptions.

      La première chose à faire consiste à démarer un timer avec un débordement fixé à environ 3ms (ce qui permettra de mesurer sans problème le temps de l'impulsion du récepteur).

      Ensuite, il faut configurer les interruptions :

      - sur front montant : sauvegarder la valeur du timer

      - sur front descendant : réccupérer valeur du timer et y soustraire la valeur sauvegardée pour en déduire le temps à l'état haut (et donc la commande).

      =====

      Voila, avec tout ça, tu as pas mal de chose à faire.

      Je pourrais aussi ajouter :

      => regarder si ton arduino n'a pas des entrée capture sous interruptions pour une mesure plus précise du signal du récepteur

      => rechercher sur google ou sur SDZ des infos (des projets de quadricoptère, y'en a pleins en ce moment, c'est à la mode)

      • Partager sur Facebook
      • Partager sur Twitter
        6 janvier 2014 à 10:48:40

        Avec un temps de retard, merci pour la réponse j'ai grandement avancé.
        • Partager sur Facebook
        • Partager sur Twitter

        Arduino Commande moteur Brushless par RC

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown