Полетный контроллер AfroFlight32 / Naze 32
а управлять полетом нельзя
а управлять полетом нельзя
Если вернете функциональность оригинального multiwii - то можно. Ключевое слово - rcserial
Ворос такой, что все таки лучше брать AfroFlight32 или “Naze 32”?
ПС я так понял одна копии другой?
еще вопрос: чистую плату можно купить?
Ворос такой, что все таки лучше брать AfroFlight32 или “Naze 32”?
ПС я так понял одна копии другой?еще вопрос: чистую плату можно купить?
- AfroFlight32 == Naze32
- Спишись с timecop и купи. Правда не факт что это имеет смысл =)
AfroFlight32 или “Naze 32”
AfroFlight - название прошивки, Naze - название железки, очевидно же.
А нафига чистая плата? Что, сможете сделать готовую плату с датчиками и обвязкой дешевле, чем у timecop?
Что, сможете сделать готовую плату с датчиками и обвязкой дешевле, чем у timecop?
детальки может пробить получиться нахаляву или со скидосами
на халяву или со скидкой - получится в два раза дороже за ту-же mpu6050 доставка может выйти дороже чем сама микросхема в единичном экземпляре, всю комплектуху в одном месте не взять - опять лишние растраты, да и зачем извращатся и наживать себе проблем (ну с пайкой тогоже барометра) когда плата красивая, готовая из Японии приедет, да и ценник гуманный…
Рас тут собрались кодеры, откройте шторку загадок для гуманитарного населения - код мультика для Ардуины нужно переписывать для компиляции под стм32 или только адаптировать?
В общих чертах, как именно происходит процесс адаптации под стм?
код мультика для Ардуины нужно переписывать для компиляции под стм32 или только адаптировать?
Т.к. ноги микросхемы и порядок обращений к ним у АВР и СТМ несколько не совпадают, необходимо эти места и изменить под нужный процессор. Аналогично - с таймерами, уарт-ами и прочей перефирией типа i2c
Основной же код (IMU, логика работы и т.п.) обычно платформонезависим и переносится один-к-одному
Вот уж не знаю, это “только” адаптация, или все же переписывание 😃
Вот уж не знаю, это “только” адаптация, или все же переписывание
Вот и мне не дает покоя этот вопрос! 😃
ну тут чисто адаптация, у Таймкопа чуть глубже, но там в основном переделка из-за cli и прошивка одна на всё(довольно удобно -ненадо перекомпилировать под другой аппарат), у Роберта добавлен одноосевой фильтр Калмана в ПО Таймкопа, остальные интерпретации не копал… ну и у меня баловство было rcopen.com/…/504a32389970730077438dd9 адаптировал обе прошивки, а вот с f4 пока затык вышел 😦
Ага, всем здравия. Летал, я летал на ней и вдруг правый мотор у квадро начал кашлять, потом ваще отключаться стал. Погрешил на окисление посмотрел под увеличением х30, почистил контакты, дороги не рваные - прогрел. Кашляет - отключается. Поменял местами из выхода платы на регули, кашляет другой мотор. А если возможность запрогить первый мотор на пятый, шестой выход? Смотрел, смотрел мнуал - не нашел. Может мысль у кого? Заранее поклон.
Ага, всем здравия. Летал, я летал на ней и вдруг правый мотор у квадро начал кашлять, потом ваще отключаться стал. Погрешил на окисление посмотрел под увеличением х30, почистил контакты, дороги не рваные - прогрел. Кашляет - отключается. Поменял местами из выхода платы на регули, кашляет другой мотор. А если возможность запрогить первый мотор на пятый, шестой выход? Смотрел, смотрел мнуал - не нашел. Может мысль у кого? Заранее поклон.
Можно попробовать изменить motor_pwm_rate, м.б. просто срыв синхронизации
Поможет правка вот этого исходника - code.google.com/p/afrodevices/source/…/drv_pwm.c.
Вот здесь нужно будет поменять местами каналы
static pwmHardware_t timerHardware[] = {
{ TIM2, GPIOA, GPIO_Pin_0, TIM_Channel_1, TIM2_IRQn, 0, }, // PWM1
{ TIM2, GPIOA, GPIO_Pin_1, TIM_Channel_2, TIM2_IRQn, 0, }, // PWM2
{ TIM2, GPIOA, GPIO_Pin_2, TIM_Channel_3, TIM2_IRQn, 0, }, // PWM3
{ TIM2, GPIOA, GPIO_Pin_3, TIM_Channel_4, TIM2_IRQn, 0, }, // PWM4
{ TIM3, GPIOA, GPIO_Pin_6, TIM_Channel_1, TIM3_IRQn, 0, }, // PWM5
{ TIM3, GPIOA, GPIO_Pin_7, TIM_Channel_2, TIM3_IRQn, 0, }, // PWM6
{ TIM3, GPIOB, GPIO_Pin_0, TIM_Channel_3, TIM3_IRQn, 0, }, // PWM7
{ TIM3, GPIOB, GPIO_Pin_1, TIM_Channel_4, TIM3_IRQn, 0, }, // PWM8
{ TIM1, GPIOA, GPIO_Pin_8, TIM_Channel_1, TIM1_CC_IRQn, 1, }, // PWM9
{ TIM1, GPIOA, GPIO_Pin_11, TIM_Channel_4, TIM1_CC_IRQn, 1, }, // PWM10
{ TIM4, GPIOB, GPIO_Pin_6, TIM_Channel_1, TIM4_IRQn, 0, }, // PWM11
{ TIM4, GPIOB, GPIO_Pin_7, TIM_Channel_2, TIM4_IRQn, 0, }, // PWM12
{ TIM4, GPIOB, GPIO_Pin_8, TIM_Channel_3, TIM4_IRQn, 0, }, // PWM13
{ TIM4, GPIOB, GPIO_Pin_9, TIM_Channel_4, TIM4_IRQn, 0, }, // PWM14
};
И еще, наверное, можно mixer через консоль попробовать настроить, но там черт голову сломит
Примеры миксов здесь: code.google.com/p/afrodevices/source/…/mixer.c
спасибо, а не могли бы вы пошагово, чё открывать, как редактировать. Я на Назе недавно, врубиться не могу, для меня сложно. Перепрошил с трудом, вроде ничего трудного, а вот так как то.
А если возможность запрогить первый мотор на пятый, шестой выход?
Без пересборки кода вроде нет, но можно включить camera stab командой ‘feature servo_tilt’ и потом ‘save’, это назначит на каналы PWM9, PWM10 (что на плате выходы 1, 2) управление камерой, при этом все двигатели сместятся с 1,2,3,4 на 3,4,5,6.
у Таймкоа сделан ручной микшер, но в cli заблудится можно, хотя есть baseflightGUI там в cli только галочки ставить надо а не писать в терминале, может и поможет, по немецки но вроде понятно всё…
у Таймкоа сделан ручной микшер
cmix не сместит моторы, он для другого, т.е. нужно будет делать такой cmix (5-6 моторов), в котором первый 1-2 мотора будут фейк, типа они есть, но ничего ими делать не нужно. И возможный результат нужно очень сильно проверять на предмет побочных эффектов ;)
p.s. Код рассчитан на то, что hardware работает исправно. Если есть возможность пересобирать исходники, то лучше всего править timerHardware сместив PWM9 строчку в конец массива.
Типа такого:
Это на основе quadx где первый мотор почти ничего не делает (но значения не могут быть нулевыми для Thr) при этом моторы смещены на один. Т.е. включать нужно будет к 2 3 4 5 выходам.
# cmix
Custom mixer:
Motor Thr Roll Pitch Yaw
#1: 0.001 0.000 0.000 0.000
#2: 1.000 -1.000 1.000 -1.000
#3: 1.000 -1.000 -1.000 1.000
#4: 1.000 1.000 1.000 1.000
#5: 1.000 1.000 -1.000 -1.000
делается командами:
cmix reset
cmix 1 0.001 0 0 0 0
cmix 2 1.000 -1.000 1.000 -1.000
cmix 3 1.000 -1.000 -1.000 1.000
cmix 4 1.000 1.000 1.000 1.000
cmix 5 1.000 1.000 -1.000 -1.000
cmix 6 0 0 0 0
cmix 7 0 0 0 0
cmix 8 0 0 0 0
save
Если есть возможность пересобирать исходники, то лучше всего править timerHardware сместив PWM9 строчку в конец массива.
это при условии что у человека есть кеил, иначе получается - купи кеил (по моему в бесплатную версию уже не лезет), научится с ним работать, ну т.д.
Блин, парни чё делать то? Он вроде летает, всё норм, а потом херак - кашель и останов одного движка.
понятно что это второй коптер и он сделан миниквадром - для гоняния по квартире с фпв для тренировок. Первый немец.
Блин, парни чё делать то?
Описания трех разных способов решения этой проблемы не достаточно?
- если есть keil и знание С - правим исходники
- feature servo_tilt
- cmix
Ни первого, ни второго, ни третьего
купил полетать и пошло и поехало
Есть - Mw-WinGUI-2.1, AfroFlashFC, Flash_Loader, hercules_3-2-5