Cuprins:
- Pasul 1: Componente necesare pentru configurarea butonului la motorul de vibrații
- Pasul 2: Scheme pentru configurarea butonului la motorul de vibrație
- Pasul 3: Configurarea butonului pentru configurarea motorului de vibrații
- Pasul 4: Codul
- Pasul 5: Video al butonului la configurarea motorului de vibrații
- Pasul 6: Prototip de mănușă extensibil
- Pasul 7: Cod pentru butoane multiple cu ieșire de vibrație unică
Video: O aplicație a unui buton extensibil cu feedback cu vibrații: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest tutorial, vă vom arăta mai întâi cum să utilizați un Arduino Uno pentru a controla un motor de vibrații printr-un buton extins. Majoritatea tutorialelor de pe butoanele cu apăsare implică butonul de pe panoul fizic, în timp ce în acest tutorial butonul a fost modificat pentru a fi conectat la panou prin cabluri jumper. Acest buton vă va permite să controlați puterea și modelul de vibrații al motorului. În continuare, vom arăta un posibil prototip al unei tehnologii purtabile care utilizează acest set-up. Acest purtabil este o mănușă cu vârfurile degetelor extensibile, cu butoane atașate la capăt, programate pentru a oferi feedback unic vibrației purtătorului pe baza butonului specific apăsat.
Pasul 1: Componente necesare pentru configurarea butonului la motorul de vibrații
- Arduino Uno
- Pană de pâine
- Motor de vibrație a vibratorului de monede
- Grove Button
- Sârme jumper de la bărbat la bărbat (x10)
- Jumper Wire 4 Pin
- Driver Haptic Motor
- Conector de la tată la tată
- Ciocan de lipit
Pasul 2: Scheme pentru configurarea butonului la motorul de vibrație
Diagrama precedentă a fost creată cu Fritzing.org.
Pasul 3: Configurarea butonului pentru configurarea motorului de vibrații
Pasul 1: lipiți conectorul de margine la driverul motorului de vibrații. Lipiți firele vibratorului de monede în bornele driverului motorului de vibrații.
Pasul 2: Conectați cablul jumper cu 4 pini la butonul de deconectare.
Pasul 3: Utilizând unul dintre firele jumper, conectați pinul GRD de pe Arduino la un rând de pe panou.
Pasul 4: Folosind un alt cablu jumper, conectați pinul Volt 3.3 de pe Arduino la un rând diferit de pe panou.
Pasul 5: Acum vom conecta driverul motorului cu vibrații la Arduino. Folosind un al treilea cablu jumper, conectați pinul GND de pe driverul motorului de vibrație la același rând de pe panou ca pinul GRD de la Arduino. Faceți același lucru cu un alt fir pentru VCC (volt) de pe driverul motorului de vibrații, la rândul de volți al panoului.
Pasul 6: Utilizați încă un fir pentru a conecta pinul SDA de pe driverul motorului de vibrație la pinul SDA direct pe Arduino. Din nou, faceți același lucru cu pinii SCL de pe ambele. Alternativ, urmați o abordare similară cu pasul 5 și conectați pinii SDA și SCL de pe Arduino la propriile rânduri de pe panou prin fire jumper. Apoi rulați un fir de pe rândul în care pinul SDA este conectat pe placa de pin la pinul SDA de pe driverul motorului. Faceți același lucru pentru rândul SCL de pe panou cu pinul SCL de pe driverul motorului.
Pasul 7: Acum vom termina conectând butonul la driverul motorului cu vibrații și la Arduino. Utilizați un alt fir jumper pentru a conecta GRD de la firul jumper cu 4 pini conectat la butonul de rupere la același rând cu celelalte fire GRD de pe panou. Faceți același lucru cu volt încă o dată (VCC).
Pasul 8: Conectați o scriere finală de la SIG pe butonul de separare la un pin de pe Arduino (în scopul codului nostru, am folosit pinul 7).
Pasul 9: Conectați Arduino și încărcați codul și urmăriți-l cum funcționează!
Pasul 4: Codul
Buton-Vibrație-Motor.c
/ * Cod adaptat de la https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 * / |
#include |
#include |
SFE_HMD_DRV2605L HMD; // Creați obiectul driverului de motor haptic |
buton int = 7; // alegeți pinul de intrare 7 pentru buton |
int button_val = 0; // variabilă pentru citirea stării pinului |
voidsetup () |
{ |
/ * Inițializați obiectul driverului motorului Haptic * / |
HMD.begin (); |
Serial.begin (9600); |
HMD. Mode (0); // Mod de introducere a declanșatorului intern - Trebuie să utilizați funcția GO () pentru a declanșa redarea. |
HMD. MotorSelect (0x36); // Motor ERM, 4x Frânare, Câștig mediu în buclă, 1.365x Câștig EMF înapoi |
HMD. Library (2); // 1-5 și 7 pentru motoare ERM, 6 pentru motoare LRA |
} |
voidloop () |
{ |
/ * Porniți motorul de vibrații * / |
HMD.go (); |
button_val = digitalRead (buton); |
if (button_val == HIGH) { |
/ * Această ieșire pentru a înregistra butonul respectiv a fost apăsat, utilizați pentru depanare * / |
Serial.println ("Buton apăsat"); |
/ * Biblioteca de forme de undă are 0-122 tipuri diferite de unde * / |
HMD. Waveform (0, 69);} |
altceva { |
/ * Dacă butonul nu este apăsat, opriți motorul de vibrație * / |
HMD.stop (); |
} |
} |
vizualizați rawButton-Vibration-Motor.c găzduit cu ❤ de GitHub
Pasul 5: Video al butonului la configurarea motorului de vibrații
Pasul 6: Prototip de mănușă extensibil
O posibilă aplicare a butonului la motorul cu vibrații este mănușa prezentată mai sus. Am modificat materiale accesibile ieftine, cum ar fi seringile, pentru a face „vârfurile degetelor” extensibile. Am atașat butoanele de grove la capătul seringilor modificate folosind velcro, am tăiat găuri în vârful degetelor unei mănuși și am așezat fiecare seringă prin găuri. Firele jumperului cu 4 pini ale butoanelor sunt filetate prin seringi și sunt suficient de lungi încât să le puteți extinde pe toată lungimea lor. Arduino și placa de prindere sunt atașate prin velcro la partea superioară a mănușii, ceea ce permite conectarea cu ușurință a firelor butoanelor printr-o mică fantă pe baza fiecărui vârf al degetului. Șoferul motorului este atașat de partea inferioară a mănușii prin deschidere, pentru a lipi motorul de vibrație în interiorul mănușii. Când purtătorul are mănușa pusă, motorul de vibrație stă la partea inferioară a încheieturii purtătorului. Când purtătorul atinge o suprafață și apasă unul dintre butoane, se produce o vibrație de feedback unică prin intermediul motorului.
Procesul de gândire din spatele unei astfel de mănuși ar fi acela de a permite unei persoane care o poartă să „atingă” lucruri dincolo de vârful degetelor obișnuite și să primească feedback că atinge aceste suprafețe. Feedback-ul vibrațiilor se schimbă în funcție de degetul care atinge suprafața, astfel încât utilizatorul să poată spune care deget atinge suprafața pe baza modelului de vibrații.
Există mai multe modalități de a duce prototipul mai departe, cum ar fi degetele mai extensibile sau modificarea feedback-ului în funcție de tipul de suprafață atins. În mod ideal, degetele extensibile ar fi create prin imprimare 3D, pentru opțiuni mai bune de telescopare. Un senzor de temperatură ar putea fi utilizat în locul butoanelor, pentru a permite feedback-ul cu privire la cât de fierbinte este suprafața pe care o atinge utilizatorul sau un senzor de umiditate în scopuri similare. O modalitate de a simți cât de departe „degetul” a fost extins ar putea fi implementată, pentru a permite utilizatorului să știe cât de departe este obiectul pe care îl atinge. Acestea sunt doar câteva opțiuni posibile pentru a duce mai departe acest prototip.
Această mănușă poate fi realizată cu materiale obișnuite ca o modalitate ușoară de a vă extinde simțurile și de a crea feedback pe care utilizatorul îl poate simți și înțelege.
Pasul 7: Cod pentru butoane multiple cu ieșire de vibrație unică
mutliple_buttons_to_vibmotor.ino
/ * Cod adaptat din SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide * / |
#include |
#include |
SFE_HMD_DRV2605L HMD; // Creați obiectul driverului de motor haptic |
int button_middle = 7; |
int button_index = 5; // alegeți pinul de intrare pentru buton |
int button_ring = 9; |
int button_pinky = 3; |
voidsetup () |
{ |
HMD.begin (); |
Serial.begin (9600); |
HMD. Mode (0); // Mod de introducere a declanșatorului intern - Trebuie să utilizați funcția GO () pentru a declanșa redarea. |
HMD. MotorSelect (0x36); // Motor ERM, 4x frânare, câștig mediu în buclă, 1.365x câștig EMF înapoi |
HMD. Library (2); // 1-5 și 7 pentru motoare ERM, 6 pentru motoare LRA |
} |
voidloop () |
{ |
HMD.go (); // porniți motorul de vibrații |
/ * Verificați ce buton este apăsat și forma de undă de ieșire 0-122 * / |
if (digitalRead (button_middle) == HIGH) { |
Serial.println ("Buton apăsat"); |
HMD. Waveform (0, 112);} |
elseif (digitalRead (button_index) == HIGH) { |
HMD. Waveform (0, 20); |
} |
elseif (digitalRead (button_ring) == HIGH) { |
HMD. Waform (0, 80); |
} |
elseif (digitalRead (button_pinky) == HIGH) { |
HMD. Waform (0, 100); |
} |
/ * Dacă nu este apăsat niciun buton, opriți * / |
altceva { |
HMD.stop (); |
} |
} |
vizualizați rawmutliple_buttons_to_vibmotor.ino găzduit cu ❤ de GitHub
Recomandat:
Funbot - robot extensibil motorizat de bază: 7 pași
Funbot - Robot de bază motorizat extensibil: Bună ziua tuturor. Astăzi vă voi arăta cum să construiți FunBot - un robot motorizat foarte ușor care poate să stea în jurul său, să deseneze modele, să se învârtă și să se transforme într-o roată-bot. Este extensibil cu piese, relee și chiar microcontrolere, dar este aprins
Spargerea unui buton al ușii liniei jubileului subteran din Londra: 12 pași (cu imagini)
Spargerea unui buton al ușii liniei de jubileu subteran din Londra: magazinul Muzeului Transporturilor din Londra vinde butoane de ușă scoase din funcțiune de la linia jubileului (sunt disponibile atât stânga, cât și dreapta). Dacă vă gândiți să derulați un proiect care are nevoie de un buton și de un indicator luminos de un fel, ați fi „
Buton Amazon Dash Buton silențios: 10 pași (cu imagini)
Buton Amazon Dash Buton silențios: Privind constant pe fereastră, astfel încât să puteți intercepta vizitatorii înainte de a suna la sonerie? V-ați săturat că câinii și bebelușul înnebunesc oricând sună? Nu doriți să cheltuiți o avere pe un „inteligent” soluție? Efectuarea unui sunet silențios este la fel de
Selectarea unui motor de pas și a unui driver pentru un proiect de ecran de umbră automat Arduino: 12 pași (cu imagini)
Selectarea unui motor de pas și a unui driver pentru un proiect de ecran de umbră automat Arduino: În acest instructable, voi parcurge pașii pe care i-am făcut pentru a selecta un motor de pas și un driver pentru un prototip de proiect de ecran de umbră automat. Ecranele de umbră sunt modelele populare și ieftine Coolaroo cu manivelă și am vrut să înlocuiesc t
Cardan de mână extensibil pentru GoPro / SJ4000 / Xiaomi Yi / iLook: 9 pași (cu imagini)
Gimbal portabil extensibil pentru GoPro / SJ4000 / Xiaomi Yi / iLook: Acest tutorial vă va ghida cum să hack un stick selfie și un cardan 2D pentru a face un cardan portabil extensibil care poate monta camere precum GoPro SJ4000 / 5000/6000 Xiaomi Yi Walkera iLook. Un cardan este un mecanism de stabilizare care rem