За последние годы дроны быстро превратились из нишевого хобби в универсальные инструменты с широким спектром применений: от фотографии до сельского хозяйства или даже для оборонных и военных целей. В зависимости от применения, функций и грузоподъемности их цена будет варьироваться от нескольких десятков долларов до нескольких миллионов. Несмотря на то, что основной принцип, лежащий в основе этих дронов, может показаться простым, за ним стоит множество технологий и вычислений, обеспечивающих правильную работу и желаемый результат от этих дронов — например, поддержание устойчивости в воздухе требует прецизионных датчиков, таких как гироскоп, и правильная обработка снятых с него показаний. В этом проекте мы собираемся создать дрон на основе модуля ESP32, которым можно будет легко управлять с помощью телефона.
Этот дрон, сделанный своими руками, имеет небольшой размер и может быть собран с использованием легко доступных компонентов, таких как модули ESP32, IMU MPU6050, бессердечниковые двигатели и пластиковые пропеллеры.
Особенности нашего самодельного дрона с управлением по Wi-Fi
- Управление по Wi-Fi: благодаря этому можно управлять с помощью смартфона.
- Гироскоп MPU6050 для контроля устойчивости.
- Печатная плата «все в одном»: не требует каких-либо деталей, напечатанных на 3D-принтере.
- Легко обновляется: дополнительные функции, такие как удержание положения или высоты, можно добавить с помощью внешних модулей.
- Маленький размер и легкий вес.
- Встроенное зарядное устройство для аккумулятора.
- Встроенный интерфейс USB для программирования и отладки.
- Приложения для Android и IOS.
- Программное обеспечение (ПО) с открытым кодом.
Необходимые компоненты
- Модуль ESP32 Wroom — x1 (купить на AliExpress).
- USB-контроллер UART CP2102N – x1 (купить на AliExpress).
- Гироскоп MPU6050 для контроля устойчивости – x1 (купить на AliExpress).
- TP4056 — микросхема зарядного устройства для литий-ионных аккумуляторов — x1 (купить на AliExpress).
- MIC5219-3.3YM5 3,3 В LDO – x1 (купить на AliExpress).
- AO3401 P — МОП-транзистор — x1.
- 2N7002DW двойной N — МОП-транзистор – x1.
- SI2302 N — МОП-транзистор — x4.
- Диод SS34 – x1 (купить на AliExpress).
- Диод 1N4148 – х4 (купить на AliExpress).
- Устройство чтения SD-карт — x1
- USB-разъем типа C, 16 контактов — x1 (купить на AliExpress).
- LiPo аккумулятор 1300 мАч 30C – x1
- 720 Coreless Motor (без сердечника) — x4
- Пропеллер 55 мм типа A (CW — по часовой стрелке) — 2 шт.
- Пропеллер 55 мм типа B (CCW — против часовой стрелки) — 2 шт.
- Резиновая втулка 7 мм — 4 шт.
- SMD резисторы и конденсаторы.
- SMD светодиоды.
- Ползунковый переключатель SDM.
- Разъемы.
- Пользовательская печатная плата.
- Корпус и крепежные винты, напечатанные на 3D-принтере.
- Прочие инструменты и расходные материалы.
Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158
Приблизительная стоимость сборки дрона
Вот примерная стоимость сборки дрона. Имейте в виду, что приведенная здесь стоимость не является точной и может варьироваться в зависимости от поставщика. Цены рассчитаны на основе самых дешевых вариантов, доступных от известных поставщиков, с минимальным количеством компонентов в качестве минимального заказа.
Конденсатор, резисторы, диоды и прочее | ₹ 100,00 |
МОП-транзисторы (MOSFETS) | ₹ 40.00 |
ESP32 | ₹ 240.00 |
TP4056 | ₹ 17.50 |
MPU6050 | ₹ 140.00 |
CP2102 | ₹ 200.00 |
720 Motors + 55mm propellers | ₹ 266.00 |
Печатная плата | ₹ 100.00 |
Суммарная стоимость | ₹ 1093.50 |
Цены в таблице приведены в индийских рупиях. На момент публикации данной статьи курс рупии к рублю составляет 1,11. Но учитывая особенности налоговой политики РФ, санкции и более высокую стоимость доставки товаров из Китая логично предположить что результирующая стоимость сборки данного дрона составит приблизительно 1500-2000 рублей.
Принципиальная схема дрона с управлением по Wi-Fi
Полная принципиальная схема дрона на основе модуля ESP32, управляемого по Wi-Fi, сделанного своими руками, показана на следующем рисунке. Ее также можно скачать в формате PDF по ссылке в конце статьи.
Порт USB типа C в данной схеме используется как для зарядки, так и для целей программирования. Питание от USB-порта подается на схему контроллера цепи питания, построенную на основе P-канального МОП-транзистора U2 и диода D1. Когда питание USB доступно, устройство будет работать от питания USB, а также заряжать внутреннюю батарею. Когда питание USB отключается, устройство автоматически переключается на питание от аккумулятора. Для регулирования напряжения мы использовали LDO-стабилизатор MIC5219 3,3 В от Microchip, который способен обеспечивать ток до 500 мА с очень низким падением напряжения 500 мВ при полной нагрузке. Ползунковый переключатель с подтягивающим резистором подключен к выводу включения MIC5219. Этот переключатель используется для включения и выключения тепловизионной камеры. Когда этот штырь притягивается к земле, LDO отключается, а следовательно, и другие части устройства, за исключением секции зарядки аккумулятора. Для зарядки внутренней батареи мы используем контроллер заряда TP4056, максимальный ток заряда которого составляет 1 А. Для измерения напряжения батареи мы использовали классический делитель напряжения, который снижает напряжение батареи до безопасного уровня для измерения.
На следующем рисунке у нас есть сама SoC ESP32 вместе со схемой программирования и микросхемой MPU6050. Схема программирования состоит из контроллера USB-UART CP2102 и двухканального N-N-канального МОП-транзистора 2N7002DW от ON Semi. Мы использовали CP2102 с пакетом QFN28. Крошечный двойной МОП-транзистор будет действовать как схема автоматического сброса для ESP32, тем самым устраняя необходимость в ручном режиме отдыха или выборе схемы загрузки, уменьшая размер платы и стоимость спецификации. Схема вокруг ESP32 стандартная, просто шунтирующие конденсаторы и подтягивающие резисторы. MPU6050 используется для стабилизации полета и управления движением. Он сопряжен с SoC ESP32 с использованием стандартных контактов I2C GPIO21 и GPIO22.
Далее у нас есть схема драйвера двигателя. Каждая схема драйвера двигателя состоит из N-канального МОП-транзистора SI2302, а также обратноходового диода и понижающего резистора. Таких контуров 4, на каждый мотор. Когда на затвор драйверного МОП-транзистора подается высокий сигнал, он включается и приводит в движение двигатель. Мы будем использовать сигналы ШИМ для управления скоростью двигателя. Обратноходовой диод и конденсаторы установлены для защиты схемы от обратной ЭДС или скачков напряжения.
Мы также добавили три светодиода для целей отладки, помимо индикаторов питания и зарядки. Синий светодиод будет медленно мигать во время калибровки датчика и будет мигать быстро, указывая, что система готова к взлету. Зеленый светодиод начнет мигать, когда приложение контроллера обнаружит UDP-соединение. КРАСНЫЙ светодиод используется для обозначения низкого состояния батареи. Он будет гореть постоянно, если напряжение батареи низкое.
Печатная плата для дрона с Wi-Fi-управлением
Для этого проекта мы решили изготовить специальную печатную плату. Это гарантирует, что конечный продукт будет максимально компактным, а также простым в сборке и использовании. Мы также спроектировали печатную плату таким образом, чтобы ножки дрона также были включены в печатную плату и их можно было легко отсоединить от основной печатной платы. Вот верхний и нижний слои печатной платы.
Внешний вид изготовленной печатной платы показан на следующих рисунках.
Вот 3D-рендер полностью собранного дрона.
И вот полностью собранный дрон.
Направление вращения пропеллеров
Установите пропеллеры A и B согласно рисунку ниже. Во время самотестирования при включении питания проверьте, правильно ли вращаются пропеллеры и вращаются ли они в правильном направлении.
Программное обеспечение (прошивка) для дрона с управлением по Wi-Fi
Прошивка нашего самодельного дрона основана на прошивке ESP-дрона от Espressif. Код написан с использованием ESP-IDF, а для компиляции этого кода используется версия ESP-IDF 4.4.5. Перейдите по следующей ссылке, чтобы установить и настроить ESP32 IDF версии 4.4.5. Вы можете либо собрать прошивку с нуля, используя исходный код, указанный в репозитории Github ниже, либо просто прошить двоичный файл, предоставленный в том же репозитории, если вы не хотите хлопот. Обязательно используйте исходный код, представленный ниже на GitHub, поскольку в коде Espressif имеется множество модификаций, соответствующих конструкции нашей печатной платы.
Чтобы загрузить код прошивки нашего дрона в модуль ESP32, вы можете воспользоваться любым из трех следующих способов.
Способ 1. Сборка из исходного кода с использованием ESPIDF
- Для начала установите и настройте ESP-IDF. Пожалуйста, следуйте подробным инструкциям от Espressif. Обязательно установите версию ESP-IDF 4.4.x.
- После установки ESP-IDF клонируйте репозиторий прошивки ESP-Drone с помощью git и перейдите в папку с прошивкой.
1 2 3 |
git clone https://github.com/Circuit-Digest/ESP-Drone.git cd ESP-Drone/Firmware/esp-drone |
- Вы можете изменить все конфигурации прошивки с помощью menuconfig. Для нашего варианта использования достаточно текущей конфигурации, и менять ничего не нужно.
1 |
idf.py menuconfig |
- Теперь для сборки и прошивки прошивки вы можете использовать команду flash. Она автоматически создаст и прошьет проект. Замените PORT на имя последовательного порта вашей платы ESP32-S2.
1 |
idf.py -p PORT flash |
Способ 2. Использование ESPTOOL
Чтобы использовать ESPtool, убедитесь, что у вас установлен ESP IDF. Инструкции для этого вы найдете в предыдущем разделе. После установки и настройки откройте терминал в той же папке, где находится образ прошивки, и используйте следующую команду для загрузки прошивки.
1 |
esptool.py write_flash --flash_size detect 0x0 ESPDrone.bin |
Способ 3: использование инструмента загрузки ESP32 Flash
- Сначала загрузите инструмент загрузки Flash ESP32 (ESP32 Flash Download Tool).
- Извлеките его в папку и дважды щелкните exe-файл, чтобы запустить его. При появлении запроса выберите ESP32 в поле типа чипа и нажмите «ОК».
- Выберите файл прошивки с файлом ESPDRone.bin и добавьте адрес 0x00. Выберите правильный COM-порт и нажмите erase («Стереть»). После завершения стирания прошивки нажмите START (СТАРТ), чтобы загрузить в модуль прошивку.
- Вот и все. Вы готовы использовать свой дрон, сделанный своими руками.
Использование дрона
Поместите дрон на ровную поверхность и включите его. Как только он включится, полетный контроллер создаст точку доступа Wi-Fi. Подключитесь к нему, используя пароль 12345678, и откройте приложение. Для iOS приложение можно загрузить из App Store, просто найдите ESP-Drone APP. Для Android вы можете скачать приложение по следующей ссылке. Имейте в виду, что приложение создано и размещено третьей стороной. Итак, устанавливайте их по своему желанию. Интерфейс этого приложения будет выглядеть следующим образом.
Нажмите кнопку подключения, чтобы начать общение с дроном. Когда соединение между вашим дроном и приложением успешно установлено, светодиод на дроне мигает ЗЕЛЕНЫМ. Кнопку блокировки поворота можно использовать для блокировки левого контроллера только вверх и вниз или вверх, вниз, поворот влево и поворот вправо. Используйте левый джойстик, чтобы взлететь или посадить дрон. Используйте правый джойстик для управления движениями. Если дрон отключается от приложения или сам дрон перезагружается при попытке взлететь, это означает, что аккумулятор не может обеспечить достаточную мощность. Мы использовали аккумулятор 30C емкостью 1300 мАч. Поэтому, пожалуйста, убедитесь, что используете батарею с более высоким рейтингом разряда.
Предполетная проверка
- Поместите дрон головой вперед, а хвостом (т. е. частью антенны) сзади.
- Поместите дрон на ровную поверхность и включите его, когда дрон стоит на месте.
- После установления связи проверьте, быстро ли мигает светодиод на хвосте дрона ЗЕЛЕНЫМ.
- Мигающий КРАСНЫЙ светодиод указывает на низкий уровень заряда батареи. Если это произойдет, зарядите батарею.
- Слегка сдвиньте контроллер Trust вперед, чтобы проверить, может ли дрон отреагировать на команду.
- Используйте правый контроллер, чтобы проверить, хорошо ли работает управление направлением движения.
Поддержка файлов
Вы можете скачать все необходимые файлы из репозитория Circuit Digest GitHub по следующей ссылке.