Contrôler 2 servomoteurs ensemble pour créer une tourelle universelle qui peut pointer dans toutes les directions. En anglais, le terme équivalent à “tourelle universelle” est pan-tilt mechanism.
Introduction
Visionner la vidéo suivante :
Matériel
1 carte Arduino Uno
2 servomoteurs 9g
2 potentiomètres
carton
ruban adhésif
bâtonnets de bois
ciseaux
Instructions
Tester le matériel et le contrôle de base
Connectez les servomoteurs et les potentiomètres à la carte Arduino selon le schéma suivant :
Tester vos servomoteurs et potentiomètres individuellement. Téléchargez le code ci-dessous et créer les projets PlatformIO correspondants (voir les notes sur comment importer un projet PlatformIO) :
Vous avez probablement déjà une version du projet servo-test. Vous pouvez la réutiliser pour tester les servomoteurs.
Notez les valeurs de calibrage que vous avez obtenues pour chaque pièce. Vous aurez besoin de ces valeurs pour le code final de la tourelle.
Assembler la tourelle
Par exemple :
Fixez le 1e servomoteur à une base en carton afin que son axe soit vertical. Le bras tournera sur le plan horizontal, nous donnant le mouvement panoramique (le pan dans pan-tilt).
Ajouter un bras de servomoteur à l’axe de rotation du 1e servomoteur.
Fixez le 2e servomoteur à l’extrémité du bras du 1e servomoteur. Un morceau de carton comme extension du bras est pratique à cette fin. L’axe de rotation du 2e servomoteur doit être horizontal, soit perpendiculaire à l’axe du 1e servomoteur. Le bras du 2e servomoteur tournera sur le plan vertical nous donnant le réglage d’inclinaison (le tilt dans pan-tilt).
Ajoutez un bras de servomoteur à l’axe de rotation du 2e servomoteur.
Fixez un morceau de carton à l’extrémité du bras du 2e servomoteur. On peut imaginer que ce carton est un support pour une caméra ou pour un autre capteur.
Note importante: C’est pratique d’attacher les bras sans les visser afin de les retirer facilement pour attacher les autres pièces (les cartons, l’autre servomoteur). Le code de démarrage vous donnera le point milieu pour chaque servomoteur, alors vous pouvez régler les bras s’ils ne sont pas attachés avec la bonne orientation. Également, si un bras bloque sur un obstacle, il peut se détacher au lieu d’endommager le servomoteur.
Tester l’intégration matérielle et logicielle
Téléchargez le code de démarrage suivant et créez le projet PlatformIO correspondant :
Vérifiez et téléversez le code sur votre carte Arduino. Le code de démarrage inclut l’initialisation pour tous les composants (dans setup) mais seulement le code pour le servomoteur du bas (dans loop).
Testez votre montage en tournant le potentiomètre pour le servo du bas (“lower”).
Modifications
Moteur du haut
Ajoutez le code nécessaire pour inclure le potentimètre et le servo du haut (“upper”) - le mouvement d’inclaison.
Testez votre montage en tournant les deux potentiomètres. Le mécanisme devrait tourner 180 degrés sur la plan horizontal et 180 degrés sur le plan vertical.
Angles réduits
La bibliothèque Servo inclut deux commandes de contrôle : writeMicroseconds (celle incluse dans notre code) et write. La commande write prend un angle en degrés entre 0 et 180 ou le point zéro se trouve à 90 degrés. Cela nous permet de penser en termes d’angles au lieu d’en termes de signaux, ce qui nous aide quand on connaît les limites de mouvement à spécifier.
Changez les constantes pour les valeurs CCW et CC (contre-clockwise et clock-wise) pour les servomoteurs en les remplaçant avec des valeurs d’angle. Notez que CCW correspond à l’angle 0.
Cela affectera les instructions map qui produisent les signaux pour les servomoteurs
Changez les instructions pour la position 0 dans setup à write(90) pour chaque servomoteur.
Remplacez les instructions writeMicroseconds dans loop avec write pour les servomoteurs.
Ajustez les valeurs limites (les constantes CCW et CC) afin d’obtenir le mouvement désiré.
Livrables
Demandez à l’enseignant de vérifier le fonctionnement de votre tourelle.
Prenez une vidéo de votre montage et la soumettre dans le devoir approprié sur Classroom.