1.  Introduction

On trouve maintenant des hélicoptères radio-commandés à des prix suffisamment bas pour les utiliser dans des projets robotiques ambitieux sans crainte de crashes coûteux. Ce document décrit la construction d'un hélicoptère de 300 g doté d'un système d'exploitation Linux embarqué et d'une liaison Bluetooth, à partir de composants sur étagère, pour un coût de 500 EUR.

À titre de démonstration, nous proposons un logiciel permettant de télécommander l'hélicoptère par liaison Bluetooth avec un joystick PC. Par la suite des capteurs seront intégrés (centrale inertielle, boussole magnétique, GPS, caméra) ainsi qu'un pilote automatique.

2.  Avertissement

  • Vous utilisez ces instructions et les logiciels associés à vos risques et périls.

  • Il s'agit d'un projet expérimental qui n'offre aucune des fonctions de sécurité que l'on peut attendre d'un produit commercial.

  • Les aéronefs radio-commandés ne sont pas des jouets. Il sont habituellement pilotés par des amateurs qualifiés sur des terrains dédiés, conformément à la réglementation, avec les assurances en responsabilité civile requises.

  • En raison de leur complexité et de leurs parties mécaniques mobiles, les hélicoptères sont parmi les aéronefs les plus dangereux.

  • Un robot autonome peut avoir des comportements inattendus. Assurez vous d'avoir suffisamment d'espace.

  • Un programme "plante". Un robot volant se plante - littéralement.

  • Les batteries lithium-polymer sont réputées pour leur tendance à exploser lorsqu'elles sont endommagées ou mal utilisées.

  • La portée radio de Bluetooth est de 10 m, ce qui est insuffisant pour le vol radio-commandé en extérieur.

  • Contrairement aux émetteurs/récepteurs 41/72 MHz dédiés au modélisme, les produits Bluetooth et Wi-Fi utilisent des fréquences partagées qui peuvent être brouillées par des sources diverses.

3.  Composants sur étagère

3.1.  Chassis d'hélicoptère

Plusieurs modèles d'hélicoptères miniatures radio-commandés sont commercialisés comme des jouets bon marché: Ikarus Piccolo, MS Hornet, Carboon, Dragonfly, Honeybee, Hummingbird, Tiny, Aerohawk, Blade CP, Sky Lark... Il s'agit simplement de versions miniaturisées des modèles réduits traditionnels, rendues possibles par les progrès récents des batteries. Certains modèles ont un rotor à pas fixe (FP); d'autres ont à la foix un pas cyclique variable et un pas collectif variable (CP). Pour l'anticouple, la plupart des modèles ont un moteur dédié plutôt qu'un rotor à pas variable.

Parmi les innovations récentes, on notera le "Proxflyer", caractérisé par un rotor déformable auto-stabilisant. Malheureusement les déclinaisons commerciales disponibles aujourd'hui sont trop légères pour embarquer notre avionique. Cependant, en raison de sa stabilité intrinsèque, ce concept sera probablement un bon choix pour des applications en vol stationnaire qui peuvent se contenter d'une manoeuvrabilité limitée.

L'hélicoptère quadri-rotor est une autre alternative. Il est plus silencieux, plus robuste mécaniquement, moins dangereux (avec des hélices carrénées), et se pilote probablement plus facilement qu'un appareil à plateau cyclique et rotor unique. Ses faiblesses potentielles sont: les dimensions de l'appareil à charge utile égale, le rendement énergétique de quatre petits moteurs par rapport à celui d'un seul à portance égale, et l'impact sur la manoeuvrabilité de l'inertie des hélices (qui sont généralement à pas fixe).

Pour ce projet nous utilisons un kit comprenant :

  • un hélicoptère pré-assemblé avec pas collectif variable, deux moteurs et trois servos miniatures ;

  • Un boîtier électronique comprenant régulateur de tension (BEC), récepteur 6 canaux, gyro de lacet et régulateurs de vitesse ;

  • un émetteur 6 canaux 41 MHz avec mixage CCPM intégré ;

  • une batterie lithium-polymer de 11.1 V ;

  • Un chargeur pour la batterie.

L'appareil a une masse de 270 g et peut emporter environ 50 g supplémentaires.

Figure 1.  Contenu du boîtier électronique d'un hélicoptère modèle réduit

Contenu du boîtier électronique d'un hélicoptère modèle réduit

Le boîtier électronique "tout-en-un" assure l'interconnexion de tous les composants. Par contraste, dans les modèles réduits usuels, les connexions entre le récepteur, le gyro, le régulateur de tension et les régulateurs de vitesse sont accessibles et basées sur des standards. L'intégration de ces fonctions permet de réduire la taille, le poids et le coût, mais rend le bricolage plus difficile.

Heureusement, dans certains hélicoptères commercialisés, il est relativement aisé de modifier le boîtier électronique "tout-en-un". Il contient en fait deux cartes électroniques connectées dos-à-dos par un connecteur de 2x3 broches (Figure 1, «  Contenu du boîtier électronique d'un hélicoptère modèle réduit  ») :

  • un récepteur de radio-commande standard avec sept sorties PWM à 3 broches pour servos ;

  • une carte auxiliaire comportant régulateur de tension, gyro, fonction de sécurité (antidémarrage) et régulateurs de vitesse.

On remarque (Tableau 1, «  Sorties PWM du récepteur de radio-commande  ») que deux des sept sorties PWM du récepteur sont routées vers la carte auxiliaire.

Tableau 1.  Sorties PWM du récepteur de radio-commande

Canal Affectation
1 Servo droit
2Servo avant
3 Moteur principal (connecté à la carte auxiliaire)
4 Moteur anticouple (connecté à la carte auxiliaire)
5 Inutilisé
6 Servo gauche
B Inutilisé (impulsions de synchro de 12 ms)

D'autres hélicoptères similaires peuvent être utilisés sous les conditions suivantes :

  • L'électronique doit être à base de signaux PWM. Pour générer des signaux PCM, il faudrait connaître les codages employées.

  • Il doit être possible d'isoler le signal PPM multiplexé entre le récepteur FM et le démultiplexeur (Section 4.2, «  Injection de signaux PWM  ») ou, à défaut, les signaux PWM en entrée des régulateurs de vitesse. L'électronique doit tolérer des signaux de 3.3 V.

  • L'hélicoptère doit être capable d'emporter au moins 30 g supplémentaires.

  • La batterie doit être capable de fournir 200 mA supplémentaires.

3.2.  Informatique embarquée

Nous utilisons une carte Gumstix dotée des caractéristiques suivantes :

  • processeur Intel XScale 200 MHz comportant un coeur ARM et des périphériques intégrés ;

  • Flash de 4 MiB livrée avec Linux-2.6.10 et utilitaires pré-installés ;

  • 64 MiB de SDRAM ;

  • broches d'entrées/sorties programmables (GPIO) ;

  • carte auxiliaire avec connectique au pas de 2,54 mm ;

  • bus I2C ;

  • module Bluetooth ;

  • environnement de développement très complet.

D'autres fonctionnalités sont disponibles, mais nous ne les utiliserons pas :

  • générateur PWM à deux canaux : manifestement prévu pour contrôler la luminosité et le contraste d'un écran LCD. À terme nous aurons besoin de plus de deux canaux.

  • Interface USB client: prévu pour des des PDA à base de PXA255. usbnet permet de se connecter à la carte, mais nous pouvons aussi utiliser Bluetooth.

3.3.  Accéléromètres et gyros

Des gyros sont couramment utilisés pour mesurer la vitesse de rotation dans les modèles réduits d'hélicoptères. On trouve des accéléromètres MEMS dans des produits grand public tels que les camescopes, disque durs et automobiles. Les accéléromètres peuvent également être utilisés comme inclinomètres pour des applications statiques.

3.4.  Outillage divers

  • Ordinateur Linux avec USB et Bluetooth ;

  • Contrôleur compatible Xbox ;

  • Alimentation régulée 12 V, 5A ;

  • Oscilloscope analogique 10 MHz (recommandé).

4.  Hardware

4.1.  Régulateur de tension

La carte auxiliaire comporte deux régulateurs +5 V montés en parallèle et étiquetés CX1117-5.0. La consommation est de 50 mA au repos, et de 3 à 5 A en vol.

Cette source +5 V est disponible sur les connecteurs des servos (y compris les connecteurs inutilisés). On pourra donc l'utiliser pour alimenter la carte CPU, en remplaçant si nécessaire les régulateurs par un modèle capable de supporter le courant supplémentaire (100 à 200 mA).

4.2.  Injection de signaux PWM

Figure 2.  Structure d'un récepteur RC (modifications en rouge)

Structure d'un récepteur RC (modifications en rouge)

Pour contrôler l'hélicoptère, nous modifions le récepteur RC afin que la carte embarquée puisse injecter son propre signal PPM dans le démultiplexeur PPM.

Pourquoi ne pas supprimer entièrement la carte récepteur et générer cinq signaux PWM avec la carte embarquée ? .  L'approche proposée a plusieurs avantages :

  • Pas besoin de fabriquer un circuit imprimé spécial ;

  • Seulement trois fils entre la carte embarquée et le boîtier électronique d'origine : GND, +5 V, et un signal PPM multiplexé ;

  • Le démultiplexeur PPM assure une certaine isolation électrique entre la carte embarquée et l'électronique de puissance.

La structure d'un récepteur RC typique est décrite ci-dessous (Figure 2, «  Structure d'un récepteur RC (modifications en rouge)  ») ainsi que la modification à effectuer. Il suffit de couper le bon fil et d'amener les deux extrémités sur un nouveau connecteur. Les chronogrammes permettent d'identifier le bon signal.

Cette modification peut être réalisée de telle sorte que l'on puisse rétablir le fonctionnement d'origine en déconnectant simplement la carte embarquée et en insérerant un cavalier.


4.3.  Adaptation d'un contrôleur de Xbox

Les contrôleurs pour console Xbox sont très répandus, peu coûteux, et ont l'avantage d'avoir tous les mêmes fonctions (ce qui n'est pas le cas des joysticks pour PC). Il est possible de les connecter à un PC en remplaçant le connecteur propriétaire par une prise USB type A. Il suffit de raccorder les quatre fils en respectant les couleurs et en ignorant le fil jaune supplémentaire.

Alternativement, n'importe quel joystick USB (ou joypad, ou gamepad) avec deux sticks analogiques peut être utilisé. Dans ce cas, il faudra configurer le mixage en fonction de la numérotation des axes (voir iprc_tx dans [PXARC]).

5.  Logiciels

Les logiciels développés pour ce projet sont maintenant distribués séparément : voir [PXARC].

Figure 3.  Configuration de mixage xpad_ccpm120_mode2.mix.

Configuration de mixage xpad_ccpm120_mode2.mix.

Figure 4.  Coefficients pour mixage CCPM à 120° (pour référence).

Coefficients pour mixage CCPM à 120° (pour référence).

Selon le type d'hélicoptère utilisé, il peut être nécessaire de configurer iprc_tx pour réaliser le mixage CCPM. Un exemple est décrit ci-dessous (Figure 3, «  Configuration de mixage xpad_ccpm120_mode2.mix.  »).


6.  Intégration

Figure 5. Helicopter + ARM + Linux.


Figure 6.  Vue du connecteur sur la carte fille I/O.

Vue du connecteur sur la carte fille I/O.

Les connexions sur la carte fille du Gumstix sont montrées ci-dessous (Figure 6, «  Vue du connecteur sur la carte fille I/O.  » et Tableau 2, «  Affectation des broches de la carte fille.  »).

Tableau 2.  Affectation des broches de la carte fille.

Broche Signal Affectation
10 NACRESET (déconnecté en coupant la trace sur le circuit imprimé) Entrée +5 V CC
16GNDGND
18GPIO61 Sortie PWM 6 canaux


7.  Mise en service

7.1.  Radio-commande par liaison Bluetooth ou Wi-Fi

Figure 7.  Radio-commande par liaison Bluetooth ou Wi-Fi

Radio-commande par liaison Bluetooth ou Wi-Fi

Dans ce scénario (Figure 7, «  Radio-commande par liaison Bluetooth ou Wi-Fi  ») nous reproduisons simplement le fonctionnement d'une radio-commande classique. Il n'y a pas de capteurs dans l'hélicoptères, pas de logiciel embarqué complexe, et pas de retour d'information de l'hélicoptère vers la station au sol.

Procédure 1.  Démarrage

  1. Lancer iprc_tx sur le PC.

  2. Connecter la batterie. Les broches GPIO seront au niveau logique 1 pendant la phase de boot.

  3. Configurer la connexion Bluetooth BNEP. Ceci peut être automatisé à l'aide de l'utilitaire pand.

  4. Charger le module pxa_opwm. Ceci activera la sortie GPIO, initialement au niveau logique 0.

  5. Démarrer iprc_rx sur la carte embarquée. La réception de paquets UDP déclenchera la génération du signal PPM.

Procédure 2.  Arrêt

  • Au choix : déconnecter la batterie, ou stopper iprc_rx, ou stopper iprc_tx. Toutes ces variantes assurent en principe un arrêt sans danger. Notez qu'avec la radio-commande d'origine, il est impératif d'éteindre le récepteur ou de déconnecter la batterie avant d'éteindre l'émetteur.


7.2.  Radio-commande avec un joystick Bluetooth

Figure 8.  Radio-commande avec un joystick Bluetooth

Radio-commande avec un joystick Bluetooth

Cette variante (Figure 8, «  Radio-commande avec un joystick Bluetooth  ») repose sur le fait que certains joysticks sans fil modernes sont compatibles avec le profil Bluetooth HID, ce qui permet de les connecter directement à une carte Linux embarquée équipée d'un module Bluetooth. C'est le cas notamment du contrôleur "SIXAXIS" de la console PS3, comme expliqué dans [SIXLINUX].

8.  Développements futurs

8.1.  Capteurs

  • Centrale inertielle. 6 degrés de liberté, interface I2C.

  • Caméra vidéo numérique

  • Magnétomètre (boussole). Interface I2C.

  • Pression (altitude, vitesse air). Interface I2C.

8.2.  Logiciel de contrôle de vol

  • Vol assisté : stationnaire stable, voltige

  • Routes programmées

  • Décollage et atterrissage autonomes

  • Navigation autonome en environnement intérieur.

Bibliographie

[PXA255_DEVEL] Intel PXA255 Processor. Developer's manual. 27869302.pdf.

[PXA255_USER] Intel XScale Microarchitecture for the PXA255 Processor. User's Manual. 27879601.pdf.

[PXA255_ELEC] Intel PXA255 Processor. Electrical, Mechanical, and Thermal Specification. 27878002.pdf.

[PXARC] pxaRC - Logiciels pour le modélisme et la robotique sur Linux/PXA255/PXA270 . http://www.pabr.org/pxarc/doc/pxarc.fr.html .

[SIXLINUX] Utilisation du joystick de la PlayStation 3 en mode Bluetooth avec Linux . http://www.pabr.org/sixlinux/sixlinux.fr.html .

Glossaire

Battery-Elimination Circuit (BEC)

Un convertisseur de tension DC-DC (linéaire ou à découpage) utilisé pour alimenté un récepteur RC et des servos à partir de la même batterie que les moteurs. La tension de sortie est généralement de 4.8 V ou 5 V.

Bluetooth Network Encapsulation Protocol (BNEP)

Fournit une interface semblable à Ethernet (typiquement bnep0) à chaque extrémité d'une connexion Bluetooth.

Hélicoptère à pas collectif (CP)

Désigne un type de rotor d'hélicoptère à pas collectif variable. La portance est controlée en modifiant le pas collectif et/ou la vitesse du moteur principal.

Voir aussi Fixed pitch helicopter.

Cyclic-Collective Pitch Mixing (CCPM)

Duty Cycle Modulation (DCM)

Une modulation qui code un signal analogique par la valeur moyenne d'un signal binaire périodique. Utilisée typiquement pour varier la vitesse d'un moteur électrique avec un pont en H.

Voir aussi Pulse Width Modulation.

Drone

Voir aussi Unmanned Aerial Vehicle.

Electronic Speed Controller (ESC)

Un régulateur de tension pour moteur, typiquement asservi par un signal PWM dans un modèle réduit.

Fixed pitch helicopter (FP)

Désigne un type de rotor d'hélicoptère à pas cyclique variable, mais à pas collectif fixe. La portance est controlée en modifiant la vitesse du moteur principal, ce qui cause davantage d'inertie que pour un hélicoptère "CP". Par ailleurs, un hélicoptère "FP" ne peut pas voler à l'envers.

Voir aussi Hélicoptère à pas collectif .

General-Purpose I/O (GPIO)

Le PXA255 comporte 85 broches qui peuvent être configurées chacune comme entrée ou comme sortie, ou connectées aux périphériques intégrés (par exemple les ports série et le contrôleur LCD).

Global Positioning System (GPS)

Inertial Measurement Unit (IMU)

Accéléromètres (translation) et gyros (rotation).

Lithium-Polymer (LiPo)

Mode 1 / Mode 2

Dispositions courantes pour les sticks d'un émetteur de radio-commande pour hélicoptère.

Printed Circuit Board (PCB)

Pulse Code Modulation (PCM)

Désigne une transmission numérique, par opposition à PWM ou PPM.

Voir aussi Pulse Width Modulation, Pulse Position Modulation.

Pulse Position Modulation (PPM)

Désigne une modulation PPM différentielle à plusieurs canaux, dans la terminologie du modélisme.

Voir aussi Pulse Width Modulation, Pulse Code Modulation.

Pulse Width Modulation (PWM)

Une modulation qui code un signal analogique par des impulsions binaires de durée variable. Typiquement utilisée pour contrôler des servos RC.

Voir aussi Pulse Position Modulation, Duty Cycle Modulation.

Unmanned Aerial Vehicle (UAV)

N.B. : Un appareil sans pilote n'est pas forcément autonome.

Voir aussi Drone.