Кибер глаз своими руками

Приветствую, Самоделкины!
В этот раз AlexGyver, автор одноименного канала на YouTube, по поводу праздника, который у нас, кстати, не особо любят, решил повторить проект Adafruit — бионический глаз, который вставляется в очки газосварщика.

С точки зрения кода данный готовый проект абсолютно не интересен, автора заинтересовал механизм, а именно – его система координат.
К этому мы еще вернёмся, но немного позже, а сперва давайте соберём всю механику и подключим все электронные компоненты.
Для повторения данного проекта понадобятся:
1) Очки газосварщика. Можно использовать как металлические, так и пластиковые.

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

Такие очки можно приобрести в магазине торгующим инструментами или строительными материалами. Автор купил такие в магазине «ВсеИнструменты».
2) Далее нам понадобятся вот такие напечатанные на 3д принтере запчасти.
Автор печатал элементы белым PLA пластиком на новом 32-ух битном 3Д принтере flyingbear ghost 4s. Файл содержит сразу все 3 модели. Печатать необходимо с поддержками.

3) Следующий компонент, необходимый для нашего хэллоуинского спецпроекта – это платформа Arduino модели Nano.

4) Также необходим литий-ионный аккумулятор:

5) Повышающий dc-dc (до 5В) преобразователь;
6) Выключатель:

7) Микро сервомашинки, но не стандартные 9-граммовые, а ещё меньше:

Итак, с необходимыми компонентами вроде разобрались, давайте приступим к сборке устройства. Сперва нам необходимо закрепить приводы следующим образом:

Вот более понятная картинка:

Удаляем наклейку, и с помощью суперклея всё это дело соединяем.

Кстати, китайские сервомашинки по всей видимости немного отличаются от Адафрутных, и приклеить их необходимо вот так, чуть со смещением:

Ушки необходимо удалить, они будут мешать.

Затем к нижнему приводу, цепляем качалку и проворачиваем вал против часовой стрелки.

Вставляем сервы в заранее напечатанную на 3Д принтере заготовку (глаз).

Упираем торчащий привод в самый край, и вставляем выходной вал в отверстие внутри глаза.

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

Далее при помощи укороченного винтика крепим внутренний привод.

При наличии сервотестера можно удостовериться в работоспособности получившегося механизма.

Затем насаживаем вторую часть глаза на вал второго привода и тоже прикручиваем.

Убеждаемся в общей работоспособности (должны работать совместно).

Специально для данного проекта автором был написан простенький код, который плавно поворачивает приводы на случайный угол. Но центр глаза оказался немного смещённым, поэтому находим фактический центр и рисуем зрачок.

Ну, а так как это у нас праздничный проект, а праздник довольно специфический, то давайте сделаем его немного пострашнее.

Далее получившуюся деталь вставляем в очки.

Если не вставляется, то необходимо малость снять фаску.

Затем собираем все воедино.

Далее соединяем все компоненты по следующей схеме:

Все готово, но сейчас у нас каждый привод просто встаёт на случайный угол, и в принципе можно уже так и оставить.

Но помните вначале статьи упоминалось про механизм и систему координат? Значит так, механизм вращается по двум осям, но не по тем, по которым вращается человеческий глаз. Наша цель заставить такой механизм вести себя именно как человеческий глаз. На первый взгляд это кажется невозможным, но можно попробовать попытаться привести его систему координат к нормальной, чтобы можно было поставить зрачок в любое желаемое положение.

Итак, мы имеем два угла, обозначим их Х и У.

У — это малый угол наклона глаза, а Х – угол поворота глаза на 180 градусов.
Для достижения всех возможных положений необходимо управлять обоими углами, и тут есть своя специфика. Начнем с самого простого — движения по окружности с максимальным радиусом.

Но тут не всё так просто, как казалось. Поэтому первым делом автор сделал полярную систему координат, в которой можно задать угол поворота глаза и радиус, то есть удаление зрачка от центральной точки 00.

В верхней полуокружности мы работаем от половины угла У до его максимального значения, а в нижней – от минимального до половины. Теперь движение глаза можно запрограммировать более интересным образом. Сами движения случайны, но уже по окружности.

Теперь давайте уже спаяем всю электронику, всё как на схеме:

Пробуем включить.

Индикация есть. Теперь всё это дело прячем в какой-нибудь корпус (в данном случае автор использовал коробочку из-под «тик-так»).

Все наш киберглаз готов. Вот такой вот прикол.

Но давайте все-таки продолжим теоретические изыскания и переведем полярную систему координат в декартовую, позже поймете зачем.

Здесь всё просто, нам поможет сишная функция atan2, которая возвращает угол в радианах от –П до П, и функция hypot, которая посчитает длину гипотенузы по тем же двум координатам, а гипотенуза — она же радиус для нашей предыдущей функции.

И вот таким вот нехитрым образом наш подопытный теперь может поворачивать глаз именно туда, куда нам необходимо (вверх, вниз, вправо, влево).

Так зачем это нужно? Это необходимо для того, чтобы была возможность добавить гироскоп, при помощи которого глаз будет поворачиваться туда же, куда голова, что возможно будет выглядеть довольно забавно. Собственно, в проект был добавлен гироскоп mpu6050, вот так это выглядит на схеме:

Меняем код, делаем так, чтобы показания с гироскопа отклоняли глаз. Через фильтр естественно.

Итак, что мы получаем в итоге? Глаз чуть запаздывает за поворотом головы, тем самым создаётся эффект, что он вот прям поворачивается и смотрит на тебя. В итоге вот такой немного математический получился проект.

Прошивка ЗДЕСЬ. Благодарю за внимание. До новых встреч!

Видеоролик автора:

Источник (Source)

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Источник: usamodelkina.ru

Понравилась статья? Поделиться с друзьями:
автомобильные новости
Добавить комментарий