Создание собственной системы стабилизации

Sir_Alex
SergDoc:

результат:

Можешь упаковать свои папки ardupilot и px4-firmware и залить куда нить? Где то у нас есть расхождение в файлах.

SergDoc

они же здоровые 😵
арду у меня в git: github.com/SergDoc/ardupilot

Sir_Alex:

/root/PX4Firmware/makefiles/firmware.mk:153: *** Config px4fmu_APM references board px4fmu, but no board definition file found. Stop.

эта ошибка у меня была в PX4-Firmware, в PX4Firmware дийдроновской всё ок…

Sir_Alex
SergDoc:

эта ошибка у меня была в PX4-Firmware, в PX4Firmware дийдроновской всё ок…

Я уже говорил, что пробовал обе. Да они вообще то одинаковые, скрипт который выкачивает в PX4-Firmaware, делает то же самое что и ты:
git clone git://github.com/PX4/Firmware.git ~/PX4-Firmware

SergDoc

я физически удалил ardupilot и PX4Firmware и всё заново перезалил, всё работает…

в PX4-Firmware не хватает как раз папки с архивами может ещё чего…

Sir_Alex
SergDoc:

в PX4-Firmware не хватает как раз папки с архивами может ещё чего…

Муть какая то. Свежая версия прошивки github.com/PX4 не имеет папки nuttx (ее убрали в отдельный репозитарий, пару месяцев назад), как у тебя могла собраться прошивка без нее???
Может у тебя еще где то есть PX4-Firmware и компилится она оттель. Либо вообще не компилится а берет уже готовые файлы после предыдущей компиляции.
Попробуй выполнить вместо "make px4’ команду ‘make px4-clean’
А я попробую по новой выкачать

SergDoc

Алексей, я же сколько раз повторяю, что беру отсюда 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 прошива собралась ноут как утюг 😃 я спать…

Sir_Alex
SergDoc:

Алексей, я же сколько раз повторяю, что беру отсюда github.com/diydrones/PX4Firmware !!!

Все, я наконец то понял, у меня то же собралась прошивка! Действительно я не заметил что ты говоришь про прошивку в репозитарии DIYDrones, а не PX4!!!

Ты кстати менял NuttX на nuttx в файле ardupilot/mk/px4_targets.mk ?

Sir_Alex

Закомитил все правки в системе билда PX4, для компиляции текущего проекта APM-PX4 вам надо:

  1. Выполняем:
apt-get update
apt-get install gawk make git arduino-core g++
  1. Скачиваем исходники Ардупилота (Это подправленная версия АрдуПилота, из моего репозитория)
cd ~
git clone git://github.com/SirAlex/ardupilot.git
  1. Выполняем скрипт установки всех приблуд (для PX4 в том числе)
cd ~
ardupilot/Tools/scripts/install-prereqs-ubuntu.sh
  1. Компилируем:
cd ~/ardupilot/ArduCopter
make configure
make px4
Chester_kz
Sir_Alex:

У меня ровно такие же проблемы с компиляцией, как и по ссылке.

Это кстати мой пост был… )))))

PS:Рад что у вас всех получилось.

rual

Ух ты!!! Прочитал последние посты. Спасибо коллеги!
А для крестьян-подоконников значится нужно:

  1. Скачать вот это а github.com/diydrones/PX4Firmware
  2. Скачать исходники Ардупилота .
  3. Установить ГЦЦ (и эклипс).
  4. Поправить мейк-файл.
    Верно?
rual

Вот доделал демку с ШИМ входами/выходами, показывает длительность ППМ 4-8, и транслирует на выходы ШИМ1-4. Таймер действительно надо было поделить.

RusINS11F4.rar

SergDoc
rual:
  1. Установить ГЦЦ (и эклипс).

Если бы это было так просто, я бы давно под эклипсом ковырялся 😦 нет опять таки коммандная строка 😦
только вот один червячёк засел - а у px4 свой бутлодырь видать, раз драйвера к ней нужны не stm-овские - а где его раздобыть тогда? ибо прошивка без него работать не будет если её даже насильственно запихнуть 😦 , план таков - нужен владелец px4 - с очищенной до бутлоадера PX4 c помощью вот этой штуки code.google.com/p/vrbrain/downloads/detail?name=um… (естественно BOOT0 в 1 тогда запустится только родной бутлоадер stm) выдернуть через usb дамп и попробовать влить его в мою плату…

Chester_kz
SergDoc:

а где его раздобыть тогда?

pixhawk.ethz.ch/px4/dev/px4_bootloader
pixhawk.ethz.ch/px4/users/bootloader_update
Кстати говоря некоторые пользователи которые купили PX4 сразу после появления(Marco с дронсов имел такой секас) не могли залить туда прошивку APM по причине старого бутлодера. После обновления все стало тип топ.

Sir_Alex

Проверьте кто нибудь мою инструкцию. Если будет работать, я отправлю фикс дидронсам, что бы они включили его в прошивку.

SergDoc

Ну вобще дело только в скрипте, так что, я думаю, должно работать - как-то не хочется перезаливать всё снова…

Chester_kz:

После обновления все стало тип топ.

он в исходниках - это хорошо, если что, можно подправить под себя 😃

SergDoc

Так ладно прошивка собирается, бутлодырь есть, теперь надо придумать как превратить px4 в мою плату, ну или наоборот - мою плату в px4 вчера так в исходниках и не поковарялся 😦 где-то что-то должно быть типа board - со всеми причендалами?

mahowik:

не хватает некоторых (до мозга костей привычных) тулов и утилит…

менеджера файлового не хватает 😃 остальное всё ок, игрули через wine пашут…

Я так понимаю, что в деревню я еду без коптера 😦 только с платой и аппой на всякий случай (ну ноут понятное дело со мной)

rual:

Таймер действительно надо было поделить.

я так делал:

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);
}
SergDoc

бутлодырь я ковырять начал - по ходу надо только изменить порты светодиодов, усарта и детекта усб тут: github.com/PX4/Bootloader/blob/master/main_f4.c ну естественно разобраться какая плата включена, можно по идее и свою добавить 😃 а плату назовём PX12AIO - смеюсь конечно 😃
а по сути надо только компас повернуть на 90 градусов, переделать шимы (попотеть придётся) светодиоды само собой - проверить шины что-бы всё на нужных висело, еепромка думаю пойдёт та что и стоит 512-я (если она вообще используется)… с одной стороны вроде не страшно - но это пока не копал…

rual
SergDoc:

теперь надо придумать как превратить px4 в мою плату,

Пока мне это просто представляется, нужно переделать функции-точки входа в ХАЛ под твою плату. Итого 4 файла ХАЛ АналогИн, ПВМОут ПВМИн, ещё ГПИО - в них правятся только количественные данные (входы/выходы ШИМ, АЦП, порты), а вот в вызываемых из них функциях
здесь github.com/diydrones/PX4Firmware/blob/…/fmu.cpp
и здесь github.com/diydrones/PX4Firmware/tree/…/px4io
и здесь github.com/diydrones/PX4Firmware/tree/…/stm32
нужно править код.

SergDoc:

я так делал:

Я обобщённых функций не делаю, все низы пишутся индивидуально под плату, абстрактны только летательные объекты.

ЗЫ: немного наврал выше, править нужно всё вот здесь github.com/diydrones/PX4Firmware/tree/…/drivers

В выходные будет некогда, но “пустышку” с халом постараюсь собрать.

SergDoc

не ну понятно что px4 надо основательно переделать - и потом уже не трогать больше а хал написать под себя, и потом спокойно портировать прошивки 😃

ладно тогда я займусь пока бутлодырем 😃

у меня-то по простому было сделано мухи отдельно, котлеты отдельно шимы на моторы отдельно на сервы отдельно, а тут бог его знает, но трёху мне надо запустить полюбому… на квадрик длинны проводов не хватит пока и носить его неудобно… а трёха в сумке умещается - основной критерий, пока не вымудрю складную раму типа этой

rual:

Итого 4 файла ХАЛ АналогИн, ПВМОут ПВМИн, ещё ГПИО - в них правятся только количественные данные (входы/выходы ШИМ, АЦП, порты)

это в AP_HAL_PX4?

rual
SergDoc:

шимы на моторы отдельно на сервы отдельно,

Тут проблемы нет, есть уровень абстракции, а в железе один таймер на моторы 400Гц, другой на сервы 50Гц, если серва быстрая, то всё на один таймер можно вешать.

Sir_Alex

Может имеет смысл, сразу заложить возможность работы через CAN протокол?