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

SergDoc

по опыту с OP под виндой даже с распаралеливанием процессов по двум камням компиляция происходит наамного дольше и под виндой у меня места не хватит 😦

mahowik

я уже тоже перешел бы на убунту (стоит 2-й ОС на ноуте), но реально не хватает некоторых (до мозга костей привычных) тулов и утилит…

SergDoc

А да я же компиляторы ставил не скриптом…

для эксперимента не копировал, а клонировал всё сегодняшнее

 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-х битная

офф топ, я как-то на хакинтоши подсел, пока кексты к моей видюхе были, потом забросил…

Sir_Alex
SergDoc:

для эксперимента не копировал, а клонировал

Попробуй обновить исходники ardupilot’a, зайди в папку ardupilot и выполни “git pull” ну и скомпилять потом, похоже как раз там что то и поменяли.
Кстати, ты пробовал новый сервис по сборке от сидуины? Ну в смысле подсунуть им свою платку и посмотреть сколько будет стоить десяток плат?

SergDoc
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$

всё свежее сегодняшнее…

Sir_Alex:

Кстати, ты пробовал новый сервис по сборке от сидуины?

не ещё не пробовал, это ж надо с мыслями собраться BOM лист накатать…

да тулчейн ставил отсюда pixhawk.ethz.ch/px4/…/toolchain_installation_lin а не со скрипта…

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