Оглавление:

Устройство вибротактильного сенсорного замещения и увеличения (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…).

Что такое «сенсорное замещение и усиление»?

С помощью сенсорной замены информация, собранная одной сенсорной модальностью (например, зрением), может быть воспринята с помощью другого чувства (например, звука). Это многообещающий неинвазивный метод, который помогает людям преодолеть потерю или нарушение сенсорной функции.

Если преобразованный сенсорный стимул обычно не воспринимается людьми (например, ультрафиолетовый свет), этот подход называется сенсорным усилением.

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

Как правило, для выполнения приведенных ниже инструкций не требуется никаких дополнительных навыков программирования. Однако, если вы новичок в пайке, запланируйте дополнительное время, чтобы познакомиться с этой техникой. Если вы никогда раньше не программировали, может потребоваться помощь кого-то более опытного в программировании.

Нужны ли какие-либо машины или инструменты, которые дороги или труднодоступны?

Для создания этого прототипа не требуются никакие машины или инструменты, кроме паяльника, которые вы не сможете легко купить в Интернете или в ближайшем хозяйственном магазине. Этот 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), прикрепленную ниже. Разархивируйте его.

Загрузите IDE Arduino (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);

При работе с небольшими вибрационными двигателями, которые работают в диапазоне до 3 В, моторный щит следует использовать с осторожностью, поскольку он предназначен для работы двигателей от 4,5 до 13,5 В постоянного тока. Чтобы не повредить двигатели 3 В, я программно ограничил выходное напряжение экрана до 3 В (точно 2,95 В). Я сделал это, измерив максимальную скорость 255 в вольтах и измерив мультиметром, что это 4,3 В. Поэтому я никогда не допускал для двигателей скорости выше 175, что составляет около 3 Вольт.

Каждый двигатель будет подключен к одному сенсорному выходу.

Один сенсорный выход состоит из одного или нескольких сенсорных стимулов. Например, двигатель может вибрировать либо в соответствии с одним датчиком, либо в соответствии со средним значением нескольких датчиков, расположенных по-разному.

Следовательно, сначала для каждого двигателя должен быть объявлен один сенсорный выход. Цифры в скобках - это минимальное и максимальное значение того, что может воспринимать датчик (группа). Для аналоговых датчиков это обычно 0 и 1023:

Сенсорный выход 1 = Сенсорный выход (0, 1023);

Затем в функции loop () каждому двигателю присваивается одно выходное значение. Здесь вы пишете для каждого двигателя следующий оператор и вместо «output1», какое бы значение SensoryOutput должно быть к нему подключено. Не забудьте также изменить все имена "output1" в этой строке, если вы используете для этого другое имя.

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

При желании вы можете дать нескольким двигателям (например, motor1 и motor2) один и тот же сенсорный выход (например, output1).

Кроме того, вы можете передать значения нескольких датчиков одному двигателю (см. Следующий раздел).

Определение датчиков

В функции setup () необходимо указать, какие датчики будут участвовать в вибрации двигателя (SensoryOutput). Вот пример того, как вы определяете, что датчик, подключенный к выводу A0 Arduino, должен преобразовываться в вибрации с мотором 1 и, следовательно, с выходом 1:

output1.include (A0);

Если несколько сенсорных выходов должны быть объединены в одной вибрации двигателя, вы можете просто добавить еще один аналоговый входной контакт к output1:

output1.include (A1);

В противном случае просто переходите к следующему выводу:

output2.include (A1);

Объединение нескольких датчиков

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

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

int getValue () {

finalOutput = 0; // TODO делать все, что вы хотите, с сенсорными значениями // здесь строится среднее значение, если несколько значений объединены for (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: Возможные расширения

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

Только что построенный вами прототип поддерживает исключительно аналоговые входы и может управлять до четырех двигателей. Кроме того, его еще нельзя носить. Если вы хотите расширить эти функции, ознакомьтесь со следующими инструкциями:

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

Рекомендуемые: