-
Notifications
You must be signed in to change notification settings - Fork 7
S2013
Sergey edited this page Jul 26, 2013
·
1 revision
- переставить моторы так, чтобы противоположные вращались в разные стороны
- добавить ПИД по "вертикальному" углу
- коэффициенты PID
- прога для чтения логов
- переход на arduino due
- переход на arduino mega
- использование mpu-9150
- пофиксить джойстик (кнопка включения)
- проверить, насколько хорошо работает XBee
- Улучшить качество стабилизации. Для этого: поправить коэффициенты PID (все меньше, I больше), использовать MPU-9150 (улучшит третий угол), дописать PID для третьего угла
- Переход на mega / due (должно быть несложно, код уже компилируется).
- Использовать барометр для поддержания высоты (примерно). Еще один ПИД, контролирующий force. Подумать над ролью джойстика в этом. Сумма (джойстик + результат из ПИД)?
- Использовать gps для автоматического полета и поддержания высоты. Для начала реализовать перемещение к заданным координатам по прямой линии. После полет по заданной траектории (последовательность точек, соединенных прямыми).
Для пунктов 2 и 3 понадобится переход на mega/due.
- Общая концепция + теория. Силы, моменты сил. Ускорение, скорость, координата. ПИД и его простое применение в регуляторе уровня воды. ПИД в применении к квадрокоптеру (что именно является входным и выходным параметрами).
- реализация микроконтроллеры avr, arduino, примеры задач, которые они могут решать (ввод/вывод, простые вычисления). Arm (нужно знать, что он более мощный, в нашем случае). Как данные передаются по проводу? (0 либо 1 кодируется 0 или 5v)
- (опционально) базовое представление о том, как работает микроконтроллер ("процессор выполняет инструкции, которые хранятся в памяти", не больше). Assembler, мне кажется, не нужен. Языки программирования (общая концепция: писать все в инструкциях людям не очень удобно, ключевые слова лучше). язык c. Функции (повторяющийся код), операторы, данные (типы данных). Выполнение начинается с main. Указатели особо не нужны. В проекте их почти нет, а быстро это с первого раза не понять (очень базово. Если по ходу не разберутся, придется потратить время на это). Немного о C++ (классы). Библиотеки как способ "не изобретать велосипед".
- "Язык arduino". Используем, потому что не привязан к конкретному железу (собирается как для avr, так и для arm, на разных платах). Setup, loop и их "настоящий вид". Примеры программ на arduino (мигание светодиодом, serial, analog read/write etc). Структура многофайлового проекта. Заголовочные файлы.
- Общая концепция проекта. Необходимые устройства (коптер, комп, джойстик). Рассказать, как данные передаются (данные накапливаются в буфере, когда =N, выполнение куска кода).
- (железо). Рассказать про ESC, трехфазную фигню.
- код для коптера. Что задает частоту (датчик)? Почему (нельзя допускать переполнений)? Проблемы с датчиками от invensense (документация по DMP херовая). Почему мы все же их используем (они дают готовый угол)? Зачем нужна высокая частота (например, правильный расчет производной)? Нарисовать график и показать, что программа посчитает не то, если частота будет недостаточной (можно нарисовать синусоиду и показать все нули. Коптер будет думать, что неподвижен, хотя на самом деле колеблется).
- помигать светодиодом на своей ардуине (должно работать у всех!)
- подключить барометр и выдавать его показания на pwm (небольшой диапазон), а также на serial.
- программа на qt/чем либо еще, которая будет общаться с arduino и включать светодиод по кнопке. То же самое, только с несколькими байтами. Сделать так, чтобы "мусор" в serial и потерянные байты не мешали работе (не должно произойти "сдвига")
- (Миронов, если захочет) MPU-9150. Выдать третий угол на pwm/serial.
- GPS. Подключить, разобраться с nmea (библиотечка). Какая точность? Какое время старта?
- те же задачи, но на mega/due
- настроить интернет
- поставить всем участникам необходимое ПО (все будет скачано), собрать коптер
- рассказать все, что выше
- найти место для полетов
- попробовать полетать (можно раньше)
- распределить ардуины (хватит всем, более продвинутым - более крутые), задачи