Sisukord:

Pikendatava nupu rakendus koos vibratsiooni tagasisidega: 7 sammu (piltidega)
Pikendatava nupu rakendus koos vibratsiooni tagasisidega: 7 sammu (piltidega)

Video: Pikendatava nupu rakendus koos vibratsiooni tagasisidega: 7 sammu (piltidega)

Video: Pikendatava nupu rakendus koos vibratsiooni tagasisidega: 7 sammu (piltidega)
Video: Умные часы Mafam MX5: что нужно знать // Часы с телефонными звонками по Bluetooth 2024, November
Anonim
Vibratsiooni tagasisidega pikendatava nupu rakendus
Vibratsiooni tagasisidega pikendatava nupu rakendus
Vibratsiooni tagasisidega pikendatava nupu rakendus
Vibratsiooni tagasisidega pikendatava nupu rakendus

Selles õpetuses näitame teile kõigepealt, kuidas kasutada Arduino Unot vibratsioonimootori juhtimiseks laiendatud nupu kaudu. Enamik nuppude õpetusi hõlmab füüsilisel leivaplaadil olevat nuppu, samas kui selles õpetuses on nuppu muudetud nii, et see oleks ühendatud leivaplaadiga hüppajakaablite kaudu. See nupp võimaldab teil kontrollida mootori tugevust ja vibratsiooni. Pärast seda näitame seda seadistust kasutava kantava tehnoloogia võimalikku prototüüpi. See kantav on sõrmeotstega pikendatavate sõrmeotstega kinnas, mille otsa on kinnitatud nupud, mis on programmeeritud andma kandjale unikaalset vibratsiooni tagasisidet vastavalt konkreetsele vajutatud nupule.

Samm: nuppude vibratsioonimootori seadistamiseks vajalikud komponendid

Vibratsioonimootori seadistamiseks vajalikud komponendid
Vibratsioonimootori seadistamiseks vajalikud komponendid
  • Arduino Uno
  • Leivalaud
  • Mündivibraatori vibratsioonimootor
  • Grove Button
  • Meeste-meeste džemprijuhtmed (x10)
  • Jumper Traat 4 Pin
  • Haptic mootorijuht
  • Meeste-naiste servaühendus
  • Jootekolb

2. samm: nuppude vibratsioonimootori seadistamise skeemid

Nuppude vibratsioonimootori seadistamise skeemid
Nuppude vibratsioonimootori seadistamise skeemid

Eelnev diagramm loodi saidiga Fritzing.org.

3. samm: nupu seadistamine vibratsioonimootori seadistamiseks

Samm: jootke servapistik vibratsioonimootori draiveri külge. Jootke mündivibraatori juhtmed vibratsioonimootori juhi klemmidesse.

Samm 2: Ühendage 4 -kontaktiline hüppajakaabel nuppudega.

Samm: ühendage ühe hüppaja juhtmega Arduino GRD tihvt leivaplaadil oleva reaga.

Samm: ühendage teise hüppajajuhtme abil Arduino Volt 3.3 tihvt leivalaua teise reaga.

Samm: nüüd ühendame vibratsioonimootori draiveri Arduinoga. Ühendage kolmanda hüppajajuhtme abil vibratsioonimootori draiveri GND tihvt samale leivalaua reale kui Arduino GRD -tihvt. Tehke sama vibratsioonimootori draiveri VCC (volt) teise juhtmega leivaplaadi voltide reale.

Samm: kasutage veel ühte traati, et ühendada vibratsioonimootori draiveri SDA -tihvt otse Arduino SDA -tihvtiga. Jällegi tehke sama mõlema SCL -tihvtidega. Teise võimalusena järgige sarnast lähenemisviisi 5. sammule ja ühendage Arduino SDA- ja SCL -tihvtid hüppajajuhtmete kaudu leivalaua oma ridadega. Seejärel tõmmake traat reast, kus SDA tihvt on ühendatud leivaplaadil, mootori juhi SDA -tihvtiga. Tehke sama leivaplaadi SCL -rea puhul mootori juhi SCL -tihvtiga.

Samm 7: Nüüd lõpetame, ühendades nupu vibratsioonimootori draiveri ja Arduinoga. Kasutage mõnda muud hüppajajuhet, et ühendada GRD 4 -kontaktilise hüppaja juhtmest, mis on ühendatud nuppude katkestusega, samale reale kui teised GRD juhtmed leivaplaadil. Tehke sama uuesti voltidega (VCC).

Samm 8: Ühendage SIG -i lõplik kirjutus nupu väljalülitamisel Arduino tihvtiga (meie koodi jaoks kasutasime tihvti 7).

Samm: ühendage Arduino ja laadige kood üles ning vaadake, kuidas see töötab!

4. samm: kood

Nupp-vibratsioonimootor.c

/ * Kood kohandatud saidilt https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */
#kaasake// SparkFun Haptic Motor Driver Library
#kaasake// I2C raamatukogu
SFE_HMD_DRV2605L HMD; // Loo haptilise mootorijuhi objekt
int nupp = 7; // valige sisestusnõel 7 nupu jaoks
int nupp_val = 0; // muutuja pin -oleku lugemiseks
voidsetup ()
{
/ * Initsialiseeri Haptic Motor Driver Object */
HMD.begin ();
Seriaalne algus (9600);
HMD -režiim (0); // Sisemise päästiku sisestusrežiim - Taasesituse käivitamiseks tuleb kasutada funktsiooni GO ().
HMD. MotorSelect (0x36); // ERM -mootor, 4x pidurdamine, keskmise silmuse võimendus, 1,365x tagasi EMF -võimendus
HMD. Raamatukogu (2); // 1-5 ja 7 ERM mootorite jaoks, 6 LRA mootorite jaoks
}
tühjus ()
{
/ * Käivitage vibratsioonimootor */
HMD.go ();
button_val = digitalRead (nupp);
if (button_val == HIGH) {
/* See väljastab selle nupu vajutamise registreerimiseks, kasutage silumiseks*/
Serial.println ("Nupule vajutatud.");
/ * Lainekuju raamatukogus on 0-122 erinevat tüüpi laineid */
HMD. Lainekuju (0, 69);}
muu {
/ * Kui nuppu ei vajutata, siis peatage vibratsioonimootor */
HMD.stop ();
}
}

vaata rawButton-Vibration-Motor.c, mille hostiks on GitHub ❤

5. samm: video vibratsioonimootori seadistamisest

Image
Image

6. samm: kinnaste pikendatav prototüüp

Pikendatava kinda prototüüp
Pikendatava kinda prototüüp
Pikendatava kinda prototüüp
Pikendatava kinda prototüüp

Üks võimalik nupp vibratsioonimootorile on ülaltoodud kinnas. Oleme muutnud odavaid ligipääsetavaid materjale, näiteks süstlaid, et teha sirutatavaid sõrmeotsi. Kinnitasime salu nupud muudetud süstalde otsa takjakinnitusega, lõikasime kinda sõrmeotstesse augud ja panime iga süstla aukudest läbi. Nuppude 4 -kontaktilised hüppajajuhtmed on läbi süstlate keermestatud ja piisavalt pikad, et saaksite süstlaid täispikkuses välja tõmmata. Arduino ja leivaplaat on kinnitatud takjapaelaga kinda ülaosale, mis võimaldab nuppude juhtmeid hõlpsasti ühendada iga sõrmeotsa aluse väikese pilu kaudu. Mootorijuht on kinnitatud avause abil kinda alumise külje külge, et kleepida vibratsioonimootor kinnase siseküljele. Kui kandjal on kindad käes, istub vibratsioonimootor kandja randme allosas. Kui kandja puudutab pinda ja vajutab ühte nuppu, antakse mootori kaudu ainulaadne tagasisidevibratsioon.

Sellise kinda taga olev mõtteprotsess oleks võimaldada kellelgi, kes seda kannab, "puudutada" asju, mis jäävad nende tavaliste sõrmeotste ulatusest kaugemale, ja saada tagasisidet, et nad puudutavad neid pindu. Vibratsiooni tagasiside muutub sõltuvalt sellest, milline sõrm puudutab pinda, nii et kasutajal on vibratsioonimustri põhjal võimalik öelda, milline sõrm puudutab pinda.

Prototüübi edasiarendamiseks on palju võimalusi, näiteks sõrmede pikendamine või tagasiside muutmine vastavalt puudutatava pinna tüübile. Ideaalis luuakse pikendatavad sõrmed 3D -printimise abil, et saada paremaid teleskoopimisvõimalusi. Nuppude asemel võib kasutada temperatuuriandurit, mis annab tagasisidet selle kohta, kui kuum pind kasutaja puudutab, või niiskuseandurit sarnastel eesmärkidel. Võiks rakendada viisi, kuidas tajuda, kui kaugele sõrme on sirutatud, et kasutaja saaks teada, kui kaugel objekt, mida nad puudutavad, asub. Need on vaid mõned võimalikud võimalused selle prototüübi edasiarendamiseks.

Seda kinnast saab valmistada tavalistest materjalidest, et hõlbustada oma meeli laiendamist ja luua tagasisidet, mida kasutaja saab tunda ja mõista.

Samm: kordumatu vibratsiooniväljundiga mitme nupu kood

mutliple_buttons_to_vibmotor.ino

/ * Kood kohandatud SparkFunist https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#kaasake// SparkFun Haptic Motor Driver Library
#kaasake// I2C raamatukogu
SFE_HMD_DRV2605L HMD; // Loo haptilise mootorijuhi objekt
int nupu_keskmine = 7;
int nupu_indeks = 5; // valige nuppude sisendnõel
int nupu_ring = 9;
int nupp_roosa = 3;
voidsetup ()
{
HMD.begin ();
Seriaalne algus (9600);
HMD -režiim (0); // Sisemise päästiku sisestusrežiim - taasesituse käivitamiseks tuleb kasutada funktsiooni GO ().
HMD. MotorSelect (0x36); // ERM -mootor, 4x pidurdamine, keskmise silmuse võimendus, 1,365x tagasi EMF -võimendus
HMD. Raamatukogu (2); // 1-5 ja 7 ERM mootorite jaoks, 6 LRA mootorite jaoks
}
tühjus ()
{
HMD.go (); // käivitage vibratsioonimootor
/ * Kontrollige, millist nuppu vajutatakse, ja väljundi lainekuju 0-122 */
if (digitalRead (button_middle) == HIGH) {
Serial.println ("Nuppu vajutatud.");
HMD. Lainekuju (0, 112);}
elseif (digitalRead (button_index) == HIGH) {
HMD. Lainekuju (0, 20);
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Lainekuju (0, 80);
}
elseif (digitalRead (button_pinky) == HIGH) {
HMD. Lainekuju (0, 100);
}
/ * Kui ühtegi nuppu ei vajutata, siis peatu */
muu {
HMD.stop ();
}
}

vaata rawmutliple_buttons_to_vibmotor.ino, mille hostiks on GitHub ❤

Soovitan: