Оглавление:

Робот-попрошайничество с отслеживанием лица и управлением с помощью контроллера Xbox - Arduino: 9 шагов (с изображениями)
Робот-попрошайничество с отслеживанием лица и управлением с помощью контроллера Xbox - Arduino: 9 шагов (с изображениями)

Видео: Робот-попрошайничество с отслеживанием лица и управлением с помощью контроллера Xbox - Arduino: 9 шагов (с изображениями)

Видео: Робот-попрошайничество с отслеживанием лица и управлением с помощью контроллера Xbox - Arduino: 9 шагов (с изображениями)
Видео: Умный штатив с датчиком движения 360° Smart Live PTZ С ИНТЕЛЛЕКТУАЛЬНЫМ ОТСЛЕЖИВАНИЕМ ЛИЦА ДЛЯ ВЛОГА 2024, Ноябрь
Anonim
Image
Image
Установка и настройка OpenCV и C ++
Установка и настройка OpenCV и C ++

Мы собираемся сделать робота-попрошайки. Этот робот будет пытаться рассердить или привлечь внимание проходящих мимо людей. Он обнаружит их лица и попытается выстрелить в них лазером. Если вы дадите роботу монетку, он споет песню и станцует. Роботу понадобится Arduino, прямая трансляция с камеры и компьютер для запуска openCV. Роботом также можно будет управлять с помощью контроллера xBox, если он подключен к ПК.

Шаг 1: материалы

Аппаратное обеспечение Электронное

  • Arduino NANO или UNO
  • USB 2.0 камера
  • Кабели-перемычки (штекер и розетка)
  • 2 сервопривода - универсальный (субмикроразмер)
  • 2 x LED - КАТОД RGB 5 мм
  • 2 лазера по 5 мВт
  • 1 х красный светодиод 5 мм
  • 1 х макет
  • 4 резистора 220 Ом
  • 1 резистор 1 кОм
  • 1 x protoboard
  • 1 х датчик сонара 4 контакта
  • Контроллер Xbox

Аппаратный аналог

  • Деревянный ящик (15 х 15 х 7 см)
  • Клей
  • Электроизоляционная лента

Программное обеспечение

  • IDE Arduino
  • Визуальная студия 2017
  • 3Ds Max (или любое другое программное обеспечение для моделирования 3D)
  • Преформа 2.14.0 или новее
  • OpenCV 3.4.0 или новее

Инструменты

  • Паяльное оборудование
  • Пила и дрель
  • Кусачки

Шаг 2: Установка и настройка OpenCV и C ++

Установка и настройка OpenCV и C ++
Установка и настройка OpenCV и C ++

Шаг 2.1: Получение программного обеспечения

Visual studio 2017: загрузить Visual Studio Comunity 2017openCV 3.4.0 Win pack: перейти на официальную страницу загрузки

Шаг 2.2: Установка OpenCV2.2.1: Распакуйте zip-файл на диск Windows (: C). 2.2.2: Перейдите в расширенные настройки системы. Это можно найти в вашей функции поиска win10. 2.2.3: Нам нужно настроить новые переменные среды. Найдите среду «Путь» и нажмите edit.2.2.4: Теперь мы должны добавить расположение «карты бункера» к новой переменной в среде «Путь». Если вы установили openCV на диск C, путь может выглядеть следующим образом: C: / opencv / build / x64 / vc14 / bin Вставьте путь и нажмите «ОК» во всех окнах, которые вы могли открыть во время этого процесса.

Шаг 2.3: настройка Visual Studio C ++ 2.3.1: Создайте новый проект Visual C ++. Сделайте его пустым проектом консольного приложения win32. 2.3.2: На вкладке исходных файлов щелкните правой кнопкой мыши и добавьте новый файл C ++ (.cpp) и назовите его «main.cpp». 2.3.3: Щелкните правой кнопкой мыши проект- имя в обозревателе решений и выберите Свойства. 2.3.4: Нам нужно добавить дополнительные каталоги включения. Это можно найти на вкладке C / C ++ в целом. Скопируйте следующий путь: C: / opencv / build / include, вставьте его за «AID» и нажмите «Применить». 2.3.5: В том же окне нам нужно выберите вкладку «Компоновщик». в общем нам нужно сделать другие дополнительные каталоги библиотеки. Вставьте следующий путь после "AID" C: / opencv / build / x64 / vc14 / lib и снова нажмите "Применить". 2.3.6: На той же вкладке компоновщика выберите вкладку "Вход". И нажмите «Дополнительные зависимости> редактировать», вставьте следующие файлы opencv_world320d.lib и xinput.lib (для контроллера) и снова нажмите «Применить». Закройте окно. Теперь ваш C ++ файл готов к работе.

Шаг 3: настройка Arduino

Настройка Arduino
Настройка Arduino
Настройка Arduino
Настройка Arduino
Настройка Arduino
Настройка Arduino
Настройка Arduino
Настройка Arduino

Встреча с сервоприводами: сервоприводы могут вращаться на ~ 160 °. Для нормальной работы им необходимо напряжение от 4, 8 до 6, 0 В. Сервопривод имеет 3 контакта: заземление, 4, 8 - 6, 0 вольт и вывод данных. штырь. Для нашего проекта мы собираемся установить контакты данных для сервоприводов на DigitalPin 9 и 10.

Встреча со светодиодами RGB: светодиоды RGB имеют 4 контакта: красный, зеленый, синий и заземляющий. Чтобы сэкономить место на Arduino, мы можем соединить 2 светодиода RGB вместе. Таким образом, мы будем использовать только 3 контакта. Мы можем подключить и припаять светодиоды RGB на макетной плате, как на изображении. Красный контакт => DigitalPin 3 (PWM) Зеленый контакт => DigitalPin 4 Синий контакт => DigitalPin 7

Встреча с пьезо-зуммером: наш маленький робот будет шуметь. Для этого нам нужно дать ему голос! Мы можем сделать его очень громким. Или мы можем поставить резистор 220 Ом перед пьезозуммером, чтобы сделать его менее неприятным. Оставляем пьезозуммер на макете. Таким образом, паять не нужно. Мы подключаем контакт данных (+) к DigitalPin 2, а контакт заземления - к заземлению на макетной плате.

Встреча с эхолотом: чтобы робот не пытался целиться в человека, находящегося на расстоянии 10 метров. Мы можем задать роботу дистанцию, с которой он сможет целиться в людей. Делаем это с помощью датчика сонара. VCC => 5 VoltTrig => DigitalPin 6Echo => DigitalPin 5GND => земля

Знакомство с детектором монет: собираемся сделать детектор монет. Детектор монет будет работать, обнаруживая, если цепь замкнута или сломана. Он будет работать почти как выключатель. Но нужно быть осторожным. Если мы сделаем это неправильно, это будет стоить нам Arduino. Сначала: подключите AnalogPin A0 к кабелю на 5 В. Но убедитесь, что между ними установлен резистор 1 кОм. Во-вторых, подключите провод к земле. Мы можем сразу припаять провода и резистор к той же плате, что и светодиоды RGB. Теперь, если мы коснемся двух проводов вместе, Arduino обнаружит замкнутую цепь. Это означает, что есть монета! Встреча с лазерами рока. Роботу нужно оружие, чтобы стрелять! Чтобы сэкономить место, я спаял два лазера вместе, они идеально впишутся в рамку камеры. Подключите их к DigitalPin 11 и заземлите. Улетай, малыш!

Дополнительный трюк. Мы можем поставить красный светодиод под слот для монет. Это будет забавный трюк, когда темно. Подключите провод к DigitalPin 8 и поместите резистор 220 Ом между светодиодом и проводом, чтобы он не взорвался. Подключите короткий контакт светодиода к земле.

Шаг 4: Код C ++

Шаг 4.1: Настройка кода main.cpp 4.1.1: Загрузите «main.cpp» и скопируйте код на свой собственный main.cpp. 4.1.2: В строке 14 измените «com» на com, который использует arduino. «\. / COM (измените это)» 4.1.3: В строках 21 и 22 установите правильный путь к файлам «haarcascade_frontalface_alt.xml» и «haarcascade_eye_tree_eyeglasses.xml». Если openCV установлен на диске C, эти файлы могут быть расположены здесь: "C: / opencv / build / etc / haarcascades \" Сохраните двойную обратную косую черту или добавьте одну, если есть только одна.

Шаг 4.2: Добавьте tserial.h и Tserial.cpp Эти 2 файла будут обеспечивать связь между Arduino и ПК. 4.2.1: Загрузите tserial.h и Tserial.cpp. 4.2.2: Поместите эти 2 файла в проект. каталог. В обозревателе решений щелкните проект правой кнопкой мыши и выберите добавить> существующий элемент. Во всплывающем окне выберите два файла для добавления.

Шаг 4.2: Добавьте CXBOXController.h и CXBOXController.h Эти файлы возьмут на себя часть контроллера проекта. 4.2.1: В обозревателе решений щелкните проект правой кнопкой мыши и выберите добавить> существующий элемент. Во всплывающем окне выберите два файла для добавления. Файлы C ++ настроены.

Шаг 5: Код Arduino

Шаг 5.1: Библиотека NewPing 5.1.1: Загрузите ArduinoCode.ino и откройте его в IDE arduino. 5.1.2: Перейдите в «Эскиз> Включить библиотеку> Управление библиотеками». 5.1.3: Найдите в поле фильтра «NewPing» и установите эту библиотеку.

Шаг 5.2: Библиотека Pitches 5.2.1: Загрузите файл pitches.txt и скопируйте содержимое файла pitches.txt 5.2.2: В среде Arduino IDE нажмите CTRL + Shift + N, чтобы открыть новую вкладку 5.2.3: Вставьте код из pitches.txt в новую вкладку и сохраните его как "pitches.h". Код Arduino настроен

Шаг 6: 3D-печать и улучшение печати

3D-печать и улучшение печати
3D-печать и улучшение печати
3D-печать и улучшение печати
3D-печать и улучшение печати

Шаг 6.1: Распечатайте 3D-файл Откройте файл printfile.form и проверьте, все ли в порядке. Если все в порядке, отправьте задание на печать на принтер. Если что-то не так или вы хотите изменить модель. Я включил файлы 3Ds Max и файлы OBJ для редактирования.

Шаг 6.2: Уточните модель 6.2.1: После завершения печати замочите 2 модели в 70% спирте, чтобы удалить любые отпечатки. 6.2.2: После печати положите модель на солнце на несколько часов, чтобы позволить ультрафиолетовому излучению закалить модель. Или вы можете использовать УФ-лампу для закалки модели. Это нужно сделать, потому что модель будет липкой.

6.2.3: Удалить опорный каркас. Это можно сделать с помощью кусачки. Или любой другой инструмент, который может разрезать пластик. 6.2.4: Некоторые части 3D-печати могут быть мягкими. Даже если модель подверглась сильному воздействию ультрафиолета, мягкими могут быть те части, которые находятся близко к опорным каркасам. Положите модель на больше солнечного УФ-света, чтобы она затвердела. 6.2.5: С помощью «дремеля» вы можете отшлифовать все небольшие неровности, оставленные каркасом. Вы можете попробовать подогнать сервоприводы к раме. Если они не подходят, вы можете использовать Dremel, чтобы отшлифовать материал. сделать это подходящим.

Шаг 7: создание коробки

Создание коробки
Создание коробки
Создание коробки
Создание коробки

Шаг 7.1: Делаем отверстия Я включил чертеж рассматриваемой коробки. Чертеж не соответствует масштабу, но все размеры правильные. 7.1.1: Начните с отметки всех отверстий в нужных местах. 7.1.2: Просверлите все отверстия. С помощью Dremel можно проделать отверстия большего размера. 7.1.3: Квадратные отверстия также можно просверлить. Но чтобы сделать их квадратными, вы можете вставить в Dremel небольшой напильник и отпилить острые углы. 7.1.4: Попробуйте подогнать все компоненты. Если они подходят, то вперед! 7.1.5: Остерегайтесь деревянных осколков. Используйте наждачную бумагу, чтобы избавиться от них.

Шаг 7.2: Покраска 7.2.1: Начните с шлифовки крышки. Нам нужно, чтобы краска приклеилась. 7.2.2: Возьмите ткань и нанесите на нее немного скипидара, чтобы очистить коробку. 7.2.3: Теперь вы можете покрасить коробку распылением в любой цвет.

Шаг 8: Завершение

Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать
Заканчивать

Шаг 8.1: Детектор монет 8.1.1: Приклейте металлические скобы для детектора монет. 8.1.2: Припаяйте каждый провод от разъема к скобе..3: Проверить соединение с помощью монеты. Если замкнутой цепи нет, припаяйте провода ближе к краю. Шаг 8.2: Проточная плата и светодиоды RGB 8.2.1: Поместите макетную плату в верхний правый угол и закрепите ее липкой лентой! 8.2.2: Соедините светодиоды RGB с проводами. от прототипной платы! 8.2.3: Подключите все провода от макетной платы к Arduino. Шаг 8.3: Датчик эхолота. 8.3.1: Поместите датчик в отверстия, которые мы сделали для него. 8.3.28.3.2: Разрежьте несколько штыревых и гнездовых проводов пополам и спаяйте гнездовой и штыревой провода вместе, чтобы сделать один кабель, который мы можем использовать для подключения датчика к Arduino. 8.3.3: Подключите датчик к Arduino

Шаг 8.4: Лазеры и камера 8.4.1: Приклейте маленькую рамку к камере. Убедитесь, что он стоит вертикально. 8.4.2: Поместите и лазеры в раму. Приклейте их, чтобы враг не украл их!

Шаг 8.5: Сервоприводы и 3D-печать 8.5.1: Приклейте сервопривод в отверстие крышки 8.5.2: Загрузите файл arduino в Arduino (это заставит сервоприводы встать в правильное положение) 8.5.3: С сервоприводом появился маленькое круглое плато. Поместите его на сервопривод в крышке. 8.5.4: Поместите большой 3D-принт на сервопривод и плато и плотно прикрутите их винтом. 8.5.5: Поместите второй сервопривод на небольшой 3D-принт и склейте их вместе. 8.5.6: Поставьте камеру на место, и все готово!

Шаг 9: Запустите программу

Чтобы запустить робота, откройте файл C ++ в Visual Studio. Убедитесь, что вы находитесь в «режиме отладки». Загрузите файл arduino в arduino. Как только это будет загружено, нажмите кнопку воспроизведения в Visual Studio. И робот выстрелит и соберет все монеты мира !!!

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