Obsah:
- Krok 1: Súčasti potrebné na nastavenie motora s gombíkovými vibráciami
- Krok 2: Schémy nastavenia motora s vibráciami pomocou tlačidla
- Krok 3: Nastavenie nastavenia tlačidla na vibračný motor
- Krok 4: Kód
- Krok 5: Video z nastavenia motora s gombíkovými vibráciami
- Krok 6: Prototyp rukavice predĺžiteľný
- Krok 7: Kód pre viac tlačidiel s unikátnym vibračným výstupom
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
V tomto návode vám najskôr ukážeme, ako používať Arduino Uno na ovládanie vibračného motora pomocou rozšíreného tlačidla. Väčšina návodov na používanie tlačidiel obsahuje tlačidlo na fyzickom nepájivom poli, zatiaľ čo v tomto návode bolo tlačidlo upravené tak, aby sa namiesto neho prepojilo s prepojovacím káblom pomocou prepojovacích káblov. Toto tlačidlo vám umožní ovládať silu a vzor vibrácií motora. Potom ukážeme možný prototyp nositeľnej technológie, ktorá využíva túto zostavu. Toto nositeľné rukavice sú predĺžiteľné končeky prstov s gombíkmi pripevnenými na konci, naprogramované tak, aby nositeľovi poskytovali jedinečnú vibračnú odozvu na základe konkrétneho stlačeného tlačidla.
Krok 1: Súčasti potrebné na nastavenie motora s gombíkovými vibráciami
- Arduino Uno
- Breadboard
- Vibračný vibračný motor na mince
- Grove Button
- Prepojovacie vodiče muž-muž (x10)
- Prepojovací vodič 4 pinový
- Ovládač haptického motora
- Konektor hrany muž-žena
- Spájkovačka
Krok 2: Schémy nastavenia motora s vibráciami pomocou tlačidla
Predchádzajúci diagram bol vytvorený na serveri Fritzing.org.
Krok 3: Nastavenie nastavenia tlačidla na vibračný motor
Krok 1: Pripojte okrajový konektor k ovládaču vibračného motora. Zapájajte vodiče mincového vibrátora do svoriek ovládača vibračného motora.
Krok 2: Pripojte 4 -kolíkový prepojovací kábel k oddeleniu tlačidiel.
Krok 3: Pomocou jedného z prepojovacích káblov prepojte kolík GRD na Arduine s radom na doske.
Krok 4: Ďalším prepojovacím káblom prepojte pin Volt 3,3 na Arduine s iným radom na doske.
Krok 5: Teraz pripojíme ovládač vibračného motora k Arduinu. Pomocou tretieho prepojovacieho vodiča prepojte kolík GND na budiči vibračného motora s rovnakým radom na doske ako s kolíkom GRD od Arduina. To isté urobte s iným vodičom pre VCC (volt) na budiči vibračného motora do voltového radu nepájivej dosky.
Krok 6: Na pripojenie kolíka SDA na ovládači vibračného motora k kolíku SDA priamo na Arduine použite ešte jeden vodič. To isté urobte znova s kolíkmi SCL na oboch. Prípadne postupujte podobne ako v kroku 5 a prepojte piny SDA a SCL na Arduine s prepojovacími vodičmi do vlastných radov na doske. Potom spustite drôt z radu, kde je kolík SDA prepojený na doske s kolíkom SDA na ovládači motora. To isté urobte s radom SCL na nepájivom poli na kolíku SCL na ovládači motora.
Krok 7: Teraz skončíme pripojením tlačidla k ovládaču vibračného motora a Arduinu. Použite iný prepojovací vodič na pripojenie GRD zo 4 -kolíkového prepojovacieho vodiča pripojeného k prerušeniu tlačidla do rovnakého radu ako ostatné drôty GRD na doske. To isté urobte s voltom ešte raz (VCC).
Krok 8: Pripojte konečný zápis zo SIG na úlomku tlačidla ku kolíku na Arduine (na účely nášho kódu sme použili pin 7).
Krok 9: Pripojte Arduino a nahrajte kód a sledujte, ako funguje!
Krok 4: Kód
Button-Vibration-Motor.c
/ * Kód upravený z https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */ |
#zahrnúť |
#zahrnúť |
SFE_HMD_DRV2605L HMD; // Vytvorenie objektu ovládača haptického motora |
tlačidlo int = 7; // zvoľte vstupný kolík 7 pre tlačidlo |
int button_val = 0; // premenná na čítanie stavu pinov |
voidsetup () |
{ |
/ * Inicializácia objektu ovládača haptického motora */ |
HMD.begin (); |
Serial.begin (9600); |
HMD. Mode (0); // Vstupný režim interného spúšťača - Na spustenie prehrávania musíte použiť funkciu GO (). |
HMD. MotorSelect (0x36); // Motor ERM, 4x brzdenie, zosilnenie strednej slučky, 1,365x spätný zisk EMF |
HMD. Library (2); // 1-5 & 7 pre motory ERM, 6 pre motory LRA |
} |
voidloop () |
{ |
/ * Spustite vibračný motor */ |
HMD.go (); |
button_val = digitalRead (tlačidlo); |
ak (button_val == VYSOKÉ) { |
/* Toto vydá protokol, že tlačidlo bolo stlačené, použite na ladenie*/ |
Serial.println ("Tlačidlo stlačené."); |
/ * Knižnica kriviek má 0-122 rôznych typov vĺn */ |
HMD. Waveform (0, 69);} |
inak { |
/ * Ak tlačidlo nestlačíte, zastavte vibračný motor */ |
HMD.stop (); |
} |
} |
zobraziť rawButton-Vibration-Motor.c hostiteľom ❤ od GitHub
Krok 5: Video z nastavenia motora s gombíkovými vibráciami
Krok 6: Prototyp rukavice predĺžiteľný
Jednou z možných aplikácií tlačidla na vibračný motor sú rukavice uvedené vyššie. Upravili sme lacné dostupné materiály, ako sú striekačky, aby sme vytvorili roztiahnuteľné „končeky prstov“. Grove gombíky sme pripevnili na koniec upravených striekačiek pomocou suchého zipsu, vyrezali otvory v končekoch prstov rukavice a každú striekačku sme umiestnili cez otvory. 4 -kolíkové prepojovacie gombíky tlačidiel sú prevlečené cez striekačky a sú dostatočne dlhé, aby ste ich mohli roztiahnuť na celú dĺžku. Arduino a doska na chlieb sú pripevnené pomocou suchého zipsu k hornej časti rukavice, čo umožňuje ľahké pripojenie vodičov tlačidiel pomocou malej štrbiny na spodnej časti každého prsta. Motorový vodič je pripevnený k spodnej strane rukavice otvorom, aby sa vibračný motor prilepil na vnútornú stranu rukavice. Keď má nositeľ rukavice nasadené, vibračný motor sedí na spodnej strane zápästia nositeľa. Keď sa užívateľ dotkne povrchu a stlačí jedno z tlačidiel, motorom sa ozve unikátna spätná vibrácia.
Myšlienkovým procesom takejto rukavice by bolo umožniť niekomu, kto ju nosí, „dotknúť sa“vecí mimo dosahu bežných prstov a získať spätnú väzbu, že sa týchto povrchov dotýka. Vibračná odozva sa mení v závislosti od toho, ktorý prst sa dotýka povrchu, takže je možné, aby používateľ podľa vibračného vzoru určil, ktorý prst sa dotýka povrchu.
Existuje mnoho spôsobov, ako posunúť prototyp ďalej, ako napríklad roztiahnutie prstov alebo zmena spätnej väzby podľa typu povrchu, ktorého sa dotýkate. V ideálnom prípade by boli roztiahnuteľné prsty vytvorené pomocou 3D tlače, aby sa získali lepšie možnosti teleskopických úprav. Namiesto tlačidiel je možné použiť teplotný senzor, ktorý poskytuje spätnú väzbu o tom, ako horúci je povrch, ktorého sa používateľ dotýka, alebo snímač vlhkosti na podobné účely. Je možné implementovať spôsob, ako vycítiť, ako ďaleko bol „prst“predĺžený, aby používateľ vedel, ako ďaleko je objekt, ktorého sa dotýkajú. Toto je len niekoľko možných možností, ako posunúť tento prototyp ďalej.
Tieto rukavice je možné vyrobiť z bežných materiálov ako jednoduchý spôsob, ako rozšíriť zmysly a vytvoriť spätnú väzbu, ktorú používateľ môže cítiť a porozumieť.
Krok 7: Kód pre viac tlačidiel s unikátnym vibračným výstupom
viacnásobné tlačidlá_na_vibmotor.ino
/ * Kód upravený zo SparkFun https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */ |
#zahrnúť |
#zahrnúť |
SFE_HMD_DRV2605L HMD; // Vytvorenie objektu ovládača haptického motora |
int button_middle = 7; |
int button_index = 5; // vyberte vstupný kolík pre tlačidlo |
int button_ring = 9; |
int button_pinky = 3; |
voidsetup () |
{ |
HMD.begin (); |
Serial.begin (9600); |
HMD. Mode (0); // Vstupný režim interného spúšťača - Na spustenie prehrávania musíte použiť funkciu GO (). |
HMD. MotorSelect (0x36); // Motor ERM, 4x brzdenie, zosilnenie strednej slučky, 1,365x spätný zisk EMF |
HMD. Library (2); // 1-5 & 7 pre motory ERM, 6 pre motory LRA |
} |
voidloop () |
{ |
HMD.go (); // spustite vibračný motor |
/ * Skontrolujte, ktoré tlačidlo je stlačené a výstupný priebeh 0-122 */ |
if (digitalRead (button_middle) == HIGH) { |
Serial.println ("Tlačidlo stlačené."); |
HMD. Waveform (0, 112);} |
elseif (digitalRead (button_index) == VYSOKY) { |
HMD. Waveform (0, 20); |
} |
elseif (digitalRead (button_ring) == VYSOKY) { |
HMD. Waveform (0, 80); |
} |
elseif (digitalRead (button_pinky) == VYSOKO) { |
HMD. Waveform (0, 100); |
} |
/ * Ak nestlačíte žiadne tlačidlo, zastavte */ |
inak { |
HMD.stop (); |
} |
} |
zobraziť rawmutliple_buttons_to_vibmotor.ino hostené s ❤ od GitHub