Tuto : Multiwii pas de panique

MultiwiiPour la construction d’un multicoptère, plusieurs questions se posent sur le choix des éléments, mais il y a un élément à ne surtout pas négliger, c’est la carte de vol. Notre choix c’est vite tourner vers une carte multiwii, elle propose plusieurs avantages, comme une grande gamme de produits,  de tailles, poids, prix et fonctionnalités différentes, l’autre avantage que je noterais, c’est que la plupart des cartes vendues sont prêtes à être utilisé tout en ayant un prix très faible ! Nous avons personnellement opté pour une Multiwii lite de chez HK. Mais ces cartes ont un défaut, c’est qu’a leur arrivée, on est un peu perdu.

Pas d’inquiétude, ce tutoriel est fait pour vous aider, il se divise en sept parties :

1- Questions/réponses

2- Les logiciels

3- Configuration rapide

4- Branchements

5- Vérification Multiwiiconf

6- Pour aller plus loin

7- PID

1- Question/réponse :

– Est-ce que il y a de la programmation à faire ? Tout dépend votre notion de programmation, si on parle de language C++, python ou Java, il n’en est rien, si votre notion de programmation se rapporte à la partie réglage de la carte, oui, il y en a, mais ce n’est qu’une formalité.

– La batterie se branche-t-elle directement sur la carte ? Oui et non, certaines cartes supportent jusqu’à du 8,4V comme la MINI MWC FCB, mais ce n’est pas le cas de toutes, de préférence, alimenté votre carte avec du 5V, celui du bec d’un ESC alimentant un moteur par exemple, ou encore celui d’un Ubec.

– Dois-je acheter des câbles pour connecter ma Multiwii à mon récepteur ? Généralement, non, ils sont livrés avec la carte.

– Comment est alimenté mon récepteur ? Il est alimenté directement par la carte Multiwii.

– La carte Multiwii est-elle difficile d’utilisation ? Non, si on suit un tutoriel, dans ce cas, c’est juste un exercice bête et méchant qui vous prendra une trentaine de minutes.

– Elle coûte combien ? Une vingtaine d’euro, tout dépend de la version de la carte.

-Que puis-je faire avec ? Stabiliser à peu près n’importe quel appareil volant.

2- Les logiciels :

Pour commencer, il faut télécharger et installer L’IDE arduino, elle nous permettra de téléverser  le programme pour votre multicoptère. Ensuite, il faut télécharger le logiciel Multiwii.

Vous dézippez le dossier Multiwii_2_3, vous ouvrez ce dossier puis le dossier Multiwii, avant de cliquer sur Multiwii.ino, arduino se lance, mettez le logiciel en plein écran, puis cliquez sur config.h

snapshot2

3- Configuration :

Arrivez sur la fenêtre ci-dessus, il va falloir configurer votre machine, pour cela, décommenter les lignes correspondant à votre engin, imaginons, c’est un quadricoptère en X, pour choisir cette configuration, nous allons juste enlever les  // se trouvant devant #define QUADX

Après avoir choisi le type de châssis que l’on a, descendez directement à :

/***************************    Combined IMU Boards    ********************************/

/* if you use a specific sensor board:

please submit any correction to this list.

Note from Alex: I only own some boards, for other boards, I’m not sure, the info was gathered via rc forums, be cautious */

//#define FFIMUv1         // first 9DOF+baro board from Jussi, with HMC5843                   <- confirmed by Alex

//#define FFIMUv2         // second version of 9DOF+baro board from Jussi, with HMC5883       <- confirmed by Alex

//#define FREEIMUv1       // v0.1 & v0.2 & v0.3 version of 9DOF board from Fabio

//#define FREEIMUv03      // FreeIMU v0.3 and v0.3.1

//#define FREEIMUv035     // FreeIMU v0.3.5 no baro

//#define FREEIMUv035_MS  // FreeIMU v0.3.5_MS                                                <- confirmed by Alex

//#define FREEIMUv035_BMP // FreeIMU v0.3.5_BMP

//#define FREEIMUv04      // FreeIMU v0.4 with MPU6050, HMC5883L, MS561101BA                  <- confirmed by Alex

//#define FREEIMUv043     // same as FREEIMUv04 with final MPU6050 (with the right ACC scale)

//#define NANOWII         // the smallest multiwii FC based on MPU6050 + pro micro based proc <- confirmed by Alex

//#define PIPO            // 9DOF board from erazz

//#define QUADRINO        // full FC board 9DOF+baro board from witespy  with BMP085 baro     <- confirmed by Alex

//#define QUADRINO_ZOOM   // full FC board 9DOF+baro board from witespy  second edition

//#define QUADRINO_ZOOM_MS// full FC board 9DOF+baro board from witespy  second edition       <- confirmed by Alex

//#define ALLINONE        // full FC board or standalone 9DOF+baro board from CSG_EU

//#define AEROQUADSHIELDv2

//#define ATAVRSBIN1      // Atmel 9DOF (Contribution by EOSBandi). requires 3.3V power.

//#define SIRIUS          // Sirius Navigator IMU                                             <- confirmed by Alex

//#define SIRIUSGPS       // Sirius Navigator IMU  using external MAG on GPS board            <- confirmed by Alex

//#define SIRIUS600       // Sirius Navigator IMU  using the WMP for the gyro

//#define SIRIUS_AIR      // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com           <- confirmed by Alex

//#define SIRIUS_AIR_GPS  // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com with GPS/MAG remote located

//#define SIRIUS_MEGAv5_OSD //  Paris_Sirius™ ITG3050,BMA280,MS5611,HMC5883,uBlox  http://www.Multiwiicopter.com <- confirmed by Alex

//#define MINIWII         // Jussi’s MiniWii Flight Controller                                <- confirmed by Alex

//#define MICROWII        // MicroWii 10DOF with ATmega32u4, MPU6050, HMC5883L, MS561101BA from http://flyduino.net/

//#define CITRUSv2_1      // CITRUS from qcrc.ca

//#define CHERRY6DOFv1_0

//#define DROTEK_10DOF    // Drotek 10DOF with ITG3200, BMA180, HMC5883, BMP085, w or w/o LLC

//#define DROTEK_10DOF_MS // Drotek 10DOF with ITG3200, BMA180, HMC5883, MS5611, LLC

//#define DROTEK_6DOFv2   // Drotek 6DOF v2

//#define DROTEK_6DOF_MPU // Drotek 6DOF with MPU6050

//#define DROTEK_10DOF_MPU//

//#define MONGOOSE1_0     // mongoose 1.0    http://store.ckdevices.com/

//#define CRIUS_LITE      // Crius MultiWii Lite

//#define CRIUS_SE        // Crius MultiWii SE

//#define CRIUS_SE_v2_0   // Crius MultiWii SE 2.0 with MPU6050, HMC5883 and BMP085

//#define OPENLRSv2MULTI  // OpenLRS v2 Multi Rc Receiver board including ITG3205 and ADXL345

//#define BOARD_PROTO_1   // with MPU6050 + HMC5883L + MS baro

//#define BOARD_PROTO_2   // with MPU6050 + slave  MAG3110 + MS baro

//#define GY_80           // Chinese 10 DOF with  L3G4200D ADXL345 HMC5883L BMP085, LLC

//#define GY_85           // Chinese 9 DOF with  ITG3205 ADXL345 HMC5883L LLC

//#define GY_86           // Chinese 10 DOF with  MPU6050 HMC5883L MS5611, LLC

//#define GY_521          // Chinese 6  DOF with  MPU6050, LLC

//#define INNOVWORKS_10DOF // with ITG3200, BMA180, HMC5883, BMP085 available here http://www.diymulticopter.com

//#define INNOVWORKS_6DOF // with ITG3200, BMA180 available here http://www.diymulticopter.com

//#define MultiWiiMega    // MEGA + MPU6050+HMC5883L+MS5611 available here http://www.diymulticopter.com

//#define PROTO_DIY       // 10DOF mega board

//#define IOI_MINI_MULTIWII// http://www.bambucopter.com

//#define Bobs_6DOF_V1     // BobsQuads 6DOF V1 with ITG3200 & BMA180

//#define Bobs_9DOF_V1     // BobsQuads 9DOF V1 with ITG3200, BMA180 & HMC5883L

//#define Bobs_10DOF_BMP_V1 // BobsQuads 10DOF V1 with ITG3200, BMA180, HMC5883L & BMP180 – BMP180 is software compatible with BMP085

//#define FLYDUINO_MPU       // MPU6050 Break Out onboard 3.3V reg

//#define CRIUS_AIO_PRO_V1

//#define DESQUARED6DOFV2GO  // DEsquared V2 with ITG3200 only

//#define DESQUARED6DOFV4    // DEsquared V4 with MPU6050

//#define LADYBIRD

//#define MEGAWAP_V2_STD     // available here: http://www.multircshop.com                    <- confirmed by Alex

//#define MEGAWAP_V2_ADV

//#define HK_MultiWii_SE_V2  // Hobbyking board with MPU6050 + HMC5883L + BMP085

//#define HK_MultiWii_328P   // Also labeled « Hobbybro » on the back.  ITG3205 + BMA180 + BMP085 + NMC5583L + DSM2 Connector (Spektrum Satellite)

//#define RCNet_FC           // RCNet FC with MPU6050 and MS561101BA  http://www.rcnet.com

//#define RCNet_FC_GPS       // RCNet FC with MPU6050 + MS561101BA + HMC5883L + UBLOX GPS http://www.rcnet.com

//#define FLYDU_ULTRA        // MEGA+10DOF+MT3339 FC

//#define DIYFLYING_MAGE_V1  // diyflying 10DOF mega board with MPU6050 + HMC5883L + BMP085 http://www.indoor-flying.hk

//#define MultiWii_32U4_SE         // Hextronik MultiWii_32U4_SE

//#define MultiWii_32U4_SE_no_baro // Hextronik MultiWii_32U4_SE without the MS561101BA for more free flash-memory

//#define Flyduino9DOF       // Flyduino 9DOF IMU MPU6050+HMC5883l

//#define Nano_Plane         // Multiwii Plane version with tail-front LSM330 sensor http://www.radiosait.ru/en/page_5324.html

Dans cette partie du programme, choisissez la carte multiwii que vous possédez, si vous n’en possédez pas encore, préférez acheter une carte Multiwii cité dans cette partie. Si votre carte ne fait pas partie de la liste, il va falloir décommenter chaque composant qui compose votre carte, je vais mettre en exemple le choix des composants et de leur sens pour la multiwii lite V1.0 (à ne pas confondre avec la Crius multiwii lite), comme ça, vous pouvez vous aussi la choisir :

/***************************    independent sensors    ********************************//* leave it commented if you already checked a specific board above */

/* I2C gyroscope */

//#define WMP

//#define ITG3200

//#define MPU3050

//#define L3G4200D

#define MPU6050       //combo + ACC

//#define LSM330        //combo + ACC

/* I2C accelerometer */

//#define NUNCHUCK  // if you want to use the nunckuk connected to a WMP

//#define MMA7455

//#define ADXL345

//#define BMA020

//#define BMA180

//#define BMA280

//#define NUNCHACK  // if you want to use the nunckuk as a standalone I2C ACC without WMP

//#define LIS3LV02

//#define LSM303DLx_ACC

//#define MMA8451Q

/* I2C barometer */

#define BMP085

//#define MS561101BA

/* I2C magnetometer */

//#define HMC5843

#define HMC5883

//#define AK8975

//#define MAG3110

/* Sonar */ // for visualization purpose currently – no control code behind

//#define SRF02 // use the Devantech SRF i2c sensors

//#define SRF08

//#define SRF10

//#define SRF23

/* ADC accelerometer */ // for 5DOF from sparkfun, uses analog PIN A1/A2/A3

//#define ADCACC

/* enforce your individual sensor orientation – even overrides board specific defaults */

#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  -X; imu.accADC[PITCH]  = -Y; imu.accADC[YAW]  = Z;}

#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = Y; imu.gyroADC[PITCH] =  -X; imu.gyroADC[YAW] = -Z;}

#define FORCE_MAG_ORIENTATION(X, Y, Z)  {imu.magADC[ROLL]  =  X; imu.magADC[PITCH]  =  Y; imu.magADC[YAW]  = -Z;}

La partie programmation est finie, ensuite il faut aller dans les options de l’arduino, type de carte, puis on choisit la carte Capture d'écran - 25072013 - 00:49:38
On compile le programme, s’il y a une erreur, vous avez dû vous tromper sur une ligne, sinon, vous le téléversez sur votre carte, voilà elle est prête.

4- Branchements

Après avoir transféré votre programme, il va falloir installer votre carte au milieu de votre multicoptère (milieu par rapport au moteur) ou tout autre machine, on installe le récepteur juste à côté (câbles courts), puis on connecte les câbles au récepteur comme sur la photo ci-dessous.

RX

Le connecteur à 3 fils sert à l’alimentation du récepteur, suite à cela, on connecte ces câbles à la Multiwii :

Voie du récepteur « THRO » (commande des gaz) sur D2 ou « THR » selon la carte Multiwii
Voie du récepteur « AILE » ou « ROLL » (commande d’ailerons) sur D4 ou « ROLL », la seconde sortie « AILE » ou « ROLL » sur D8Voie du récepteur « ELEV » ou « PITCH » (commande de profondeur) sur D5 ou « PITCH »Voie du récepteur « YAW » ou « RUDD » (commande de lacet) sur D6 ou « YAW »Voie du récepteur « GEAR » ou « MODE » (prise auxiliaire) sur D7 ou « MODE »

Les branchements au récepteur se font de gauche à droite, l’alimentation se fait par les quatre broches I2C, branché comme sur la photo, vous êtes prêt au vol, si vous décalez le branchement, vous pourrez Binder votre radio.

Maintenant, les branchements des ESC sur la carte, les chiffres sur les moteurs correspondent aux mêmes chiffres sur la carte avec un D devant, par exemple pour un quadricoptère en X, l’ESC du moteur 3  (avant gauche) se branche en D3, la broche de l’ESC se compose de trois fils, l’orange, signal, le marron, GND (-), le rouge, +, sur la carte vous aller voir GVS, et là pas besoin d’expliquer, ce sont des abréviations. Multicoptère

Respectez le sens de rotation des moteurs indiquez ci-dessus.

Maintenant passons à la partie alimentation de la Multiwii, si vous avez des ESC non siglés Opto, l’alimentation se fait directement par les ESC,  si vos ESC sont siglés de la mention Opto, vous devrez acquérir un Ubec de 5V que vous brancherez sur le port VCC, GND de la carte et que vous alimenterez directement par la batterie.

5- Vérification et paramétrage Multiwiiconf

Etape décisive, elle se fait sans les hélices et sert à vérifier les paramètres, calibrer les capteurs et à choisir quelques options.

On va dans le dossier Multiwii_2_3, Multiwiiconf puis application.windows32, personnellement j’ai eu des problèmes avec la version 64 bits, ensuite MultiWiiConf.exe, Arduino s’ouvre et on arrive sur cette fenêtre :

Capture d'écran - 25052014 - 18:47:00

Après être arrivé sur cette interface, vous cliquez sur le port com, port com 3 par exemple, puis START, vous devriez voir apparaître un aperçu de votre appareil comme ci-dessus, sinon, vous n’avez pas choisi la bonne carte lors de la configuration du config.h , puis on calibre tous nos capteurs, après on vérifie les débattements de notre radio, qui doivent être de 1500 (un écart de 10 est autorisé) au neutre sauf pour les gaz (1000), on vérifie que si on pousse les gaz le « THROT » augmente, que si on pousse le levier du PITCH, le PITCH augmente sur le Multiwiiconf, pareil pour le YAW et le ROLL, si on pousse leur levier vers la gauche, les valeurs doivent augmenter. Si des valeurs descendent au lieu de monter, il suffit de changer le “sens des servos”, en clair changer le sens de la commande affecté au stick concerné..

Sur la droite, des options sont à cocher, ce n’est pas obligatoire, mais il vaut mieux, car par défaut la stabilisation est minime, pas de remise à plat. Aux 1 correspond au premier interrupteur de votre radio, Low, mid et high à la position de l’interrupteur. Pour la remise à plat on coche le mode angle, pour l’armage des moteurs via un interrupteur et non une combinaison de stick, on coche l’option arm.

6- Pour aller plus loin

Les ESC diffèrent tous entre eux plus ou moins, cette partie du programme nous permet de sélectionner des options pour quelques-uns de ces ESCs, comme pour les SimonK :

/****************************    Motor minthrottle    *******************************/

/* Set the minimum throttle command sent to the ESC (Electronic Speed Controller)

This is the minimum value that allow motors to run at a idle speed  */

//#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A

//#define MINTHROTTLE 1120 // for Super Simple ESCs 10A

#define MINTHROTTLE 1064 // special ESC (simonk)

//#define MINTHROTTLE 1050 // for brushed ESCs like ladybird

//#define MINTHROTTLE 1150 // (*) (**)

Sinon, on laisse sur la valeur par défaut pour tout autre type d’ESC.

Par défaut l’armage des moteurs entraîne le déclenchement des moteurs, l’armage n’étant qu’une sécurité, vous pouvez définir que cette sécurité, une fois désactivée ne mette pas en marche les moteurs en allant ici :

/**************************************************************************************/
/*********************** motor, servo and other presets ***********************/
/**************************************************************************************/
/* motors will not spin when the throttle command is in low position
this is an alternative method to stop immediately the motors */
//#define MOTOR_STOP

Le failsafe, il peut arriver que la connexion radio soit coupé, dans ce cas, soit votre récepteur à un failsafe et celui-ci se déclenche soit l’appareil tombe à part s’il réussi entre temps à réaccrocher le signal (ce qui a peu de chance d’arriver avant le crash), mais on peut définir une action au lieu de la coupure des moteurs, en sélectionnant ceci.

La fonction Failsafe :

/********                          Failsafe settings                 ********************/
/* Failsafe check pulses on four main control channels CH1-CH4. If the pulse is missing or bellow 985us (on any of these four channels)
the failsafe procedure is initiated. After FAILSAFE_DELAY time from failsafe detection, the level mode is on (if ACC or nunchuk is avaliable),
PITCH, ROLL and YAW is centered and THROTTLE is set to FAILSAFE_THROTTLE value. You must set this value to descending about 1m/s or so
for best results. This value is depended from your configuration, AUW and some other params.  Next, after FAILSAFE_OFF_DELAY the copter is disarmed,
and motors is stopped. If RC pulse coming back before reached FAILSAFE_OFF_DELAY time, after the small quard time the RC control is returned to normal. */
#define FAILSAFE                                // uncomment  to activate the failsafe function
#define FAILSAFE_DELAY     10                     // Guard time for failsafe activation after signal lost. 1 step = 0.1sec – 1sec in example
#define FAILSAFE_OFF_DELAY 200                    // Time for Landing before motors stop in 0.1sec. 1 step = 0.1sec – 20sec in example
#define FAILSAFE_THROTTLE  (MINTHROTTLE + 200)    // (*) Throttle level used for landing – may be relative to MINTHROTTLE – as in this case#define FAILSAFE_DETECT_TRESHOLD  985

Ni plus ni moins cela va amener les gaz à un seuil prédéfini par défaut 1400, ce qui entraîne logiquement (normalement) une descente de l’appareil, puis après un temps défini, les gaz se coupent, peu importe que l’appareil est touché le sol ou pas, évidemment l’action se coupe si le signal est retrouvé.

7– Réglage des PID

Quelques explications, simples et rapides, on retrouve par défaut des valeurs de PID préréglés dans le multiwii, mais elles ne conviennent pas forcément, si l’appareil oscille sur un axe roll ou pitch, il faut rectifier le P de ces axes, on augmente progressivement la valeur de l’axe concerné jusqu’à avoir un mieux, mais si le résultat ne fait qu’empirer, diminuer alors la valeur de celui-ci.

Vous ne comprenez pas ? Une vidéo vaut mieux que des explications (merci à Bledi pour avoir fait cette belle vidéo) :

Vous avez un problème, une question, n’hésitez pas à nous la poser.

Publicités

9 réflexions sur “Tuto : Multiwii pas de panique

  1. Un petit souci pour compiler MultiWii 2.3 sur mon Mac avec l’IDE Arduino. Peut-être une erreur de paramétrage?
    J’ai l’erreur avr-gcc: : No such file or directory alors que j’ai bien ce binaire sur mon poste.

    Qui pourrait m’aider? Je voudrais passer ma CRIUS AIO Pro V2 en MultiWii 2.3. Merci d’avance.

  2. Peut etre te manque t’il une dependance , verifier que l’IDE Arduino est bien sintallée et que les dependances ( fichiers ) soient bien dans les bons repertoires , et aussi , dans le programe si vous voyer des fonctions de type « INCLUDE » que le chemin du fichier
    soit le bon;
    ex :
    INCLUDE « /toto/fichier.h » => le fichier « fichier.h » doit etre dans le sous repertoire /toto/ et ce sous-repertoire /toto/ est dans le repertoire
    ou se trouve le programe qui est chargé dans l’IDE Arduino .

    ou alors comme dans ce programe la fonction define fait appel a un fichier CONFIG.H , verifier que ce fichier existe et qu’il est a coté duprograme principal dans le meme repertoire .

    Autre piste , tu as peut etre decomenté une extension que tu n’a pas sur ta carte …

  3. Bonjour à tous,
    Etant novice et venant de construire un drone Triomini, un problème de connexion me stop…..
    J ai une carte électronique crius lite et un récepteur AR8000. J ai connecté un câble vers le gear et me reste un câble dissocier (3 connexions) Je ne ne sais pas ou mettre ce câble sur le récepteur (cote opposé avec une connectique des trois câbles reliés).
    Merci pour votre lumière.

  4. Bonjour, vos explications clair mon été très utile mais il me reste une tout petit probleme à régler et c est donc à vous que je m’adresse.
    J’ai un quad avec une radio flysky th9x et une multiwii 2.5, j’ai réussit à tout paramétrer mais quand j’active le mode angle pour stabiliser le drone, il s’affiche actif mais ne compense pas du tout l’inclinaison du drone comme dans votre précédente vidéo où vous expliquiez le para métrage de la multiwii.
    Le drone fonctionne très bien en mode simple sans Être stabilisé.
    Pourriez vous me donner une piste de recherche afin de régler ce dernier problème svp.

    Pilote en détresse ….. 😦

  5. bonjour

    heureux d avoir trouvé votre video car très utile ça ma énormément aidé.
    il me reste un dernier souci dans mes réglages que je trouve pas de solution.

    quand je fais une forte monté verticale j ai la machine qui part sur l’arriere gauche au lieux de bien monté droit…

    auriez vous une solution une idée de mon problème?

    merci et bonne journée

    • Changez l’emplacement du moteur, si le problème se déplace vers le nouvel emplacement, remplacez le moteur.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s