Dieses Tutorial ist Teil von: Servomotoren
Hier finden Sie alle relevanten Videos zum Thema Servomotoren. Links zu weiteren Videos finden Sie unter diesem Artikel.
Steuerung der Servoposition mit Handgesten für Arduino
In diesem Tutorial werden wir lernen, wie man einen Servomotor mit Handgesten steuert. Indem Sie Ihre Hand nach links oder rechts bewegen, können Sie den Servomotor entsprechend reagieren lassen. Dieses Projekt nutzt den APDS-9960 Gestensensor, um Handbewegungen zu erkennen und in Servopositionen umzuwandeln. Für eine detaillierte visuelle Erklärung sollten Sie sich das Video bei (im Video bei 00:30) ansehen.

Die Kernkomponenten, die wir verwenden werden, umfassen einen Servomotor und den APDS-9960 Gestensensor. Der Servomotor wird sich basierend auf den erkannten Gesten in bestimmte Winkel drehen, während der APDS-9960 Sensor die Handbewegungen interpretiert. Dieses Setup ermöglicht eine intuitive Steuerung des Servos ohne physischen Kontakt.
Hardware erklärt
Der Servomotor ist ein kleines Gerät, das sich auf bestimmte Winkel drehen kann, was ihn ideal für Anwendungen macht, die eine präzise Positionierung erfordern. Er hat typischerweise drei Drähte: Strom (rot), Erde (schwarz) und Signal (orange). Der Signaldraht empfängt Befehle, um den Servomotor auf einen bestimmten Winkel zu bewegen.
Der APDS-9960 ist ein vielseitiger Sensor, der Gesten, Umgebungslicht und Farben erkennen kann. Er kommuniziert über I2C mit dem Arduino und benötigt einige Pins für Stromversorgung und Datenübertragung. Der Sensor kann Bewegungen wie oben, unten, links und rechts erkennen, die wir zur Steuerung des Servos verwenden werden.
Datenblattdetails
| Hersteller | Broadcom |
|---|---|
| Teilenummer | APDS-9960 |
| Logik/IO-Spannung | 2,4 - 3,6 V |
| Versorgungsspannung | 2,4 - 3,6 V |
| Ausgangsstrom (pro Kanal) | 20 mA max |
| PWM-Frequenzrichtlinien | Nicht zutreffend |
| Eingangslogikschwellen | 0,3 V (niedrig), 0,7 V (hoch) |
| Spannungsabfall / RDS(on)/ Sättigung | Nicht zutreffend |
| Thermische Grenzen | -40 bis 85 °C |
| Paket | 6,0 x 3,0 mm |
| Hinweise / Varianten | Gestenerkennung, RGB-Lichtmessung |
- Stellen Sie sicher, dass der Servomotor mit einer angemessenen Spannung (typischerweise 5V) versorgt wird.
- Verbinden Sie den APDS-9960 mit dem Arduino über die I2C-Kommunikation.
- Achten Sie auf den Interrupt-Pin des Gestensensors.
- Verwenden Sie bei Bedarf Pull-up-Widerstände für eine stabile Signalübertragung.
- Stellen Sie sicher, dass Sie den Sensor unter verschiedenen Lichtbedingungen kalibrieren, um eine bessere Genauigkeit zu erzielen.

Um die Komponenten zu verdrahten, beginnen Sie mit dem Servomotor. Schließen Sie den roten Draht an den 5V-Pin des Arduino, den schwarzen Draht an die Masse (GND) und den orangefarbenen Signaldraht an den Pin an.9Dies ermöglicht es dem Arduino, die Position des Servos zu steuern.
Als Nächstes schließen Sie den APDS-9960 Gestensensor an. Verbinden Sie denV_NPin an die 3,3V des Arduino, und dieGNDpin auf Masse. DerINTPin sollte mit Pin verbunden werden.2auf dem Arduino, während derSDAundSCLPins gehen zu PinsA4undA5, beziehungsweise. Diese Konfiguration ermöglicht es dem Sensor, effektiv mit dem Arduino zu kommunizieren.
Codebeispiele und Anleitung
Im Setup-Funktion initialisieren wir den Servo und den Gestensensor. Die Zeilemyservo.attach(9);bindet den Servo an Pin 9, den wir zuvor verbunden haben. Dies ermöglicht es dem Servo, Befehle vom Arduino zu empfangen.

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);
}Als Nächstes definieren wir, wie das System Gesten in der Schleifenfunktion verarbeitet. Die MethodehandleGesture();Überprüft verfügbare Gesten und führt entsprechende Aktionen aus. Wenn beispielsweise die erkannte Geste nach links ist, bewegt sich der Servo auf 180 Grad.
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;
}
}
}Schließlich überprüft die Schleife kontinuierlich Gesten und aktualisiert die Servo-Position basierend auf der erkannten Geste. Stellen Sie sicher, dass Sie die Einrichtung unter verschiedenen Lichtverhältnissen testen, um eine genaue Gestenerkennung zu erhalten.
Demonstration / Was zu erwarten ist
Sobald alles verkabelt und der Code hochgeladen ist, sollten Sie in der Lage sein, den Servo zu steuern, indem Sie Ihre Hand nach links oder rechts bewegen. Der Servo wird sich für eine linke Geste um 180 Grad drehen und für eine rechte Geste auf 0 Grad zurückkehren. Wenn die Gesten nicht erkannt werden, überprüfen Sie die Positionierung des Sensors und die umgebenden Lichtverhältnisse (im Video bei 05:30).
Kapitel
- Einführung - 00:00
- Hardware-Übersicht - 01:30
- Verdrahtungsanweisungen - 03:00
- Code-Erklärung - 04:30
- Demonstration - 06:00
Dieses Tutorial ist Teil von: Servomotoren
- Einen Servo mit Drucktastern mit einem Arduino steuern
- 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)
- Einen Servo mit einem Potentiometer und einem Arduino steuern
- Einen Servo mit Potentiometer und LCD1602 mit Arduino steuern
- Steuerung von Servomotoren mit einer Infrarotfernbedienung und Arduino
- Arduino Servomotorsteuerung mit einem Potentiometer
- 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
- Arduino-Code und Video für PCA9685 16-Kanal 12-Bit Servo-Controller V1
- Build an Arduino Servo Toggle Switch with a Push Button
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.
Dateien📁
Keine Dateien verfügbar.