Оглавление:

Сделайте свой дрон управляемым за 10 долларов: 4 шага
Сделайте свой дрон управляемым за 10 долларов: 4 шага

Видео: Сделайте свой дрон управляемым за 10 долларов: 4 шага

Видео: Сделайте свой дрон управляемым за 10 долларов: 4 шага
Видео: РОДИТЕЛИ И КВАДРОКОПТЕР #Shorts 2024, Ноябрь
Anonim
Image
Image
Сделайте жест своего дрона управляемым за 10 долларов
Сделайте жест своего дрона управляемым за 10 долларов
Сделайте жест вашего дрона управляемым за 10 долларов
Сделайте жест вашего дрона управляемым за 10 долларов

Это руководство представляет собой руководство по превращению вашего радиоуправляемого дрона в управляемый жестами дрон менее чем за 10 долларов!

Я человек, которого очень вдохновляют научно-фантастические фильмы, и я пытаюсь воплотить технологии, показанные в фильме, в реальной жизни. Этот проект вдохновлен двумя такими фильмами: «ЗВЕЗДНЫЕ ВОЙНЫ: Империя наносит ответный удар» и «Проектный альманах». В обоих фильмах вы видите летающий объект (X-wing Starship и R / C Drone), которым управляли просто движениями рук. Это вдохновило меня на создание чего-то похожего…

Очевидно, у меня нет X-wing, поэтому, к сожалению, мне приходится работать со своим Mini R / C Quadcopter.

Итак, план таков - на моем ноутбуке будет запущен скрипт обработки изображений, который будет постоянно искать мою руку и отслеживать ее положение в кадре видео. Как только он получит координаты руки, он отправит соответствующий сигнал на дрон, и это будет сделано с помощью Arduino, подключенного к ноутбуку, вместе с модулем приемопередатчика NRF24L01 2,4 ГГц, который может напрямую связываться с платой приемника любого Дрон с дистанционным управлением..

Запасы

  • Ноутбук / настольный компьютер с веб-камерой и установленным Python. (Я использую свой ноутбук W indows со встроенной веб-камерой и использую Python 2.7.14)
  • Любой дрон с дистанционным управлением, работающий на частоте 2,4 ГГц. (JJRC H36 в моем случае)
  • Arduino UNO вместе с кабелем для программирования. (Я использую его клон, так как он дешевле)
  • NRF24L01 2,4 ГГц антенный модуль беспроводного приемопередатчика. (Я купил это здесь всего за 99 рупий (1,38 доллара))
  • Плата адаптера 3,3 В для беспроводного модуля 24L01. (Я купил это здесь всего за 49 (0,68 доллара))
  • Провода перемычки между мужчинами и женщинами x7

Шаг 1: Соберите припасы

Собери припасы!
Собери припасы!

Шаг 2: Подключение модуля NRF к Arduino

Подключение модуля NRF к Arduino
Подключение модуля NRF к Arduino
Подключение модуля NRF к Arduino
Подключение модуля NRF к Arduino
Подключение модуля NRF к Arduino
Подключение модуля NRF к Arduino
Подключение модуля NRF к Arduino
Подключение модуля NRF к Arduino

Теперь, когда у вас есть все части, давайте приступим к подключению модуля NRF к Arduino.

  1. Сначала вставьте модуль NRF в слот адаптера. Вы можете обратиться к изображению выше.
  2. После этого возьмите провода Male-Female и подключите адаптер NRF к Arduino следующим образом: (См. Схему выше)

    • Вывод адаптера NRF - вывод Arduino
    • VCC - 5 В
    • GND - GND
    • CE - цифровой контакт 5
    • CSN - аналоговый контакт 1
    • SCK - цифровой контакт 4
    • MO - цифровой контакт 3
    • MI - Аналоговый вывод 0
    • IRQ - не используется
  3. После завершения подключения подключите Arduino к компьютеру с помощью USB-кабеля для программирования Arduino, и все почти готово.

Шаг 3. Приступим к кодированию

Приступим к кодированию!
Приступим к кодированию!
Приступим к кодированию!
Приступим к кодированию!

А теперь начинается самое сложное… !!!

Я не написал весь код сам. Вместо этого я взял части и фрагменты кода от разных разработчиков и объединил их все в один с небольшой настройкой. Следовательно, впереди даны должные кредиты всем оригинальным создателям.

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

Отслеживание рук:

В этом проекте для отслеживания рук используется классификатор Haar Cascade. Каскад Хаара обучается путем наложения положительного изображения на набор отрицательных изображений. И эти обученные данные обычно хранятся в файлах «.xml». Вы можете получить файлы классификатора практически чего угодно в Интернете или даже создать свой собственный, подобный этому. В этом проекте, поскольку нам нужно было сделать его управляемым жестами рук, я использовал классификатор кулака с именем «closed_frontal_palm.xml», созданный Аравиндом Намбиссаном для обнаружения моей руки. Вы можете протестировать этот код, запустив код hand_live.py в моем репозитории.

Выбор кода NRF24 для соответствия вашему дрону:

Таким образом, в зависимости от производителя и модели вашего дрона, вы можете обратиться к репозиторию Github - «nrf24_cx10_pc», созданному Перри Цао, чтобы выбрать правильный код Arduino для запуска, который будет соответствовать его частоте. Он сделал хороший учебник по управлению своим CX10 Drone через ПК.

Поскольку я использовал дрон JJRC H36, я сослался на другой репозиторий Github - "nrf24_JJRC_H36_pc", который был форком репо Перри Цао, созданного Льюисом Корником для управления его JJRC H36 через ПК.

Подготовка Arduino:

Я раздвоил репозиторий Льюиса на свой Github, который вы можете клонировать, если работаете с одним и тем же дроном. Вам необходимо один раз загрузить код nRF24_multipro.ino на ваш Arduino Uno, чтобы он соединялся с вашим Drone каждый раз, когда мы запускаем наш скрипт Python.

Тестирование последовательной связи:

В том же репозитории вы также можете найти код «serial_test.py», который можно использовать для проверки последовательной связи скрипта Python с Arduino, и если ваш дрон будет сопряжен или нет. Не забудьте изменить COM-порт в коде в соответствии с COM-портом вашей платы Arduino.

Интеграция всего в один код:

Поэтому я интегрировал все эти коды разных разработчиков и создал свой собственный код handserial.py. Если вы делаете то же самое, что и я с тем же дроном, вы можете напрямую запустить этот код, а затем вы можете управлять своим дроном, просто двигая кулаком в воздухе. Код сначала отслеживает кулак в видеокадре. В зависимости от координаты Y кулака, код отправляет значение газа дрону, заставляя его двигаться вверх или вниз, и аналогично, в зависимости от координаты X кулака, код отправляет значение элерона дрону, заставляя его двигаться влево или вправо..

Шаг 4: Примечание автора

В связи с этим проектом я хотел бы особо отметить 4 момента:

  1. Как указывалось ранее, этот код не полностью создан мной, но я работаю над ним постоянно и буду обновлять код для лучшего отслеживания в моем репозитории Github. Поэтому для любых запросов или обновлений вы можете посетить репозиторий или написать мне в Instagram.
  2. В настоящее время мы используем веб-камеру ноутбука, которая не позволяет получить перспективу обзора дрона, но при необходимости камеры, установленные на дроне, также можно использовать для отслеживания. Это поможет лучше видеть и, в конечном итоге, лучше контролировать.
  3. Для этого проекта я использую дрон JJRC H36, который является одним из самых дешевых дронов, доступных на рынке, поэтому ему не хватает гироскопической устойчивости. По этой причине вы можете почувствовать, что движение на видео шаткое, но если вы используете дрон достойного качества с хорошей стабильностью, вы не столкнетесь с этой проблемой.
  4. Я хотел повозиться с компьютерным зрением и управлением дронами, поэтому начал с этого проекта. Но после работы над компьютерным зрением я чувствую, что это не оптимальное решение для управления дроном. Таким образом, я планирую сделать какое-то устройство перчаточного типа с гироскопическим датчиком для управления дроном в будущем. Так что следите за обновлениями…

Если вам понравился этот урок, поставьте лайк и поделитесь им, а также проголосуйте за него.

На этом пока все.. До скорой встречи в следующий раз …

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