Создание собственной системы стабилизации
Ну вобще дело только в скрипте, так что, я думаю, должно работать - как-то не хочется перезаливать всё снова…
После обновления все стало тип топ.
он в исходниках - это хорошо, если что, можно подправить под себя 😃
Так ладно прошивка собирается, бутлодырь есть, теперь надо придумать как превратить px4 в мою плату, ну или наоборот - мою плату в px4 вчера так в исходниках и не поковарялся 😦 где-то что-то должно быть типа board - со всеми причендалами?
не хватает некоторых (до мозга костей привычных) тулов и утилит…
менеджера файлового не хватает 😃 остальное всё ок, игрули через wine пашут…
Я так понимаю, что в деревню я еду без коптера 😦 только с платой и аппой на всякий случай (ну ноут понятное дело со мной)
Таймер действительно надо было поделить.
я так делал:
static void pwmTimeBase(TIM_TypeDef *tim, uint32_t period)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
TIM_TimeBaseStructure.TIM_Period = period - 1;
if ( (tim==TIM1) || (tim==TIM8))
{
TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock / 1000000) - 1;
}
else
{
TIM_TimeBaseStructure.TIM_Prescaler = ((SystemCoreClock / 1000000)/2) - 1;
}
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(tim, &TIM_TimeBaseStructure);
}
бутлодырь я ковырять начал - по ходу надо только изменить порты светодиодов, усарта и детекта усб тут: github.com/PX4/Bootloader/blob/master/main_f4.c ну естественно разобраться какая плата включена, можно по идее и свою добавить 😃 а плату назовём PX12AIO - смеюсь конечно 😃
а по сути надо только компас повернуть на 90 градусов, переделать шимы (попотеть придётся) светодиоды само собой - проверить шины что-бы всё на нужных висело, еепромка думаю пойдёт та что и стоит 512-я (если она вообще используется)… с одной стороны вроде не страшно - но это пока не копал…
теперь надо придумать как превратить px4 в мою плату,
Пока мне это просто представляется, нужно переделать функции-точки входа в ХАЛ под твою плату. Итого 4 файла ХАЛ АналогИн, ПВМОут ПВМИн, ещё ГПИО - в них правятся только количественные данные (входы/выходы ШИМ, АЦП, порты), а вот в вызываемых из них функциях
здесь github.com/diydrones/PX4Firmware/blob/…/fmu.cpp
и здесь github.com/diydrones/PX4Firmware/tree/…/px4io
и здесь github.com/diydrones/PX4Firmware/tree/…/stm32
нужно править код.
я так делал:
Я обобщённых функций не делаю, все низы пишутся индивидуально под плату, абстрактны только летательные объекты.
ЗЫ: немного наврал выше, править нужно всё вот здесь github.com/diydrones/PX4Firmware/tree/…/drivers
В выходные будет некогда, но “пустышку” с халом постараюсь собрать.
не ну понятно что px4 надо основательно переделать - и потом уже не трогать больше а хал написать под себя, и потом спокойно портировать прошивки 😃
ладно тогда я займусь пока бутлодырем 😃
у меня-то по простому было сделано мухи отдельно, котлеты отдельно шимы на моторы отдельно на сервы отдельно, а тут бог его знает, но трёху мне надо запустить полюбому… на квадрик длинны проводов не хватит пока и носить его неудобно… а трёха в сумке умещается - основной критерий, пока не вымудрю складную раму типа этой
Итого 4 файла ХАЛ АналогИн, ПВМОут ПВМИн, ещё ГПИО - в них правятся только количественные данные (входы/выходы ШИМ, АЦП, порты)
это в AP_HAL_PX4?
шимы на моторы отдельно на сервы отдельно,
Тут проблемы нет, есть уровень абстракции, а в железе один таймер на моторы 400Гц, другой на сервы 50Гц, если серва быстрая, то всё на один таймер можно вешать.
Может имеет смысл, сразу заложить возможность работы через CAN протокол?
А у кого регули поддерживают данное мероприятие? у меня на плате если использовать ppm-summ то выводы can свободны… как и i2c1
в новой версии есть возможность вывести вообще отдельную шину ни на что не задействованую…
А у кого регули поддерживают данное мероприятие?
Ну точно эти поддерживают: viacopter.eu/…/autoquad-esc32-multicopter-store
Наверное и другие потихоньку будет делать.
Можно подвесом управлять по CAN, а то сейчас и связи обратной с подвесом нету да и PWM выходов как всегда не хватает.
так есть маленький проблем - у px4 кварц на 24МГц надо найти system_stm32f4xx.c или как там у них это называется, в бутлодыре пока не нашел 😦 надо искать где задаётся частота кварца ибо поменять его не на что 😦
так есть маленький проблем - у px4 кварц на 24МГц надо найти system_stm32f4xx.c или как там у них это называется, в бутлодыре пока не нашел надо искать где задаётся частота кварца ибо поменять его не на что
~/PX4Firmware/nuttx/configs/px4fmu/include/board.h
если я правильно понял, то px4 ставится вверх ногами, а следовательно с датчиками придётся помучаться? или в арду нет?
если я правильно понял, то px4 ставится вверх ногами, а следовательно с датчиками придётся помучаться? или в арду нет?
Вообще не проблема, ориентация платы задается параметром
// @Param: ORIENTATION
// @DisplayName: Board Orientation
// @Description: Overall board orientation relative to the standard orientation for the board type. This rotates the IMU and compass readings to allow the board to be oriented in your vehicle at any 90 or 45 degree angle. This option takes affect on next boot. After changing you will need to re-level your vehicle.
// @Values: 0:None,1:Yaw45,2:Yaw90,3:Yaw135,4:Yaw180,5:Yaw225,6:Yaw270,7:Yaw315,8:Roll180,9:Roll180Yaw45,10:Roll180Yaw90,11:Roll180Yaw135,12:Pitch180,13:Roll180Yaw225,14:Roll180Yaw270,15:Roll180Yaw315,16:Roll90,17:Roll90Yaw45,18:Roll90Yaw135,19:Roll270,20:Roll270Yaw45,21:Roll270Yaw90,22:Roll270Yaw136,23:Pitch90,24:Pitch270
// @User: Advanced
AP_GROUPINFO(“ORIENTATION”, 9, AP_AHRS, _board_orientation, 0),
Другое дело если компас и MPU соориентированы по разному. Тогда еще надо подкрутить ориентацию компаса (то же есть в параметрах)
компас да на 90 градусов развернуть надо…
ага надо поработать над светодиодами - они наоборот… в версии 1.7 PX4 с питания зацеплены… а то народ напугается - error светится 😃 хотя ошибок то нет…
Вместо пищалки подходит 4-х пиновый разъём с двумя выдернутыми центральными пинами - сегодня перепаял- вынес пищалку, думаю пусть так и останется - соблазна не возникнет что-нибудь другое туда воткнуть…
кстати… по пищалке… как оказалось от нее идут довольно большие помехи на компас даже на расстоянии 2-3см.
да убрал я её уже 😃
кстати… по пищалке… как оказалось от нее идут довольно большие помехи на компас даже на расстоянии 2-3см.
хе! даже на 10-ти см немалые наводки… как то не мог откалибровать компас, что бы показания были линейными… убрал обычный базер, который идет от полетника (висел на проводе ~10см) и все стало пучком…
хе! даже на 10-ти см немалые наводки… как то не мог откалибровать компас, что бы показания были линейными… убрал обычный базер, который идет от полетника (висел на проводе ~10см) и все стало пучком…
это когда он просто “висел” или когда зудел?? а как же жить без пищалки тогда? 😦
собрал тулчайн под виндой - мама моя родная, роди меня обратно - 20 минут компиляции😵 я чё винду компилил что-ли? даа пингвиндовс в данном плане рулит;) - максимум 7 минут…
пошол курить Арду и с чем его едят…