Sommario:
- Passaggio 1: componenti necessari per l'impostazione del pulsante e del motore di vibrazione
- Passaggio 2: Schemi per l'impostazione del pulsante per il motore di vibrazione
- Passaggio 3: l'impostazione del pulsante per l'impostazione del motore di vibrazione
- Passaggio 4: il codice
- Passaggio 5: video della configurazione del pulsante per il motore di vibrazione
- Passaggio 6: prototipo di guanto estensibile
- Passaggio 7: codice per più pulsanti con uscita vibrazione unica
Video: Un'applicazione di un pulsante estensibile con feedback di vibrazione: 7 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
In questo tutorial, ti mostreremo prima come utilizzare un Arduino Uno per controllare un motore di vibrazione tramite un pulsante esteso. La maggior parte dei tutorial sui pulsanti coinvolge il pulsante sulla breadboard fisica, mentre in questo tutorial il pulsante è stato modificato per essere collegato alla breadboard tramite cavi jumper. Questo pulsante ti consentirà di controllare la forza e il modello di vibrazione del motore. Successivamente, mostreremo un possibile prototipo di una tecnologia indossabile che utilizza questo set-up. Questo wearable è un guanto con punta delle dita estensibile con bottoni attaccati all'estremità, programmato per dare un feedback di vibrazione unico a chi lo indossa in base al pulsante specifico premuto.
Passaggio 1: componenti necessari per l'impostazione del pulsante e del motore di vibrazione
- Arduino Uno
- tagliere
- Motore di vibrazione del vibratore della moneta
- Pulsante Grove
- Cavi jumper maschio-maschio (x10)
- Ponticello a 4 pin
- Driver del motore tattile
- Connettore bordo maschio-femmina
- Saldatore
Passaggio 2: Schemi per l'impostazione del pulsante per il motore di vibrazione
Il diagramma precedente è stato creato con Fritzing.org.
Passaggio 3: l'impostazione del pulsante per l'impostazione del motore di vibrazione
Passaggio 1: saldare il connettore del bordo al driver del motore di vibrazione. Saldare i fili del vibratore a moneta nei terminali del driver del motore di vibrazione.
Passaggio 2: collegare il cavo jumper a 4 pin al breakout del pulsante.
Passaggio 3: utilizzando uno dei ponticelli, collegare il pin GRD su Arduino a una riga sulla breadboard.
Passaggio 4: utilizzando un altro cavo jumper, collegare il pin Volt 3.3 su Arduino a una riga diversa sulla breadboard.
Passaggio 5: ora collegheremo il driver del motore di vibrazione ad Arduino. Utilizzando un terzo ponticello, collegare il pin GND sul driver del motore di vibrazione alla stessa riga sulla breadboard del pin GRD di Arduino. Fai lo stesso con un altro filo per VCC (volt) sul driver del motore di vibrazione, alla riga di volt della breadboard.
Passaggio 6: utilizzare un altro cavo per collegare il pin SDA sul driver del motore di vibrazione al pin SDA direttamente su Arduino. Ancora una volta, fai lo stesso con i pin SCL su entrambi. In alternativa, segui un approccio simile al passaggio 5 e collega i pin SDA e SCL su Arduino alle proprie file sulla breadboard tramite i ponticelli. Quindi eseguire un filo dalla riga in cui è collegato il pin SDA sulla breadboard al pin SDA sul driver del motore. Fai lo stesso per la riga SCL sulla breadboard fino al pin SCL sul driver del motore.
Passaggio 7: ora finiremo collegando il pulsante al driver del motore di vibrazione e ad Arduino. Utilizzare un altro cavo del ponticello per collegare il GRD dal cavo del ponticello a 4 pin collegato al breakout del pulsante alla stessa riga degli altri cavi GRD sulla breadboard. Fai lo stesso con volt ancora una volta (VCC).
Passaggio 8: collega una scrittura finale da SIG sul breakout del pulsante a un pin su Arduino (per gli scopi del nostro codice, abbiamo usato il pin 7).
Passaggio 9: collega Arduino e carica il codice e guardalo funzionare!
Passaggio 4: il codice
Pulsante-Vibrazione-Motore.c
/* Codice adattato da https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */ |
#includere |
#includere |
SFE_HMD_DRV2605L HMD; //Crea oggetto driver motore tattile |
tasto int = 7; // scegli il pin di input 7 per il pulsante |
int valore_pulsante = 0; // variabile per leggere lo stato del pin |
voidsetup() |
{ |
/* Inizializza oggetto driver motore aptico */ |
HMD.begin(); |
Serial.begin(9600); |
HMD. Modalità(0); // Modalità input trigger interno -- Deve utilizzare la funzione GO() per attivare la riproduzione. |
HMD. MotorSelect(0x36); // Motore ERM, frenata 4x, guadagno loop medio, guadagno EMF posteriore 1.365x |
HMD. Libreria(2); //1-5 e 7 per motori ERM, 6 per motori LRA |
} |
anello vuoto() |
{ |
/* Avvia il motore di vibrazione */ |
HMD.go(); |
button_val = digitalRead(pulsante); |
if(button_val== HIGH) { |
/* Questo output per registrare che il pulsante è stato premuto, usa per debugginh*/ |
Serial.println("Pulsante premuto."); |
/* La libreria delle forme d'onda ha 0-122 diversi tipi di onde */ |
HMD. Forma d'onda(0, 69);} |
altro{ |
/* Se il pulsante non viene premuto, arresta il motore di vibrazione */ |
HMD.stop(); |
} |
} |
visualizza rawButton-Vibration-Motor.c ospitato con ❤ da GitHub
Passaggio 5: video della configurazione del pulsante per il motore di vibrazione
Passaggio 6: prototipo di guanto estensibile
Una possibile applicazione del pulsante al motore di vibrazione è il guanto mostrato sopra. Abbiamo modificato materiali accessibili a basso costo come le siringhe per creare "punte delle dita" estensibili. Abbiamo attaccato i bottoni della boscaglia all'estremità delle siringhe modificate usando del velcro, praticato dei fori nella punta delle dita di un guanto e inserito ogni siringa attraverso i fori. I ponticelli a 4 pin dei pulsanti sono infilati attraverso le siringhe e sono abbastanza lunghi da poter estendere le siringhe per tutta la loro lunghezza. L'Arduino e la breadboard sono attaccati tramite velcro alla parte superiore del guanto, che consente di collegare facilmente i fili dei pulsanti attraverso una piccola fessura alla base di ciascun polpastrello. Il driver del motore è attaccato alla parte inferiore del guanto tramite l'apertura, in modo da attaccare il motore di vibrazione all'interno del guanto. Quando chi lo indossa indossa il guanto, il motore di vibrazione si trova nella parte inferiore del polso di chi lo indossa. Quando chi lo indossa tocca una superficie e preme uno dei pulsanti, il motore trasmette una vibrazione di feedback unica.
Il processo di pensiero alla base di un tale guanto sarebbe quello di consentire a qualcuno che lo indossa di "toccare" le cose oltre la portata delle normali dita e ricevere feedback sul fatto che stanno toccando queste superfici. Il feedback della vibrazione cambia a seconda del dito che tocca la superficie, in modo che sia possibile per l'utente dire quale dito sta toccando la superficie in base al modello di vibrazione.
Esistono molti modi per portare avanti il prototipo, come rendere le dita più estensibili o modificare il feedback in base al tipo di superficie toccata. Idealmente, le dita estensibili verrebbero create tramite la stampa 3D, per migliori opzioni telescopiche. Un sensore di temperatura potrebbe essere utilizzato al posto dei pulsanti, per consentire un feedback su quanto sia calda la superficie che l'utente sta toccando, o un sensore di umidità per scopi simili. Potrebbe essere implementato un modo per percepire fino a che punto il "dito" è stato esteso, per consentire all'utente di sapere quanto è lontano l'oggetto che sta toccando. Queste sono solo alcune delle possibili opzioni per portare avanti questo prototipo.
Questo guanto può essere realizzato con materiali comuni come un modo semplice per estendere i tuoi sensi e creare feedback che l'utente può sentire e capire.
Passaggio 7: codice per più pulsanti con uscita vibrazione unica
mutliple_buttons_to_vibmotor.ino
/* Codice adattato da SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */ |
#includere |
#includere |
SFE_HMD_DRV2605L HMD; //Crea oggetto driver motore tattile |
int button_middle = 7; |
int indice_pulsante = 5; // scegli il pin di input per il pulsante |
int anello_pulsante = 9; |
int button_pinky = 3; |
voidsetup() |
{ |
HMD.begin(); |
Serial.begin(9600); |
HMD. Modalità(0); // Modalità input trigger interno -- Deve utilizzare la funzione GO() per attivare la riproduzione. |
HMD. MotorSelect(0x36); // Motore ERM, frenata 4x, guadagno loop medio, guadagno EMF posteriore 1.365x |
HMD. Libreria(2); //1-5 e 7 per motori ERM, 6 per motori LRA |
} |
anello vuoto() |
{ |
HMD.go(); // avvia il motore di vibrazione |
/* Controlla quale pulsante è stato premuto ed emette la forma d'onda 0-122 */ |
if(digitalRead(button_middle)== HIGH) { |
Serial.println("Pulsante premuto."); |
HMD. Forma d'onda(0, 112);} |
elseif(digitalRead(button_index) == HIGH){ |
HMD. Forma d'onda(0, 20); |
} |
elseif(digitalRead(button_ring) == HIGH){ |
HMD. Forma d'onda(0, 80); |
} |
elseif(digitalRead(button_pinky) == HIGH){ |
HMD. Forma d'onda(0, 100); |
} |
/* Se non viene premuto alcun pulsante, fermati */ |
altro{ |
HMD.stop(); |
} |
} |
visualizza rawmutliple_buttons_to_vibmotor.ino ospitato con ❤ da GitHub
Consigliato:
The Funbot - Robot estensibile motorizzato di base: 7 passaggi
The Funbot - Robot estensibile motorizzato di base: Ciao a tutti. Oggi vi mostrerò come costruire il FunBot - un robot motorizzato super facile che può aggirarsi, disegnare schemi, girare e trasformarsi in un robot ruota. È estensibile con parti, relè e persino microcontrollori ma questo si è acceso
Microcontrollore AVR. Attiva/disattiva i LED utilizzando un interruttore a pulsante. Pulsante antirimbalzo: 4 passaggi
Microcontrollore AVR. Attiva/disattiva i LED utilizzando un interruttore a pulsante. Push Button Debouncing.: In questa sezione, impareremo come creare un codice C del programma per ATMega328PU per alternare lo stato dei tre LED in base all'input da un interruttore a pulsante. Inoltre, abbiamo esplorato una soluzione al problema di "Switch Bounce". Come di consueto, vi
Puntatore capacitivo estensibile: 4 passaggi
Puntatore capacitivo estensibile: la tecnologia tattile capacitiva è molto comune oggi, soprattutto in un ambiente cucina. Per le persone di bassa statura o di portata limitata, l'accesso ai controlli di queste tecnologie può essere difficile. I puntatori di estensione convenzionali non funzioneranno perché
Progetto Arduino Color Sorter con applicazione di controllo PC: 4 passaggi (con immagini)
Progetto Arduino Color Sorter con applicazione di controllo PC: In questo progetto, ho scelto il sensore di colore TCS34725. Poiché questo sensore esegue un rilevamento più accurato degli altri e non è influenzato dal cambiamento di luce nell'ambiente. Il robot di debug del prodotto è controllato dal programma di interfaccia
Gimbal palmare estensibile per GoPro/SJ4000/Xiaomi Yi/iLook: 9 passaggi (con immagini)
Gimbal portatile estensibile per GoPro/SJ4000/Xiaomi Yi/iLook: questo tutorial ti guiderà come hackerare un selfie stick e un gimbal 2D per creare un gimbal portatile estensibile in grado di montare fotocamere come GoPro SJ4000/5000/6000 Xiaomi Yi Walkera iLook. Un Gimbal è un meccanismo di stabilizzazione che rem