За последние годы дроны стремительно переросли из нишевых хобби-девайсов в гибкие инструменты, применяемые для множества всевозможных задач — от фотографии до сельского хозяйства и даже военной сферы. В зависимости от назначения, характеристик и способности нести полезную нагрузку подобные устройства могут стоить от нескольких тысяч до миллионов.
И хотя основной принцип, лежащий в их основе, может казаться простым, для правильного функционирования дронов и реализации ими нужных задач применяются сложные технологии и вычислительные системы. Например, для сохранения стабильности в полёте необходимы прецизионные датчики вроде гироскопа, а также эффективная обработка считываемых ими данных. Нашим же проектом станет сборка небольшого дрона, управляемого с помощью смартфона.
Это будет миниатюрный квадрокоптер, который можно собрать из доступных компонентов в виде микроконтроллера ESP32, инерциального измерительного блока MPU6050, бессердечникового двигателя и пластиковых пропеллеров.
Характеристики нашего будущего WiFi-дрона:
- Управление по WiFi с помощью смартфона.
- MPU6050 IMU для контроля стабильности полёта.
- Всё на одной печатной плате: конструировать на 3D-принтере ничего не придётся.
- Простота будущего апгрейда: можно будет расширить возможности дрона внешними модулями, например, добавить функцию удержания конкретной высоты или позиции.
- Небольшой размер и вес.
- Встроенное зарядное устройство.
- Встроенный USB-интерфейс для программирования и отладки.
- Поддержка приложений Android и iOS.
- Открытый исходный код.

▍ Схема дрона
Вся схема нашего WiFi-дрона:

Порт USB-C служит для зарядки и программирования. Его контроллер мощности на базе P-канального МОП-транзистора U2 и диода D1 позволяет легко переключаться между питанием от USB-источника и батареи. За регуляцию напряжения при этом отвечает LDO-стабилизатор MIC5219 3.3 В от Microchip. Движковый выключатель активирует тепловизор, а контроллер TP4056 управляет зарядкой батареи. Контроль напряжения облегчается за счёт классической схемы делителя. Модуль CP2102 вкупе с двойным МОП-транзистором упрощает сброс ESP32. Сам ESP32 при этом имеет стандартную обвязку. Гироскоп MPU6050, подключённый к ESP32 через контакты ввода/вывода, помогает стабилизировать полёт и контролировать перемещение дрона. Наконец, для управления электродвигателем в его схеме применяется N-канальный МОП-транзистор SI2302, дополненный защитными диодами и резисторами. Помимо индикаторов зарядки и питания, функциональный мониторинг дополняют отладочные светодиоды, включая синий для калибровки, зелёный для обнаружения подключения и красный для индикации низкого заряда батареи.
Более подробное описание и прочие детали описаны на странице проекта.
▍ Печатная плата
Для этого проекта мы решили собрать кастомную печатную плату. Это позволит сделать конечный продукт максимально компактным, а также упростит его сборку и использование. Причём мы специально включили в схему лапы коптера, чтобы их можно было через неё отключать. Вот верхний и нижний слои платы:

Вот сама плата:

А вот весь коптер в сборе:

▍ Направление пропеллеров
Установите пропеллеры А и В в соответствии с рисунком ниже. Во время самотестирования при включении проверьте, вращаются ли пропеллеры должным образом и в правильном направлении.

▍ Прошивка коптера
Программное обеспечение для нашего малыша основано на прошивке ESP-дрона от Espressif. Код написан на фреймворке ESP-IDF и скомпилирован под его версией 4.4.5. Для установки и настройки ESP32 IDF 4.4.5 пройдите по ссылке. Можете либо собрать прошивку с нуля, используя код из указанного далее репозитория проекта, либо просто залить бинарник, лежащий там же в репозитории. Используйте код именно с указанного ресурса GitHub, так как есть много его модификаций, подходящих под дизайн нашей платы.
▍ Заливка прошивки
Залить ПО на коптер можно тремя способами.
▍ Способ 1: сборка из исходного кода с помощью ESP-IDF
- Для начала установки и настройки ESP-IDF, следуя подробной инструкции от Espressif. Вам понадобится версия ESP-IDF 4.4.х.
- После установки ESP-IDF клонируйте репозиторий прошивки дрона с помощью Git и перейдите в её каталог.
git clone https://github.com/Circuit-Digest/ESP-Drone.git cd ESP-Drone/Firmware/esp-drone
- Изменять конфигурацию прошивки можно с помощью
menuconfig
. Но для нашего случая вполне подойдут её текущие настройки.
idf.py menuconfig
- Теперь для сборки и заливки прошивки используйте показанную ниже команду
flash
, заменивPORT
на имя последовательного порта вашего ESP32-S2. Эта команда автоматически соберёт и зальёт программу на плату.
idf.py -p PORT flash
▍ Способ 2: использование ESPTOOL
Для использования ESPTool у вас должен быть установлен ESP-IDF. Соответствующие инструкции есть в предыдущем видео. После установки и настройки перейдите в терминале в каталог образа прошивки и залейте её с помощью следующей команды:
esptool.py write_flash --flash_size detect 0x0 ESPDrone.bin
▍ Способ 3: использование ESP32 Flash Download Tool
- Скачайте ESP32 Flash Download Tool.
- Распакуйте его и запустите двойным кликом по файлу
.exe
. В окне выбора типа микросхемы отметьте ESP32 и кликните «ОК». - Выберите файл прошивки с ESPDrone.bin и добавьте этот адрес в
0x00
. Выберите нужный порт и кликните по Erase. По завершении стирания прошивки кликните START для заливки новой. - На этом всё — ваш самодельный коптер готов к полёту.
▍ Использование коптера
Расположите четырёхкрылого на плоской поверхности и включите. После включения полётный контроллер создаст точку WiFi. Подключитесь к ней с паролем 12345678
и откройте приложение. Версия для iOS доступна в App Store — ищите ESP-Drone APP. Для Android приложение можно скачать по этой ссылке. Помните, что оно разработано и распространяется сторонними лицами, так что устанавливайте по своему усмотрению. Интерфейс приложения выглядит так:
Для установки связи с коптером кликните по кнопке «Connect». После успешной установки подключения его светодиод замигает зелёным. Кнопка «Turn Lock» позволяет переключать левый контроллер в режим только «Up»/«Down». Левый стик служит для подъёма и посадки коптера, а правый — для управления его движением. Если коптер отключится от приложения или уйдёт в перезагрузку при попытке посадки, это сигнал о низком заряде батареи. Мы установили в него аккумулятор 1300 мАч 30C, вы же можете использовать аналог с более высокой токоотдачей.
▍ Предполётная проверка
- Располагайте коптер фронтальной частью вперёд (задняя часть определяется по антенне).
- Устойчиво расположите коптер на возвышенной поверхности и включите.
- После установки соединения, убедитесь, что зелёный светодиод мигает.
- Мигающий красный светодиод сигнализирует о необходимости зарядки батареи.
- Слегка сдвиньте вперёд контроллер «Thrust», чтобы проверить, реагирует ли коптер на команду.
- Используйте правый контроллер для проверки команд направления.
Более подробное описание и прочие детали доступны на странице проекта.
Автор: Bright_Translate