Съдържание:

Устройство за вибротактилно сензорно заместване и увеличаване (SSAD): 4 стъпки
Устройство за вибротактилно сензорно заместване и увеличаване (SSAD): 4 стъпки

Видео: Устройство за вибротактилно сензорно заместване и увеличаване (SSAD): 4 стъпки

Видео: Устройство за вибротактилно сензорно заместване и увеличаване (SSAD): 4 стъпки
Видео: Умный выключатель в круглый подрозетник с радио повторителем, легкая и быстрая установка 2024, Юли
Anonim
Устройство за вибротактилно сензорно заместване и увеличаване (SSAD)
Устройство за вибротактилно сензорно заместване и увеличаване (SSAD)
Устройство за вибротактилно сензорно заместване и увеличаване (SSAD)
Устройство за вибротактилно сензорно заместване и увеличаване (SSAD)

Този проект има за цел да улесни изследванията в областта на сензорното заместване и увеличаване. Имах възможността да изследвам различни начини за изграждане на вибротактилни SSAD прототипи в рамките на магистърската си дисертация. Тъй като сензорното заместване и уголемяване е тема, която засяга не само компютърните учени, но и изследователите от други области, като когнитивната наука, инструкцията стъпка по стъпка трябва да даде възможност на не-експерти по електроника и компютърни науки да сглобят този прототип за своя собствена изследователски цели.

Не възнамерявам да правя реклама точно за един вид марка/продукт. Този проект не е спонсориран от никоя компания. Материалът, който използвах, беше избран поради технически спецификации и удобство (скорост/цена на доставката, наличност и т.н.). За всички продукти, споменати в тази инструкция, са налични еднакво подходящи алтернативи.

Настоящият Instructable съдържа инструкции стъпка по стъпка как да се изгради основен SSAD прототип с до 4 двигателя и аналогови сензори.

В допълнение към този Instructable създадох три разширения: Първо, публикувах инструкции за това как да използвам повече от четири двигателя с този 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…).

Какво е „Сензорно заместване и увеличаване“?

Със сензорна подмяна информацията, събрана от една сетивна модалност (например зрение), може да бъде възприета чрез друго чувство (например звук). Това е обещаваща неинвазивна техника, която помага на хората да преодолеят сензорните загуби или увреждания.

Ако сензорният стимул, който се превежда, обикновено не се възприема от човешките същества (напр. UV светлина), този подход се нарича Сензорно увеличаване.

Какви умения са необходими за изграждането на този прототип?

По принцип не са необходими усъвършенствани умения за програмиране, за да се следват инструкциите, предоставени по -долу. Ако обаче сте начинаещ в запояването, планирайте допълнително време, за да се запознаете с тази техника. В случай, че никога досега не сте програмирали, може да се наложи помощ от някой с по -голям опит в програмирането.

Има ли необходими машини или инструменти, които са скъпи или не са лесно достъпни?

Освен поялник, не са необходими никакви машини или инструменти за изграждането на този прототип, които не можете лесно да закупите онлайн или в следващия домакински магазин. Този 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 £/мотор)
  • Поялник и поялник
  • Проводници

По избор (вижте Разширения)

Ако се купува ERM двигател с непокрита въртяща се маса:

  • Винилова тръба
  • Тънка мека дъска
  • 3D принтер (за корпус Arduino)

Ако искате да използвате повече от 4 двигателя (за повече от 8 същия друг път):

  • Adafruit Motorshield v2.3 и заглавки за подреждане на мъже
  • Заглавки за подреждане на жени (напр.
  • Arduino Mega за повече от 6 двигателя (например

Стъпка 1: Запояване

Запояване
Запояване

Запоявайте щифтовете към моторния щит

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. Запоявайте ги заедно, като докоснете нишките на двата проводника и оставете спойката да тече върху тях.

Стъпка 2: Окабеляване

Електрически инсталации
Електрически инсталации
  1. Подредете моторния щит на върха на Arduino.
  2. Завийте двигатели в щита на двигателя.
  3. Свържете аналогови сензори към Arduino (на изображението това се прави със светлинни сензори, но същата схема изглежда еднакво за други аналогови сензори).

Стъпка 3: Кодиране

Кодиране
Кодиране
Кодиране
Кодиране
Кодиране
Кодиране
Кодиране
Кодиране

1. Изтеглете

Изтеглете zip папка (SSAD_analogueInputs.zip), прикачена по -долу. Разархивирайте го.

Изтеглете Arduino IDE (https://www.arduino.cc/en/main/software).

Отворете файла Arduino (SSAD_analogueInputs.ino), който е вътре в разархивираната папка с Arduino IDE.

2. Инсталирайте библиотеки

За да изпълните предоставения код, трябва да инсталирате някои библиотеки. Така че, ако файлът Arduino, който е прикачен в края на тази статия, е отворен в Arduino IDE, направете следното:

  1. Щракнете върху: Инструменти → Управление на библиотеки …
  2. Потърсете „Библиотека Adafruit Motor Shield V2“в Филтрирайте полето за търсене
  3. Инсталирайте го, като щракнете върху бутона Инсталиране

След изтеглянето на тези библиотеки сега инструкциите #include в предоставените кодове трябва да работят. Проверете това, като кликнете върху бутона „Проверка“(Поставете отметка в горния ляв ъгъл). Знаете, че всички библиотеки работят, ако получите съобщението „Готовото компилиране“в долната част на програмата. В противен случай се появява червена лента и ще получите съобщение за това, което се обърка.

3. Променете кода

Променете кода според вашия случай на употреба, като следвате инструкциите по -долу:

Задвижващи двигатели и техните сензорни изходи

На първо място, декларирайте кои щифтове използват двигателите, както и в какъв диапазон работят моторите. Например, мотор, който е свързан към M4 и работи в диапазон (скорост) от 25 и 175, се декларира така (под основния коментар):

Двигател на мотор1 = Мотор (4, 25, 175);

Когато работите с двигатели с малки вибрации, които се задвижват в диапазон до 3V, моторният щит трябва да се използва с повишено внимание, тъй като е предназначен за работещи двигатели на 4.5VDC до 13.5VDC. За да не повредя 3V двигателите, програмно ограничих изхода Volt на щита до максимум 3V (точно 2.95V). Направих това, като измерих колко е максималната скорост от 255 във Волта и измерих с мултицет, че това е 4.3V. Затова никога не съм допускал по -висока скорост от 175, което е около 3V, към двигателите.

Всеки двигател ще бъде свързан с един сензорен изход.

Един сензорен изход се състои от един или много сензорни стимули. Например, двигателят може или да вибрира според един -единствен сензор, или според средната стойност на множество, различно разположени сензори.

Следователно, първо за всеки двигател трябва да се декларира един SensoryOutput. Числата в скобите са минималната и максималната стойност на това, което сензорът (групата) може да възприеме. За аналогови сензори това е предимно 0 и 1023:

SensoryOutput изход1 = 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:

output1.include (A0);

Ако няколко сензорни изхода трябва да бъдат комбинирани в рамките на една вибрация на двигателя, можете просто да добавите друг аналогов входен извод към изхода1:

output1.include (A1);

В противен случай просто продължете със следващия изход:

output2.include (A1);

Комбиниране на множество сензори

Както бе споменато по -горе, множество входове на сензора (например от A0, A1 и A2) могат да бъдат насочени към един двигател. Кодът, който предоставям, изчислява средната стойност на стойностите, които се четат от всички включени сензори. Така че, ако това е достатъчно за вашия случай на използване и просто искате директно да съпоставите например нисък сензорен вход с ниска вибрация, вие сте готови и не трябва да мислите за следното:

Ако обаче имате други идеи какво искате да правите с един или множество сурови сензорни входове, можете да направите съответните промени във функцията int getValue () в класа SensoryOutput:

int getValue () {

finalOutput = 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 от вашия компютър и да го включите към друг източник на захранване, като 9V батерия.

Стъпка 4: Възможни разширения

Възможни разширения
Възможни разширения
Възможни разширения
Възможни разширения
Възможни разширения
Възможни разширения

Прототипът, който току -що сте построили, позволява изключително аналогови входове и може да управлява до четири двигателя. Освен това все още не може да се носи. Ако искате да разширите тези функции, разгледайте следните инструкции:

  • Покриване на въртящите се маси на ERM двигатели:
  • Направете SSAD носим:
  • Използване на повече от 4 двигателя-Подреждане на няколко моторни щита:
  • Използване на ултразвуков сензор за близост като вход за SSAD:

Препоръчано: