Un tricopter avec microcontrôleur


On trouve de plus en plus de multi rotors utilisant une carte électronique dédiée pour gérer l’ensemble des fonctions de stabilisation et de commande. J’ai voulu à mon tour me lancer dans cette aventure en adaptant un peu l’existant pour les besoins d’un tricopter. J’ai souhaité partir sur un projet en open source de manière à « customiser » le modèle selon mes souhaits.


Quelques noms de multi rotor:

Projets commerciaux multi rotor:
drones professionnels (Microdrone, Draganflyer, BrainyBee,..), Mikrokopter, XUfo, QuadPowered, Conrad Reely 450, TTCopter, Iphone Parrot, Walkera UFO , X-Wing, XAIRCRAFT

Projets open source :
Arducopter, Mikroquad (devenu AeroQuad), UAVP/UAXP, Shrediquette.

J’en oublie certainement, mais du jouet au modèle professionnel, chacun utilise ces principes communs :
– lire les ordres d’une radio commande
– lire les signaux de capteurs (au minimum 3 gyroscopes)
– interpréter ces données
– générer des ordres de commande de moteurs (et servo pour le tricopter)

Parmi ces différentes électroniques, on retrouve beaucoup de micro contrôleurs Atmel plus ou mois puissants.
Et en open source, on arrive très vite aux cartes Arduino basées sur ces mêmes contrôleurs.

Arduino

C’est un projet qui a permis de démocratiser la programmation de micro contrôleurs grâce au développement d’une plate forme hardware et d’un environnement de développement open source.
Le choix de micro-contrôleurs Atmel permet d’obtenir un excellent rapport performance/prix, puisqu’on trouve des cartes pour une 30aine d’euro.
L’environnement de développement est en outre particulièrement bien documenté avec de nombreux exemples directement applicables.
La mise en œuvre est très simple: la carte Arduino la plus répandue intègre d’office un port USB, et un simple câble permet de mettre à jour le code créé.
Arduino est accessoirement le nom d’un bar d’une ville Italienne, là où le concept est né.

Signal PPM somme ou signal PWM individuel ?

Le signal PPM somme est celui qui circule directement sur les ondes RC entre un émetteur et un récepteur de radio modélisme (en 41MHz, 72MHz ou 2.4GHz, c’est toujours vrai en mode PPM).
Il « sérialise » les signaux de chacune des voies RC destinées à chaque sortie d’un récepteur RC.
Le rôle du récepteur est en partie de « segmenter » ce signal pour reconstituer les ordres individuels en signaux PWM qu’un servo peut par exemple accepter.
Parmi les différents modèles de multi rotor, on retrouve deux cas: ceux qui attendent un signal somme PPM, et ceux qui acceptent directement les sorties d’un récepteurs.
Pour le premier cas, et lorsqu’on ne dispose pas d’un récepteur capable de sortir le signal somme PPM (ASSAN par exemple), il faut passer par un module sommateur de voie comme Quadro PPM,TT-RecEnc ou Paparazzi.
Pour le deuxième cas, on est sûr que chaque récepteur pourra convenir à partir du moment où la carte électronique possède un nombre suffisant d’entrée.

ESC I2C ou ESC PPM ?

Lorsque les ordres moteurs doivent être rafraichis très vite, on utilise souvent des contrôleurs I2C où les vitesse de rafraichissement peuvent atteindre 500Hz (500 changement de vitesse par seconde).
Les ESC I2C ne peuvent pas être branchés directement sur un récepteur, et ne sont pas utilisés en modélisme « standard ». C’est pour ça qu’ils sont relativement peu répandus et chers.
Ils présentent aussi un avantage : pour contrôler plusieurs ESC I2C, seuls 2 fils sont nécessaires, chaque ESC I2C est identifié indépendamment. Mikrokopter fonctionne avec ce genre de contrôleurs.
Les ESC standards qu’on raccorde habituellement sur un récepteur sont prévus pour supporter un rythme de 50Hz, sans aucune garantie au-delà. Le signal de chaque voie RC sortant d’un récepteur n’a pas de toute façon une cadence plus élevée.
Hors en pratique, on constate que certains ESC peuvent supporter des rythmes de rafraichissement bien plus élevés, et ce ne sont pas les plus chers les mieux lotis !
Les ESC SuperSimple d’HobbyCity supportent en effet des fréquences au-delà de 400Hz.
William T. (concepteur du Shrediquette) a testé qu’en pratique, au-delà de 300Hz, la différence de comportement d’un multirotor n’est plus perceptible (http://shrediquette.blogspot.com/2010/01/finished-ic-to-pwm-converter-and.html).
Comme il s’agit d’utiliser ici une carte de contrôle dont on peut maitriser le code et le taux de rafraichissement des signaux envoyés, on peut tout a fait utiliser des ESC standards en mode 300Hz. Utiliser des ESC I2C représente selon moi un surcoût non justifié pour une configuration tricopter de 3 ESC.

Quels capteurs ?

On trouve au minimum 3 gyroscopes, et souvent 3 accéléromètres sur les cartes électronique multi rotor.
En option, on peut voir un peu de tout: baromètre (gestion de l’altitude), GPS (position), voltmètre (tension batterie), ultrason (distance sol), …
Les premiers gyroscopes et accéléromètres étaient de type piezo et on trouve maintenant des capteurs à technologie MEMS plus performants et résistants mieux aux vibrations.
Sparkfun ( http://www.sparkfun.com/ ) est le magasin référence pour ce genre de composants.

Fort de toutes ces considérations, mon choix s’est porté sur le projet Aeroquad qui cumule beaucoup d’avantages:
– utilise des ESC standards et peu chers
– accepte directement des voies RC de n’importe quel récepteur
– utilise une carte Arduino dont la programmation est facile à mettre en œuvre
– possède une interface graphique de configuration très sympa (paramétrage de beaucoup de paramètres, visualisation des courbes, horizon artificiel, télémétrie)
– je trouve le code source clair et bien fait
– les capteurs utilisés (3 gyroscopes et 3 accéléromètres) sont d’un coût raisonnable.
– le projet est très actif et on devrait rapidement voir d’autre fonctionnalités comme le GPS.

C’est sûr qu’à la base il s’agit d’un quadri rotor et que je souhaite en définitive réaliser un tricopter.
Il y forcément un travail d’adaptation du code source pas forcément évident, mais c’est le challenge 😉
J’aurais pu partir sur un Shrediquette qui fonctionne très bien, en open source également, mais le budget est bien différent du fait des choix techniques.

Après pas mal de temps passé à me documenter sur ce projet et sur la programmation Arduino, je me suis mis à l’ouvrage et un premier prototype est né:

La carte Arduino de base avec son port USB pour communiquer avec le PC

La carte « proto shield » avec ses capteurs soudés et le récepteur ASSAN 6 voies

Le châssis aluminium que j’ai récupéré de mon mikrokopter, où j’ai supprimé le bras avant et orienté deux des bras vers l’avant.
Il est provisoire, le temps que je m’en fabrique un en fibre sur le même principe que celui décrit dans un autre article.

Le mécanisme d’orientation du moteur arrière

Pour cette configuration un peu plus lourde, j’ai pris 3 moteurs HobbyKing (TURNIGY 2204-14T 19g Outrunner) avec 3 hélices GWS 7×4 et 3 contrôleurs Super Simple 10A.

Petite vidéo de l’outil de configuration (AeroQuad Configurator)

Tricopter – modified AeroQuad firmware

Vidéo en vol intérieur

Tricopter – modified AeroQuad firmware 2

Et voici une première vidéo en extérieur: La stabilité et la maniabilité sont vraiment excellentes

Tricopter Arduino

, , , , ,

  1. #1 by rotier on 19 mars 2010 - 12:44

    Ouf! beau travail .
    Pas de sommateur des signaux du recepteur , pas d’I2C, simple mais est ce stable ? ( par rapport a la shediquette qui sur les videos est très precise)

  2. #2 by labroche on 28 mars 2010 - 17:01

    bonjour pas mal ton tri j’espere que les essais en extérieur se passeront bien vite une vidéo tu penses que l’électronique est a la porté de tous ? donne moi vite des nouvelles a plus thierry

  3. #3 by Ben'91 on 11 avril 2010 - 19:42

    Très belle réalisation, Bravo!

  4. #4 by Joël on 29 avril 2010 - 21:57

    Comme d’habitude, un projet rondement mené.
    Je suis impatient d’en savoir plus pour pouvoir me lancer à mon tour dans l’aventure des 3 bras.
    Nous vivons une belle époque, quand je regardes les
    émissions « Pales et rotors » on découvre que des ingénieurs ont déjà tenté toutes nos sottises il y a bien longtemps, mais maintenant nous avons un cerveau électronique avec des capteurs en plus, rendant l’impossible pilotable.
    Merci pour tes partages.
    Joël

  5. #5 by Jean-claude .v on 3 octobre 2010 - 11:59

    Bonjour .Je n’ai JAMAIS pu utiliser un moteur bruschless dans mes montages car tout le système commercial est un grand mensonge et frise l’escroquerie .Pourquoi ??? la réponse est simple : j’ai 60 ans ,je n’ai surtout pas envie de faire de la programmation pour faire tourner un moteur Bruschless .Je recherche un controleur que je branche sur une batterie 2s ou 3s ,je met le contact batterie (recepteur et controleur ) et puis surtout la SEULE et unique chose qui m’interresse c’est de pouvoir accélérer mon moteur avec la radio et surtout ne m’occuper de rien d’autre .Soit direction,profondeur ,et accelerer ou ralentir comme les bonvieux variateur à moteur charbon .Au moins là le modelisme était vraiment du modélisme.D’ailleurs à l’époque je me fabriquais mes variateurs selon systéme Thobois et cela fonctionnait MAGNIFIQUEMENT.Quelqu’un connait’ il un VRAI DE VRAI contrôleur super simple (un vrai ou il n’y a rien a faire que d’accélérer ) même chez Hobby-King il faut faire des manœuvres avec leurs soit disant super simple ….Je cherche du 25/30 ampères .Je crois que nous sommes des milliers de modélistes à chercher le graal pour tout dire un variateur VRAIMENT et VÉRITABLEMENT SIMPLE ,comme les bons vieux variateurs charbons d’autre fois.LA PROGRAMMATION ON S’EN F………
    Merci d’une réponse .

  6. #6 by Alex on 5 octobre 2010 - 14:51

    La grande majorité des contrôleurs de base Hobbycity (Turnigy, Super Simple ou Towerpro) peuvent être branchés directement sans avoir à la configurer.
    Les manœuvres à faire restent ***optionnelles***

    En ce sens, leur utilisation est ***identique*** à celle d’un « bon vieux variateur à charbon ». Si il y a une escroquerie, elle n’est pas là 😉

  7. #7 by Sebastien L on 22 novembre 2010 - 16:16

    Bonjour,

    Bonjour Alex, je ne dirais qu’une chose …. Wouahhhhh !!!
    je bidouille avec Arduino depuis un moment, je regardais du coté de Diydrone, et je tombe sur ton site .. merci Google.

    Je veux me faire depuis longtemps un QuadCop pour faire de la photo aérienne, moins de la voltige. après lecture de tes documents, j’ai pu voir la version QuadCop avec Nunchuck pour ameliorer la stab. Génial 🙂

    Pense tu que fabriquer une version plus musclée (charge 800g) est possible avec des gros moteurs ? je veux dire au niveau du soft embarqué dans le Duino il pourrait gérer ?

    Une autre question est ce que le code tient dans un AT168,
    ou faut t’il automatiquement la version AT328 ? j’ai des 168 en stock alors …

    Merci,

    Sébastien
    (Paris, France).

    Je vais commencer bientôt l’aventure, je te tiendrais au courant bien sur.

  8. #8 by Dlr on 27 janvier 2011 - 15:26

    Salut, je suis moi même en train de me lancer dans la construction d’un tricopter et j’aimerais savoir si la répartition des poids est primordiale. En effet j’ai commencé la base avec un triangle équilatéral en pvc et j’utilise des tiges en carbone, et bon il y a quelques petites erreurs de l’ordre du mm aussi bien au niveau des tiges que de la base…

  9. #9 by Dlr on 27 janvier 2011 - 15:32

    Dlr :
    Salut, je suis moi même en train de me lancer dans la construction d’un tricopter et j’aimerais savoir si la répartition des poids est primordiale. En effet j’ai commencé la base avec un triangle équilatéral en pvc et j’utilise des tiges en carbone, et bon il y a quelques petites erreurs de l’ordre du mm aussi bien au niveau des tiges que de la base…
    En faite c’est bon il vole a la perféction 😉

  10. #10 by didou on 22 juin 2011 - 15:43

    Bonjour,
    J’ai lu les articles sur le triwiicopter et le tricopter par microcontroleur.
    Lequel d’apres vous est le plus stable et le plus réactif des deux?
    Sinon le wiicopter est très promotionné sur le web par contre est-il évolutif? Pourrait-on dans le futur brancher simplement une plateforme evaluation MPU-6000 directement a la place.

  11. #11 by Soulot on 12 septembre 2011 - 19:44

    Hi,
    Du bon travail!!! C’est vraiment magnifique! est ce que vous pouvez nous passer le code pour qu’on puisse l’utiliser? merci et bonne continuation

  12. #12 by Soulot on 12 septembre 2011 - 21:42

    Hi,

    Magnifique! c’est du bon travail! Est ce qu’on peut avoir votre code pour qu’on puisse le tester. merci et bonne continuation

(ne sera pas publié)