X-Copter, Mise à jour 2016

Logiciel et capteurs

La mise à jour du logiciel MultiWii (en version 2.4) nécessite le changement des capteurs car le module WMP n'est plus utilisable. J'avais dans mes stocks une ancienne carte Drotek.fr IMU 10DOF (de 2012) que j'ai donc utilisée. Les cartes actuellement en vente chez Drotek.fr sont différentes.

Les capteurs sont :
- Gyro ITG3200,
- Accéléro BMA180,
- Magnéto HMC5883,
- Pression BMP085.

IMU 10DOF

Tous les anciens capteurs ont été retirés et remplacés par cette seule carte.

Ma carte Arduino Pro Mini est en 5V. La carte 10DOF est en 3.3V. La carte Flyduino MWC est équipée d'un régulateur 3.3V qui va permettre d'alimenter les capteurs. La seconde carte dispose Flyduino d'un LLC (Logic Level Converter) qui permet de faire la passerelle entre l'I2C 5V de l'Arduino Pro Mini et l'I2C 3.3V des capteurs. Donc le cablage est assez simple, IMU 10DOF alimentée à partir du régulateur 3.3V et connexion I2C SDA, SCL par le LLC.

Vérification des axes des capteurs

Basculer le Multi sur la droite (coté gauche en haut.)
- MAG_ROLL, ACC_ROLL et GYRO_ROLL augmentent
- MAG_Z et ACC_Z diminuent

Basculer le Multi vers l'avant (arrière haut)
- MAG_PITCH, ACC_PITCH et GYRO_PITCH augmentent
- MAG_Z et ACC_Z diminuent

Tourner le Multi dans le sens des aiguilles d'une montre
- GYRO_YAW augmente.

Laisser le multi a plat
- MAG_Z a une valeur positive ; ACC_Z a une valeur positive.

Orientation du capteur magnétique
- Axe X MAG : ROLL vers la droite = positif, ROLL vers la gauche = negatif
- Axe Y MAG : PITCH vers l'avant = positif, PITCH en arrière = negatif
- Axe Z MAG : doit être positif et ne pas changer quand le multi reste à plat.

Bien qu'à priori ma carte IMU 10DOF soit bien orientée, j'ai dû forcer les orientations dans le fichier config.h :

Orientation axes

Controleurs moteurs

Les controleurs brushless standards ne sont pas vraiment adaptés à l'utilisation multi-copter (temps de réponse, résolution de la commande de gaz). On trouve sur le net des firmwares alternatifs développés spécifiquement pour cette utilisation, leurs noms : SimonK et BLHELI. J'ai choisi de tenter de "flasher" mes ESC avec BLHELI 14.3.0.2. : Site BLHELI

Mon X-copter est équipé de controleur (ESC) HobbyWing Flyfun 10A. Il n'est pas dans la liste des ESC compatible, mais c'est exactement le même que le Turnigy Plush 10A, qui est compatible.

Les firmwares BLHELI sont déclinés pour les ESC sur microcontroleur Silabs ou Atmel. Le TGY Plush 10A est en µControleur Silabs.

ATTENTION : Tous les manipulations qui consistent à modifier l'ESC annulent la garantie et en cas d'erreur risque de le détruire ! Ne faire cette manipulation que si vous êtes sûr de vous.

Flashage initial

Cette opération va consister à remplacer le firmware standard de l'ESC par un BLHELI.

BLHELI propose diverses solutions pour cette opération. J'ai choisi de le faire avec une carte Arduino Pro Mini 3.3V, car j'en avais une ...

BLHELI explique dans la documentation PDF comment préparer une carte Arduino Nano pour l'utiliser en programmateur "type 4W-if". Mais attention, il y a un piège sur lequel j'ai passé plus de 2 heures ! Les connexions ne sont pas les identiques entre les versions de logiciel.

Pour la carte Arduino Nano, le logiciel "4wArduino_Nano__16_PD3PD2v14302.hex" met en oeuvre les broches D3, D2, GND :

Arduino Nano

Le logiciel "4wArduino_m328P__8_PB3PB4v14302.hex" pour la Pro Mini utilise les broches D12 (Blanc), D11 (rouge), GND (noir) ...

Pro MiniPro Mini

La programmation de la carte Arduino est réalisée par le logiciel BLHELI, onglet "Make Interface" (après avoir connecté l'interface FTDI sur l'USB du PC).

Make BLHELI

Voila, c'est fait. La suite va demander plus de finesse ...

Il va falloir connecter l'ESC sur la carte Arduino, rouge sur rouge, blanc sur blanc et noir sur noir.

Turnigy 10A

Remarque : Je ne retire pas toute la gaine de protection de la carte, mais je fais juste une ouverture au scalpel, que je masque avec un ruban adhésif après opération.

L'entraxe des pastilles du CI est de 1.27mm. Avec un bon fer à souder et du calme, je viens braser des petits fils sur les 3 pastilles de la carte que je relie ensuite à la carte Arduino.

Une fois cela réalisé, il ne reste qu'à :
- Sélectionner dans le menu de BLHELI : "SILABS C2 4way-if"
- Sélectionner le bon port COM (par exemple COM6)
- Connecter l'ESC à l'alimentation
- Cliquer sur "Connect" : si il n'y a pas de message d'erreur c'est bon ...
- Cliquer sur "Flash BLHELI" : choisir le bon ESC et et le firmware associé "MULTI".
- Attendre la fin ... Et passer au suivant.

BLHELI

Remarque : L'ESC Turnigy (ou Flyfun) 10A n'est pas très performant (communation lente des MOSFET) et ne supporte pas le mode "Damped" de BLHELI qui consiste à freiner le moteur.

Réglages BLHELI

Les ESC avec firmware BLHELI sont configurables par la prise "servo" à l'aide d'un adaptateur. (Plusieurs possibilités dans la doc.)

J'ai choisi d'utiliser un adaptateur USB/UART sur base de CP2102 associé à quelques composants. Voici le schéma issu de la doc BLHELI, et la mise en application :

FTDIFTDI

Interface BLHELI connectée sur l'ESC TGY 10A :
On peut voir la version : Multicopter Rev. : 14.3
Les modifications sont prises en compte sur "Write Setup".

Setup

Connexion bluetooth

Les réglages par défauts du logiciel Mulitwii permettent normalement de faire voler la plupart des multicopters. Les caractéristiques de vol peuvent (doivent) être optimisées en jouant sur différents paramètres de des asservissements qui stabilisent l'appareil. Pour ce faire, il faut utiliser le logiciel MultiWiiConf et connecter la carte Arduino au PC.

Mulitiwiiconf

Cette solution par PC + connexion filaire est peu pratique sur le terrain car les réglages se font de manière itérative.

Connexion bluetooth

La solution qui suit remplace le câble par du "sans fil" bluetooth et le logiciel + PC par une application sur smartphone ou tablette.
La carte bluetooth utilisée porte la référence "Module Bluetooth HC-06" et se trouve sur Ebay pour environ 6€.

Bluetooth

Configuration de la carte bluetooth.

Ma carte HC06 était configurée à 9600 bauds, alors que le multiwii est à 115200 baud.
Pour la configuration de la carte HC06, je passe par une interface USB / UART TTL. Il faut connecter 4 fils entre l'interface USB et la carte HC06.
Vcc -> Vcc
Gnd -> Gnd
Rxd -> Txd
Txd -> Rxd
La LED de la carte doit clignoter lorsqu'elle est alimentée.

La configuration se fait ensuite en utilisant un terminal série. Termite par exemple.

Termite

Configuration de Termite : (9600 bauds vitesse de transmission de ma carte HC06, et aucun suffixe)

Configuration

Si tout est OK, l'envoi d'une commande AT retourne OK.
Il est possible d'obtenir le version du logiciel, de nommer l'interface, de lui donner un code PIN, de modifier la vitesse de transmission.
Les commandes sont les suivantes : (en bleu : commande, en vert réponse)

Commandes HC06

A la suite de la configuration, il faut connecter la carte HC06 à la carte Arduino du Multicopter en lieu et place du FTDI.
Vcc - Vcc
Gnd - Gnd
Rxd - Txd
Txd - Rxd

Multi bluetooth

Application smartphone ou tablette :

Il existe plusieurs applications, dont Multiwii configurator et EZ-GUI Ground Station.

Ces applications vont permettre d'accéder aux paramètres du Multicopter en connexion sans fil. Il faut bien évidement activer le bluetooth sur la tablette puis se connecter avec l'application en utilisant le nom et le code PIN  donnés précédement .

EZ-GUI

Réglages PID

A suivre

Depuis juin 2005