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

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

Gogen_65

Парни спасибо всем отозвавшимся. Особенно Дмитрию ‘enots’. Вроде его совет помог. set мotor_pwm_rate=200 Немножко частоту снизили, на 300 вроде номано, щас попробую 350. На 400 срывы были.
Поклон до земли, еще раз спасибо!

на 350 тож срывов нет, завтра полетаю доложу, спасиб!

enots
kolaa:

Можно попробовать изменить motor_pwm_rate, м.б. просто срыв синхронизации

Совет был от kolaa.

Но зато мы выяснили, что это никак не связано с PWM9.
Срыв всегда на первом канале. Возможно что что-то в коде для первого канала дает задержку или что-то подобное.
Походу вся проблема вылезла из не перепрошитых ESC или сочетание ESC + мотор + нагрузка.

Gogen_65

3 пака отлетал, на 350 было 2 срыва, один с полным остановом движка, на 300 срывов пока не было. Попробую перепрошить регули.

8 days later
ARXITEKTOR

Никак не могу калибрануть регули.
С приёмником регули калибруются а при подключении к назе 32 не стартуют когда перевожу в режим арм. и на калибровку не реагируют.

chumric
ARXITEKTOR:

Никак не могу калибрануть регули.
С приёмником регули калибруются а при подключении к назе 32 не стартуют когда перевожу в режим арм. и на калибровку не реагируют.

Через cli установите minthrotle