Թրթռումային արձագանքով ընդլայնվող կոճակի կիրառում. 7 քայլ (նկարներով)
Թրթռումային արձագանքով ընդլայնվող կոճակի կիրառում. 7 քայլ (նկարներով)
Anonim
Թրթռումային արձագանքով ընդլայնվող կոճակի կիրառում
Թրթռումային արձագանքով ընդլայնվող կոճակի կիրառում
Թրթռումային արձագանքով ընդլայնվող կոճակի կիրառում
Թրթռումային արձագանքով ընդլայնվող կոճակի կիրառում

Այս ձեռնարկում մենք նախ ցույց կտանք ձեզ, թե ինչպես օգտագործել Arduino Uno- ն երկարացված կոճակի միջոցով թրթռման շարժիչը կառավարելու համար: Սեղմման կոճակների վերաբերյալ ձեռնարկների մեծ մասը ներառում է ֆիզիկական սեղանի վրա դրված կոճակը, մինչդեռ այս ձեռնարկում կոճակը փոխվել է ՝ փոխարենը ցատկող մալուխների միջոցով միանալով սեղանին: Այս կոճակը թույլ կտա վերահսկել շարժիչի ուժն ու թրթռումը: Դրանից հետո մենք ցույց կտանք կրելի տեխնոլոգիայի հնարավոր նախատիպը, որն օգտագործում է այս կարգավորումը: Այս կրելիը ձեռքի երկարաձգվող ձեռնոց է, որի ծայրերը ամրացված են կոճակներով և ծրագրված են հատուկ թրթռումային արձագանքներ հաղորդելու կրողին ՝ հիմնված հատուկ սեղմված կոճակի վրա:

Քայլ 1. Բաղադրիչներ, որոնք անհրաժեշտ են թրթռման շարժիչի կարգավորման կոճակի համար

Շարժիչի թրթռման կարգավորման կոճակի համար անհրաժեշտ բաղադրիչներ
Շարժիչի թրթռման կարգավորման կոճակի համար անհրաժեշտ բաղադրիչներ
  • Արդուինո Ունո
  • Breadboard
  • Coin Vibrator Vibration Motor
  • Grove Button
  • Արականից տղամարդու ցատկող լարեր (x10)
  • Jumper Wire 4 պին
  • Haptic շարժիչի վարորդ
  • Արականից իգական եզրերի միակցիչ
  • Sոդման երկաթ

Քայլ 2. Շարժիչի թրթռման կոճակի սխեմաներ

Թրթռման շարժիչի կարգավորման կոճակի սխեմաներ
Թրթռման շարժիչի կարգավորման կոճակի սխեմաներ

Նախորդ դիագրամը ստեղծվել է Fritzing.org- ի միջոցով:

Քայլ 3. Կոճակի կարգավորումը թրթռման շարժիչի կարգավորմանը

Քայլ 1. edgeոդեք եզրային միակցիչը թրթռման շարժիչի վարորդին: Մետաղադրամի թրթռիչի լարերը միացրեք թրթռման շարժիչի վարորդի տերմինալներին:

Քայլ 2. Միացրեք 4 փին ցատկող մալուխը կոճակի ճեղքմանը:

Քայլ 3. Օգտագործելով ցատկող լարերից մեկը, միացրեք ARDINO- ի GRD կապը Arduino- ի տողին `տախտակի վրա:

Քայլ 4. Օգտագործելով մեկ այլ ցատկող մետաղալար, Arduino- ի Volt 3.3 կապը միացրեք տախտակի վրա դրված այլ շարքին:

Քայլ 5. Այժմ մենք թրթռման շարժիչի վարորդը կկապենք Arduino- ին: Երրորդ թռիչքային մետաղալարով միացրեք թրթռման շարժիչի վարորդի GND կապը տախտակի նույն տողին, ինչ Arduino- ի GRD կապը: Նույնը կատարեք VCC- ի (վոլտ) համար մեկ այլ մետաղալարով `թրթռման շարժիչի շարժիչի վրա` մինչև տախտակի վոլտ շարքը:

Քայլ 6. Օգտագործեք ևս մեկ մետաղալար ՝ թրթռման շարժիչի վարորդի SDA կապը միացնելու համար SDA կապին անմիջապես Arduino- ում: Կրկին, նույնը արեք երկուսի վրա SCL կապում: Այլապես, հետևեք նմանատիպ մոտեցմանը 5 -րդ քայլին և միացրեք Arduino- ի SDA և SCL կապումներն Arduino- ի իրենց իսկ տողերին `տախտակի վրա` jumper լարերի միջոցով: Այնուհետև մի մետաղալար անցկացրեք այն տողից, որտեղ SDA- ի քորոցը միացված է տախտակի վրա և շարժիչի վարորդի SDA- ի քորոցին: Նույնը արեք տախտակի վրա SCL տողի համար մինչև շարժիչի վարորդի SCL կապը:

Քայլ 7: Այժմ մենք կավարտենք ՝ կոճակը միացնելով թրթռման շարժիչի վարորդին և Arduino- ին: Օգտագործեք մեկ այլ jumper մետաղալար `GRD- ն կոճակի ճեղքման հետ միացված 4 փինային jumper մետաղալարից միացնելու համար նույն տողին, ինչ հացաթղթի մյուս GRD լարերը: Նույնը արեք վոլտով ևս մեկ անգամ (VCC):

Քայլ 8. Միացրեք SIG- ից կոճակի բացման վերջնական գրառումը Arduino- ի քորոցին (մեր կոդի նպատակների համար մենք օգտագործել ենք 7 -րդ կապը):

Քայլ 9. Միացրեք Arduino- ն և վերբեռնեք կոդը և դիտեք, թե ինչպես է այն աշխատում:

Քայլ 4: Կոդ

Կոճակ-թրթռում-շարժիչ. Գ

/ * Կոդ ՝ հարմարեցված https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide?_ga=2.227031901.1514248658.1513372975-1149214600.1512613196 */
#ներառում// SparkFun Haptic Motor Driver Library
#ներառում// I2C գրադարան
SFE_HMD_DRV2605L HMD; // Ստեղծեք հեպտիկ շարժիչի վարորդի օբյեկտ
int կոճակ = 7; // կոճակի համար ընտրեք մուտքի 7 -րդ կապը
int button_val = 0; // փոփոխական ՝ քորոցի կարգավիճակը կարդալու համար
voidsetup ()
{
/ * Initialize Haptic Motor Driver Object */
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Ներքին ձգան մուտքագրման ռեժիմ - նվագարկումը սկսելու համար պետք է օգտագործել GO () գործառույթը:
HMD. MotorSelect (0x36); // ERM շարժիչ, 4x արգելակում, միջին օղակի շահույթ, 1.365x ետ EMF շահույթ
HMD. Գրադարան (2); // 1-5 և 7 ERM շարժիչների համար, 6 LRA շարժիչների համար
}
voidloop ()
{
/ * Սկսեք թրթռման շարժիչը */
HMD.go ();
button_val = digitalRead (կոճակ);
եթե (button_val == HIGH) {
/* Այս կոճակը մուտքագրելու համար արդյունքները սեղմված են, օգտագործեք debugginh*/
Serial.println («Կոճակը սեղմված է»);
/ * Ալիքի ձևի գրադարանը ունի 0-122 տարբեր տեսակի ալիքներ */
HMD. Ալիքի ձև (0, 69);}
ուրիշ {
/ * Եթե կոճակը չի սեղմվում, ապա դադարեցրեք թրթռման շարժիչը */
HMD.stop ();
}
}

դիտել rawButton-Vibration-Motor.c- ն, որը տեղակայված է it -ի կողմից GitHub- ի կողմից

Քայլ 5. Տեսանյութ ՝ թրթռման շարժիչի կարգավորման կոճակի մասին

Image
Image

Քայլ 6: Ձեռնոցի ընդլայնման նախատիպ

Ձեռնոցի ընդլայնման նախատիպ
Ձեռնոցի ընդլայնման նախատիպ
Ձեռնոցի ընդլայնման նախատիպ
Ձեռնոցի ընդլայնման նախատիպ

Վիբրացիայի շարժիչի վրա կոճակի հնարավոր կիրառումը վերևում ցուցադրված ձեռնոցն է: Մենք փոփոխել ենք էժան մատչելի նյութերը, ինչպիսիք են ներարկիչները, երկարաձգվող «մատների ծայրերը» պատրաստելու համար: Մենք ամրացրեցինք պուրակի կոճակները փոփոխված ներարկիչների ծայրին ՝ օգտագործելով Velcro, ձեռքի մատների ծայրերում կտրեցինք անցքեր և յուրաքանչյուր ներարկիչ տեղադրեցինք անցքերի միջով: Կոճակների 4 պտտվող լարերը պտտվում են ներարկիչների միջով և բավական երկար են, որպեսզի ներարկիչները կարողանաք ամբողջ երկարությամբ երկարացնել: Arduino- ն և տախտակը կցվում են velcro- ի միջոցով ձեռնոցի վերևին, ինչը թույլ է տալիս կոճակների լարերը հեշտությամբ միացնել յուրաքանչյուր մատի հիմքի վրա գտնվող փոքր ճեղքի միջոցով: Շարժիչի վարորդը կցված է ձեռնոցի ներքևի հատվածին բացվածքով, որպեսզի թրթռման շարժիչը կպչի ձեռնոցի ներքին կողմին: Երբ կրողը ձեռնոց է հագնում, թրթռման շարժիչը նստում է կրողի դաստակի ներքևի մասում: Երբ կրողը դիպչում է մակերեսին և սեղմում կոճակներից մեկը, շարժիչի միջոցով հաղորդվում է յուրահատուկ հետադարձ թրթռում:

Նման ձեռնոցի հիմքում ընկած կլինի այն, որ այն կրող մեկին թույլ տա «դիպչել» իր սովորական մատների ծայրերից դուրս գտնվող իրերին և հետադարձ կապ ստանալ, որ դիպչում է այս մակերեսներին: Թրթռման հետադարձ կապը փոխվում է ՝ կախված մատի մակերեսին դիպչելուց, այնպես որ թրթռման ձևի հիման վրա օգտագործողը կարող է ասել, թե որ մատն է դիպչում մակերեսին:

Նախատիպը հետագա տանելու բազմաթիվ եղանակներ կան, օրինակ ՝ մատներն ավելի երկարաձգելի դարձնելը կամ հետադարձ կապի փոփոխությունը ՝ հպված մակերեսի տեսակից ելնելով: Իդեալում, երկարաձգվող մատները կստեղծվեին 3D տպագրության միջոցով ՝ աստղադիտակի ավելի լավ տարբերակների համար: Կոճակների փոխարեն կարող է օգտագործվել ջերմաստիճանի տվիչ, որը թույլ կտա հետադարձ կապ հաստատել այն մասին, թե որքան տաք է մակերեսը, որը դիպչում է օգտագործողը, կամ խոնավության տվիչ `նմանատիպ նպատակների համար: Կարող է կիրառվել «մատը» հասկանալու հեռավորությունը, որը թույլ կտա օգտվողին իմանալ, թե որքան հեռու է այն առարկան, որին դիպչում են: Սրանք ընդամենը մի քանի հնարավոր տարբերակներ են `այս նախատիպը հետագայում տանելու համար:

Այս ձեռնոցը կարող է պատրաստվել սովորական նյութերով ՝ որպես ձեր զգայարանները երկարացնելու և հետադարձ կապ ստեղծելու հեշտ միջոց, որը օգտագործողը կարող է զգալ և հասկանալ:

Քայլ 7: Կոդի կոճակների համար թրթռման եզակի ելք

mutliple_buttons_to_vibmotor.ino

/ * Կոդը հարմարեցված է SparkFun- ից https://learn.sparkfun.com/tutorials/haptic-motor-driver-hook-up-guide */
#ներառում// SparkFun Haptic Motor Driver Library
#ներառում// I2C գրադարան
SFE_HMD_DRV2605L HMD; // Ստեղծեք հեպտիկ շարժիչի վարորդի օբյեկտ
int button_middle = 7;
int button_index = 5; // ընտրեք սեղմման կոճակի մուտքի քորոցը
int button_ring = 9;
int button_pinky = 3;
voidsetup ()
{
HMD.begin ();
Serial.begin (9600);
HMD. Mode (0); // Ներքին ձգան մուտքագրման ռեժիմ - նվագարկումը սկսելու համար պետք է օգտագործել GO () գործառույթը:
HMD. MotorSelect (0x36); // ERM շարժիչ, 4x արգելակում, միջին օղակի շահույթ, 1.365x ետ EMF շահույթ
HMD. Գրադարան (2); // 1-5 և 7 ERM շարժիչների համար, 6 LRA շարժիչների համար
}
voidloop ()
{
HMD.go (); // միացրեք թրթռման շարժիչը
/ * Ստուգեք, թե որ կոճակն է սեղմված և թողնում ալիքի ձևը 0-122 *//
եթե (digitalRead (button_middle) == HIGH) {
Serial.println («Կոճակը սեղմված է»);
HMD. Ալիքի ձև (0, 112);}
elseif (digitalRead (button_index) == Բարձր) {
HMD. Ալիքի ձև (0, 20);
}
elseif (digitalRead (button_ring) == HIGH) {
HMD. Ալիքի ձև (0, 80);
}
elseif (digitalRead (button_pinky) == Բարձր) {
HMD. Ալիքի ձև (0, 100);
}
/ * Եթե ոչ մի կոճակ չի սեղմվել, ապա կանգ առեք */
ուրիշ {
HMD.stop ();
}
}

դիտել rawmutliple_buttons_to_vibmotor.ino հյուրընկալված ❤ -ի կողմից GitHub- ի կողմից

Խորհուրդ ենք տալիս: