Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Dans ce tutoriel, nous allons apprendre à construire un gimbal Arduino ou une plateforme auto-stabilisante avec moteurs servo. Ce tutoriel prolonge le précédent sur le MPU6050.

Vous pouvez regarder la vidéo suivante ou lire le tutoriel écrit ci-dessous.

Vue d'ensemble

J'ai conçu le gimbal en modélisation 3D. Il comporte 3 servomoteurs MG996R pour le contrôle 3 axes, et une base accueillant le capteur MPU6050, l'Arduino et la batterie.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Modèle 3D disponible en téléchargement et exploration navigateur sur Thangs.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Fichiers STL :

Impression de toutes les pièces sur mon Creality CR-10, résultat parfait.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Assemblage

Assemblage assez simple. Début par le servo Yaw (lacets). Fixation sur la base par boulons/écrous M3.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Même méthode pour le servo Roll (roulis). Pièces conçues pour s'adapter parfaitement aux servos MG996R.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Connexion des pièces entre elles via les disques ronds fournis en accessoires avec les servos.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

D'abord, fixation du disque rond à la base par deux boulons, puis fixation au servo précédent par un autre boulon.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Répétition pour le servo Pitch (tangage) et la plateforme supérieure.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Passage des fils des servos dans les ouvertures prévues pour les maintenir organisés. Insertion et fixation du capteur MPU6050 sur la base par boulon/écrou.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Alimentation : 2 batteries Li-ion dans support batterie, fixé à la base par deux boulons/écrous.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

2 batteries Li-ion = ~7.4V, mais Arduino et servos ont besoin de 5V.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Convertisseur abaisseur (buck converter) pour passer 7.4V → 5V.

Schéma circuit gimbal Arduino

Reste à tout connecter. Schéma de câblage du projet :

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Composants nécessaires :

  • IMU MPU6050 Amazon / Banggood / AliExpress
  • Servo MG996R Amazon / Banggood / AliExpress
  • Convertisseur abaisseur (buck converter)
  • Carte Arduino
  • Plaque d'essai et fils de liaison

Finalement, composants électroniques et fils tassés dans la base, couverts par le cache inférieur.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

La plateforme auto-équilibrante / gimbal Arduino est terminée et fonctionne comme prévu. Reste à examiner le programme.

Construire un gimbal auto-stabilisant Arduino à 3 axes avec servos

Code Arduino

Le code est une modification de l'exemple MPU6050_DMP6 de la bibliothèque i2cdevlib de Jeff Rowberg.

Téléchargement du code :

Description du code : Utilisation de la sortie lisible yaw, pitch, roll.

// Obtention valeurs Yaw, Pitch, Roll
#ifdef OUTPUT_READABLE_YAWPITCHROLL
mpu.dmpGetQuaternion(&q, fifoBuffer);
mpu.dmpGetGravity(&gravity, &q);
mpu.dmpGetYawPitchRoll(ypr, &q, &gravity);
// Yaw, Pitch, Roll - Radians vers degrés
ypr[0] = ypr[0] * 180 / M_PI;
ypr[1] = ypr[1] * 180 / M_PI;
ypr[2] = ypr[2] * 180 / M_PI;
// Ignorer 300 lectures (auto-calibration)
if (j <= 300) {
  correct = ypr[0]; // Yaw commence valeur aléatoire, capture dernière valeur après 300 lectures
  j++;
}
// Après 300 lectures
else {
  ypr[0] = ypr[0] - correct; // Yaw à 0° - soustraction dernière valeur aléatoire
  // Mapping valeurs MPU6050 -90 à +90 vers 0-180 pour servos
  int servo0Value = map(ypr[0], -90, 90, 0, 180);
  int servo1Value = map(ypr[1], -90, 90, 0, 180);
  int servo2Value = map(ypr[2], -90, 90, 180, 0);
  // Contrôle servos selon orientation MPU6050
  servo0.write(servo0Value);
  servo1.write(servo1Value);
  servo2.write(servo2Value);
}
#endif

Une fois valeurs obtenues, conversion radians → degrés.

// Yaw, Pitch, Roll - Radians vers degrés
ypr[0] = ypr[0] * 180 / M_PI;
ypr[1] = ypr[1] * 180 / M_PI;
ypr[2] = ypr[2] * 180 / M_PI;

Attente 300 lectures : capteur en auto-calibration. Capture valeur Yaw (au début aléatoire, pas 0 comme Pitch/Roll).

// Ignorer 300 lectures (auto-calibration)
if (j <= 300) {
  correct = ypr[0];
  j++;
}

Après 300 lectures : mise Yaw à 0 par soustraction valeur aléatoire capturée. Mapping Yaw, Pitch, Roll de -90/+90° vers 0-180 pour servos.

// Après 300 lectures
else {
  ypr[0] = ypr[0] - correct;
  int servo0Value = map(ypr[0], -90, 90, 0, 180);
  int servo1Value = map(ypr[1], -90, 90, 0, 180);
  int servo2Value = map(ypr[2], -90, 90, 180, 0);
  servo0.write(servo0Value);
  servo1.write(servo1Value);
  servo2.write(servo2Value);
}

Envoi valeurs aux servos via write(). On peut désactiver le servo Yaw pour stabilisation seulement X/Y (gimbal caméra).

Attention : Loin d'un bon gimbal caméra. Mouvements pas fluides car ces servos ne sont pas faits pour ça. Vrais gimbals caméra utilisent moteurs BLDC spéciaux pour fluidité. Considérez ce projet uniquement à but éducatif.

C'est tout pour ce tutoriel. J'espère qu'il vous a plu et apporté des connaissances. Questions en commentaires, et découvrez ma collection de projets Arduino.


Processus de fabrication

  1. Construisez votre propre LUMAZOID : Visualiseur musical DIY Arduino
  2. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  3. Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
  4. Construisez un skateboard VR DIY avec Arduino, Google Cardboard et Bluetooth
  5. Kit de Formation Arduino Complet : Mega 2560, Capteurs, Moteurs et PCB Personnalisé
  6. Dispositif de Traitement Radionique EMR DIY avec Arduino Nano
  7. Simulateur de Course 2 Axes DIY : Arduino Nano & Servos SG90
  8. Poubelle intelligente Arduino à ouverture automatique du couvercle
  9. Contrôle servo Solo Drone avec Arduino : configuration facile et tutoriel balayage