Оглавление:

OUCH: 6 шагов
OUCH: 6 шагов

Видео: OUCH: 6 шагов

Видео: OUCH: 6 шагов
Видео: Slim (CENTR) feat. VBT Вектор Beat - Шаги [OFFICIAL VIDEO] 2024, Ноябрь
Anonim
ОЙ
ОЙ
ОЙ
ОЙ

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

Осторожно, иначе ОЙЭ может быть последним, что ты когда-либо увидишь!

Проект проводился в рамках семинара «Вычислительное проектирование и цифровое производство» магистерской программы ITECH.

Август Лереке | Макс Зорн

Запасы

Электронные части:

Ардуино

  • Arduino UNO

    • 2x Reely Mini-Servo S0009
    • 4х фоторезисторы
    • 4 резистора по 10 кОм
    • 2x потенциометра
    • 1x USB-кабель для принтера

Raspberry Pi

  • Малина Pi 4

    • 1x RaspiCam
    • 4x Reely Mini-Servo S0009
    • 1x PCA9685 16-канальный 12-битный сервопривод с ШИМ
    • Внешний источник питания 5 В постоянного тока
    • 1x блок питания Rasberry Pi 5.1V - 3A (или внешний эквивалент)
    • 1x MAKERFACTORY HC-SR05 Ultraschallsensor (MF-6402156)
    • 1x 470 Ом резистор
    • 1x 320 Ом резистор

Детали, напечатанные на 3D-принтере:

OUCH бывают разных форм и размеров. В этой версии мы использовали 3D-принтер для печати нестандартных механизмов.

  • 4 x подставка
  • 2 x База S
  • 1 x база L
  • 2 x двойное основание вращения
  • 1 х вращающийся базовый сингл
  • 1 х набор опоры оси S
  • 1 х набор опоры оси M
  • 1 х набор опоры оси L
  • 1 х крепление для камеры
  • 1 х световое крепление
  • 1 x крепление для зеркала

При желании вы можете использовать предоставленную конструкцию Башни, чтобы заменить компоненты для:

  • 1 башня (вместо 4 подставок)
  • 1 x Base S и 1x Base M (вместо 2 x Base S)

Другие части:

  • Майлар
  • 1 х резинка
  • 1 х Застежка-молния
  • 12 винтов M5 x 160 с плоской головкой
  • 2 винта M5 x 80 с плоской головкой

Инструменты:

  • 3д принтер
  • H3.0 Отвертка
  • Пистолет для горячего клея

Шаг 1: Шаг 1: Печать деталей

Если у вас есть доступ к 3D-принтеру, вы можете распечатать индивидуальные механизмы для размещения сервоприводов и установить три основных компонента.

Для компонента Face нам понадобятся:

  • 2 x подставки
  • 1 x база L
  • 1 x вращающееся основание, двойное
  • 1 х набор опоры оси M
  • 1 x крепление для камеры и датчика расстояния

Компонент Light требует:

  • 1 х подставка
  • 1 х База S
  • 1 x вращающееся основание, двойное
  • 1 х набор опоры оси S
  • 1 х световое крепление

Компоненты Mirror состоят из следующего:

  • 1 х подставка
  • 1 х База S
  • 1 х вращающееся основание сингл
  • 1 х набор опоры оси L
  • Зеркало Крепление

Наконец, вы также можете распечатать предоставленную башню.

Если вы хотите использовать его в качестве основы для всех трех компонентов, вам придется соответствующим образом скорректировать векторную математику в коде. Далее, соедините компонент Face с Base M вместо Base L с башней.

Шаг 2: Шаг 2: Изготовление зеркала

Шаг 2: Изготовление зеркала
Шаг 2: Изготовление зеркала
Шаг 2: Изготовление зеркала
Шаг 2: Изготовление зеркала

Чтобы сделать свой собственный компонент зеркала, вырежьте круглый кусок майлара и поместите его поверх части зеркала, напечатанной на 3D-принтере. Затем сначала зафиксируйте его резинкой. Резиновая лента должна входить в паз вокруг компонента. Затем используйте стяжку-молнию, чтобы аккуратно закрепить соединение, пока не затягивайте его слишком сильно. Теперь вы можете начать растягивать майлар, пока не получите блестящую зеркальную поверхность. Наконец, затяните завязку-молнию и наслаждайтесь отражением своего прекрасного лица!

Шаг 3: Шаг 3: Сборка компонентов

Шаг 3: Сборка компонентов
Шаг 3: Сборка компонентов
Шаг 3: Сборка компонентов
Шаг 3: Сборка компонентов
Шаг 3: Сборка компонентов
Шаг 3: Сборка компонентов
Шаг 3: Сборка компонентов
Шаг 3: Сборка компонентов

Компонент лица

  1. Приклейте сервопривод кулака горячим способом в соответствующий вырез вращающейся базы.
  2. Приклейте разъем сервопривода в паз, расположенный в нижней части базовой части.
  3. Соедините две базовые части вместе так, чтобы сервопривод зацепился с разъемом.
  4. Используйте винт сервопривода, чтобы закрепить разъем на сервоприводе.
  5. Приклейте второй соединительный элемент горячим способом в соответствующий паз, расположенный в верхней части опоры оси.
  6. Используйте 4 болта M5, чтобы прикрутить опору оси к вращающемуся основанию.
  7. Приклейте второй сервопривод к креплению горячим способом.
  8. Наденьте камеру на штифты
  9. Прикрепите ультразвуковой датчик расстояния к креплению винтами или горячим клеем.
  10. Подключите крепление камеры / датчика к опоре оси, сервопривод снова должен войти в соединительный элемент.
  11. Используйте винт сервопривода, чтобы закрепить разъем на сервоприводе.
  12. Прикрутите Raspberry Pi и сервопривод к куску фанеры (убедитесь, что расстояние совпадает с отверстиями основания L).
  13. Прикрутите компонент Face к стойкам с помощью болтов M5.

Зеркальный компонент

  1. Выполните шаги с 1 по 7.
  2. Подключите зеркало к опоре оси.
  3. Приклейте подставку для зеркала к фанере так, чтобы компоненты Mirror и Face были выровнены.
  4. Прикрутите компонент Mirror к подставке с помощью болтов M5.

Легкий компонент

  1. Выполните шаги с 1 по 7 сверху.
  2. Проденьте световые датчики через монтажные отверстия в нижней части затеняющего креста.
  3. Подключите затеняющий крест к опоре оси, сервопривод снова должен войти в соединительный элемент.
  4. Используйте винт сервопривода, чтобы закрепить разъем на сервоприводе.
  5. Приклейте подставку к фанере так, чтобы компоненты Light, Mirror и Face были выровнены, а зеркало находилось между компонентами Face и Light.
  6. Прикрутите компонент Face к стойкам с помощью болтов M5.

* Все компоненты также могут быть прикреплены к башне, однако следует учитывать повышенную сложность кодирования и подключения, а также время печати. Если вы хотите использовать вышку, используйте деталь Base M вместо Base L для компонента Face и прикрутите детали Base к башне с помощью проушин и болтов M5.

Шаг 4: Шаг 4: Настройте платы

Шаг 4: Настройте платы
Шаг 4: Настройте платы
Шаг 4: Настройте платы
Шаг 4: Настройте платы
Шаг 4: Настройте платы
Шаг 4: Настройте платы

Вот схема подключения трех компонентов. Трекер солнца действует на собственном цикле на Arduino и отправляет свои позиции сервопривода на Rasberry Pi через последовательный порт USB. Дополнительный датчик расстояния можно подключить к передней части камеры панорамирования / наклона piCamera для создания более надежной триангуляции цели. Здесь мы будем выстраивать их по прямой и просто усреднять векторы, поэтому в этом нет необходимости.

Четыре сервопривода подключены к сервоприводу PCA9685, который питается от внешнего источника питания 5 В. Два сервопривода управляют панорамированием и наклоном камеры слежения за лицом, а остальные два управляют панорамированием и наклоном зеркала.

Шаг 5: Код:

Код
Код

Код этого проекта можно разбить на две части: код отслеживания света Arduino и код отслеживания лица / зеркального позиционирования на Python.

Код Arduino:

Этот код представляет собой слегка измененную версию проекта слежения за солнцем от geobruce. Это отличный справочник для получения дополнительной информации о компоненте слежения за солнцем, а более подробную информацию можно найти на этой странице инструкций. Значения интенсивности света снимаются с 4 фоторезисторов и усредняются, чтобы найти самую яркую область и соответствующим образом настроить сервоприводы. Затем мы записываем значения угла сервопривода в последовательный порт.

Код Python:

Этот код объединяет открытое CV для создания механизма панорамирования и наклона с отслеживанием лица, а также управляет сервоприводами для зеркала. Вам нужно будет выполнить несколько шагов, чтобы загрузить открытое резюме на свой Raspberry pi. Для этого есть много ресурсов, но мне очень нравится ресурс от pyimagesearch. Полное описание этого процесса можно найти здесь. Примечание. Мы загрузили открытые библиотеки CV в виртуальную среду, в которой запускаем весь код. Если вы решили это сделать, убедитесь, что вы загрузили все зависимости в виртуальную среду, в которой вы запускаете программу, а не сам Пи.

После того, как вы загрузили открытое резюме, этот код также потребует для запуска еще нескольких зависимостей (установленных в конкретной среде, в которой вы работаете):

  • Adafruit ServoKit: полную страницу о процессе загрузки на Raspberry Pi можно найти здесь.
  • imutils
  • тупой
  • gpiozero (при использовании датчика расстояния)

Для отслеживания лиц скрипту требуется аргумент (--faces), который представляет собой файл.xml, который openCv использует для поиска лиц. Вам нужно будет поместить этот файл в тот же каталог, что и скрипт python. Я предоставил его для загрузки, и его также можно найти здесь.

Шаг 6: запуск кода

Запуск кода
Запуск кода
Запуск кода
Запуск кода

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

  1. Откройте командную строку на вашем пи
  2. Введите workon cv (или любое другое имя, которое вы выбрали для своей виртуальной среды)
  3. Измените каталог, в котором хранятся ваши файлы (cd (путь к файлам))
  4. Последняя строка запускает программу и указывает файл каскада haar. (python Face3.py --faces haarcascade_frontalface_default.xml)

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

Готово! В зависимости от качества имеющихся у вас сервоприводов, вы можете откалибровать их каждый специально, чтобы повысить точность вашей системы. В итоге нам пришлось настроить все диапазоны ШИМ, чтобы они работали правильно.

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