Բովանդակություն:

Վիբրոտակտիլ զգայական փոխարինման և ավելացման սարք (SSAD). 4 քայլ
Վիբրոտակտիլ զգայական փոխարինման և ավելացման սարք (SSAD). 4 քայլ

Video: Վիբրոտակտիլ զգայական փոխարինման և ավելացման սարք (SSAD). 4 քայլ

Video: Վիբրոտակտիլ զգայական փոխարինման և ավելացման սարք (SSAD). 4 քայլ
Video: SCP-261 Пан-мерное Торговый и эксперимент Войти 261 объявление Де + полный + 2024, Հուլիսի
Anonim
Վիբրոտակտիլային զգայական փոխարինման և ավելացման սարք (SSAD)
Վիբրոտակտիլային զգայական փոխարինման և ավելացման սարք (SSAD)
Վիբրոտակտիլ զգայական փոխարինման և ավելացման սարք (SSAD)
Վիբրոտակտիլ զգայական փոխարինման և ավելացման սարք (SSAD)

Այս նախագիծը նպատակ ունի հեշտացնել հետազոտությունները ensգայական փոխարինման և ընդլայնման ոլորտում: Ես հնարավորություն ունեցա իմ մագիստրոսական ատենախոսության մեջ ուսումնասիրել vibrotactile SSAD նախատիպերի կառուցման տարբեր եղանակներ: Քանի որ զգայական փոխարինումը և ավելացումը մի թեմա է, որը վերաբերում է ոչ միայն համակարգչային գիտնականներին, այլև այլ ոլորտների հետազոտողներին, ինչպես ճանաչողական գիտությունը, քայլ առ քայլ հրահանգը պետք է հնարավորություն տա էլեկտրոնիկայի և համակարգչային գիտության ոչ փորձագետներին հավաքել այս նախատիպը իրենց համար: հետազոտական նպատակներ:

Ես մտադիր չեմ գովազդել հենց մեկ տեսակի ապրանքանիշի/ապրանքի համար: Այս նախագիծը չի հովանավորվել որևէ ընկերության կողմից: Իմ օգտագործած նյութը ընտրվել է տեխնիկական բնութագրերի և հարմարության (առաքման արագություն/արժեքը, առկայություն և այլն) շնորհիվ: Բոլոր այն ապրանքների համար, որոնք նշված են սույն Հրահանգում, մատչելի են հավասարապես այլընտրանքային տարբերակներ:

Ներկայիս Instructable- ը պարունակում է քայլ առ քայլ հրահանգներ, թե ինչպես կարելի է կառուցել հիմնական SSAD նախատիպը մինչև 4 շարժիչով և անալոգային տվիչներով:

Ի հավելումն այս Ուղեցույցի, ես ստեղծել եմ երեք ընդլայնում. Նախ, ես հրապարակեցի հրահանգներ, թե ինչպես օգտագործել ավելի քան չորս շարժիչ այս SSAD նախատիպով (https://www.instructables.com/id/Using-More-Than-4…): Երկրորդ, ես ստեղծեցի օրինակ և օրինակ, թե ինչպես դարձնել այս նախատիպը կրելի (https://www.instructables.com/id/Making-the-SSAD-W…) և ինչպես ծածկել ERM շարժիչները ՝ առանց ծածկված պտտվող զանգվածի (https:/ /www.instructables.com/id/Covering-Rotating…): Բացի այդ, հրապարակվում է նաև նախատիպին անալոգային սենսորներից բացի (այս դեպքում ՝ մոտիկության տվիչներ) ինտեգրման օրինակ (https://www.instructables.com/id/Including-a-Proxi…):

Ի՞նչ է «oryգայական փոխարինում և ավելացում»:

Ensգայական փոխարինման դեպքում մեկ զգայական եղանակով (օրինակ ՝ տեսողություն) հավաքված տեղեկատվությունը կարող է ընկալվել մեկ այլ զգայարանի միջոցով (օրինակ ՝ ձայնը): Դա խոստումնալից ոչ ինվազիվ տեխնիկա է, որն օգնում է մարդկանց հաղթահարել զգայական կորուստը կամ թուլությունը:

Եթե զգայական խթանը, որը թարգմանվում է, սովորաբար ընկալելի չէ մարդկանց համար (օրինակ ՝ ուլտրամանուշակագույն ճառագայթները), այս մոտեցումը կոչվում է զգայական մեծացում:

Ի՞նչ հմտություններ են անհրաժեշտ այս նախատիպը կառուցելու համար:

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

Կա՞ն անհրաժեշտ մեքենաներ կամ գործիքներ, որոնք թանկ են կամ հեշտությամբ հասանելի չեն:

Բացի զոդման երկաթից, այս նախատիպը կառուցելու համար ոչ մի մեքենա կամ գործիք անհրաժեշտ չէ, որը դուք չեք կարող հեշտությամբ գնել առցանց կամ հաջորդ տնային խանութում: Այս SSAD- ը նախատեսված է արագ նախատիպերի պատրաստման համար, ինչը նշանակում է, որ այն պետք է արագ վերարտադրելի լինի և թույլ տա գաղափարների էժան ուսումնասիրություն:

Պարագաներ

Հիմնական բաղադրիչներ (մոտ 65 £ 4 շարժիչի համար, բացառությամբ զոդման սարքավորումների)

  • Arduino Uno (օրինակ ՝ https://store.arduino.cc/arduino-uno-rev3, 20 £)
  • Adafruit Motorshield v2.3 (օրինակ ՝ https://www.adafruit.com/product/1438, 20 £) և արական վերնագրերի վերնագրեր (սովորաբար ներառված են շարժիչային վահանակ գնելիս)
  • Գլանաձև ERM շարժիչներ (օրինակ ՝ https://www.adafruit.com/product/1438, 5, 50 £/շարժիչ)
  • Oldոդման երկաթ և զոդման մետաղալար
  • Լարերը

Լրացուցիչ (տես ընդլայնումներ)

Եթե գնվում է չբացահայտված պտտվող զանգվածով ERM շարժիչ.

  • Վինիլային խողովակ
  • Նիհար փափուկ տախտակ
  • 3D տպիչ (Arduino պատյանների համար)

Եթե ցանկանում եք օգտագործել ավելի քան 4 շարժիչ (ավելի քան 8 նույն ժամանակ մեկ այլ դեպքում).

  • Adafruit Motorshield v2.3 և արական վերնագրեր
  • Իգական հավաքովի վերնագրեր (օրինակ ՝
  • Arduino Mega ավելի քան 6 շարժիչի համար (օրինակ ՝

Քայլ 1: Sոդում

Oldոդման
Oldոդման

Pոդեք կապում շարժիչային ապակին

Adafruit- ն առաջարկում է մի շատ համապարփակ ձեռնարկ, թե ինչպես կարելի է գլխատողերը զոդել մոտոցիկլետին (https://learn.adafruit.com/adafruit-motor-shield-v…).

  1. Նախ, տեղադրեք հավաքման վերնագրերը Arduino Uno- ի կապում,
  2. Այնուհետեւ, վահանը դրեք վերեւում, այնպես, որ կապումերի կարճ կողմը դուրս գա:
  3. Դրանից հետո, բոլոր կապումները կպցրեք վահանին և համոզվեք, որ զոդը հոսում է քորոցի շուրջ և ձևավորում է հրաբխի տեսք (տե՛ս վերևի նկարը, որն ընդունված է https://cdn.sparkfun.com/assets/c/d/ կայքից) a/a/9/523b1189…):

Եթե դուք սկսնակ եք զոդման մեջ, օգնեք ինքներդ ձեզ ավելի շատ ձեռնարկների հետ, ինչպիսիք են

Ավելի երկար լարեր կպցրեք շարժիչին

Քանի որ շարժիչների մեծ մասը գալիս են առանց կամ շատ կարճ և բարակ լարերի, իմաստ ունի դրանք երկարացնել ՝ դրանք կպցնելով ավելի երկար և ամուր լարերի: Ահա թե ինչպես կարող եք դա անել.

  1. Հեռացրեք պլաստիկը լարերի ծայրին և տեղադրեք դրանք այնպես, որ նրանք միմյանց հետ շփվեն իրենց բաց լարերի երկայնքով, ինչպես նկարում:
  2. Erոդեք դրանք ՝ դիպչելով երկու լարերի թելերին և թողնելով, որ զոդը հոսի դրանց վրայով:

Քայլ 2: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
  1. Stack motorshield- ը Arduino- ի գագաթին:
  2. Պտուտակեք շարժիչները շարժիչի վահանի մեջ:
  3. Լարային անալոգային սենսորներ Arduino- ին (պատկերում դա արվում է լույսի տվիչներով, բայց նույն սխեման նույնն է թվում մյուս անալոգային տվիչների դեպքում):

Քայլ 3: Կոդավորում

Կոդավորում
Կոդավորում
Կոդավորում
Կոդավորում
Կոդավորում
Կոդավորում
Կոդավորում
Կոդավորում

1. Բեռնել

Ներբեռնեք zip թղթապանակը (SSAD_analogueInputs.zip), որը կցված է ստորև: Անջատեք այն:

Ներբեռնեք Arduino IDE- ն (https://www.arduino.cc/hy/main/software):

Բացեք Arduino ֆայլը (SSAD_analogueInputs.ino), որը գտնվում է չփակված թղթապանակի ներսում ՝ Arduino IDE- ով:

2. Տեղադրեք գրադարաններ

Տրամադրված կոդը գործարկելու համար անհրաժեշտ է տեղադրել որոշ գրադարաններ: Այսպիսով, եթե Arduino ֆայլը, որը կցված է այս հոդվածի վերջում, բաց է Arduino IDE- ի ներսում, կատարեք հետևյալը.

  1. Կտտացրեք ՝ Գործիքներ → Կառավարեք գրադարանները…
  2. Որոնեք ձեր որոնման դաշտում «Adafruit Motor Shield V2 Library»
  3. Տեղադրեք այն ՝ կտտացնելով Տեղադրման կոճակին

Այդ գրադարանները ներբեռնելուց հետո այժմ #ներառել հայտարարությունները տրամադրված ծածկագրերում պետք է աշխատեն: Ստուգեք դա ՝ կտտացնելով «Ստուգել» կոճակին (նշեք ձախ վերևում): Դուք գիտեք, որ բոլոր գրադարաններն աշխատում են, եթե դուք ծրագրի ներքևում ստանում եք «Կատարված է հավաքում» հաղորդագրությունը: Հակառակ դեպքում կարմիր բար է հայտնվում, և դուք կստանաք հաղորդագրություն այն մասին, թե ինչ սխալ է տեղի ունեցել:

3. Փոփոխել օրենսգիրքը

Փոփոխեք կոդը ՝ ըստ ձեր օգտագործման դեպքի ՝ հետևելով ստորև բերված հրահանգներին.

Շարժիչների մեկնարկը և դրանց SensoryOutputs- ը

Առաջին հերթին, հայտարարեք, թե որ քորոցներն են օգտագործում շարժիչները, ինչպես նաև այն, թե ինչ տիրույթում են աշխատում շարժիչները: Օրինակ, շարժիչը, որը կցված է M4- ին և աշխատում է (արագության) 25 և 175 տիրույթում, հայտարարվում է այսպես (ՀԻՄՆԱԿԱՆ մեկնաբանության տակ).

Շարժիչային շարժիչ 1 = Շարժիչ (4, 25, 175);

Փոքր թրթռումային շարժիչների հետ աշխատելիս, որոնք շարժվում են մինչև 3 Վ լարման տիրույթում, շարժիչի պաշտպանությունը պետք է զգուշությամբ օգտագործվի, քանի որ այն նախատեսված է 4.5VDC- ից մինչև 13.5VDC շարժիչներ աշխատելու համար: 3 Վ շարժիչները չվնասելու համար ես ծրագրորեն սահմանափակեցի վահանի վոլտ ելքը մինչև առավելագույնը 3 Վ (ճշգրիտ 2.95 Վ): Ես դա արեցի ՝ չափելով, թե որքան է 255 առավելագույն արագությունը Վոլտում և չափելով բազմիմետրով, որ սա 4.3 Վ է: Հետեւաբար, ես երբեք թույլ չեմ տվել 175 -ից բարձր արագություն, որը մոտ 3 Վ է, շարժիչներին:

Յուրաքանչյուր շարժիչ միացված կլինի մեկ SensoryOutput- ով:

One SensoryOutput- ը բաղկացած է մեկ կամ մի քանի զգայական գրգռիչներից: Օրինակ, շարժիչը կարող է կամ թրթռալ ըստ մեկ սենսորի, կամ ըստ բազմակի, տարբեր դիրքավորված սենսորների միջին:

Հետևաբար, առաջին հերթին յուրաքանչյուր շարժիչի համար պետք է հայտարարվի մեկ SensoryOutput: Փակագծերում առկա թվերն այն նվազագույն և առավելագույն արժեքն են, ինչ սենսորը (խումբը) կարող է ընկալել: Անալոգային տվիչների համար սա հիմնականում 0 և 1023 է.

SensoryOutput output1 = SensoryOutput (0, 1023);

Loop () գործառույթում յուրաքանչյուր շարժիչ նշանակվում է մեկ ելքային արժեքի: Այստեղ դուք գրում եք յուրաքանչյուր շարժիչի համար գրեք հետևյալ հայտարարությունը և «output1» - ի փոխարեն, ինչ SensoryOutput արժեքը պետք է միացված լինի դրան: Չմոռանաք նաև փոխել այս տողի բոլոր «output1» անունները, եթե դրա համար այլ անուն եք օգտագործում:

motor1.drive (output1.getValue (), output1.getMin (), output1.getMax ());

Եթե ցանկանում եք, կարող եք մի քանի շարժիչ (օրինակ ՝ շարժիչ 1 և շարժիչ 2) տալ նույն SensoryOutput (օրինակ ՝ ելք 1):

Բացի այդ, դուք կարող եք մեկ շարժիչին տալ մի քանի սենսորների արժեքներ (տե՛ս հաջորդ բաժինը):

Սենսորների սահմանում

Setup () գործառույթում պետք է հայտարարվի, թե որ տվիչներն են շարժիչային թրթռանքի մի մասը (SensoryOutput): Ահա մի օրինակ, թե ինչպես եք որոշում, որ Arduino Pin A0- ին միացված սենսորը պետք է թարգմանվի շարժիչով 1 -ի և, հետևաբար, ելքային թրթռանքների.

ելք 1. ներառել (A0);

Եթե բազմաթիվ զգայական ելքեր պետք է համատեղվեն մեկ շարժիչի թրթռման ընթացքում, ապա կարող եք ելքի մեջ ավելացնել մեկ այլ անալոգային մուտքի քորոց:

ելք 1. ներառել (A1);

Հակառակ դեպքում, պարզապես շարունակեք հաջորդ ելքով.

output2. ներառել (A1);

Համատեղելով բազմաթիվ սենսորներ

Ինչպես նշվեց վերևում, սենսորների բազմաթիվ մուտքեր (օրինակ ՝ A0, A1 և A2) կարող են հանգեցվել մեկ շարժիչի: Կոդը, որը ես տրամադրում եմ, հաշվարկում է այն արժեքների միջին արժեքը, որոնք կարդում են բոլոր ներառված սենսորները: Այսպիսով, եթե դա բավական է ձեր օգտագործման գործի համար, և դուք պարզապես ցանկանում եք ուղղակիորեն քարտեզագրել, օրինակ ՝ ցածր թրթռանքի ցածր զգայական մուտքը, դուք ավարտված եք և կարիք չունեք մտածել հետևյալի մասին.

Եթե դուք, այնուամենայնիվ, այլ պատկերացումներ ունեք այն մասին, թե ինչ եք ուզում անել մեկ կամ մի քանի հումքային զգայական մուտքերի հետ, կարող եք անել ըստ int getValue () ֆունկցիայի փոփոխությունների SensoryOutput դասում.

int getValue () {

վերջնական ելք = 0; // TODO անել ինչ ուզում ես զգայական արժեքներով // այստեղ միջինն է կառուցված, եթե մի քանի արժեքներ համակցված են (int i = 0; i <curArrayLength; i ++) {finalOutput+= analogRead (valueArray ); } return finalOutput / curArrayLength; }

4. Վերբեռնեք կոդը ձեր Arduino նախատիպին

Միացրեք Arduino նախատիպը (քայլ 2 -ից) ձեր համակարգչին:

Կտտացրեք Գործիքներ → Պորտ → Ընտրեք նավահանգիստը, որտեղ փակագծերում գրված է Arduino/Genuino Uno

Կտտացրեք Գործիքներ → Տախտակ → Arduino/Genuino Uno

Այժմ շարժիչները պետք է աշխատեն ըստ անալոգային տվիչների մուտքերի: Եթե ցանկանում եք, կարող եք Arduino- ն անջատել ձեր համակարգչից և միացնել այն էներգիայի մեկ այլ աղբյուրի, ինչպես 9 Վ մարտկոցը:

Քայլ 4: Հնարավոր ընդլայնումներ

Հնարավոր ընդլայնումներ
Հնարավոր ընդլայնումներ
Հնարավոր ընդլայնումներ
Հնարավոր ընդլայնումներ
Հնարավոր ընդլայնումներ
Հնարավոր ընդլայնումներ

Ձեր ստեղծած նախատիպը թույլ է տալիս բացառապես անալոգային մուտքեր և կարող է քշել մինչև չորս շարժիչ: Ավելին, այն դեռ կրելի չէ: Եթե ցանկանում եք ընդլայնել այդ հնարավորությունները, նայեք հետևյալ հրահանգներին.

  • Mածկելով ERM Motors- ի պտտվող զանգվածները ՝
  • SSAD- ը կրելի դարձնելու համար ՝
  • Օգտագործելով ավելի քան 4 շարժիչ.
  • Օգտագործելով ուլտրաձայնային հարևանության տվիչ ՝ որպես SSAD մուտքագրում ՝

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