Des servos moteurs contrôlant une tourelle orientable pour la caméra

Connexion des servos moteurs

Pour l'orientation de la caméra, il faut un servo moteur par axe de rotation de la caméra. Le pilotage s'effectue de manière identique aux moteurs brushless que nous avons utilisé, sauf que l'on envoie le signal PWM directement au servo moteur et pas à un ESC. Ce signal PWM est généré par ServoBlaster. Il est nécessaire de modifier la configuration de ServoBlaster pour ajouter l'envoi de signaux PWM sur deux nouvaux ports du GPIO

Le servo moteur est identifié de la manière suivante via ServoBlaster:

Pour être sûr d'éviter tout conflit avec la plate-forme GrovePi, j'utilise les pins restant de la Raspberry Pi 2. Pour démarrer le service ServoBlaster avec deux ports supplémentaires, j'ai donc rajouté dans le script /etc/init.d/servoblaster à la variable OPTS la valeur:

OPTS="--p1pins=40,38,36,32,31"

Voici donc la cartographie de l'ensemble des ports utilisés pour les 3 moteurs et les 2 servos moteurs:

  • 0 (pin 40): Moteur Babord (Port)
  • 1 (pin 38): Moteur vertical (Vertical)
  • 2 (pin 36): Moteur Tribord (Starboard)
  • 3 (pin 32): Servo moteur Tilt
  • 4 (pin 31): Servo moteur Pan

Adaptation d'Openrov cockpit

Une légère adaptation du logiciel de pilotage du ROV est nécessaire car celui-ci ne permet le contrôle que d'un seul servo-moteur pour le tilt de la caméra. Il a donc fallu ajouter le code permettant de réaliser le contrôle du paramètre Pan de la caméra.