Turinys:
- 1 veiksmas: komponentai, reikalingi mygtuko vibracijai variklio nustatymui
- 2 veiksmas: mygtuko ir vibracijos variklio nustatymo schemos
- 3 žingsnis: mygtuko nustatymas vibraciniam varikliui nustatyti
- 4 žingsnis: Kodas
- 5 veiksmas: mygtuko į vibracijos variklio nustatymą vaizdo įrašas
- 6 žingsnis: ištraukiamos pirštinės prototipas
- 7 veiksmas: kelių mygtukų, turinčių unikalią vibracijos išvestį, kodas
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šioje pamokoje pirmiausia parodysime, kaip naudoti „Arduino Uno“vibraciniam varikliui valdyti naudojant išplėstinį mygtuką. Dauguma mokomųjų mygtukų su mygtukais apima fizinės duonos lentos mygtuką, tuo tarpu šioje pamokoje mygtukas buvo pakeistas taip, kad būtų prijungtas prie duonos lentos per jungiamąjį kabelį. Šis mygtukas leis jums valdyti variklio stiprumą ir vibracijos modelį. Po to parodysime galimą nešiojamos technologijos prototipą, naudojantį šią sąranką. Ši dėvima pirštinė su ištiesiamais pirštų galais, kurių gale pritvirtinti mygtukai, suprogramuoti taip, kad dėvėtojui suteiktų unikalų vibracijos grįžtamąjį ryšį, remiantis konkrečiu paspaustu mygtuku.
1 veiksmas: komponentai, reikalingi mygtuko vibracijai variklio nustatymui
- Arduino Uno
- Bandomoji Lenta
- Monetų vibratoriaus vibracijos variklis
- Grove Button
- Sujungimo laidai nuo vyrų iki vyrų (x10)
- Jumper Wire 4 Pin
- Haptic variklio vairuotojas
- Vyrų ir moterų krašto jungtis
- Lituoklis
2 veiksmas: mygtuko ir vibracijos variklio nustatymo schemos
Ankstesnė schema buvo sukurta naudojant Fritzing.org.
3 žingsnis: mygtuko nustatymas vibraciniam varikliui nustatyti
1 žingsnis: Lituokite krašto jungtį prie vibracinio variklio tvarkyklės. Lituokite monetų vibratoriaus laidus į vibracinio variklio tvarkyklės gnybtus.
2 veiksmas: prijunkite 4 kontaktų trumpiklį prie mygtukų išjungimo.
3 veiksmas: naudodami vieną iš jungiamųjų laidų, prijunkite „Arduino“GRD kaištį prie duonos lentos eilutės.
4 veiksmas: naudodami kitą jungiamąjį laidą, prijunkite „Arduino“„Volt 3.3“kaištį prie kitos lentos lentos.
5 žingsnis: Dabar mes prijungsime vibracinio variklio tvarkyklę prie „Arduino“. Naudodami trečiąjį trumpiklį, prijunkite vibracinio variklio tvarkyklės GND kaištį prie tos pačios duonos lentos eilutės kaip ir „Arduino“GRD kaištis. Tą patį padarykite su kitu vibracinio variklio tvarkyklės VCC (volt) laidu prie duonos lentos voltų eilės.
6 veiksmas: naudokite dar vieną laidą, kad prijungtumėte vibracinio variklio tvarkyklės SDA kaištį prie SDA kaiščio tiesiai ant „Arduino“. Vėlgi darykite tą patį su abiejų SCL kaiščiais. Arba laikykitės panašaus požiūrio į 5 veiksmą ir prijunkite „Arduino“SDA ir SCL kaiščius prie savo eilių duonos lentoje per trumpiklius. Tada iš eilės, kurioje SDA kaištis prijungtas prie duonos lentos, sujunkite laidą su variklio tvarkyklės SDA kaiščiu. Tą patį padarykite su SCL eilute ant duonos lentos iki variklio tvarkyklės SCL kaiščio.
7 žingsnis: Dabar baigsime prijungę mygtuką prie vibracinio variklio tvarkyklės ir „Arduino“. Naudokite kitą jungiamąjį laidą, kad prijungtumėte GRD nuo 4 kontaktų jungiamojo laido, prijungto prie mygtukų pertraukos, prie tos pačios eilutės kaip ir kiti GRD laidai ant lentos. Dar kartą atlikite tą patį su voltu (VCC).
8 veiksmas: prijunkite galutinį SIG įrašymą iš mygtuko išjungimo prie „Arduino“kaiščio (mūsų kodo tikslais naudojome 7 kaištį).
9 veiksmas: prijunkite „Arduino“ir įkelkite kodą ir žiūrėkite, kaip jis veikia!
4 žingsnis: Kodas
Mygtuko vibracijos variklis.c
/ * Kodas pritaikytas iš https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */ |
#įtraukti |
#įtraukti |
SFE_HMD_DRV2605L HMD; // Sukurkite haptinį variklio tvarkyklės objektą |
int mygtukas = 7; // pasirinkite mygtuko įvesties kaištį 7 |
int mygtukas_val = 0; // kintamasis, skirtas nuskaityti kaiščio būseną |
voidsetup () |
{ |
/ * Inicijuokite „Haptic“variklio tvarkyklės objektą */ |
HMD.begin (); |
Serial.begin (9600); |
HMD. Režimas (0); // Vidinio trigerio įvesties režimas - norint suaktyvinti atkūrimą, reikia naudoti GO () funkciją. |
HMD. MotorSelect (0x36); // ERM variklis, 4x stabdymas, vidutinis kilpos padidėjimas, 1,365x atgalinis EMF padidėjimas |
HMD. Biblioteka (2); // 1-5 ir 7 ERM varikliams, 6 LRA varikliams |
} |
voidloop () |
{ |
/ * Paleiskite vibracinį variklį */ |
HMD.go (); |
button_val = digitalRead (mygtukas); |
if (button_val == HIGH) { |
/* Ši išvestis užregistruoja, kad buvo paspaustas mygtukas, naudokite derinimui*/ |
Serial.println („Paspaustas mygtukas“); |
/ * Bangų formos bibliotekoje yra 0–122 skirtingų tipų bangos */ |
HMD. Bangos forma (0, 69);} |
Kitas{ |
/ * Jei mygtukas nepaspaudžiamas, sustabdykite vibracinį variklį */ |
HMD.stop (); |
} |
} |
peržiūrėti rawButton-Vibration-Motor.c, kurį su ❤ priglobia „GitHub“
5 veiksmas: mygtuko į vibracijos variklio nustatymą vaizdo įrašas
6 žingsnis: ištraukiamos pirštinės prototipas
Vienas iš galimų mygtukų pritaikymo vibraciniam varikliui yra aukščiau parodyta pirštinė. Mes modifikavome pigias, prieinamas medžiagas, tokias kaip švirkštai, kad būtų galima išplėsti pirštų galiukus. Mes pritvirtinome giraitės mygtukus prie modifikuotų švirkštų galo, naudodami velcro, iškirpome skylutes pirštinių pirštų galiukais ir kiekvieną švirkštą įkišome per skyles. Mygtukų 4 kontaktų jungiamieji laidai yra įsukti per švirkštus ir yra pakankamai ilgi, kad galėtumėte ištempti švirkštus iki viso ilgio. „Arduino“ir duonos lentos per pirštinės viršų pritvirtintos per velcro, todėl mygtukų laidus galima lengvai sujungti per mažą plyšį ant kiekvieno piršto pagrindo. Variklio vairuotojas prie angos yra pritvirtintas prie pirštinės apačios, kad vibracinis variklis būtų priklijuotas prie pirštinės vidinės pusės. Kai dėvėtojas turi pirštinę, vibracijos variklis sėdi apatinėje naudotojo riešo pusėje. Kai dėvėtojas paliečia paviršių ir paspaudžia vieną iš mygtukų, per variklį skleidžiama unikali grįžtamoji vibracija.
Mąstymo procesas už tokios pirštinės būtų toks, kad jį dėvintis žmogus galėtų „liesti“daiktus, esančius už įprastų pirštų galiukų ribų, ir gauti atsiliepimų, kad jie liečia šiuos paviršius. Vibracijos grįžtamasis ryšys keičiasi priklausomai nuo to, kuris pirštas liečia paviršių, kad vartotojas galėtų pagal vibracijos modelį pasakyti, kuris pirštas liečia paviršių.
Yra daug būdų, kaip išplėsti prototipą, pavyzdžiui, padaryti pirštus labiau ištiesiamus arba pakeisti grįžtamąjį ryšį, atsižvelgiant į liečiamo paviršiaus tipą. Idealiu atveju ištraukiami pirštai būtų sukurti naudojant 3D spausdinimą, kad būtų galima geriau teleskopuoti. Vietoj mygtukų būtų galima naudoti temperatūros jutiklį, kad būtų galima sužinoti, koks karštas paviršius liečiasi, arba drėgmės jutiklį, skirtą panašiems tikslams. Galima būtų suprasti, kaip toli buvo ištiestas „pirštas“, kad vartotojas galėtų žinoti, kiek toli yra objektas, kurį jie liečia. Tai tik keletas galimų variantų, kaip toliau plėtoti šį prototipą.
Ši pirštinė gali būti pagaminta iš įprastų medžiagų, nes tai yra paprastas būdas išplėsti savo pojūčius ir sukurti grįžtamąjį ryšį, kurį vartotojas gali jausti ir suprasti.
7 veiksmas: kelių mygtukų, turinčių unikalią vibracijos išvestį, kodas
mutliple_buttons_to_vibmotor.ino
/ * Kodas pritaikytas iš „SparkFun“https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */ |
#įtraukti |
#įtraukti |
SFE_HMD_DRV2605L HMD; // Sukurkite haptinį variklio tvarkyklės objektą |
int button_middle = 7; |
int mygtukas_indeksas = 5; // pasirinkite mygtuko įvesties kaištį |
int mygtuko žiedas = 9; |
int button_pinky = 3; |
voidsetup () |
{ |
HMD.begin (); |
Serial.begin (9600); |
HMD. Režimas (0); // Vidinio trigerio įvesties režimas - norint paleisti atkūrimą, reikia naudoti GO () funkciją. |
HMD. MotorSelect (0x36); // ERM variklis, 4x stabdymas, vidutinis kilpos padidėjimas, 1,365x atgal EMF padidėjimas |
HMD. Biblioteka (2); // 1-5 ir 7 ERM varikliams, 6 LRA varikliams |
} |
voidloop () |
{ |
HMD.go (); // paleiskite vibracinį variklį |
/ * Patikrinkite, kuris mygtukas yra paspaustas, ir išveskite bangos formą 0-122 */ |
if (digitalRead (button_middle) == HIGH) { |
Serial.println („Paspaustas mygtukas“); |
HMD. Bangos forma (0, 112);} |
elseif (digitalRead (button_index) == HIGH) { |
HMD. Bangos forma (0, 20); |
} |
elseif (digitalRead (button_ring) == HIGH) { |
HMD. Bangos forma (0, 80); |
} |
elseif (digitalRead (button_pinky) == HIGH) { |
HMD. Bangos forma (0, 100); |
} |
/ * Jei nepaspaudžiamas joks mygtukas, sustabdykite */ |
Kitas{ |
HMD.stop (); |
} |
} |
peržiūrėti rawmutliple_buttons_to_vibmotor.ino, kurį su „❤“priglobia „GitHub“