Создание собственной системы стабилизации
я физически удалил ardupilot и PX4Firmware и всё заново перезалил, всё работает…
в PX4-Firmware не хватает как раз папки с архивами может ещё чего…
в PX4-Firmware не хватает как раз папки с архивами может ещё чего…
Муть какая то. Свежая версия прошивки github.com/PX4 не имеет папки nuttx (ее убрали в отдельный репозитарий, пару месяцев назад), как у тебя могла собраться прошивка без нее???
Может у тебя еще где то есть PX4-Firmware и компилится она оттель. Либо вообще не компилится а берет уже готовые файлы после предыдущей компиляции.
Попробуй выполнить вместо "make px4’ команду ‘make px4-clean’
А я попробую по новой выкачать
Алексей, я же сколько раз повторяю, что беру отсюда github.com/diydrones/PX4Firmware !!!, а не ту что прописана в скрипте, и там всё есть: github.com/diydrones/PX4Firmware/tree/…/nuttx , а архивы она создаёт потом… я всё полностью удалял и заново выкачивал, загвоздка именно в PX4Firmware
я же не выдумываю:
serg@Pirat:~/ardupilot/ArduCopter$ make px4-clean
serg@Pirat:~/ardupilot/ArduCopter$ make px4
ну тут можно чаю попить
CMDS: /home/serg/PX4Firmware/makefiles//build/builtin_commands.c
CC: /home/serg/PX4Firmware/makefiles//build/builtin_commands.c
ROMFS: romfs.img
OBJ: romfs.o
CC: romfs.o.c
LINK: /home/serg/PX4Firmware/makefiles//build/firmware.elf
BIN: /home/serg/PX4Firmware/makefiles//build/firmware.bin
%% Generating /home/serg/PX4Firmware/makefiles//build/firmware.px4
make[1]: Выход из каталога `/tmp/ArduCopter.build'
PX4 ArduCopter Firmware is in ArduCopter.px4
serg@Pirat:~/ardupilot/ArduCopter$
минут 5-7 прошива собралась ноут как утюг 😃 я спать…
Алексей, я же сколько раз повторяю, что беру отсюда github.com/diydrones/PX4Firmware !!!
Все, я наконец то понял, у меня то же собралась прошивка! Действительно я не заметил что ты говоришь про прошивку в репозитарии DIYDrones, а не PX4!!!
Ты кстати менял NuttX на nuttx в файле ardupilot/mk/px4_targets.mk ?
Закомитил все правки в системе билда PX4, для компиляции текущего проекта APM-PX4 вам надо:
- Выполняем:
apt-get update
apt-get install gawk make git arduino-core g++
- Скачиваем исходники Ардупилота (Это подправленная версия АрдуПилота, из моего репозитория)
cd ~
git clone git://github.com/SirAlex/ardupilot.git
- Выполняем скрипт установки всех приблуд (для PX4 в том числе)
cd ~
ardupilot/Tools/scripts/install-prereqs-ubuntu.sh
- Компилируем:
cd ~/ardupilot/ArduCopter
make configure
make px4
У меня ровно такие же проблемы с компиляцией, как и по ссылке.
Это кстати мой пост был… )))))
PS:Рад что у вас всех получилось.
Ух ты!!! Прочитал последние посты. Спасибо коллеги!
А для крестьян-подоконников значится нужно:
- Скачать вот это а github.com/diydrones/PX4Firmware
- Скачать исходники Ардупилота .
- Установить ГЦЦ (и эклипс).
- Поправить мейк-файл.
Верно?
Вот доделал демку с ШИМ входами/выходами, показывает длительность ППМ 4-8, и транслирует на выходы ШИМ1-4. Таймер действительно надо было поделить.
- Установить ГЦЦ (и эклипс).
Если бы это было так просто, я бы давно под эклипсом ковырялся 😦 нет опять таки коммандная строка 😦
только вот один червячёк засел - а у px4 свой бутлодырь видать, раз драйвера к ней нужны не stm-овские - а где его раздобыть тогда? ибо прошивка без него работать не будет если её даже насильственно запихнуть 😦 , план таков - нужен владелец px4 - с очищенной до бутлоадера PX4 c помощью вот этой штуки code.google.com/p/vrbrain/downloads/detail?name=um… (естественно BOOT0 в 1 тогда запустится только родной бутлоадер stm) выдернуть через usb дамп и попробовать влить его в мою плату…
а где его раздобыть тогда?
pixhawk.ethz.ch/px4/dev/px4_bootloader
pixhawk.ethz.ch/px4/users/bootloader_update
Кстати говоря некоторые пользователи которые купили PX4 сразу после появления(Marco с дронсов имел такой секас) не могли залить туда прошивку APM по причине старого бутлодера. После обновления все стало тип топ.
Проверьте кто нибудь мою инструкцию. Если будет работать, я отправлю фикс дидронсам, что бы они включили его в прошивку.
Ну вобще дело только в скрипте, так что, я думаю, должно работать - как-то не хочется перезаливать всё снова…
После обновления все стало тип топ.
он в исходниках - это хорошо, если что, можно подправить под себя 😃
Так ладно прошивка собирается, бутлодырь есть, теперь надо придумать как превратить 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 или как там у них это называется, в бутлодыре пока не нашел 😦 надо искать где задаётся частота кварца ибо поменять его не на что 😦