Projets:Perso:2013:BotCopter

From Electrolab
Revision as of 16:33, 20 May 2013 by Guillaume (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
BotCopter
Auteur Guillaume
Tags du projet quadcopter, quadricopter, arduino
Lieu d'utilisation final anywhere
Utilisateur final divers gens
Type de projet

Projet personnel de Guillaume

Projet BotCopter

Depuis l’avènement des moteurs Brushless et des batteries LiPo, l'aéromodélisme a beaucoup évolué et est devenu plus accessible
financièrement. L’apparition des multicoptères permet aux novices de mettre un pied dans ce monde avec peu de ressources.
Ce projet porte la construction d'un petit quadcoptère (4 moteurs) pour l'utilisation en intérieur, avec un contrôle de vol assisté
par ordinateur et capable de voler plusieurs minutes.



Présentation

  • Objectif principal : Fabriquer un quadcoptère pour les vols en intérieur, en utilisant toutes les ressources open source existante en commande manuelle.
  • Objectif secondaire : Faire du vol en groupe, en commande automatique par une station de base (ordinateur)

Caractéristiques/Whishlist

Un quadcoptère se compose de quatre élément principaux :

  • le châssis : le corps de l'engin comportant la mécanique et les moteurs et supportant l'électronique embarquée
  • l’électronique : les sens de l'engin pour le vol (capteurs), le calcul (micro-contrôleur) et la commande des moteurs (commande de puissance)
  • la commande : on utilise une radio-commande RF avec plusieurs voix (4 minimum pour un appareil volant)
  • l'informatique : le cerveau du quadcoptère, qui permet de définir le comportement de l'engin en vol et de le contrôler

Le projet :

  • Mécanique : utilisation de design du commerce, basé sur les jouets pas cher
  • Électronique : design des toutes les cartes électronique
    • Récepteur : commande des moteurs, gestion RF, gestion des capteurs et micro-contrôleur
    • Émetteur : gestion de la radio-commande, gestion RF, port USB et micro-contrôleur
  • Commande : utilisation d'un radio-commande du commerce et/ou d'un ordinateur pour contrôler le vol
  • Informatique : utilisation du code AeroQuad pour le vol et la commande (code compatible Arduino)

Le châssis

Le but étant de ne pas refaire tout "from scratch", on utilise ici la facilité, car c'est un design du commerce. En cas de casse, il est très aisé de trouver des pièces détachées et le prix est relativement accessible. Il s'agit du modèle Walkera Ladybird QR Series. Les pièces sont achetées à l'unité, car je n'ai pas besoin de télécommande et ni de l'électronique. On se retrouve donc avec ces pièces pour l'achat d'un châssis complet :

  • 2 x moteur rotatif : QR Ladybird-Z-06 (prix indicatif : 2 x 7$)
  • 2 x moteur contre-rotatif : QR Ladybird-Z-05 (prix indicatif : 2 x 7$)
  • 1 x châssis principal : QR Ladybird-Z-03 (prix indicatif : 3$)
  • 1 x pack de 4 hélices : QR Ladybird-Z-01 (prix indicatif : 2$)
  • 1 x chargeur batterie : HM-Mini CP-Z-18 (prix indicatif : 4$)
  • 2 x batterie LiPo 1S : Turnigy Nano-Tech 260mAh 1S 35C (prix indicatif : 2x3$)

Pour environ 43$ (hors frais de port), on a notre châssis ready to fly !

Pièces détachées
Le châssis monté
Taille du châssis
Poids du châssis avec la batterie

Ces articles peuvent se trouver beaucoup de site, les moins chers étant les chinois (par exemple sur www.hobbyking.com). Prendre des pièce de rechange ne fait pas de mal, on casse quand même un peu (sur une centaine de crash, j'ai dû changer 1 moteur, 1 châssis principal et au moins 5 hélices). Cela reste quand même très solide au vu du nombre d'obstacle divers et variés que mes premiers essais de vol ont rencontrés !

Les premiers tests de ce châssis mène à la conclusion suivante :

  • L’électronique qui se loge au centre doit avoir un diamètre maximum de 60mm
  • Les fixations des bras (vis) permettent la fixation de la carte électronique et forment un carré de 20mm de côté
  • Chaque moteur/hélice peut soulever environ 12gr : le poids de toute l'électronique ne peut dépasser les 19gr

L'électronique

Pour le contrôleur, on part sur une base Arduino, parce que c'est facile et que l'on trouve beaucoup de source sur cette plateforme. Une carte Arduino toute faite n'est pas adaptée à notre châssis de base, les contraintes étant d'avoir toute l'électronique sur une surface de 4x4cm. Mon choix s'est porté pour la première version sur l'utilisation d'un AtMega128RFA1, pour plusieurs raison :

  • Compatible Arduino : il existe une Arduino like basée sur ce composant : la ZigDuino. On utilise donc le bootloader de cette carte et les sources disponibles pour l'IDE Arduino.
  • Partie RF intégrée : ce composant est capable de gérer une liaison sans fil ZigBee avec un débit maximal de 2Mb/s.
  • Inconvénient : ce composant nécessitant l'ajout de composants externes haute fréquence (Antenne 2.4GHz et Balast), et donc d'avoir un design de la carte très rigoureux

Conclusion : au vu de la difficulté de la partie RF et après des recherches sur le net, il existe des composants qui intègrent toute la partie RF et le micro-contrôleur. Cette solution permet de s'affranchir de pas mal de problème de design et gagner du temps.


Concernant les capteurs, on a besoin au minimum pour le vol d'un accéléromètre 3 axes et d'un gyroscope 3 axes. Il existe plusieurs composants permettant d'avoir ces fonctions dans un seul package électronique (IMU). On peux ajouter d'autres capteurs optionnels pour l'amélioration du vol : accéléromètre 3 axes, baromètre, GPS, ... Des cartes toute faite comprenant ces composants de base existent et on va pas s'en priver :

  • Carte IMU 10DOF
    • Accéléromètre 3 axes
    • Gyroscope 3 axes
    • Magnétomètre 3 axes
    • Baromètre
    • Données disponibles sur bus I2C


Pour le reste de l'électronique, les caractéristiques suivantes doivent être mises en place sur les cartes

  • Carte émettrice : principales fonctionnalités
    • Interface avec le récepteur RF de la radio-commande
    • Interface USB avec un ordinateur
    • Interface avec un (ou plusieurs) récepteur(s) de quadcoptère (protocole ZigBee à 2Mb/s)
  • Carte réceptrice : principales fonctionnalités
    • Taille inférieure à 60mm de diamètre
    • Trous de fixation compatibles avec le châssis (carré de 20mm de côté)
    • Interface avec carte émettrice (protocole ZigBee à 2Mb/s)
    • Contrôleur moteur de puissance (4 moteurs Coreless)
    • Interface avec les capteurs (I2C)

La commande

Pour contrôler manuellement le quadcoptère, il faut une radio-télécommande avec au minimum 5 voies (Tangage, Roulis, Lacet, Élévation et Mode de pilotage). Le choix s'est porté sur une radio-commande pas trop chère : la WFly WFT07A (environ 100€)

  • Caractéristiques techniques :
    • Radiocommande 7 voies
    • Technologies 2.4 GHz
    • Ecran LCD
    • Trim numérique
    • Fale safe
Radio-commande WFLY WFT07A
Récepteur WFLY WFT07A

Le récepteur radio étant d'une taille et d'un poids trop important pour le châssis, il est nécessaire de faire une carte électronique intermédiaire pour basculer de la liaison radio-commandée à une liaison ZigBee.


Pour contrôler automatiquement le quadcoptère à partir d'une station de base, un port USB doit être ajouter sur la carte électronique intermédiaire.

L'informatique

Le code utilisé pour le contrôle du quadcoptère est basé sur Aeroquad.

Présentation de Aeroquad

AeroQuad est un projet open-source dédié à la construction de multicoptères télécommandés, aussi connu comme quadcoptères ou quadricoptères. La dernière version du logiciel supporte également des configurations multicoptères supplémentaires!

AeroQuad supporte un micro contrôleur Arduino (Mega 2560 ou Uno) avec différents capteurs, tels qu'un accéléromètre, gyroscope, magnétomètre, baromètre, GPS et des capteurs à ultrasons.Ci-dessous on trouve un aperçu des caractéristiques qu'AeroQuad propose :

  • Configurations de vol prises en charge:
    • Quad X, Quad +, Quad Y4
    • Tri, Hex, Hex X +, Hex Y6
    • Octo X, Octo + et Octo X8
  • Options de vols :
    • Tenue de cap avec magnétomètre ou gyroscope
    • Maintien d'altitude avec baromètre
    • Maintien d'altitude avec capteur à ultrasons (meilleur pour la maintien en altitude basse et suivi de terrain)
  • Options de surveillance de la batterie :
    • Active la descente automatique
    • Prise en charge du nombre de cellules
    • Intégration avec affichage sur écran (OSD)
  • Options du récepteur :
    • Jusqu'à 10 voies prises en charge
    • Récepteurs PWM
    • Récepteurs PPM
    • Récepteur Futaba sbus
  • Options de télémétrie :
    • Télémétrie sans fil sur un port série dédié
    • Canal télémétrie Audio
    • utilisation du protocole de base MavLink
  • Prise en charge de la stabilisation :
    • Chaînes d'asservissement dédiées pour roulis, tangage, lacet
    • Possibilité de stabilisation automatique ou manuelle via un voie de l'émetteur
  • Prise en charge d'un OSD pour MAX7456

Aeroquad Configurator

Aeroquad Configurator est un outil permettant à l'utilisateur de configurer AeroQuad avant son premier vol et d'ajuster rapidement les paramètres pour les caractéristiques de vol souhaitées.

L'utilisateur est en mesure d'observer graphiquement le bon fonctionnement des capteurs, des commandes de l'émetteur et le contrôle moteur du multicoptère. En outre, il ya des valeurs programmables par l'utilisateur tels que les valeurs de la boucle de régulation PID et le facteur d'émetteurs qui peuvent être réglés et mémorisés dans l'EEPROM de l'AeroQuad.

Adaptation pour le projet

Le code Aeroquad étant optimisé pour l'utilisation de matériels compatibles Aeroquad, il est nécessaire d'adapter certaines parties du code pour faire fonctionner le BotCopter :

  • Déclaration d'une plateforme matérielle pour le BotCopter
  • Codage de la partie ZigBee (émission et réception)
  • Codage des capteurs non supportés de base
  • Codage de la commande moteur pour des moteurs Coreless (sur Aeroquad, les moteurs supportés sont des Brushless)
  • Séparation du code entre la carte émettrice et réceptrice (sur Aeroquad, le récepteur de la radio-commande est inclus dans le quadcoptère)
  • Ajout de la télémétrie sur la liaison ZigBee


Prototype alpha

Choix des composants

Le micro-contrôleur suivant est utilisé : Dresden Elektronik deRFmega128-22C00

  • Caractéristiques techniques :
    • 30 x 20.5 mm
    • Puce unique micro-contrôleur ATmega128RFA1 8bit-AVR
    • Transceiver intégré
    • 2.4 GHz
    • Antenne céramique intégrée
    • Portée maximale jusqu'à 200m (vue dégagée)
    • Interfaces disponibles telles que I2C, SPI, UART, ADC
    • Applications: ZigBee, 6LoWPAN et RF4CE
Dresden Elektronik deRFmega128-22C00
Taille du composant
Poids du composant

La carte capteurs suivante est utilisée : IMU 10DOF

  • Caractéristiques techniques :
    • 22 x 17 mm
    • Accéléromètre 3 axes et Gyroscope 3 axes : MPU-6050
    • Magnétomètre 3 axes : HMC5883L
    • Baromètre : MS5611
    • Tension : 3.3-5V
    • Protocole : I2C (support 3.3-5V)
Carte IMU 10DOF MPU6050+HMC5883L+MS5611

Carte émettrice

Carte réceptrice

Configuration

Tests