Ce tutoriel fait partie de: servomoteurs
Vous trouverez ici une liste de toutes les vidéos relatives aux servomoteurs. D'autres liens vers ces vidéos sont disponibles plus bas.
Contrôle de la position du servo avec des gestes de la main pour Arduino
Dans ce tutoriel, nous allons apprendre à contrôler un moteur servo à l'aide de gestes de la main. En déplaçant votre main à gauche ou à droite, vous pouvez faire réagir le moteur servo en conséquence. Ce projet utilise le capteur de gestes APDS-9960 pour détecter les mouvements de la main et les traduire en positions de servo. Pour une explication visuelle détaillée, assurez-vous de consulter la vidéo à (dans la vidéo à 00:30).

Les composants principaux que nous utiliserons incluent un moteur servo et le capteur de gestes APDS-9960. Le moteur servo tournera à des angles spécifiques en fonction des gestes détectés, tandis que le capteur APDS-9960 interprétera les mouvements de la main. Cette configuration permet un moyen intuitif de contrôler le servo sans contact physique.
Matériel expliqué
Le moteur servo est un petit dispositif qui peut tourner à des angles spécifiques, ce qui le rend idéal pour des applications nécessitant un positionnement précis. Il a généralement trois fils : alimentation (rouge), masse (noir) et signal (orange). Le fil de signal reçoit des commandes pour déplacer le servo à un angle spécifié.
Le APDS-9960 est un capteur polyvalent qui peut détecter des gestes, la lumière ambiante et la couleur. Il communique avec l'Arduino via I2C et nécessite quelques broches pour l'alimentation et le transfert de données. Le capteur peut détecter des mouvements tels que haut, bas, gauche et droite, que nous utiliserons pour contrôler le servo.
Détails de la fiche technique
| Fabricant | Broadcom |
|---|---|
| Numéro de pièce | APDS-9960 |
| Tension logique/IO | 2,4 - 3,6 V |
| Tension d'alimentation | 2,4 - 3,6 V |
| Courant de sortie (par canal) | 20 mA max |
| Directives sur la fréquence PWM | Non applicable |
| Seuils de logique d'entrée | 0,3 V (bas), 0,7 V (haut) |
| Chute de tension / RDS(on)/ saturation | Non applicable |
| Limites thermiques | -40 à 85 °C |
| Paquet | 6,0 x 3,0 mm |
| Remarques / variantes | Détection de gestes, détection de lumière RGB |
- Assurez-vous que le servo est alimenté avec une tension adéquate (généralement 5V).
- Connectez l'APDS-9960 à l'Arduino en utilisant la communication I2C.
- Faites attention à la broche d'interruption du capteur de geste.
- Utilisez des résistances de tirage si nécessaire pour une détection de signal stable.
- Assurez-vous de calibrer le capteur dans différentes conditions d'éclairage pour une meilleure précision.

Pour câbler les composants, commencez par le servomoteur. Connectez le fil rouge à la broche 5V de l'Arduino, le fil noir à la masse (GND) et le fil de signal orange à la broche.9Cela permettra à l'Arduino de contrôler la position du servo.
Ensuite, câblez le capteur de geste APDS-9960. Connectez leV_Npincez au 3,3V de l'Arduino, et leGNDpincer au sol. LeINTla broche doit être connectée à la broche2sur l'Arduino, tandis que leSDAetSCLles broches vont aux brochesA4etA5, respectivement. Cette configuration permet au capteur de communiquer efficacement avec l'Arduino.
Exemples de code et guide étape par étape
Dans la fonction de configuration, nous initialisons le servo et le capteur de gestes. La lignemyservo.attach(9);lie le servo à la broche 9, que nous avons précédemment connectée. Cela permet au servo de recevoir des commandes de l'Arduino.

void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
// Set interrupt pin as input
pinMode(APDS9960_INT, INPUT);
// Initialize Serial port
Serial.begin(9600);
}Ensuite, nous définissons comment le système gère les gestes dans la fonction de boucle. La méthodehandleGesture();vérifie les gestes disponibles et exécute les actions correspondantes. Par exemple, si le geste détecté est à gauche, le servo se déplacera à 180 degrés.
void handleGesture() {
if ( apds.isGestureAvailable() ) {
switch ( apds.readGesture() ) {
case DIR_LEFT:
myservo.write(180); // added by RoboJax
break;
case DIR_RIGHT:
myservo.write(0); // added by RoboJax
break;
}
}
}Enfin, la boucle vérifie en continu les gestes et met à jour la position du servo en fonction du geste détecté. Assurez-vous de tester la configuration dans différentes conditions d'éclairage pour obtenir une reconnaissance précise des gestes.
Démonstration / À quoi s'attendre
Une fois que tout est câblé et que le code est téléchargé, vous devriez pouvoir contrôler le servo en déplaçant votre main à gauche ou à droite. Le servo tournera à 180 degrés pour un geste à gauche et reviendra à 0 degré pour un geste à droite. Si les gestes ne sont pas détectés, vérifiez le positionnement du capteur et les conditions d'éclairage environnantes (dans la vidéo à 05:30).
Chapitres
- Introduction - 00:00
- Aperçu du matériel - 01:30
- Instructions de câblage - 03:00
- Explication du code - 04:30
- Démonstration - 06:00
Ce tutoriel fait partie de: servomoteurs
- Contrôler un servomoteur avec des boutons-poussoirs à l'aide d'un Arduino
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- Contrôler un servomoteur avec un potentiomètre à l'aide d'un Arduino
- Contrôler un servomoteur avec un potentiomètre et un écran LCD1602 à l'aide d'un Arduino
- Contrôler des servomoteurs à l'aide d'une télécommande infrarouge avec Arduino
- Contrôle de moteur servo Arduino à l'aide d'un potentiomètre
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- Code Arduino et vidéo pour le contrôleur de servomoteurs PCA9685 16 canaux 12 bits V1
- Build an Arduino Servo Toggle Switch with a Push Button
Ressources et références
Aucune ressource pour le moment.
Fichiers📁
Aucun fichier disponible.