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.
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 :
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 :
Le logiciel "4wArduino_m328P__8_PB3PB4v14302.hex" pour la Pro Mini utilise les broches D12 (Blanc), D11 (rouge), GND (noir) ...
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).
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.
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.
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 :
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".
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.
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€.
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.
Configuration de Termite : (9600 bauds vitesse de transmission de ma carte HC06, et aucun suffixe)
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)
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
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 .
Réglages PID
A suivre