Оглавление:
- Шаг 1: первый прототип
- Шаг 2: прототип №2
- Шаг 3: прототип №3
- Шаг 4: Детали
- Шаг 5: Схема
- Шаг 6: Протоборд
- Шаг 7: Размещение компонентов
- Шаг 8: Провода
- Шаг 9: больше проводов
- Шаг 10: вибромотор
- Шаг 11: Последний, но не наименее…
- Шаг 12: Программное обеспечение
- Шаг 13: корпус
- Шаг 14: Что теперь?
Видео: Периферийный радар для слабовидящих: 14 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:53
В результате ужасной аварии мой друг недавно потерял зрение на правый глаз. Он долгое время был без работы, а когда вернулся, то сказал мне, что одна из самых неприятных вещей, с которыми ему приходится иметь дело, - это незнание того, что находится на его правой стороне. Менее периферическое зрение означает столкновение с предметами и людьми. Это меня беспокоило. Я решил, что мы должны что-то сделать.
Я хотел создать устройство, которое могло бы измерять расстояние до объектов справа от моего друга. Мой план состоит в том, чтобы использовать тактильный двигатель, чтобы заставить устройство вибрировать обратно пропорционально расстоянию до объекта. Тогда, если объекты были далеко, двигатель не будет вибрировать, а когда объект будет ближе, он начнет вибрировать на низком уровне. Если бы объект был близко, он бы вибрировал на гораздо более высоком уровне (или на любом другом уровне, который вам нужен). Устройство должно быть достаточно маленьким, чтобы его можно было повесить на бок очков так, чтобы датчик был направлен вправо. Мой друг положил устройство на правую сторону своих очков, но, конечно, для кого-то еще это могло быть левой стороной.
Я вспомнил, что у меня дома были акустические датчики расстояния. Но они немного большие и громоздкие, менее точные и, вероятно, будут слишком тяжелыми для использования с очками. Я начал искать что-то другое.
Я нашел времяпролетный датчик ST Electronics VL53L0X. Это инфракрасный лазер и инфракрасный детектор в одном корпусе. Он излучает импульс лазерного света за пределами видимого человеком диапазона (940 нм) и записывает время, необходимое для обнаружения отраженного импульса. Он делит это время на 2 и умножает на скорость света, получая очень точное расстояние в миллиметрах. Датчик может определять расстояние до 2 метров, но, как я видел, более оптимальным является 1 метр.
Как оказалось, у Adafruit есть коммутационная плата VL53L0X. Так что мне понадобился вибрационный двигатель, который у них тоже был, и микроконтроллер для всего этого. У меня под рукой оказался PJRC Teensy 3.2. Хотя он был больше, чем я хотел, он мог работать на медленной скорости. Я хотел снизить тактовую частоту в целях экономии энергии. Что касается источника питания, у меня в ящике для мусора был регулятор наддува Sparkfun вместе с держателем батареи AAA. У меня было почти все, что мне было нужно.
Шаг 1: первый прототип
Я взял детали, которые были у меня под рукой, и сделал карманный прототип устройства, которое задумал. Я напечатал ручку и монтажную пластину на 3D-принтере и припаял всю электронику на макетную плату Adafruit. Я подключил вибромотор к Teensy через транзистор 2N3904 NPN. Я добавил потенциометр, который будет использоваться для установки максимального расстояния, на которое будет реагировать устройство.
Я запустил его к ближайшим выходным (см. Картинку выше). Это было некрасиво, но продемонстрировало принцип. Мой друг мог подержать устройство с правой стороны и проверить, будет ли оно полезным, и помочь улучшить то, что он хотел для функций.
Шаг 2: прототип №2
После первого ручного прототипа я начал делать уменьшенную версию. Я хотел приблизиться к своей цели - сделать что-то, что можно было бы надеть на очки. Teensy, который я использовал в портативной версии, позволял мне замедлять часы для экономии энергии. Но размер должен был быть решающим фактором, поэтому я перешел на Adafruit Trinket M0. Хотя его тактовая частота составляет 48 МГц, процессор ARM, на котором он основан, может работать медленнее. При использовании внутреннего RC-генератора он может работать на частотах 8, 42 и даже 1 МГц.
Прототип №2 собрался довольно быстро, так как к следующим выходным у меня все было готово. Схема такая же, как у прототипа №1, за исключением ARM M0. Я напечатал на 3D-принтере небольшой корпус и надел направляющие сзади, чтобы его можно было надеть на очки. См. Картинку выше. Первоначально он работает на частоте 48 МГц.
Шаг 3: прототип №3
Итак, это руководство действительно начинается здесь. Я решил сделать последний прототип. Я решил сжать его как можно меньше, не используя настраиваемую PWB (к которой, я уверен, мы и идем). Остальная часть этого руководства будет посвящена тому, чтобы показать вам, как его сделать. Точно так же, как люди делают 3D-печатные руки для детей с ограниченными возможностями, я надеюсь, что люди сделают их для любого, у кого такая же потеря зрения на глаз.
Я сохранил список деталей, такой же, как у прототипа №2, но решил убрать потенциометр. После разговора с другом мы решили установить максимальное расстояние с помощью программного обеспечения. Поскольку у меня есть возможность использовать сенсорный датчик с помощью Teensy, мы всегда можем установить максимальное расстояние, прикоснувшись к нему. Одно касание устанавливает короткое расстояние, или большее касание - большее расстояние, второе касание - самое длинное расстояние, а затем еще одно касание - возврат к началу. Но сначала мы будем использовать фиксированное расстояние, чтобы двигаться.
Шаг 4: Детали
Для этого прототипа мне понадобилась плата меньшего размера. Я выбрал макетную плату Sparkfun (PRT-12702), потому что ее небольшие размеры (примерно 1,8 "X 1,3") были бы хорошим размером для стрельбы.
Мне также нужно было использовать что-то другое, кроме батареи AAA, в качестве источника питания. LiPo казался правильным выбором, поскольку у него была бы емкость и небольшой вес. Я попробовал батарейку для монет, но у нее не хватило мощности, чтобы работать с мотором очень долго. Я выбрал маленький LiPo емкостью 150 мАч.
Я собирался остановиться на Trinket M0 и, конечно же, на коммутационной плате VL53L0X.
Теперь, когда мы подошли к деталям, вот список частей для этого прототипа:
Adafruit VL53L0X Time of Flight Distance Sensor - ID ПРОДУКТА: 3317 Adafruit - Вибрационный мини-моторный диск - ID ПРОДУКТА: 1201 Adafruit - Литий-ионно-полимерный аккумулятор - 3,7 В 150 мАч - ID ПРОДУКТА: 1317 SparkFun - Макетная плата для пайки - Мини - PRT-12702 Sparkfun - прямоугольный разъем JST - сквозное отверстие, 2-контактный - PRT-09749 резистор 10 кОм - мусорный ящик (посмотрите на свой пол) 2N3904 транзистор NPN - ящик для мусора (или позвоните другу) какой-то провод для подключения (я использовал многожильный кабель 22 калибра)
Для зарядки LiPo аккумулятора я также зачерпнул:
Adafruit - Micro Lipo - Зарядное устройство USB LiIon / LiPoly - v1 - ID ТОВАРА: 1304
Шаг 5: Схема
Схема этого устройства показана выше. Сенсорный ввод будет в будущей версии, но он все равно показан на схеме. Кроме того, резистор 10 кОм между Trinket M0 и базой 2N3904 обеспечивает ровно достаточную базу, чтобы включить двигатель без слишком сильного удара.
Далее следует пошаговое описание сборки.
Шаг 6: Протоборд
Многие из вас, кто имеет опыт, знают это, но это для тех, кто может быть новичком в пайке прототипов:
Проточная плата Sparkfun (PRT-12702), показанная выше, имеет 17 столбцов (групп) по 5 контактов на каждой стороне с зазором в три десятых дюйма. Каждый вертикальный столбец из 5 контактов по обе стороны от зазора является общим. Под этим я подразумеваю, что любое соединение с выводом в группе является соединением со всеми остальными выводами в группе. Для этой платы это не кажется очевидным, но вы можете проверить это, если используете DVM (цифровой вольтметр). Если вы посмотрите на спину, вы можете просто разглядеть следы, соединяющие группы.
Шаг 7: Размещение компонентов
Вероятно, вам придется припаять полоски контактов как к Trinket M0, так и к VL53L0X. Оба они идут с полосками, но их нужно припаять. В Центре обучения Adafruit есть инструкции для обеих этих частей. Если вы новичок в этом, пройдите туда (сюда и сюда), прежде чем паять полоски на платы. Штыревые планки обеспечивают более низкий профиль, чем розетка.
Первое, что следует учитывать при пайке чего-либо на макетной плате с ограниченным пространством, - это размещение компонентов. Я поместил брелок и VL53L0X в положения, показанные на рисунке выше. У Trinket есть контакты на обоих краях платы, но у VL53L0X есть 7 контактов на одном крае платы. Сторона VL53L0X, на которой нет контактов, мы будем использовать для подключения некоторых компонентов… как мы увидим.
Я также припаял ползунковый переключатель в положение и припаял 2N3904. Я затемнил отверстия, в которых размещены эти детали, и для 2N3904 я отметил, какие контакты являются коллектором, базой и эмиттером. Когда вы впервые паяете его, вы должны оставить его перпендикулярно плате, чтобы вы могли припаять другие соединения. Позже вы сможете согнуть его (осторожно), чтобы он был ближе к доске.
ПРИМЕЧАНИЕ. Разъем батареи JST в настоящее время НЕ припаивается к плате. Он будет припаян к задней части платы, но только ПОСЛЕ того, как мы припаяем остальные соединения. Это будет последнее, что мы паяем.
Шаг 8: Провода
На схеме выше снова показана макетная плата с затемненными отверстиями, в которых будут расположены компоненты. Я добавил для них метки по краям, чтобы было легче соединять провода. Обратите внимание, что показан вибромотор, но он будет расположен на задней стороне платы и будет подключен почти в последнюю очередь, поэтому пока просто игнорируйте его. Я также показываю JST Battery Breakout пунктирной линией. Как указано в предыдущем шаге, не подключайте его, но, пожалуйста, оставьте 4 отверстия в верхней части платы открытыми (т.е. не припаивайте к ним).
Я предполагаю, что на этом этапе вы знаете, как снимать изоляцию с провода, лужить на концах припоем и припаять к плате. Если нет, обратитесь к одному из инструкций по пайке.
Для этого шага припаяйте провода, как показано желтым. Конечные точки - это отверстия, к которым вы должны их припаять. Вы также должны припаять резистор 10 кОм к плате, как показано на рисунке. Выполняемые подключения:
1. Соединение положительной клеммы аккумулятора с общей (центральной) клеммой ползункового переключателя. Одна сторона ползункового переключателя будет контактировать с входом BAT на брелке. Встроенный стабилизатор Trinket генерирует 3,3 В от входного напряжения BAT.
2. Соединение отрицательной (заземляющей) клеммы аккумулятора с землей брелка.
3. Соединение отрицательной (заземляющей) клеммы аккумулятора с эмиттером 2N3904.
4. Подключение вывода 3,3 В (3 В) Trinket к VIN VL53L0X. VL53L0X будет дополнительно регулировать это значение до 2,8 В для собственного использования. Он также выводит это напряжение на вывод, но нам это не нужно, поэтому он останется неподключенным.
Шаг 9: больше проводов
Итак, теперь мы добавляем следующую группу проводов, как показано выше. Вот список каждого подключения:
1. Соединение контакта Trinket, обозначенного цифрой 2, с контактом SCL VL53L0X. Это тактовый сигнал I2C. Последовательный протокол I2C - это то, что используется Trinket для связи с VL53L0X.
2. Подключение вывода брелка, помеченного как 0 (ноль), к выводу SDA VL53L0X. Это сигнал данных I2C.
3. Соединение контакта VL53L0X GND через зазор на макетной плате с эмиттером 2N3904. Это обеспечивает заземление VL53L0X.
4. Соединение контакта брелка, обозначенного цифрой 4, с резистором 10 кОм. Это привод для вибромотора. Этот провод обязательно нужно припаять к тыльной стороне платы, если вы выберете мою точку подключения.
Помните, что любая вертикальная группа из 5 контактов является общей, поэтому вы можете подключиться в любом месте этой группы, что удобно. На фотографиях моей платы вы заметите, что я изменил несколько точек подключения. Если они являются правильным соединением, то подойдет и любой контакт, который вы выберете.
Шаг 10: вибромотор
На обратной стороне вибромотора есть отрывная наклейка. Вы снимаете это, чтобы открыть липкий материал, который позволяет двигателю застрять на задней части доски (но, прежде чем приклеить его, прочтите комментарий ниже). Я поместил его слева (глядя на заднюю часть платы) от платы JST Battery Breakout, которую мы еще не прикрепили. Итак, оставьте место для платы JST Battery Breakout. Я также хотел убедиться, что металлический корпус двигателя не закорачивает штырьки в щели на макетной плате. Итак, я отрезал небольшой кусок двусторонней ленты и приклеил его к обратной стороне липкой стороны вибромотора. Затем я положил это на обратную сторону доски. Это помогает держать металлический корпус высоко и вдали от штифтов. Но, тем не менее, будьте осторожны, чтобы разместить его так, чтобы НЕ закорачивала контакты.
Припаяйте красный провод вибромотора к выводу 3V Брелока. Черный провод вибромотора припаян к коллектору 2N3904. Когда программное обеспечение подает импульс 2N3904 (обеспечивает логическую 1 как 3,3 В), транзистор включается, соединяя черный провод вибрационного двигателя с землей (или рядом с ней). Это заставляет двигатель вибрировать.
Я мог бы добавить некоторую емкость в точке подключения красного провода вибромотора. Но на линии Trinket есть емкость 3,3 В, так что я уверен, что все в порядке, но если вы хотите добавить другую емкость, вы можете … пока вы можете втиснуть ее. В этом отношении красный провод может быть подключен непосредственно к положительной стороне LiPo батареи. Я выбрал сторону 3,3 В, чтобы напряжение оставалось постоянным. Пока вроде работает нормально.
Шаг 11: Последний, но не наименее…
Наконец, мы подключаем коммутационную плату JST Battery к задней стороне макетной платы. Я припаял булавки к плате и поместил отводную плату батареи JST так, чтобы ее верхняя сторона была обращена к макетной плате, как показано выше. При установке этой детали убедитесь, что вы припаяли провода плюсовой батареи и заземления к нужным контактам. Если вы ошибаетесь, вы измените полярность частей и, скорее всего, уничтожите их все. Поэтому, пожалуйста, проверьте и перепроверьте перед тем, как паять и вставлять аккумулятор.
Шаг 12: Программное обеспечение
Для установки и / или изменения программного обеспечения вам потребуются IDE Arduino и файлы платы для Trinket M0, а также библиотеки для VL53L0X. Все это здесь, здесь и здесь.
Следуйте инструкциям по использованию Adafruit M0 на их обучающем сайте здесь.
После загрузки программного обеспечения плата должна запуститься и работать через последовательное соединение USB. Придвиньте сторону доски с VL53L0X ближе к стене или к руке, и вы должны почувствовать вибрацию мотора. Амплитуда вибрации должна уменьшаться по мере удаления от устройства объекта.
Поведение, наблюдаемое в устройстве, несколько объясняется в комментариях в исходном коде. Но прилагаемый график должен хорошо показать это. Устройство не должно начать вибрировать на расстоянии примерно 863 мм от объекта. Максимальный уровень вибрации достигается на расстоянии 50 мм от объекта. Если вы приблизитесь к объекту ближе, чем на 50 мм, устройство не будет производить больше вибрации, чем при расстоянии 50 мм.
Шаг 13: корпус
Я разработал корпус и напечатал его на 3D-принтере из АБС-пластика. Вы можете распечатать его из PLA, ABS или любого другого материала. Я использую АБС, потому что при необходимости могу приваривать детали к доске ацетоном. Плата, которую я разработал, проста и имеет отверстие для порта USB на брелке и отверстие для выключателя питания. Я заставил две доски защелкнуться вместе с маленькими ручками по бокам коробки. Мне это не очень нравится, поэтому я, скорее всего, это поменяю. Конечно, вы можете внести любые изменения, которые захотите.
Прямо сейчас для этой версии необходимо открыть коробку, чтобы отсоединить LiPo аккумулятор и зарядить его. Если я создам печатную плату для этого проекта, я добавлю еще один разъем, чтобы сделать батарею доступной, не открывая коробку. Возможно, это удастся сделать на этой макетной плате и сделать отверстие для разъема для зарядки. Если вы хотите попробовать это, поделитесь своими результатами.
Мне удалось создать коробку, которую я полностью не ненавидел. Мы будем использовать его для тестирования системы. Я прикрепил верхнюю и нижнюю части коробки в виде файлов STL, а также скобу / направляющую, которую я добавил снизу. Я добавил пару направляющих с использованием ацетона для химической сварки деталей. Если вы это сделаете, будьте осторожны. Вы можете увидеть сборку выше.
Шаг 14: Что теперь?
Проверь меня … Я стар, возможно, что-то забыл или напортачил. Я перечитываю и проверяю это, но все еще могу кое-что пропустить. Не стесняйтесь говорить мне, что я сделал / сделал неправильно.
И теперь, когда вы собрали плату периферийного радара и загрузили ее, а батарея LiPo находится в красивом корпусе, напечатанном на 3D-принтере (когда я закончу его или, если вы сделали свой собственный), что вы будете делать дальше? Я думаю, вы должны получить опыт работы с ним и внести изменения в программное обеспечение. Лицензионное соглашение в программном обеспечении гласит, что вы можете его использовать, но если вы внесете какие-либо изменения, вы должны поделиться ими. Я не говорю, что программное обеспечение для этого проекта в чем-то сложное или удивительное. Он выполняет свои задачи, но есть возможности для улучшения. Помогите сделать это устройство лучше и поделитесь этим со всеми нами. Помните, что весь этот проект - помощь людям. Итак, помогите!
Рекомендуемые:
Считыватель / писатель ScanUp NFC и аудиорекордер для слепых, слабовидящих и всех остальных: 4 шага (с изображениями)
Читатель / писатель ScanUp NFC и аудиорекордер для слепых, слабовидящих и всех остальных: я изучаю промышленный дизайн, и этот проект - работа моего семестра. Цель состоит в том, чтобы поддержать слабовидящих и слепых людей с помощью устройства, которое позволяет записывать аудио в формате .WAV на SD-карту и вызывать эту информацию с помощью тега NFC. Итак, в
Тактильная обувь для слабовидящих: 12 шагов
Тактильная обувь для слабовидящих: во всем мире насчитывается более 37 миллионов людей с нарушениями зрения. Большинство из этих людей используют трость, палку или полагаются на кого-то другого в пути. Это не только снижает их самостоятельность, но и в некоторых случаях вредит их сам
Ультразвуковое устройство для улучшения навигации для слабовидящих: 4 шага (с изображениями)
Ультразвуковое устройство для улучшения навигации для людей с нарушениями зрения: мы трепетно относимся к обездоленным, поскольку мы используем наши таланты для улучшения технологий и исследовательских решений для улучшения жизни страдающих. Этот проект был создан исключительно для этой цели. В этой электронной перчатке используется ультразвуковое обнаружение для улучшения
Цифровые игровые площадки - для слабовидящих детей: 13 шагов (с картинками)
Цифровые игровые площадки - для детей с ослабленным зрением: это руководство начинается с предыдущего проекта - создания единой прижимной площадки - а затем идет дальше, чтобы показать, как этот простой технический проект можно расширить, чтобы сделать всю игровую площадку цифровой! Эта технология уже существует в виде
Устройство для слабовидящих: 4 шага
Устройство для слабовидящих: это руководство основано на проекте Arduino с открытым исходным кодом для Smart Cane и телефона, который помогает слепым людям ходить в одиночку в любом месте с помощью входных сигналов, поступающих через датчик препятствий и обеспечивающих обратную связь через тактильные ощущения (вибромотор). Т