Super Simple Gimbal, nacelle stabilisatrice de camera
Afin d’améliorer les prises de vue aérienne avec mon paramoteur RC j’ai voulu créer une nacelle de stabilisation pour ma caméra.
Après de nombreuses recherche sur internet j’ai trouvé un projet simple et intéressant:
Cette nacelle est très simple car elle utilise 2 micros servos et un mixage de type Vtail pour faire bouger la caméra et donc la stabiliser. Comme on le voit elle est très peu encombrante ce qui est un avantage sur l’Oxy 1.0 qui est relativement petit.
Par contre elle nécessite un contrôleur de vol de multirotor, et je me suis aperçu que le projet de base avec une carte KK2 ne permettait pas de faire fonctionner la nacelle seule. Il faut impérativement un ESC et un moteur pour armer la carte de vol. Ce qui n’est pas pour m’arranger.
J’ai donc poursuivit mes recherches…….
C’est là que m’est apparu le projet MultiWii, qui est un projet libre basé sur l’arduino. Il existe des cartes de contrôleur de vol dédiées mais on peut très bien charger le programme sur un simple Arduino.
Pour avoir quelque chose de vraiment petit je me suis tourné vers un clone chinois l’Arduino nano V3 et une carte avec des accéléromètres GY-521 MPU6050. On trouve facilement ces 2 éléments sur ebay pour une poignée d’euros (pour moi 7 euros les 2 cartes livrées de chine en 2 semaines)
Passons donc à la réalisation :
L’avantage du projet MultiWii est outre le fait d’être compatible Arduino, d’avoir une interface graphique permettant de voir les mouvements de la carte MPU6050 et de pouvoir régler tout un tas de paramètres.
J’ai donc commencé par connecter l’arduino et son shield afin de tester cette première fonctionnalité.
Nous avons donc besoin de 4 fils ainsi connectés pour cette étape:
- 5v arduino -> VCC GY-521
- GND arduino -> GND GY-521
- A5 arduino -> SCL GY-521
- A4 arduino -> SDA GY-521
J’ai utilisé des fils récupérés dans un câble RJ45 pour faire cela.
- Télécharger ensuite MultiWii 2.4
- Télécharger l’environnement de développement de l’Arduino
- Télécharger le driver pour les clones chinois à base de chipset CH340
Installer l’IDE de l’arduino et le driver. Décompresser le fichier MultiWii.
Dans le dossier ou a été décompressé l’archive copier le sous dossier « MultiWii » et le coller dans le répertoire « mes documents/Arduino ».
Ouvrir le programme arduino, puis dans « fichier, ouvrir » et naviguer jusqu’au répertoire précédemment copié. Rechercher et ouvrir le fichier MultiWii.ino. Voila ce que ça donne:
Pour la suite je vous propose de regarder cette vidéo très explicite même si elle n’est pas en français:
Concernant la configuration du fichier config.h, afin de réaliser un « Super Simple Gimbal » il faut choisir uniquement « #define GIMBAL » et choisir l’option « SERVO_MIX_TILT » pour que les servos agissent comme avec un mixage V-Tail:
Voici donc mes options:
[pastacode lang= »cpp » manual= »%2F*************************************************************************************************%2F%0A%2F*****************%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20***************%2F%0A%2F****************%20%20SECTION%20%201%20-%20BASIC%20SETUP%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*******%2F%0A%2F*****************%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20***************%2F%0A%2F*************************************************************************************************%2F%0A%0A%20%20%2F**************************%20%20%20%20The%20type%20of%20multicopter%20%20%20%20****************************%2F%0A%20%20%20%20%23define%20GIMBAL%0A%20%20%20%20%2F%2F%23define%20BI%0A%20%20%20%20%2F%2F%23define%20TRI%0A%20%20%20%20%2F%2F%23define%20QUADP%0A%20%20%20%20%2F%2F%23define%20QUADX » message= » » highlight= » » provider= »manual »/]
[pastacode lang= »cpp » manual= »%2F**************************************************************************************%2F%0A%20%20%2F*****************%20%20%20%20%20%20%20%20%20%20boards%20and%20sensor%20definitions%20%20%20%20%20%20%20%20%20%20%20%20******************%2F%0A%20%20%2F**************************************************************************************%2F%0A%0A%20%20%20%20%2F***************************%20%20%20%20Combined%20IMU%20Boards%20%20%20%20********************************%2F%0A%20%20%20%20%20%20%2F*%20if%20you%20use%20a%20specific%20sensor%20board%3A%0A%20%20%20%20%20%20%20%20%20please%20submit%20any%20correction%20to%20this%20list.%0A%20%20%20%20%20%20%20%20%20%20%20Note%20from%20Alex%3A%20I%20only%20own%20some%20boards%2C%20for%20other%20boards%2C%20I’m%20not%20sure%2C%20the%20info%20was%20gathered%20via%20rc%20forums%2C%20be%20cautious%20*%2F%0A%20%20%20%20%20%20%2F%2F%23define%20FFIMUv1%20%20%20%20%20%20%20%20%20%2F%2F%20first%209DOF%2Bbaro%20board%20from%20Jussi%2C%20with%20HMC5843%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20FFIMUv2%20%20%20%20%20%20%20%20%20%2F%2F%20second%20version%20of%209DOF%2Bbaro%20board%20from%20Jussi%2C%20with%20HMC5883%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20FREEIMUv1%20%20%20%20%20%20%20%2F%2F%20v0.1%20%26%20v0.2%20%26%20v0.3%20version%20of%209DOF%20board%20from%20Fabio%0A%20%20%20%20%20%20%2F%2F%23define%20FREEIMUv03%20%20%20%20%20%20%2F%2F%20FreeIMU%20v0.3%20and%20v0.3.1%0A%20%20%20%20%20%20%2F%2F%23define%20FREEIMUv035%20%20%20%20%20%2F%2F%20FreeIMU%20v0.3.5%20no%20baro%0A%20%20%20%20%20%20%2F%2F%23define%20FREEIMUv035_MS%20%20%2F%2F%20FreeIMU%20v0.3.5_MS%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20FREEIMUv035_BMP%20%2F%2F%20FreeIMU%20v0.3.5_BMP%0A%20%20%20%20%20%20%2F%2F%23define%20FREEIMUv04%20%20%20%20%20%20%2F%2F%20FreeIMU%20v0.4%20with%20MPU6050%2C%20HMC5883L%2C%20MS561101BA%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20FREEIMUv043%20%20%20%20%20%2F%2F%20same%20as%20FREEIMUv04%20with%20final%20MPU6050%20(with%20the%20right%20ACC%20scale)%0A%20%20%20%20%20%20%2F%2F%23define%20NANOWII%20%20%20%20%20%20%20%20%20%2F%2F%20the%20smallest%20multiwii%20FC%20based%20on%20MPU6050%20%2B%20pro%20micro%20based%20proc%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20PIPO%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%209DOF%20board%20from%20erazz%0A%20%20%20%20%20%20%2F%2F%23define%20QUADRINO%20%20%20%20%20%20%20%20%2F%2F%20full%20FC%20board%209DOF%2Bbaro%20board%20from%20witespy%20%20with%20BMP085%20baro%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20QUADRINO_ZOOM%20%20%20%2F%2F%20full%20FC%20board%209DOF%2Bbaro%20board%20from%20witespy%20%20second%20edition%0A%20%20%20%20%20%20%2F%2F%23define%20QUADRINO_ZOOM_MS%2F%2F%20full%20FC%20board%209DOF%2Bbaro%20board%20from%20witespy%20%20second%20edition%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20ALLINONE%20%20%20%20%20%20%20%20%2F%2F%20full%20FC%20board%20or%20standalone%209DOF%2Bbaro%20board%20from%20CSG_EU%0A%20%20%20%20%20%20%2F%2F%23define%20AEROQUADSHIELDv2%0A%20%20%20%20%20%20%2F%2F%23define%20ATAVRSBIN1%20%20%20%20%20%20%2F%2F%20Atmel%209DOF%20(Contribution%20by%20EOSBandi).%20requires%203.3V%20power.%0A%20%20%20%20%20%20%2F%2F%23define%20SIRIUS%20%20%20%20%20%20%20%20%20%20%2F%2F%20Sirius%20Navigator%20IMU%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20SIRIUSGPS%20%20%20%20%20%20%20%2F%2F%20Sirius%20Navigator%20IMU%20%20using%20external%20MAG%20on%20GPS%20board%20%20%20%20%20%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20SIRIUS600%20%20%20%20%20%20%20%2F%2F%20Sirius%20Navigator%20IMU%20%20using%20the%20WMP%20for%20the%20gyro%0A%20%20%20%20%20%20%2F%2F%23define%20SIRIUS_AIR%20%20%20%20%20%20%2F%2F%20Sirius%20Navigator%20IMU%206050%2032U4%20from%20MultiWiiCopter.com%20%20%20%20%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20SIRIUS_AIR_GPS%20%20%2F%2F%20Sirius%20Navigator%20IMU%206050%2032U4%20from%20MultiWiiCopter.com%20with%20GPS%2FMAG%20remote%20located%0A%20%20%20%20%20%20%2F%2F%23define%20SIRIUS_MEGAv5_OSD%20%2F%2F%20%20Paris_Sirius%E2%84%A2%20ITG3050%2CBMA280%2CMS5611%2CHMC5883%2CuBlox%20%20http%3A%2F%2Fwww.Multiwiicopter.com%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20MINIWII%20%20%20%20%20%20%20%20%20%2F%2F%20Jussi’s%20MiniWii%20Flight%20Controller%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C-%20confirmed%20by%20Alex%0A%20%20%20%20%20%20%2F%2F%23define%20MICROWII%20%20%20%20%20%20%20%20%2F%2F%20MicroWii%2010DOF%20with%20ATmega32u4%2C%20MPU6050%2C%20HMC5883L%2C%20MS561101BA%20from%20http%3A%2F%2Fflyduino.net%2F%0A%20%20%20%20%20%20%2F%2F%23define%20CITRUSv2_1%20%20%20%20%20%20%2F%2F%20CITRUS%20from%20qcrc.ca%0A%20%20%20%20%20%20%2F%2F%23define%20CHERRY6DOFv1_0%0A%20%20%20%20%20%20%2F%2F%23define%20DROTEK_10DOF%20%20%20%20%2F%2F%20Drotek%2010DOF%20with%20ITG3200%2C%20BMA180%2C%20HMC5883%2C%20BMP085%2C%20w%20or%20w%2Fo%20LLC%0A%20%20%20%20%20%20%2F%2F%23define%20DROTEK_10DOF_MS%20%2F%2F%20Drotek%2010DOF%20with%20ITG3200%2C%20BMA180%2C%20HMC5883%2C%20MS5611%2C%20LLC%0A%20%20%20%20%20%20%2F%2F%23define%20DROTEK_6DOFv2%20%20%20%2F%2F%20Drotek%206DOF%20v2%0A%20%20%20%20%20%20%2F%2F%23define%20DROTEK_6DOF_MPU%20%2F%2F%20Drotek%206DOF%20with%20MPU6050%0A%20%20%20%20%20%20%2F%2F%23define%20DROTEK_10DOF_MPU%2F%2F%0A%20%20%20%20%20%20%2F%2F%23define%20MONGOOSE1_0%20%20%20%20%20%2F%2F%20mongoose%201.0%20%20%20%20http%3A%2F%2Fstore.ckdevices.com%2F%0A%20%20%20%20%20%20%2F%2F%23define%20CRIUS_LITE%20%20%20%20%20%20%2F%2F%20Crius%20MultiWii%20Lite%0A%20%20%20%20%20%20%2F%2F%23define%20CRIUS_SE%20%20%20%20%20%20%20%20%2F%2F%20Crius%20MultiWii%20SE%0A%20%20%20%20%20%20%2F%2F%23define%20CRIUS_SE_v2_0%20%20%20%2F%2F%20Crius%20MultiWii%20SE%202.0%20with%20MPU6050%2C%20HMC5883%20and%20BMP085%0A%20%20%20%20%20%20%2F%2F%23define%20OPENLRSv2MULTI%20%20%2F%2F%20OpenLRS%20v2%20Multi%20Rc%20Receiver%20board%20including%20ITG3205%20and%20ADXL345%0A%20%20%20%20%20%20%2F%2F%23define%20BOARD_PROTO_1%20%20%20%2F%2F%20with%20MPU6050%20%2B%20HMC5883L%20%2B%20MS%20baro%0A%20%20%20%20%20%20%2F%2F%23define%20BOARD_PROTO_2%20%20%20%2F%2F%20with%20MPU6050%20%2B%20slave%20%20MAG3110%20%2B%20MS%20baro%0A%20%20%20%20%20%20%2F%2F%23define%20GY_80%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Chinese%2010%20DOF%20with%20%20L3G4200D%20ADXL345%20HMC5883L%20BMP085%2C%20LLC%0A%20%20%20%20%20%20%2F%2F%23define%20GY_85%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Chinese%209%20DOF%20with%20%20ITG3205%20ADXL345%20HMC5883L%20LLC%0A%20%20%20%20%20%20%2F%2F%23define%20GY_86%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20Chinese%2010%20DOF%20with%20%20MPU6050%20HMC5883L%20MS5611%2C%20LLC%0A%20%20%20%20%20%20%2F%2F%23define%20GY_88%20%2F%2F%20Chinese%2010%20DOF%20with%20MPU6050%20HMC5883L%20BMP085%2C%20LLC%0A%20%20%20%20%20%20%23define%20GY_521%20%20%20%20%20%20%20%20%20%20%2F%2F%20Chinese%206%20%20DOF%20with%20%20MPU6050%2C%20LLC%0A%20%20%20%20%20%20%2F%2F%23define%20INNOVWORKS_10DOF%20%2F%2F%20with%20ITG3200%2C%20BMA180%2C%20HMC5883%2C%20BMP085%20available%20here%20http%3A%2F%2Fwww.diymulticopter.com%0A%20%20%20%20%20%20%2F%2F%23define%20INNOVWORKS_6DOF%20%2F%2F%20with%20ITG3200%2C%20BMA180%20available%20here%20http%3A%2F%2Fwww.diymulticopter.com%0A%20%20%20%20%20%20%2F%2F%23define%20MultiWiiMega%20%20%20%20%2F%2F%20MEGA%20%2B%20MPU6050%2BHMC5883L%2BMS5611%20available%20here%20http%3A%2F%2Fwww.diymulticopter.com%0A%20%20%20%20%20%20%2F%2F%23define%20PROTO_DIY%20%20%20%20%20%20%20%2F%2F%2010DOF%20mega%20board%0A%20%20%20%20%20%20%2F%2F%23define%20IOI_MINI_MULTIWII%2F%2F%20www.bambucopter.com%0A%20%20%20%20%20%20%2F%2F%23define%20Bobs_6DOF_V1%20%20%20%20%20%2F%2F%20BobsQuads%206DOF%20V1%20with%20ITG3200%20%26%20BMA180%0A%20%20%20%20%20%20%2F%2F%23define%20Bobs_9DOF_V1%20%20%20%20%20%2F%2F%20BobsQuads%209DOF%20V1%20with%20ITG3200%2C%20BMA180%20%26%20HMC5883L%0A%20%20%20%20%20%20%2F%2F%23define%20Bobs_10DOF_BMP_V1%20%2F%2F%20BobsQuads%2010DOF%20V1%20with%20ITG3200%2C%20BMA180%2C%20HMC5883L%20%26%20BMP180%20-%20BMP180%20is%20software%20compatible%20with%20BMP085%0A%20%20%20%20%20%20%2F%2F%23define%20FLYDUINO_MPU%20%20%20%20%20%20%20%2F%2F%20MPU6050%20Break%20Out%20onboard%203.3V%20reg%0A%20%20%20%20%20%20%2F%2F%23define%20CRIUS_AIO_PRO » message= » » highlight= » » provider= »manual »/]
[pastacode lang= »cpp » manual= »%2F***********************%20%20%20%20%20%20%20%20%20%20Cam%20Stabilisation%20%20%20%20%20%20%20%20%20%20%20%20%20***********************%2F%0A%20%20%20%20%2F*%20The%20following%20lines%20apply%20only%20for%20a%20pitch%2Froll%20tilt%20stabilization%20system.%20Uncomment%20the%20first%20or%20second%20line%20to%20activate%20it%20*%2F%0A%20%20%20%20%23define%20SERVO_MIX_TILT%0A%20%20%20%20%2F%2F%23define%20SERVO_TILT%0A%0A%20%20%20%20%2F*%20camera%20trigger%20function%20%3A%20activated%20via%20Rc%20Options%20in%20the%20GUI%2C%20servo%20output%3DA2%20on%20promini%20*%2F%0A%20%20%20%20%2F%2F%20trigger%20interval%20can%20be%20changed%20via%20(*GUI*)%20or%20via%20AUX%20channel%0A%20%20%20%20%2F%2F%23define%20CAMTRIG%0A%20%20%20%20%23define%20CAM_TIME_HIGH%201000%20%20%20%2F%2F%20the%20duration%20of%20HIGH%20state%20servo%20expressed%20in%20ms » message= » » highlight= » » provider= »manual »/]
Une fois les modifications du fichier config.h effectuées on peut téléverser le programme dans l’arduino en ayant choisi comme type de carte « arduino pro or pro mini » et comme processeur « ATmega 328 5v 16mhz » conformément à ce qui est noté sur la puce de la carte.
En lançant l’interface MultiWiiConf comme sur la première vidéo et en lançant la communication, on peut faire bouger la carte des sensors et voir l’horizon bouger en conséquence.
Voila déjà une bonne première satisfaction !!!
L’étape suivante va être l’installation des servos. J’ai donc connecté 2 micros servos SG90 sur l’arduino:
- Fils rouges -> +5v arduino
- Fils marrons -> GND arduino
- Fils jaunes/oranges -> bornes A0 et A1 arduino
Une fois les servos connectés, on relance l’interface MultiWiiconf afin d’activer la fonction Gimbal. Sur la ligne Gimbal mettre les 4 voies auxiliaires sur medium afin que le montage puisse fonctionner sans récepteur radio connecté (stand alone). Cliquer sur « write » pour enregistrer ces paramètres dans l’arduino.
Une fois cela fait on peut lancer la communication en temps réel entre l’interface et l’arduino en cliquant sur « Start ». Voici ce que cela donne à ce stade:
Il faut ensuite passer aux réglages du montage. Mais pour cela il faut d’abord avoir fabriqué le support de caméra.
Le support:
Pour réaliser le support qui s’adapte dans le backpack XS de mon paramoteur j’ai utilisé du contre plaqué de 5mm, et comme sur la version d’origine des morceaux de durites pour former la rotule centrale et les jonctions entre la plateforme mobile et les servos.
Lors de mes premiers essais en enfichant directement la durite sur le palonnier comme le SSG de base, je n’obtenez pas de mouvements suffisamment amples. J’ai donc bidouillé des palonniers rallongés avec à leurs extrémités des chapes à rotules sur lesquelles viennent se prendre les morceaux de durites. Les débattements sont ainsi meilleurs.
Voici une vidéo du second test, les accéléromètres sont fixés sur la plateforme de base :
Voici ce que cela donne une fois installé sur le backpack XS avec une batterie auxiliaire USB pour alimenter le système: