Создание собственной системы стабилизации
А да я же компиляторы ставил не скриптом…
для эксперимента не копировал, а клонировал всё сегодняшнее
git clone
вот что вышло:
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
убунта 12-я, 32-х битная
офф топ, я как-то на хакинтоши подсел, пока кексты к моей видюхе были, потом забросил…
для эксперимента не копировал, а клонировал
Попробуй обновить исходники ardupilot’a, зайди в папку ardupilot и выполни “git pull” ну и скомпилять потом, похоже как раз там что то и поменяли.
Кстати, ты пробовал новый сервис по сборке от сидуины? Ну в смысле подсунуть им свою платку и посмотреть сколько будет стоить десяток плат?
serg@Pirat:~$ cd ardupilot
serg@Pirat:~/ardupilot$ git pull
Already up-to-date.
serg@Pirat:~/ardupilot$
далее
serg@Pirat:~/ardupilot/ArduCopter$ make px4
результат:
CMDS: /home/serg/PX4Firmware/makefiles//build/builtin_commands.c
CC: /home/serg/PX4Firmware/makefiles//build/builtin_commands.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$
всё свежее сегодняшнее…
Кстати, ты пробовал новый сервис по сборке от сидуины?
не ещё не пробовал, это ж надо с мыслями собраться BOM лист накатать…
да тулчейн ставил отсюда pixhawk.ethz.ch/px4/…/toolchain_installation_lin а не со скрипта…
результат:
Можешь упаковать свои папки ardupilot и px4-firmware и залить куда нить? Где то у нас есть расхождение в файлах.
они же здоровые 😵
арду у меня в git: github.com/SergDoc/ardupilot
/root/PX4Firmware/makefiles/firmware.mk:153: *** Config px4fmu_APM references board px4fmu, but no board definition file found. Stop.
эта ошибка у меня была в PX4-Firmware, в PX4Firmware дийдроновской всё ок…
эта ошибка у меня была в PX4-Firmware, в PX4Firmware дийдроновской всё ок…
Я уже говорил, что пробовал обе. Да они вообще то одинаковые, скрипт который выкачивает в PX4-Firmaware, делает то же самое что и ты:
git clone git://github.com/PX4/Firmware.git ~/PX4-Firmware
я физически удалил 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
В выходные будет некогда, но “пустышку” с халом постараюсь собрать.