Indholdsfortegnelse:
- Trin 1: Komponenter påkrævet til opsætning af knap til vibrationsmotor
- Trin 2: Skemaer for opsætning af knap til vibrationsmotor
- Trin 3: Opsætning af knap til vibrationsmotoropsætning
- Trin 4: Koden
- Trin 5: Video af opsætning af knap til vibrationsmotor
- Trin 6: Prototype af handskeforlængelig
- Trin 7: Kode til flere knapper med unik vibrationsoutput
Video: En anvendelse af en udvidelig knap med vibrationsfeedback: 7 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
I denne vejledning vil vi først vise dig, hvordan du bruger en Arduino Uno til at styre en vibrationsmotor via en forlænget knap. De fleste øvelser om trykknapper involverer knappen på det fysiske brødbræt, mens knappen i denne vejledning er blevet ændret til at blive forbundet til brødbrættet via jumperkabler i stedet. Denne knap giver dig mulighed for at kontrollere motorens styrke og vibrationsmønster. Herefter vil vi vise en mulig prototype af en bærbar teknologi, der gør brug af denne opsætning. Denne bærbare er en handske med forlængelige fingerspidser med knapper fastgjort til enden, programmeret til at give enestående vibrationsfeedback til brugeren baseret på den specifikke knap, der skubbes.
Trin 1: Komponenter påkrævet til opsætning af knap til vibrationsmotor
- Arduino Uno
- Brødbræt
- Coin Vibrator Vibration Motor
- Grove -knap
- Mand-til-mand jumperwire (x10)
- Jumper Wire 4 Pin
- Haptic motor driver
- Mand-til-hun-kantstik
- Loddekolbe
Trin 2: Skemaer for opsætning af knap til vibrationsmotor
Det foregående diagram blev oprettet med Fritzing.org.
Trin 3: Opsætning af knap til vibrationsmotoropsætning
Trin 1: Loddet kantstikket til vibrationsmotordriveren. Lod lodtrådene på møntvibratoren ind i terminalerne på vibrationsmotordriveren.
Trin 2: Tilslut 4 -polet jumperkabel til knapbrud.
Trin 3: Brug en af jumpertrådene til at slutte GRD -stiften på Arduino til en række på brødbrættet.
Trin 4: Tilslut Volt 3.3 -stiften på Arduino til en anden række på brødbrættet ved hjælp af en anden jumper wire.
Trin 5: Nu vil vi forbinde vibrationsmotordriveren til Arduino. Brug en tredje jumper wire, tilslut GND -stiften på vibrationsmotorens driver til den samme række på brødbrættet som GRD -stiften fra Arduino. Gør det samme med en anden ledning til VCC (volt) på vibrationsmotordriveren til voltrækken på brødbrættet.
Trin 6: Brug endnu en ledning til at forbinde SDA -stiften på vibrationsmotordriveren til SDA -stiften direkte på Arduino. Igen, gør det samme med SCL -benene på begge. Alternativt kan du følge en lignende tilgang til trin 5 og forbinde SDA- og SCL -benene på Arduino til deres egne rækker på brødbrættet via jumperwires. Kør derefter en ledning fra rækken, hvor SDA -stiften er forbundet på brødbrættet til SDA -stiften på motordriveren. Gør det samme for SCL -rækken på brødbrættet med SCL -stiften på motordriveren.
Trin 7: Nu afslutter vi med at forbinde knappen til vibrationsmotordriveren og Arduino. Brug en anden jumper wire til at forbinde GRD'en fra 4 -pin jumper wire forbundet til knappen breakout til den samme række som de andre GRD ledninger på brødbrættet. Gør det samme med volt igen (VCC).
Trin 8: Tilslut en sidste skrivning fra SIG på knapudbruddet til en pin på Arduino (i forbindelse med vores kode brugte vi pin 7).
Trin 9: Tilslut Arduino, og upload koden, og se den fungere!
Trin 4: Koden
Knap-vibrationsmotor. C
/ * Kode tilpasset fra https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */ |
#omfatte |
#omfatte |
SFE_HMD_DRV2605L HMD; // Opret haptisk motordriverobjekt |
int -knap = 7; // vælg input -pin 7 til trykknap |
int button_val = 0; // variabel til aflæsning af pin -status |
voidsetup () |
{ |
/ * Initialiser Haptic Motor Driver Object */ |
HMD.begynd (); |
Serial.begin (9600); |
HMD. Mode (0); // Intern udløserindgangstilstand - Skal bruge GO () -funktionen til at udløse afspilning. |
HMD. MotorSelect (0x36); // ERM -motor, 4x bremsning, Medium loop gain, 1.365x tilbage EMF gain |
HMD. Library (2); // 1-5 & 7 for ERM-motorer, 6 for LRA-motorer |
} |
voidloop () |
{ |
/ * Start vibrationsmotoren */ |
HMD.go (); |
button_val = digitalRead (knap); |
hvis (button_val == HIGH) { |
/* Denne output til at logge den knap er blevet trykket på, brug til debugginh*/ |
Serial.println ("Knap trykket."); |
/ * Bølgeformbiblioteket har 0-122 forskellige typer bølger */ |
HMD. Waveform (0, 69);} |
andet{ |
/ * Hvis der ikke trykkes på knappen, skal du stoppe vibrationsmotoren */ |
HMD.stop (); |
} |
} |
se rawButton-Vibration-Motor.c hostet af ❤ af GitHub
Trin 5: Video af opsætning af knap til vibrationsmotor
Trin 6: Prototype af handskeforlængelig
En mulig anvendelse af knappen på vibrationsmotoren er handsken vist ovenfor. Vi har ændret billigt tilgængelige materialer som sprøjter for at gøre forlængelige "fingerspidser". Vi fastgjorde lundknapperne til enden af de modificerede sprøjter ved hjælp af velcro, skar huller i fingerspidserne på en handske og placerede hver sprøjte gennem hullerne. Knappernes 4 -polede jumperwires er trådet gennem sprøjterne og er lange nok til, at du kan forlænge sprøjterne til deres fulde længde. Arduino og brødbræt er fastgjort via velcro til toppen af handsken, hvilket gør det muligt at tilslutte knappernes ledninger let gennem en lille spalte på bunden af hver fingerspids. Motorføreren er fastgjort til handskens underside ved åbningen for at holde vibrationsmotoren fast på handskens inderside. Når brugeren har handsken på, sidder vibrationsmotoren på undersiden af brugerens håndled. Når brugeren rører ved en overflade og trykker på en af knapperne, gives der en unik feedback -vibration gennem motoren.
Tankeprocessen bag en sådan handske ville være at lade nogen, der bærer den, "røre" ting ud over deres normale fingerspidser og modtage feedback om, at de rører ved disse overflader. Vibrationsfeedbacken ændres afhængigt af hvilken finger der rører overfladen, så det er muligt for brugeren at fortælle hvilken finger der rører overfladen baseret på vibrationsmønsteret.
Der er mange måder at tage prototypen videre på, f.eks. Ved at gøre fingrene mere forlængelige eller foretage feedbackændringen baseret på den type overflade, der skal røres. Ideelt set ville der blive skabt forlængelige fingre via 3D -udskrivning for bedre teleskopmuligheder. En temperatursensor kan bruges i stedet for knapperne for at give feedback om, hvor varm overfladen brugeren rører, eller en fugtføler til lignende formål. En måde at mærke, hvor langt "fingeren" er blevet forlænget, kan implementeres, for at give brugeren mulighed for at vide, hvor langt væk objektet, de berører, er. Dette er kun et par mulige muligheder for at tage denne prototype videre.
Denne handske kan laves med almindelige materialer som en let måde at udvide dine sanser og skabe feedback, som brugeren kan mærke og forstå.
Trin 7: Kode til flere knapper med unik vibrationsoutput
mutliple_buttons_to_vibmotor.ino
/ * Kode tilpasset fra SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */ |
#omfatte |
#omfatte |
SFE_HMD_DRV2605L HMD; // Opret haptisk motordriverobjekt |
int button_middle = 7; |
int button_index = 5; // vælg input -pin til trykknap |
int button_ring = 9; |
int button_pinky = 3; |
voidsetup () |
{ |
HMD.begynd (); |
Serial.begin (9600); |
HMD. Mode (0); // Intern udløserindgangstilstand - Skal bruge GO () -funktionen til at udløse afspilning. |
HMD. MotorSelect (0x36); // ERM -motor, 4x bremsning, Medium loop gain, 1.365x tilbage EMF gain |
HMD. Library (2); // 1-5 & 7 for ERM-motorer, 6 for LRA-motorer |
} |
voidloop () |
{ |
HMD.go (); // start vibrationsmotoren |
/ * Kontroller, hvilken knap der er trykket på, og udsend bølgeform 0-122 */ |
hvis (digitalRead (button_middle) == HIGH) { |
Serial.println ("Knap trykket."); |
HMD. Waveform (0, 112);} |
elseif (digitalRead (button_index) == HIGH) { |
HMD. Bølgeform (0, 20); |
} |
elseif (digitalRead (button_ring) == HIGH) { |
HMD. Bølgeform (0, 80); |
} |
elseif (digitalRead (button_pinky) == HIGH) { |
HMD. Bølgeform (0, 100); |
} |
/ * Hvis der ikke trykkes på en knap, skal du stoppe */ |
andet{ |
HMD.stop (); |
} |
} |
se rawmutliple_buttons_to_vibmotor.ino hostet af ❤ af GitHub
Anbefalede:
ANDROID -ANVENDELSE KONTROLLERET ENKEL RGB LED DESKTOP LAMP: 5 trin
ANDROID -ANVENDELSE KONTROLLERET ENKEL RGB LED DESKTOP LAMP: så i denne vejledning vil jeg vise dig, hvordan du styrer rgb led med Android -smartphone. RGB -lysdioder arbejder på det grundlæggende koncept for kombination af grundfarverne i enhver nuance, det vil sige rød, grøn og blå. Alle farverne har denne elementære farvekomponent
RGB USB -tastatur med en knap: 6 trin (med billeder)
RGB USB -tastatur med en knap: Har du nogensinde følt behov for at have et lille, men funktionelt, RGB -baggrundsbelyst tastatur, der ikke er større end størrelsen på en enkelt tast? Ingen? Hvem bekymrer sig, lav en alligevel! Denne instruktive vil guide dig gennem de trin, du har brug for for at gøre din helt egen, lidt ubrugelig, på
Kapacitiv udvidelig markør: 4 trin
Kapacitiv udvidelig markør: Kapacitiv berøringsteknologi er meget almindelig i dag, især i køkkenindstillinger. For mennesker med en mindre statur eller begrænset rækkevidde kan det være svært at få adgang til kontrollerne til disse teknologier. Konventionelle udvidelsespunkter fungerer ikke, fordi
Udvidelig håndholdt Gimbal til GoPro/SJ4000/Xiaomi Yi/iLook: 9 trin (med billeder)
Udvidelig håndholdt Gimbal til GoPro/SJ4000/Xiaomi Yi/iLook: Denne vejledning guider dig til, hvordan du hacker en selfie -stick og en 2D Gimbal for at lave en forlængelig håndholdt gimbal, der kan montere kameraer som GoPro SJ4000/5000/6000 Xiaomi Yi Walkera iLook. En Gimbal er en stabiliseringsmekanisme, der
Master din mikro: bit med Arduino IDE-knap og anden GPIO: 3 trin (med billeder)
Master din mikro: bit Med Arduino IDE-Knap og anden GPIO: I vores tidligere blog Master din mikro: bit med Arduino IDE - - Light LED, vi har talt om, hvordan du installerer micro: bit bibliotek på Arduino IDE og hvordan at drive LED på micro: bit med Arduino IDE. I denne artikel vil vi fortælle dig h