Полетный контроллер AfroFlight32 / Naze 32

leprud
k0der:

а управлять полетом нельзя

Если вернете функциональность оригинального multiwii - то можно. Ключевое слово - rcserial

k0der

Ворос такой, что все таки лучше брать AfroFlight32 или “Naze 32”?
ПС я так понял одна копии другой?

еще вопрос: чистую плату можно купить?

enots
k0der:

Ворос такой, что все таки лучше брать AfroFlight32 или “Naze 32”?
ПС я так понял одна копии другой?

еще вопрос: чистую плату можно купить?

  1. AfroFlight32 == Naze32
  2. Спишись с timecop и купи. Правда не факт что это имеет смысл =)
leprud
k0der:

AfroFlight32 или “Naze 32”

AfroFlight - название прошивки, Naze - название железки, очевидно же.
А нафига чистая плата? Что, сможете сделать готовую плату с датчиками и обвязкой дешевле, чем у timecop?

k0der
leprud:

Что, сможете сделать готовую плату с датчиками и обвязкой дешевле, чем у timecop?

детальки может пробить получиться нахаляву или со скидосами

SergDoc

на халяву или со скидкой - получится в два раза дороже за ту-же mpu6050 доставка может выйти дороже чем сама микросхема в единичном экземпляре, всю комплектуху в одном месте не взять - опять лишние растраты, да и зачем извращатся и наживать себе проблем (ну с пайкой тогоже барометра) когда плата красивая, готовая из Японии приедет, да и ценник гуманный…

Shuricus

Рас тут собрались кодеры, откройте шторку загадок для гуманитарного населения - код мультика для Ардуины нужно переписывать для компиляции под стм32 или только адаптировать?
В общих чертах, как именно происходит процесс адаптации под стм?

leprud
Shuricus:

код мультика для Ардуины нужно переписывать для компиляции под стм32 или только адаптировать?

Т.к. ноги микросхемы и порядок обращений к ним у АВР и СТМ несколько не совпадают, необходимо эти места и изменить под нужный процессор. Аналогично - с таймерами, уарт-ами и прочей перефирией типа i2c
Основной же код (IMU, логика работы и т.п.) обычно платформонезависим и переносится один-к-одному

Вот уж не знаю, это “только” адаптация, или все же переписывание 😃

Shuricus
leprud:

Вот уж не знаю, это “только” адаптация, или все же переписывание

Вот и мне не дает покоя этот вопрос! 😃

SergDoc

ну тут чисто адаптация, у Таймкопа чуть глубже, но там в основном переделка из-за cli и прошивка одна на всё(довольно удобно -ненадо перекомпилировать под другой аппарат), у Роберта добавлен одноосевой фильтр Калмана в ПО Таймкопа, остальные интерпретации не копал… ну и у меня баловство было rcopen.com/…/504a32389970730077438dd9 адаптировал обе прошивки, а вот с f4 пока затык вышел 😦

26 days later
Gogen_65

Ага, всем здравия. Летал, я летал на ней и вдруг правый мотор у квадро начал кашлять, потом ваще отключаться стал. Погрешил на окисление посмотрел под увеличением х30, почистил контакты, дороги не рваные - прогрел. Кашляет - отключается. Поменял местами из выхода платы на регули, кашляет другой мотор. А если возможность запрогить первый мотор на пятый, шестой выход? Смотрел, смотрел мнуал - не нашел. Может мысль у кого? Заранее поклон.

kolaa
Gogen_65:

Ага, всем здравия. Летал, я летал на ней и вдруг правый мотор у квадро начал кашлять, потом ваще отключаться стал. Погрешил на окисление посмотрел под увеличением х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

Gogen_65

спасибо, а не могли бы вы пошагово, чё открывать, как редактировать. Я на Назе недавно, врубиться не могу, для меня сложно. Перепрошил с трудом, вроде ничего трудного, а вот так как то.

enots
Gogen_65:

А если возможность запрогить первый мотор на пятый, шестой выход?

Без пересборки кода вроде нет, но можно включить camera stab командой ‘feature servo_tilt’ и потом ‘save’, это назначит на каналы PWM9, PWM10 (что на плате выходы 1, 2) управление камерой, при этом все двигатели сместятся с 1,2,3,4 на 3,4,5,6.

SergDoc

у Таймкоа сделан ручной микшер, но в cli заблудится можно, хотя есть baseflightGUI там в cli только галочки ставить надо а не писать в терминале, может и поможет, по немецки но вроде понятно всё…

enots
SergDoc:

у Таймкоа сделан ручной микшер

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

SergDoc
enots:

Если есть возможность пересобирать исходники, то лучше всего править timerHardware сместив PWM9 строчку в конец массива.

это при условии что у человека есть кеил, иначе получается - купи кеил (по моему в бесплатную версию уже не лезет), научится с ним работать, ну т.д.

Gogen_65

Блин, парни чё делать то? Он вроде летает, всё норм, а потом херак - кашель и останов одного движка.

понятно что это второй коптер и он сделан миниквадром - для гоняния по квартире с фпв для тренировок. Первый немец.

enots
Gogen_65:

Блин, парни чё делать то?

Описания трех разных способов решения этой проблемы не достаточно?

  1. если есть keil и знание С - правим исходники
  2. feature servo_tilt
  3. cmix
Gogen_65

Ни первого, ни второго, ни третьего

купил полетать и пошло и поехало

Есть - Mw-WinGUI-2.1, AfroFlashFC, Flash_Loader, hercules_3-2-5