Aplikácia predĺžiteľného tlačidla s vibračnou odozvou: 7 krokov (s obrázkami)
Aplikácia predĺžiteľného tlačidla s vibračnou odozvou: 7 krokov (s obrázkami)
Anonim
Aplikácia predĺžiteľného tlačidla s vibračnou odozvou
Aplikácia predĺžiteľného tlačidla s vibračnou odozvou
Aplikácia predĺžiteľného tlačidla s vibračnou odozvou
Aplikácia predĺžiteľného tlačidla s vibračnou odozvou

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

Súčiastky potrebné na nastavenie motora s gombíkovými a vibračnými motormi
Súčiastky potrebné na nastavenie motora s gombíkovými a vibračnými motormi
  • 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

Schémy nastavenia motora s gombíkovými vibráciami
Schémy nastavenia motora s gombíkovými vibráciami

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úť// Knižnica ovládačov hmatových motorov SparkFun
#zahrnúť// Knižnica I2C
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

Image
Image

Krok 6: Prototyp rukavice predĺžiteľný

Prototyp rukavice predĺžiteľný
Prototyp rukavice predĺžiteľný
Prototyp rukavice predĺžiteľný
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úť// Knižnica ovládačov hmatových motorov SparkFun
#zahrnúť// Knižnica I2C
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