Questo tutorial è parte di: Servomotori
Tutti i video correlati ai servomotori sono elencati qui. I link ad altri video si trovano sotto questo articolo.
Controllare la posizione del servo con gesti della mano per Arduino
In questo tutorial, impareremo come controllare un servomotore utilizzando gesti della mano. Muovendo la mano a sinistra o a destra, puoi far rispondere il servomotore di conseguenza. Questo progetto utilizza il sensore di gesti APDS-9960 per rilevare i movimenti della mano e tradurli in posizioni del servomotore. Per una spiegazione visiva dettagliata, assicurati di controllare il video (nel video a :30).

I componenti principali che utilizzeremo includono un servomotore e il sensore di gesti APDS-9960. Il servomotore ruoterà a angoli specifici in base ai gesti rilevati, mentre il sensore APDS-9960 interpreterà i movimenti della mano. Questa configurazione consente un modo intuitivo per controllare il servomotore senza contatto fisico.
Hardware Spiegato
Il servomotore è un piccolo dispositivo che può ruotare a angoli specifici, rendendolo ideale per applicazioni che richiedono un posizionamento preciso. Ha tipicamente tre fili: alimentazione (rosso), terra (nero) e segnale (arancione). Il filo del segnale riceve comandi per muovere il servomotore a un angolo specificato.
L'APDS-9960 è un sensore versatile in grado di rilevare gesti, luce ambientale e colore. Comunica con l'Arduino tramite I2C e richiede alcuni pin per l'alimentazione e il trasferimento dei dati. Il sensore può rilevare movimenti come su, giù, sinistra e destra, che utilizzeremo per controllare il servo.
Dettagli della scheda tecnica
| Produttore | Broadcom |
|---|---|
| Numero di parte | APDS-9960 |
| Tensione di logica/IO | 2,4 - 3,6 V |
| Tensione di alimentazione | 2,4 - 3,6 V |
| Corrente di uscita (per canale) | 20 mA max |
| Linee guida sulla frequenza PWM | Non applicabile |
| Soglie logiche di ingresso | 0,3 V (basso), 0,7 V (alto) |
| Caduta di tensione / RDS(on)/ saturazione | Non applicabile |
| Limiti termici | -40 a 85 °C |
| Pacchetto | 6,0 x 3,0 mm |
| Note / varianti | Rilevamento dei gesti, rilevamento della luce RGB |
- Assicurati che il servo sia alimentato con una tensione adeguata (tipicamente 5V).
- Collegare l'APDS-9960 all'Arduino utilizzando la comunicazione I2C.
- Fai attenzione al pin di interruzione per il sensore di gesti.
- Utilizzare resistori di pull-up se necessario per una rilevazione del segnale stabile.
- Assicurati di calibrare il sensore in diverse condizioni di illuminazione per una maggiore precisione.

Per cablare i componenti, inizia con il servo motore. Collega il filo rosso al pin 5V dell'Arduino, il filo nero a terra (GND) e il filo di segnale arancione al pin.9Questo permetterà all'Arduino di controllare la posizione del servo.
Successivamente, collega il sensore di gesti APDS-9960. Collega ilV_Ncollegare al 3.3V dell'Arduino, e ilGNDpin to ground. TheINTil pin deve essere collegato al pin2sull'Arduino, mentre ilSDAeSCLi perni vanno ai perniA4eA5, rispettivamente. Questa configurazione consente al sensore di comunicare efficacemente con l'Arduino.
Esempi di codice e guida passo passo
Nella funzione di setup, inizializziamo il servo e il sensore di gesti. La lineamyservo.attach(9);collega il servo al pin 9, che abbiamo precedentemente connesso. Questo consente al servo di ricevere comandi dall'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);
}Successivamente, definiamo come il sistema gestisce i gesti nella funzione loop. Il metodohandleGesture();controlla i gesti disponibili ed esegue le azioni corrispondenti. Ad esempio, se il gesto rilevato è a sinistra, il servo si muoverà a 180 gradi.
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;
}
}
}Infine, il ciclo controlla continuamente i gesti e aggiorna la posizione del servo in base al gesto rilevato. Assicurati di testare l'impostazione in diverse condizioni di illuminazione per ottenere un riconoscimento dei gesti accurato.
Dimostrazione / Cosa Aspettarsi
Una volta che tutto è cablato e il codice è caricato, dovresti essere in grado di controllare il servo muovendo la mano a sinistra o a destra. Il servo ruoterà di 180 gradi per un gesto a sinistra e tornerà a 0 gradi per un gesto a destra. Se i gesti non vengono rilevati, controlla il posizionamento del sensore e le condizioni di luce circostanti (nel video alle 05:30).
Capitoli
- Introduzione - 00:00
- Panoramica dell'hardware - 01:30
- Istruzioni di cablaggio - 03:00
- Spiegazione del codice - 04:30
- Dimostrazione - 06:00
Questo tutorial è parte di: Servomotori
- Controllare un servomotore con pulsanti usando 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)
- Controllare un servomotore con un potenziometro usando Arduino
- Controllare un servomotore con un potenziometro e un LCD1602 usando Arduino
- Controllare i servomotori utilizzando un telecomando a infrarossi con Arduino
- Controllo del Motore Servo Arduino Utilizzando un Potenziometro
- 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
- Codice Arduino e video per il controller per servomotori PCA9685 a 16 canali e 12 bit V1
- Build an Arduino Servo Toggle Switch with a Push Button
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
Nessun file disponibile.