Добрался до Роболагеря. За эти несколько дней все участники уже собрали свои квадрокоптеры, и больше половины из них уже успешно полетели! 🎉
Дети самостоятельно спроектировали и изготовили рамы для дронов (по мотивам моей). Используется как 3D-печать, так и лазерная резка по дереву — оба типа рамы успешно летают. Летаем с пульта BetaFPV через Wi-Fi.
Из модификаций: собственно, кастомные рамы, buck-boost-конвертеры для питания, многие поставили на дроны ИК-дальномеры. На один из дронов будет установлен датчик PMW3901 (optical flow). Еще один участник заводит дрон на плате ESP32-CAM. На этой плате не хватает пинов для моторов, и поэтому команды управления моторами будут передаваться на вспомогательный AVR, который будет генерировать PWM-сигналы.
В качестве основных задач смены пока думаем про: удержание высоты по дальномеру (реально), obstacle avoidance (реально), удержание позиции по optical flow-датчику (посложнее), автономный полет.
Дети самостоятельно спроектировали и изготовили рамы для дронов (по мотивам моей). Используется как 3D-печать, так и лазерная резка по дереву — оба типа рамы успешно летают. Летаем с пульта BetaFPV через Wi-Fi.
Из модификаций: собственно, кастомные рамы, buck-boost-конвертеры для питания, многие поставили на дроны ИК-дальномеры. На один из дронов будет установлен датчик PMW3901 (optical flow). Еще один участник заводит дрон на плате ESP32-CAM. На этой плате не хватает пинов для моторов, и поэтому команды управления моторами будут передаваться на вспомогательный AVR, который будет генерировать PWM-сигналы.
В качестве основных задач смены пока думаем про: удержание высоты по дальномеру (реально), obstacle avoidance (реально), удержание позиции по optical flow-датчику (посложнее), автономный полет.
🔥41👍18❤3🎉2
Media is too big
VIEW IN TELEGRAM
⚡️Автоматический полет Flix!
Параллельно смене реализую новый режим AUTO для автоматических полетов, управляемых Python-скриптом (или самой прошивкой).
В этом режиме дрон игнорирует команды пилота с пульта и выполняет текущие attitudeTarget, ratesTarget и thrustTarget. В Python-скрипте они задаются функциями flix.set_attitude(), flix.set_rates().
Дрон переводится в автоматический режим функцией flix.set_mode('AUTO'), выводится — любым движением стиков на пульте.
Исходник скрипта для тестового полета: https://gist.github.com/okalachev/da807e2450d0235abce4966478c12ce4.
Сейчас этот режим уже можно протестировать — используйте ветку auto прошивки и последнюю версию библиотеки pyflix.
Новости по смене — дети уже получили очень интересные результаты (кстати, на видео дрон одного из участников). Подробнее — в следующих постах!
Параллельно смене реализую новый режим AUTO для автоматических полетов, управляемых Python-скриптом (или самой прошивкой).
В этом режиме дрон игнорирует команды пилота с пульта и выполняет текущие attitudeTarget, ratesTarget и thrustTarget. В Python-скрипте они задаются функциями flix.set_attitude(), flix.set_rates().
Дрон переводится в автоматический режим функцией flix.set_mode('AUTO'), выводится — любым движением стиков на пульте.
Исходник скрипта для тестового полета: https://gist.github.com/okalachev/da807e2450d0235abce4966478c12ce4.
Сейчас этот режим уже можно протестировать — используйте ветку auto прошивки и последнюю версию библиотеки pyflix.
Новости по смене — дети уже получили очень интересные результаты (кстати, на видео дрон одного из участников). Подробнее — в следующих постах!
👍23🔥8🤩3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Видео с успешной реализацией упрощенного варианта Obstacle Avoidance от одной из участниц Роболагеря.
Дрон определяет препятствие (стену) при помощи лазерного дальномера и отклоняется назад так, чтобы не врезаться.
Что важно, дети реализуют эту функцию непосредственно изменяя код полетной прошивки, а не управляя ей извне. Ключевой модификацией является подмена угла по тангажу в кватернионе attitudeTarget обратно пропорционально расстоянию до препятствия.
Дрон определяет препятствие (стену) при помощи лазерного дальномера и отклоняется назад так, чтобы не врезаться.
Что важно, дети реализуют эту функцию непосредственно изменяя код полетной прошивки, а не управляя ей извне. Ключевой модификацией является подмена угла по тангажу в кватернионе attitudeTarget обратно пропорционально расстоянию до препятствия.
🔥35👍15👏9
Media is too big
VIEW IN TELEGRAM
Собрал итоговое видео по Роболагерю. Показал основные этапы работы ребят и атмосферу.
Также на Ютубе: https://youtu.be/Wd3yaorjTx0.
Мои выводы по смене — в следующем посте!
Также на Ютубе: https://youtu.be/Wd3yaorjTx0.
Мои выводы по смене — в следующем посте!
🔥45👍11❤3👏3🏆1
Мои выводы по Роболагерю
Вообще, лично для меня это очень большая история: когда я разрабатывал Flix, я совершенно не был уверен, что удастся его хоть куда-то внедрить и что он вообще будет существовать больше, чем в одном экземпляре. В случае с Роболагерем — спасибо Павлу Томшину, который поверил в проект и проявил инициативу попробовать использовать Flix там.
Собственно, выводы.
1️⃣ Без всякого лукавства можно сказать, что платформа показала себя с лучшей стороны. Дети смогли спроектировать и собрать дроны, и практически все полетели.
2️⃣ Существенным отличием этой смены от других похожих было то, что участники непосредственно модифицировали код полетного контроллера квадрокоптера. Это было возможно именно за счет его простого дизайна. Такой подход дает более глубокое понимание полетного алгоритма, чем работа с контроллером, как с черным ящиком. Дети смогли модифицировать прошивку для реализации некоторых элементов автономного полета — удержание высоты, obstacle avoidance, автоматический взлет и посадка (без удержания позиции).
3️⃣ Как я и ожидал, использование чистого Arduino IDE — это большой плюс. Все участники смогли разобраться со сборкой и модификацией прошивки, и на это ушло совсем немного времени.
4️⃣ Мы не использовали RC-приемники — только Wi-Fi соединение. Всего было два пульта BetaFPV LiteRadio 3, которые подключались по USB, и их вполне хватало на 9 участников.
5️⃣ Деревянная рама показала себя не хуже, чем 3D-печатная. Тип рамы можно выбирать в зависимости от оборудования в наличии.
6️⃣ Многие спрашивали про плату ESP32-CAM — на ней запустить дрон так и не удалось. Во-первых, не заработала IMU через SPI, во-вторых, были сложности с подключением моторов через вспомогательный контроллер. Короче говоря, на ней тупо слишком мало пинов.
7️⃣ По ходу смены был разработан прототип режима AUTO и библиотеки pyflix, но активно мы его не использовали.
Краткое описание мероприятия добавлено в статью с пользовательскими сборками. Постараюсь также собрать спроектированные STL-файлы и добавить их туда.
У кого еще есть идеи и предложения по использованию платформы Flix — пишите, я к ним открыт!
Вообще, лично для меня это очень большая история: когда я разрабатывал Flix, я совершенно не был уверен, что удастся его хоть куда-то внедрить и что он вообще будет существовать больше, чем в одном экземпляре. В случае с Роболагерем — спасибо Павлу Томшину, который поверил в проект и проявил инициативу попробовать использовать Flix там.
Собственно, выводы.
1️⃣ Без всякого лукавства можно сказать, что платформа показала себя с лучшей стороны. Дети смогли спроектировать и собрать дроны, и практически все полетели.
2️⃣ Существенным отличием этой смены от других похожих было то, что участники непосредственно модифицировали код полетного контроллера квадрокоптера. Это было возможно именно за счет его простого дизайна. Такой подход дает более глубокое понимание полетного алгоритма, чем работа с контроллером, как с черным ящиком. Дети смогли модифицировать прошивку для реализации некоторых элементов автономного полета — удержание высоты, obstacle avoidance, автоматический взлет и посадка (без удержания позиции).
3️⃣ Как я и ожидал, использование чистого Arduino IDE — это большой плюс. Все участники смогли разобраться со сборкой и модификацией прошивки, и на это ушло совсем немного времени.
4️⃣ Мы не использовали RC-приемники — только Wi-Fi соединение. Всего было два пульта BetaFPV LiteRadio 3, которые подключались по USB, и их вполне хватало на 9 участников.
5️⃣ Деревянная рама показала себя не хуже, чем 3D-печатная. Тип рамы можно выбирать в зависимости от оборудования в наличии.
6️⃣ Многие спрашивали про плату ESP32-CAM — на ней запустить дрон так и не удалось. Во-первых, не заработала IMU через SPI, во-вторых, были сложности с подключением моторов через вспомогательный контроллер. Короче говоря, на ней тупо слишком мало пинов.
7️⃣ По ходу смены был разработан прототип режима AUTO и библиотеки pyflix, но активно мы его не использовали.
Краткое описание мероприятия добавлено в статью с пользовательскими сборками. Постараюсь также собрать спроектированные STL-файлы и добавить их туда.
У кого еще есть идеи и предложения по использованию платформы Flix — пишите, я к ним открыт!
🔥52👍14👏9❤5🏆2🍾2
Большой рефакторинг и новые фичи
По мотивам Роболагеря я сделал в прошивке ряд изменений. Некоторые из них были непосредственно продиктованы опытом ее использования участниками. Опишу основные.
✅ Рефакторинг подсистемы управления. Теперь код интерпретации команд от пилота полностью отделен от кода контуров управления полетом. Функция interpretControls конвертирует положение стиков и режим в универсальную команду управления, которая затем и используется подсистемой управления (без знания о том, откуда эти команды взялись и какой именно сейчас установлен режим). Она состоит из 5 переменных:
1. attitudeTarget — целевая ориентация.
2. ratesTarget – целевая угловая скорость.
3. ratesExtra – дополнительная угловая скорость, добавляется к ratesTarget.
4. torqueTarget — целевой крутящий момент.
5. thrustTarget — целевая общая тяга.
Если какая-то из них установлена в NAN, это значит, что соответствующий ей контур управления надо пропустить. Так, для режима STAB задаются attitudeTarget, thrustTarget и ratesExtra (для управления угловой скоростью по рысканию), для режима ACRO — ratesTarget и thrustTarget, а для режима AUTO возможен любой вариант, в зависимости от того, чем именно мы хотим управлять.
В статью про архитектуру прошивки добавлено описание этой новой архитектуры и наглядная диаграмма.
✅ Механика арминга/дизарминга теперь аналогична PX4/ArduPilot. То есть чтобы заармить дрон, левый стик нужно переместить вниз-вправо (после этого моторы закрутятся), а чтобы задизармить — вниз-влево. Я очень долго думал, но так и не смог придумать более простой и при этом безопасный вариант, а фактическое отсутствие механизма арминга на практике оказалось небезопасным.
В документации теперь есть инструкция по пилотированию дрона (включая арминг/дизарминг и режимы).
✅ Вмержена реализация режима AUTO — для автоматических полетов. Как я уже писал, в этом режиме для управления используется библиотека pyflix. Управлять можно как целевой ориентацией или угловой скоростью, так и напрямую моторами. Очень подробный туториал по этой библиотеке есть в документации.
✅ Добавлены новые CLI-команды: arm, disarm, stab, acro, auto — для арминга/дизарминга и переключения режимов из консоли.
Все эти нововведения никак не усложнили код (а местами его упростили, например, код подсистемы управления стал короче). Но при этом прошивка становится более юзабельной и расширяемой.
По мотивам Роболагеря я сделал в прошивке ряд изменений. Некоторые из них были непосредственно продиктованы опытом ее использования участниками. Опишу основные.
✅ Рефакторинг подсистемы управления. Теперь код интерпретации команд от пилота полностью отделен от кода контуров управления полетом. Функция interpretControls конвертирует положение стиков и режим в универсальную команду управления, которая затем и используется подсистемой управления (без знания о том, откуда эти команды взялись и какой именно сейчас установлен режим). Она состоит из 5 переменных:
1. attitudeTarget — целевая ориентация.
2. ratesTarget – целевая угловая скорость.
3. ratesExtra – дополнительная угловая скорость, добавляется к ratesTarget.
4. torqueTarget — целевой крутящий момент.
5. thrustTarget — целевая общая тяга.
Если какая-то из них установлена в NAN, это значит, что соответствующий ей контур управления надо пропустить. Так, для режима STAB задаются attitudeTarget, thrustTarget и ratesExtra (для управления угловой скоростью по рысканию), для режима ACRO — ratesTarget и thrustTarget, а для режима AUTO возможен любой вариант, в зависимости от того, чем именно мы хотим управлять.
В статью про архитектуру прошивки добавлено описание этой новой архитектуры и наглядная диаграмма.
✅ Механика арминга/дизарминга теперь аналогична PX4/ArduPilot. То есть чтобы заармить дрон, левый стик нужно переместить вниз-вправо (после этого моторы закрутятся), а чтобы задизармить — вниз-влево. Я очень долго думал, но так и не смог придумать более простой и при этом безопасный вариант, а фактическое отсутствие механизма арминга на практике оказалось небезопасным.
В документации теперь есть инструкция по пилотированию дрона (включая арминг/дизарминг и режимы).
✅ Вмержена реализация режима AUTO — для автоматических полетов. Как я уже писал, в этом режиме для управления используется библиотека pyflix. Управлять можно как целевой ориентацией или угловой скоростью, так и напрямую моторами. Очень подробный туториал по этой библиотеке есть в документации.
✅ Добавлены новые CLI-команды: arm, disarm, stab, acro, auto — для арминга/дизарминга и переключения режимов из консоли.
Все эти нововведения никак не усложнили код (а местами его упростили, например, код подсистемы управления стал короче). Но при этом прошивка становится более юзабельной и расширяемой.
🔥33👍18❤1🙏1
И снова мероприятие с Flix!
Мой рассказ о смене в «Роболагере» привлек внимание, и другие организации тоже заинтересовались проведением у себя чего-то подобного.
С сегодняшнего дня в школе № 548 в Москве начался курс/мастер-класс по Flix, с моим участием. Курс займет несколько недель и будет состоять из 4-5 занятий. Постараюсь еще более глубоко осветить тему полетных алгоритмов, чем это было в «Роболагере». По ходу курса участники самостоятельно спроектируют и соберут дроны с прошивкой Flix, а также, надеюсь, реализуют какие-то интересные модификации, которые я освещу в этом канале.
Уровень IT-класса в школе крайне высокий — на робототехнику выделен чуть ли не целый этаж. В школу ездят ученики со всей Москвы. Несколько участников курса уже даже заранее собрали дроны, правда, пока ни один не полетел.
Сегодня я читал вводную лекцию по БПЛА и по устройству Flix. На следующую неделю ребята получили домашнее задание, собственно, спроектировать и изготовить раму для дрона. Посмотрим, что у них получится!
Мой рассказ о смене в «Роболагере» привлек внимание, и другие организации тоже заинтересовались проведением у себя чего-то подобного.
С сегодняшнего дня в школе № 548 в Москве начался курс/мастер-класс по Flix, с моим участием. Курс займет несколько недель и будет состоять из 4-5 занятий. Постараюсь еще более глубоко осветить тему полетных алгоритмов, чем это было в «Роболагере». По ходу курса участники самостоятельно спроектируют и соберут дроны с прошивкой Flix, а также, надеюсь, реализуют какие-то интересные модификации, которые я освещу в этом канале.
Уровень IT-класса в школе крайне высокий — на робототехнику выделен чуть ли не целый этаж. В школу ездят ученики со всей Москвы. Несколько участников курса уже даже заранее собрали дроны, правда, пока ни один не полетел.
Сегодня я читал вводную лекцию по БПЛА и по устройству Flix. На следующую неделю ребята получили домашнее задание, собственно, спроектировать и изготовить раму для дрона. Посмотрим, что у них получится!
🔥42👍17❤9❤🔥3🏆2👏1🎉1
В субботу прошло второе занятие нашего экспериментального курса по Flix в школе № 548.
Делал лекцию по электронике дрона — разбирал, что к чему подключено и почему именно так. Изучали подключение моторов через MOSFETы, коснулись основ электричества, интерфейсов (UART, I2C, SPI).
Потом была лекция по сборке, накатке и настройки прошивки. Показывал работу с консолью, QGroundControl, отладку датчиков по телеметрии и построение графиков.
Вырисовывается довольно интересный и логично выстроенный курс, в котором можно последовательно осветить множество разных тем. Обязательно использую этот опыт при написании следующих глав учебника.
По результатам: большинство учеников уже изготовили свои рамы, и многие даже установили компоненты. Рамы сделали кто во что горазд, не копируя дословно референсную (и я этого и хотел). Есть интересные, странные и необычные решения.
На следующем занятии — настройка и полетные испытания.
Делал лекцию по электронике дрона — разбирал, что к чему подключено и почему именно так. Изучали подключение моторов через MOSFETы, коснулись основ электричества, интерфейсов (UART, I2C, SPI).
Потом была лекция по сборке, накатке и настройки прошивки. Показывал работу с консолью, QGroundControl, отладку датчиков по телеметрии и построение графиков.
Вырисовывается довольно интересный и логично выстроенный курс, в котором можно последовательно осветить множество разных тем. Обязательно использую этот опыт при написании следующих глав учебника.
По результатам: большинство учеников уже изготовили свои рамы, и многие даже установили компоненты. Рамы сделали кто во что горазд, не копируя дословно референсную (и я этого и хотел). Есть интересные, странные и необычные решения.
На следующем занятии — настройка и полетные испытания.
🔥54👍17❤1👏1🏆1
Вчера было третье занятие курса в школе № 548. На этот раз это была свободная работа — настройка дронов и тестовые полеты.
🎉 И по итогу почти все собранные дроны полетели! Я смонтировал небольшое видео с полетами и атмосферой.
Из наиболее интересного: чувак собрал самодельный пульт, который должен управлять дроном по протоколу ESP-NOW (см. фото). Его мы пока не завели, тут задача добавить поддержку ESP-NOW в Flix.
Также дрон с удлиненными лучами и пропеллерами 65 мм, он удивительно хорошо и плавно летает, отлично управляется.
Специально для мероприятия я завел ветку в репозитории: school-548. Пока там фичи для решения проблем со связью при большом количество количестве дронов: сделана возможность подключения к роутеру вместо раздачи Wi-Fi, а также отключена рассылка телеметрии, пока дрон не обнаружит QGroundControl, чтобы не забивать эфир.
Дальше мы будем заводить все фичи ребят и пробовать делать автономные/полуавтономные полеты с использованием дальномеров.
🎉 И по итогу почти все собранные дроны полетели! Я смонтировал небольшое видео с полетами и атмосферой.
Из наиболее интересного: чувак собрал самодельный пульт, который должен управлять дроном по протоколу ESP-NOW (см. фото). Его мы пока не завели, тут задача добавить поддержку ESP-NOW в Flix.
Также дрон с удлиненными лучами и пропеллерами 65 мм, он удивительно хорошо и плавно летает, отлично управляется.
Специально для мероприятия я завел ветку в репозитории: school-548. Пока там фичи для решения проблем со связью при большом количество количестве дронов: сделана возможность подключения к роутеру вместо раздачи Wi-Fi, а также отключена рассылка телеметрии, пока дрон не обнаружит QGroundControl, чтобы не забивать эфир.
Дальше мы будем заводить все фичи ребят и пробовать делать автономные/полуавтономные полеты с использованием дальномеров.
🔥40👍8👏1
Flix: разработка полетного контроллера с нуля
flix2-draft.pdf
Пока в Курсе возникла пауза, я решил наконец возобновить работу над платой. Тем более что про нее продолжают спрашивать.
В прошлый раз я застопорился из-за того, что разъем для камеры использует огромное количество пинов. В результате их не очень хватает, чтобы все остальное красиво подключить — как выяснилось, часть пинов на самом деле заняты внутренним PSRAM.
Чтобы наконец-то доделать плату, я решил пока остановиться на упрощенной версии, без подключения камеры (но идею с камерой я не забрасываю).
Я переработал схему, учел комментарии к прошлому посту (в частности, добавил токоограничивающие резисторы перед mosfet'ами), вывел больше пинов на «гребенки», исправил пин для измерения напряжения (ADC на GPIO15 не работает вместе с Wi-Fi).
❓Оставшиеся вопросы:
1️⃣ Как наиболее оптимально организовать питание ESP32 и других компонентов. Использовать более редкий buck-boost TPS63021 с фиксированным напряжением 3.3 В или TPS63020 с регулируемым выходом? Или поставить boost до 5 В с последующим LDO до 3.3 В, как сделано на некоторых платах?
2️⃣ Как сделать, чтобы плата корректно работала и от аккумулятора, и от USB, от обоих источников одновременно. Сейчас эти линии питания просто соединены напрямую, и это явно не будет работать. Мне нужны какие-то референсы, как это правильно организовывается.
3️⃣ В версии с камерой видимо придется управлять моторами через внешний I2C ШИМ-контроллер, потому что пинов не хватает. А лучше бы через готовый I2C-драйвер для 4 (или больше) коллекторных моторов, но такой я пока не нашел.
Буду рад вашим советам! Свежую версию схемы я приложу в комментариях. ▶️
В прошлый раз я застопорился из-за того, что разъем для камеры использует огромное количество пинов. В результате их не очень хватает, чтобы все остальное красиво подключить — как выяснилось, часть пинов на самом деле заняты внутренним PSRAM.
Чтобы наконец-то доделать плату, я решил пока остановиться на упрощенной версии, без подключения камеры (но идею с камерой я не забрасываю).
Я переработал схему, учел комментарии к прошлому посту (в частности, добавил токоограничивающие резисторы перед mosfet'ами), вывел больше пинов на «гребенки», исправил пин для измерения напряжения (ADC на GPIO15 не работает вместе с Wi-Fi).
❓Оставшиеся вопросы:
1️⃣ Как наиболее оптимально организовать питание ESP32 и других компонентов. Использовать более редкий buck-boost TPS63021 с фиксированным напряжением 3.3 В или TPS63020 с регулируемым выходом? Или поставить boost до 5 В с последующим LDO до 3.3 В, как сделано на некоторых платах?
2️⃣ Как сделать, чтобы плата корректно работала и от аккумулятора, и от USB, от обоих источников одновременно. Сейчас эти линии питания просто соединены напрямую, и это явно не будет работать. Мне нужны какие-то референсы, как это правильно организовывается.
3️⃣ В версии с камерой видимо придется управлять моторами через внешний I2C ШИМ-контроллер, потому что пинов не хватает. А лучше бы через готовый I2C-драйвер для 4 (или больше) коллекторных моторов, но такой я пока не нашел.
Буду рад вашим советам! Свежую версию схемы я приложу в комментариях. ▶️
👍15❤4
Media is too big
VIEW IN TELEGRAM
Вчера было четвертое занятие в 548-й школе. Я сделал подробную лекцию, где построчно разобрал код полетной прошивки и рассказал, как ее можно модифицировать, после чего была свободная работа. И день получился очень результативным.
Первый результат, который я хочу показать — заработал самодельный пульт, который работает по протоколу ESP-NOW 🥳.
Протокол ESP-NOW работает на частотах Wi-Fi, и встроен во все ESP32. И он намного лучше подходит для управления дроном, чем Wi-Fi. Этот протокол очень легковесный и низкоуровневый, в нем не требуется установка соединения, меньше задержек, и он может работать на расстояниях до сотен метров.
Участник курса @kiraflux_0XC0000005 добавил отправку MAVLink-сообщения MANUAL_CONTROL в свой пульт и модифицировал Flix так, чтобы он принимал данные по ESP-NOW. Еще он планирует выводить консоль или другие данные с дрона на встроенный экран пульта. Правда, управлять не очень удобно из-за подпружиненного стика газа, но возможно.
Поддержка ESP-NOW — это действительно полезная фича, и я планирую внедрить ее в официальную версию прошивки.
Исходники пульта и модифицированного Flix (который называется Klyax!) выложены на GitHub.
Первый результат, который я хочу показать — заработал самодельный пульт, который работает по протоколу ESP-NOW 🥳.
Протокол ESP-NOW работает на частотах Wi-Fi, и встроен во все ESP32. И он намного лучше подходит для управления дроном, чем Wi-Fi. Этот протокол очень легковесный и низкоуровневый, в нем не требуется установка соединения, меньше задержек, и он может работать на расстояниях до сотен метров.
Участник курса @kiraflux_0XC0000005 добавил отправку MAVLink-сообщения MANUAL_CONTROL в свой пульт и модифицировал Flix так, чтобы он принимал данные по ESP-NOW. Еще он планирует выводить консоль или другие данные с дрона на встроенный экран пульта. Правда, управлять не очень удобно из-за подпружиненного стика газа, но возможно.
Поддержка ESP-NOW — это действительно полезная фича, и я планирую внедрить ее в официальную версию прошивки.
Исходники пульта и модифицированного Flix (который называется Klyax!) выложены на GitHub.
🔥41👍10❤3👏2
Еще один результат на последнем занятии — это летающий дрон на плате ESP32‑S3‑CAM с разъемом для камеры.
Пришлось немного модифицировать прошивку, снизить частоту ШИМ и поменять ledc на analogWrite (тут пока не разобрались, почему).
Следующая задача — заставить камеру работать одновременно с полетом. Для этого надо правильно склеить полетную прошивку с тестовым скетчем CameraWebServer, который стримит картинку с камеры в браузер. Сам сервер там запускается в отдельной таске, так что это должно быть не сложно, но пока оно почему-то не заработало.
Вообще, исследование возможности совмещения работы с камерой и полетного алгоритма в одной прошивке — это одна из целей этого проекта. Лично мне очень интересно это сделать.
Так что все, кто хотел поэкспериментировать с платой с камерой - запускайте на ESP32‑S3‑CAM, не на ESP32‑CAM (там не работает).
Пришлось немного модифицировать прошивку, снизить частоту ШИМ и поменять ledc на analogWrite (тут пока не разобрались, почему).
Следующая задача — заставить камеру работать одновременно с полетом. Для этого надо правильно склеить полетную прошивку с тестовым скетчем CameraWebServer, который стримит картинку с камеры в браузер. Сам сервер там запускается в отдельной таске, так что это должно быть не сложно, но пока оно почему-то не заработало.
Вообще, исследование возможности совмещения работы с камерой и полетного алгоритма в одной прошивке — это одна из целей этого проекта. Лично мне очень интересно это сделать.
Так что все, кто хотел поэкспериментировать с платой с камерой - запускайте на ESP32‑S3‑CAM, не на ESP32‑CAM (там не работает).
🔥32👍11❤1👏1
This media is not supported in your browser
VIEW IN TELEGRAM
Попробовал сгенерировать плату дрона с помощью искусственного интеллекта flux.ai. Вышло не особо удачно.
Вообще, я хотел сделать в нем только трассировку, но не нашел там способа импорта проекта из EasyEDA, поэтому «заказал» плату целиком. Он долго уточнял детали, затем выдал план работ, который я подтвердил. Затем он ушел в работу на вечность. После нескольких часов работы он вошел в какой-то дурной цикл, бесконечно подбирая и размещая на плате слот для SD-карты. Увидев это, я остановил процесс.
И все бы ничего, но для начала работы в этом сервисе, нужна была платная подписка. Так еще и после исчерпания 500 кредитов, за каждый дополнительный шаг снимаются дополнительные деньги. В итоге я потратил 15 баксов на подписку, и еще 17 за дополнительные кредиты, которые он съел в этом своем вечном цикле, и осмысленный результат так и не получил.
Я написал про ситуацию в техподдержку, но ответа пока нет.
В общем, не знаю, может мне просто не повезло, а может ИИ пока не справляются с такими сложными проектами с нуля. А у вас какой опыт с ИИ-схемотехникой?
Вообще, я хотел сделать в нем только трассировку, но не нашел там способа импорта проекта из EasyEDA, поэтому «заказал» плату целиком. Он долго уточнял детали, затем выдал план работ, который я подтвердил. Затем он ушел в работу на вечность. После нескольких часов работы он вошел в какой-то дурной цикл, бесконечно подбирая и размещая на плате слот для SD-карты. Увидев это, я остановил процесс.
И все бы ничего, но для начала работы в этом сервисе, нужна была платная подписка. Так еще и после исчерпания 500 кредитов, за каждый дополнительный шаг снимаются дополнительные деньги. В итоге я потратил 15 баксов на подписку, и еще 17 за дополнительные кредиты, которые он съел в этом своем вечном цикле, и осмысленный результат так и не получил.
Я написал про ситуацию в техподдержку, но ответа пока нет.
В общем, не знаю, может мне просто не повезло, а может ИИ пока не справляются с такими сложными проектами с нуля. А у вас какой опыт с ИИ-схемотехникой?
😁10❤1😢1