Support Caméra Pan / Tilt avec deux servos et un Arduino Uno

Aujourd’hui je me lance dans une petite réalisation avec mon Imprimante BQ Kit Prusa i3 Hephestos Imprimante 3D Rouge de chez BQ et mon Arduino UNO version 3
je vais imprimer un support de Caméra Pan / tilt et nous allons le raccorder à l’Arduino afin de pouvoir, à l’aide d’un joystick et de deux servos, le diriger.
Matériels nécessaire :
- Imprimante 3D – BQ Kit Prusa i3 Hephestos Imprimante 3D Rouge
- Filament PLA (ou autre suivant votre imprimante) – BQ PLA Filament 1,75 mm 1 Kg Noir Charbon
- Deux micros servos (dimensions 23 mm x 12 mm) – 2 X Micro Servo Futaba Hitec
- Un arduino UNO (avec l’IDE) – Arduino UNO version 3
- Une plaque BreadBoard – Breadboard Carte d’Expérimentation 830 Points sans Soudure
- Des fils de prototypage – 40P 20cm Dupont Wire Jumper Cable 2.54 1P-1P mâle-mâle /femelle-femelle/femelle-mâle
- Un joystick (type Arduino – Sparkykit PS2 Joystick Module Black
)
- Une camera (de votre choix…)
Etape 1 : Réalisation du support avec l’imprimante 3D
Rien de plus simple, il suffit d’aller sur la base http://www.thingiverse.com pour trouver son bonheur. J’ai arrêté mon choix sur un modèle simple et rapide à imprimer : Super Compact Pan Tilt Camera Mount .
J’ai fait une impression à 0.1 et un remplissage à 60%.
Etape 2 : Assemblage et montage des servos.
Rien de bien compliqué à ce niveau… Il vous suffit de coller les supports dans les encoches puis de visser les servos à leur place.
Voici quelques images :
Etape 3 : Le câblage.
Nous allons relier les cables des servos dans un premier temps. Nous relions les GND (cable marron normalement) des servos vers le MOINS de la BreadBoard puis les VCC (cable rouge normalement) vers le PLUS de la BreadBoard. Ensuite nous relions les cables ANALOG OUT (jaune ou orange le plus souvent) vers les PIN 3 et 10 de l’Arduino.
Ensuite il suffit de relier le GND de l’Arduino au MOINS de la BreadBoard puis le 5V de l’Arduino sur le PLUS de la BreadBoard.
Enfin pour la connexion du Joystick :
- GND vers MOINS de la BreadBoard
- VCC vers PLUS de la BreadBoard
- X vers A4 de l’Arduino
- Y vers A3 de l’Arduino
Si vous avez un connecteur de plus sur le Joystick, SEL par exemple ou BT, il s’agit du Bouton de selection dont nous n’avons pas besoin dans notre cas.
Etape 4 : Le code…
Rien de bien compliqué ici… Voici le code à copier dans votre IDE et à envoyer dans l’Arduino.
//
// PAN / TILT camera mount whith joystick
// and two micro servo
// CC – 07/2016
//#include <Servo.h>
const int servo1 = 3; // first servo pin
const int servo2 = 10; // second servo pin
const int joyH = 3; // L/R – Y – Parallax Thumbstick pin
const int joyV = 4; // U/D – X – Parallax Thumbstick pinint servoVal; // variable to read the value from the analog pin
Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servovoid setup() {
// Servo
myservo1.attach(servo1); // attaches the servo
myservo2.attach(servo2); // attaches the servo// Inizialize Serial – Servo value on the monitor
Serial.begin(9600);
}
void loop(){// Display Joystick values using the serial monitor
outputJoystick();// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyH);
servoVal = map(servoVal, 0, 1023, 0, 180); // scale it to use it with the servo (result between 0 and 180)myservo2.write(servoVal); // sets the servo position according to the scaled value
// Read the horizontal joystick value (value between 0 and 1023)
servoVal = analogRead(joyV);
servoVal = map(servoVal, 0, 1023, 70, 180); // scale it to use it with the servo (result between 70 and 180)myservo1.write(servoVal); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}
/**
* Display joystick values on Serial monitor
*/
void outputJoystick(){Serial.print(analogRead(joyH));
Serial.print (« —« );
Serial.print(analogRead(joyV));
Serial.println (« —————-« );
}
Voila, normalement si tout va bien vous devriez pouvoir diriger votre support de caméra avec le joystick.
Si votre support ne bouge pas dans le bon sens il vous suffit d’intervenir les PINS A3 et A4… Cela marche également avec les PINS 3 et 10 !
Amusez-vous bien !
3D printed Arduino controlled pan tilt camera mount