Sommario:

Un'applicazione di un pulsante estensibile con feedback di vibrazione: 7 passaggi (con immagini)
Un'applicazione di un pulsante estensibile con feedback di vibrazione: 7 passaggi (con immagini)

Video: Un'applicazione di un pulsante estensibile con feedback di vibrazione: 7 passaggi (con immagini)

Video: Un'applicazione di un pulsante estensibile con feedback di vibrazione: 7 passaggi (con immagini)
Video: QUESTO RISOLVE TUTTI I PROBLEMI DI iPHONE!🤯 2024, Luglio
Anonim
Un'applicazione di un pulsante estensibile con feedback di vibrazione
Un'applicazione di un pulsante estensibile con feedback di vibrazione
Un'applicazione di un pulsante estensibile con feedback di vibrazione
Un'applicazione di un pulsante estensibile con feedback di vibrazione

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

Componenti necessari per la configurazione da pulsante a motore di vibrazione
Componenti necessari per la configurazione da pulsante a 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

Schemi per la configurazione da pulsante a motore di vibrazione
Schemi per la configurazione da pulsante a 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// Libreria di driver per motori aptici SparkFun
#includere//libreria I2C
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

Image
Image

Passaggio 6: prototipo di guanto estensibile

Prototipo di guanto allungabile
Prototipo di guanto allungabile
Prototipo di guanto allungabile
Prototipo di guanto allungabile

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// Libreria di driver per motori aptici SparkFun
#includere//libreria I2C
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: