Как все начиналось
Все началось еще в 2020 году, когда в те ковидные времена должен был пройти хакатон Junction 2020. И раздумывая об идее для проекта я решил запрыгнуть на тему с которой периодически экспериментирую и создать что-то для помощи слабовидящим людям.
И решил пробовать сделать совиное ожерелье, предупреждающее о препятствиях перед человеком.
Конечно, как и с железячной точки зрения, так и со стороны кода проект достаточно прост (с щепоткой художественной составляющей в виде ожерелья\подвески), но с другой стороны это и упрощает повторение устройства, создание своих версий, их улучшение да и вообще все что угодно.
Итак, концепцию для хакатона можно было назвать как «парктроник для человека» - берем ультразвуковой дальномер (который мне и напомнил совиные глаза и отправил дальнейшие мысли на оформление этого в виде совы), и в зависимости от дистанции все чаще подаем звуковой и вибро-сигнал, и оформляем все это в виде совы чтобы было красивее и приятнее для человека.
Понятное дело красивее для прототипа с хакахона понятие относительное ?
Перейдем же к самому хакатону и что получилось в итоге, и дальше сделаем прыжок в сейчас, когда я решил чуток модифицировать старый проект.
Что же было под рукой
Arduino nano
Немного eva foam чтобы собрать «корпус» для прототипа, оставшиеся от моих косплей-проектов
HC-SR04 ультразвуковой дальномер
HW-131 power board
Биппер для того чтобы пищать о дистанции
Таки пакетики светодиодов
Несколько мини вибро-моторчиков
Провода, паяльник и компания
И прочие мелочи
Сразу замечу, что мои навыки пайки весьма печальны, что вы еще увидите дальше, поэтому держитесь.
Эскизы
Итак, прежде всего я решил начать с создания эскиза совы на бумаге в том размере, который мне бы хотелось получить (буквально в размере 1 к 1).
Затем я сделал фотографию наброска, очистил и поправил контраст, чтобы облегчить последующую работу по моделированию корпуса в Fusion 360.
Создание первой версии «корпуса»
Так как дело было во время хакатона, и ждать завершения печати было бы слишком долго (да и принтера под рукой все равно не было, а ездить за ним было бы тоже не особо нужно), то я решил достать из загашника остатки EVA foam и сделать прототип из нее.
Перенеся эксиз на еву были вырезано несколько слоев и склеены обычным классическим моментом (и как видно по резу, у меня был только тупой строительный нож, а новых лезвий достать не было времени).
Дальше с помощью чуть более острого скальпеля удалось вырезать немного деталей, а как финишный этап при помощи паяльника нанести борозды-«перья» (если будете работать c eva foam, паяльник отличный вариант для придания текстуры дерева, чешуек, «органических» текстур и так далее).
После чего я быстро нанес базовый слой «грунта» с помощью столярного ПВА (который закрывает поры и образует пленку на еве – бюджетный способ ее «грунтовки» и подготовки к окраске если у вас под рукой нет латексного грунта, plastidip и прочих гибких аналогов).
После высыхания слоя опять таки на скорую руку сделал покраску – базовый черный цвет акрилом и поверх используя технику «dry brush» (хотя тут скорее была сухая губка для мытья посуды) нанес слой серебряного акрилового металика.
3d печатный корпус
Также я, естественно, подумал о том, чтобы сделать 3d модельку для «корпуса», но в рамках хакатона удалось сделать только базовую модельку. Естественно для моделирования я использовал Fusion 360 – благо уже был опыт моделирования, да и сделать модельку по скетчу и нужным размерам.
И естественно в рамках хакатона времени на то, чтобы уже напечатать вариант «корпуса», а потом и сделать еще несколько итераций исправляя ошибки и экспериментируя уже и не было, так что это отложим ближе и к настоящему времени, и к концу статьи.
Ссылка на модель - https://a360.co/3eIkNEf
Рисуем схему подключения датчиков к Arduino Nano
Как видно из схемы, все просто и в лоб решается – пищалка, ультразвуковой дальномер, Arduino nano, питание и светодиодик.
Также по мере работы было решено докинуть простейшие вибро-моторчики (крайне-маленького размера)
Лирическое отступление про превращение в более-менее реальное устройство
И естественно есть мысль попробовать собрать «мозги» за счет их крайней простоты на одной плате + датчик, радикально сократив размеры и получив уже относительно компактное устройство более пригодное для реального использования, но для этого надо и время, и чуть больше погрузится в эту тему, но до этого так все и не доходят руки, но попробовать хочется и естественно передать для тестов в местное общество слабовидящих, с которыми по части проектов приходилось общаться.
Пишем код
Хакатон-стиль написания кода – то еще приключение, поэтому стиль и красота там обычно весьма сомнительна.
Код лежит на github - https://github.com/m0rg0t/OwlEye/
По константам по коду все ясно, видно к каким пинам ардуинки что подключено
const int VIBRO_PIN = 2; //Digital pin where vibro attahed
const int LED_PIN = 3; //Digital pin where led attached
const int BUZZER_PIN = 4; //Digital pin where buzzer sound stuff is attached
const int HC_TRIG_PIN = 12; //Triger pin of HC-SR04 sensor
const int HC_ECHO_PIN = 13; //Echo pin of HC-SR04 sensor
Так же, как и с переменными, регулирующими длительность сигналов пищалки и вибро
const int MIN_TIME = 10; //minimal amount of time we use
const int SIGNAL_INCREMENT_TIME = MIN_TIME * 3;
const int SIGNAL_PLAY_TIME = 20;
const int VIBRO_ADDITIONAL_TIME = 10;
Сборка устройства
Как видно, мои навыки пайки и сборки железячных устройств во время хакатона представляют из себе крайне зловещее зрелище для человека с прямыми руками в области пайки и схемотехники (хотя и вне хакатона оно тоже более чем желает оставлять лучшего, но потихоньку дело идет на лад).
Ну и термо-сопли были моим лучшим другом чтобы зафиксировать все что я наворотил.
Тестирование
Следующим этапом шло непосредственное тестирование устройства и отладка для более-менее полноценной работы
И конечно уличные тесты
Попытки печати мини версии корпуса
Как уже упоминал ранее, на самом хакатоне до печати я так и не дошел из-за ограничений по времени и вероятности печатать из-за ошибок несколько итераций.
И, собственно, вот и пример такого фейла:
Успешно была напечатана только “голова” совы, но из-за невнимательности я не проверил корректность размеров модели, и получил в итоге вот такую вот разницу
Немного выводов и пара слов про хакатоны
Чем мне нравятся хакатоны - тем что ты сам вписываешься в искусственные дедлайны и пробуешь сделать базовый прототип своей идеи (особенно если это офлайн мероприятие, с которым бывали проблемы во времена ковидные, да и сейчас их не густо).
Но часто возникает проблема после найти время и попробовать собрать свой проект в более применимый и рабочий прототип, на что часто не хватает времени и возможностей, но очень надеюсь попробовать завершить его.
И как и говорил, простота в данном случае является и плюсом - если кто-то захочет попробовать сделать похожее устройство и оно кому-то поможет - это будет великолепно
Я в свое время по нескольким проектам похожей тематики специально общался с людьми из локального всероссийского общества слепых, и часто у людей там не хватает многого, и они были рады экспериментам которые могли бы кому-то помочь
Всем добра и интересных экспериментов!