Скачать
Пять архивов. Если не хочется выбирать — берите последний, в нём всё вместе, включая эти страницы и документацию.
Скачать всё одним архивом, 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 молчит дольше секунды или присылает ноль, рули возвращаются в нейтраль. Ровный полёт устойчивого аппарата лучше борьбы вслепую.
Порядок работы
- Прогнать все проверки на компьютере:
pi/check.py,recovery/system.py,sim/bench_test.py. - Собрать корпус и взвесить его. Уточнить в
sim/mass.pyположения и массы, получить центр масс. Положить корпус на два пальца и проверить, где он уравновешивается. - Собрать управление без двигателя: платы, датчики, машинки. Проверить руками, что руль отклоняется в правильную сторону.
- Отработать автомат парашюта без заряда, затем заряд без парашюта на земле.
- Проверить камеру и приёмник на земле, на штативе: находит ли солнце, пишет ли картинку.
- Первый пуск без двигателя, с катапульты: смотреть, держит ли курс по земле.
- И только потом двигатель.
Чего в программах нет
- Управления тангажом. Руль высоты стоит в нейтрали, высота держится оттриммировкой. Без контура по тангажу аппарат не удержит ни срыв, ни пикирование, а с крылом это опаснее всего.
- Ручного режима для оператора с очками.
- Журнала на флешку: после посадки данные теряются.
- Проверки на реальном железе: числа регистров датчиков взяты из описаний.
Отдельно про камеру и заряд. Заряд парашюта не подключается к камере
и никогда не срабатывает от того, что в кадре появился крупный объект.
Камера видит крупный объект постоянно: землю при подъёме, облако, птицу, руку
при запуске. Заряд, сработавший на столе, калечит. Решение принимают барометр,
акселерометр и таймер — три независимых источника, с подтверждением по времени.