Готовые программы

Скачать, залить на платы, проверить. Ничего дописывать не нужно

Скачать

Пять архивов. Если не хочется выбирать — берите последний, в нём всё вместе, включая эти страницы и документацию.

Скачать всё одним архивом, 85 КБ

АрхивЧто внутриРазмер
star-toy-pi.zip Программа курса по солнцу для Raspberry Pi Zero 2 W: камера, поиск солнца, горизонт, приёмник, расчёт сноса, проверки на синтетических кадрах 13 КБ Скачать
star-toy-mcu.zip Быстрый контур для RP2040: гироскоп, рули, элероны, предохранители, контур управления, проверенный в тренажёре 15 КБ Скачать
star-toy-recovery.zip Автоматический парашют: автомат состояний, размеры купола, навеска заряда, одиннадцать проверок на сценариях с отказами 7 КБ Скачать
star-toy-sim.zip Расчёты: крыло, масса и центровка, элероны, дальность видео, азимут солнца, профиль разгона, модель полёта 23 КБ Скачать
star-toy-all.zip Всё вместе плюс документация и эти страницы 85 КБ Скачать

В каждом архиве лежит README.txt с тем же, что написано ниже: скачанная папка понятна без интернета.

Как проверить программы, не имея ни одной платы

Половину работы можно проверить на обычном компьютере, и это надо сделать до покупки железа. Нужен только Python, никаких библиотек.

python pi/check.py        23 проверки: солнце в кадре, горизонт,
                          астрономия, удержание трека при ветре до 12 м/с

python recovery/system.py 11 проверок: обычный полёт, стол, помехи,
                          отказ барометра, залипший акселерометр

python sim/bench_test.py  9 проверок контура рулей

python sim/wing.py        размер крыла и скорость срыва
python sim/mass.py        массовая сводка и центровка
python sim/fpv.py         центровка с камерами и площадь элеронов
python sim/sun.py         азимут солнца, снос ветром, засветка камеры

Что делает каждая программа

Программа для Raspberry Pi

sun_vision.py — поиск солнца и линии горизонта в кадренаходит солнце размером от двух пикселей, отбраковывает битый пиксель и засветку от облака
guidance.py — азимут солнца, курс по земле, угол сносасам находит, насколько задрать нос против ветра
main.py — главный цикл: камера, приёмник, команды рулям25 раз в секунду, с честным понижением режима при отказе датчиков
check.py — проверки на синтетических кадрахработает без камеры и без платы

Нужно: pip install picamera2 pyserial

Программа для RP2040

servo_loop.py — гироскоп, рули, связь, предохранители250 раз в секунду, рули в нейтраль при потере связи
control.py — контур управлениятот же файл, что проверен в тренажёре и на стенде
imu.py — драйвер гироскопа и акселерометраMPU6050 или ICM-42688-P

Автоматический парашют

system.py — автомат состояний и размеры куполана земле не срабатывает никогда: проверено отдельным сценарием

Расчёты

wing.py, mass.py, fpv.pyкрыло, центровка, элероны, дальность видео
sun.py, size_boost.py, solid.pyсолнце и снос, профиль разгона, модель полёта

Как платы связаны между собой

камера ─→ солнце в кадре ─→ азимут носа ─┐
приёмник ─→ трек по земле ──────────────┼─→ Raspberry: курс и снос
время и место ─→ азимут солнца ─────────┘        │
                                                 │  UART, 115200
                                                 ↓
                                            RP2040: 250 Гц
                                                 ↓
                                    руль направления, руль высоты, элероны

Строка от Raspberry к плате рулей:

H <курс в градусах> <1 или 0 — достоверность>

Если Raspberry молчит дольше секунды или присылает ноль, рули возвращаются в нейтраль. Ровный полёт устойчивого аппарата лучше борьбы вслепую.

Порядок работы

  1. Прогнать все проверки на компьютере: pi/check.py, recovery/system.py, sim/bench_test.py.
  2. Собрать корпус и взвесить его. Уточнить в sim/mass.py положения и массы, получить центр масс. Положить корпус на два пальца и проверить, где он уравновешивается.
  3. Собрать управление без двигателя: платы, датчики, машинки. Проверить руками, что руль отклоняется в правильную сторону.
  4. Отработать автомат парашюта без заряда, затем заряд без парашюта на земле.
  5. Проверить камеру и приёмник на земле, на штативе: находит ли солнце, пишет ли картинку.
  6. Первый пуск без двигателя, с катапульты: смотреть, держит ли курс по земле.
  7. И только потом двигатель.

Чего в программах нет

Отдельно про камеру и заряд. Заряд парашюта не подключается к камере и никогда не срабатывает от того, что в кадре появился крупный объект. Камера видит крупный объект постоянно: землю при подъёме, облако, птицу, руку при запуске. Заряд, сработавший на столе, калечит. Решение принимают барометр, акселерометр и таймер — три независимых источника, с подтверждением по времени.