ArduCopter Mega: порт на обычную Arduino (тестим)
адреса itg320x+bma180 и bmp085 вроде бы не такие же как у mpu6050 и ms5611, поэтому просто выберите crius aiop в настройках и должно заработать. Если нет - i2c_spy и смотреть уже на каких адресах и кто висит.
Все больше возникает вопросов с модификациями прошивки под разные платы и датчики.
У кого есть идеи как сделать прошивальщик плат, в котором можно будет выбрать параметры, например PPM_SUM или PWM, выбрать тип платы, включить/отключить COPTER_LED и т.п., нажать кнопку, получить прошивку с сервера и залить ее в плату.
Как я это вижу:
- Человек запускает программу (вероятно на Java)
- Выбирает тип платы и другие параметры, сохраняет конфигурацию под каким нибудь именем (что бы потом заново не выбирать)
- Отправляется запрос серверу, сервер смотрит есть ли такая прошивка (по набору параметров). Если есть, отдает готовый hex, если нет, запускает компиляцию.
- Полученный Hex заливается в плату и сохраняется локально для последующей прошивки.
З.Ы. Если кто то хочет реализовать такую программу, милости просим ))
а я вижу добавление этих функций в cli или как там оно у вас называется - изменяемые параметры через терминал 😃
Имя Google Chrome/Chromium можно без java кроссплатформенно заливать habrahabr.ru/company/apps4all/blog/193876/
а я вижу добавление этих функций в cli или как там оно у вас называется - изменяемые параметры через терминал
Не все так просто, тянуть все вариации в коде невозможно - просто тупо нет памяти. Поэтому фичи надо дефайнами включать/отключать, а с этим у людей проблемы возникают. Ну и кроме того, в этом случае можно обойтись без Arduino-IDE.
Имя Google Chrome/Chromium можно без java кроссплатформенно заливать habrahabr.ru/company/apps4all/blog/193876/
Там даже из Firefox можно. Но это немного не то, тем более, сейчас используется немного модифицированный Arduino IDE…
ООО… У них исходники в открытом доступе, надо поковырятся )))
просто тупо нет памяти.
ну мне есть где размахнуться 😃
Почему не то? На сайте выбирать что надо, собирать на стороне сервера (при необходимости) и тут же через плагин с сайта заливать в ардуинку hex. Это в общих чертах, наверняка будут подводные камни.
Вообще с тех пор как появилась работа с serial в браузере (по ссылке там плагин, хз чего именно он делает и как), можно и mission planner сделать 100% кроссплатформеным (т.е. везде где запускается браузер, там будет работать и прошивальщик и конфигуратор)… где то даже видел такую штуку и имхо в этой же ветке.
Меня больше интересует вопрос, как организовать компиляцию на сервере. Например в указанном выше CodeBender.cc, вся работа ведется из PHP, т.е. эмулируется (ну или делается то же самое) MAKE. Так вот, делать так же или тупо менять параметры в конфиге и запускать make…???
в сорцах ардукоптера есть человеческая сборка через make, имхо для каждого запроса просто конфиг создавать и компилить (ну и складировать уже готовые сборки)
Ну и я всетаки предлагаю после релиза сразу собирать все варианты коптерные, а не по запросу.
в сорцах ардукоптера есть человеческая сборка через make, имхо для каждого запроса просто конфиг создавать и компилить (ну и складировать уже готовые сборки) Ну и я всетаки предлагаю после релиза сразу собирать все варианты коптерные, а не по запросу.
Да, конечно, я в курсе что есть make, товарищь Paku его под винду даже запилил, тока оно никому не надо в общем то.
Просто я боюсь что будет очень много вариаций прошивок… лвдно, вечерком подумаю, как лучше сделать.
А в оригинальном ардукоптере как сделано? Там mission planner собирает прошивки? Или уже готовые собранные (вариантов конечно поменьше, только различные рамы и всякие rover/heli).
Скачивает…
Меня больше интересует вопрос, как организовать компиляцию на сервере.
есть вариант по крону(планировщику) запускать сборку из дериктории, например, затем присылать юзверю ссылку на готовую прошивку, хранить её на сервере неделю, а затем удалять, есть наработки, только использовал для управления vlc сервером, кодировал потоки видео с камер наблюдения и был сделан web интерфейс для рестарта процесса перекодировки, если вдруг всё заткнулось, если чего - пишите - могу переделать, есть свой физ. сервер с фряхой, можем поэксперементировать:)
Всё таки собрать сразу все таргеты будет лучше, чем компилсять на сервере по запросу, это еще и намёк на ДДОС.
Сделать несколько make-таргетов, обернуть в конфиге #ifdef-ами нужные параметры и вроде всё.
Сами таргеты можно генерировать вложенными циклами и именовать соответственно, не так уж и много там вариантов.
По какому-нибудь make all будет собирать все таргеты, как в simonk 😃
По сабжу:
Алексей, спасибо за прошивку, сегодня решил попробовать перейти с 2.8.
Всё вроде откалибровал, смущает только что при калибровке компаса оффсет по X большой получается, в диапазоне 140-160.
По другим осям не более 10.
Это у меня какие-то проблемы с компасом или и так сойдёт? Арду советует отклонения не более 150.
Компассмот при этом выдает 36% при полном газе.
Всё таки собрать сразу все таргеты будет лучше, чем компилсять на сервере по запросу, это еще и намёк на ДДОС. Сделать несколько make-таргетов, обернуть в конфиге #ifdef-ами нужные параметры и вроде всё. Сами таргеты можно генерировать вложенными циклами и именовать соответственно, не так уж и много там вариантов. По какому-нибудь make all будет собирать все таргеты, как в simonk
Такой вариант уже работает. Проблема в том, что если собирать все вариации, будет очень много прошивок. Смотрите, берем только одну плату, криус v2. Получается 7 типов рам(квад, три, окта… и т.п.). Плюс три варианта PPM SUM (PL1, A8, PWM). Плюс микс каналов управления, еще штук 6. Итого: 7*3*6 = 126 вариантов. Тоже самое под Crius v1 - но уже без логирования. Уже 252 варианта. И это только для двух плат!
Я думал сделать такой сервис только для тех кто сделал донейт с проверкой логина и пароля. Во первых это снизит количество запросов к серверу билда, а во вторых можно билдить только ту прошивку что нужна человеку.
А для всех остальных оставить пару основных прошивок, все остальное через Ардуино.
В таком случае удобнее наверное будет сделать сборку по крону, как выше советовали.
- Человек заходит на сайт по логину-паролю
- Крыжиками и дропдаун-боксами выбирает нужные ему фичи и жмет кнопку
- Скрипт, запускающийся раз в 5 минут, глядит в какую-нибудь табличку, куда складываются задания на сборку с параметрами, и выполняет билд.
- Хекс с прошивкой уходит на почту юзеру
Попробую сегодня набросать пример.
Кстати, а тип рамы имеет смысл выбирать при сборке? Он же меняется в планнере без проблем.
Он же меняется в планнере без проблем.
меняется только X/+/v/h, а вот quad/hex/octa и т.д. в оригинале так же выбираются из списка
Да, что-то я запамятовал, согласен.
Попробую сегодня набросать пример.
Так, в первом приближении что-то получилось: artek.novg.net/mpng/
Оно на домашнем сервере, так что не сильно его мучить если что 😃
Что делает:
- Данные из формы кладёт в mysql-базу
- Скрипт запускается раз в 2 минуты, берёт еще не собранный заказ из базы, запускает make с параметрами соответственно запросу в таблице
- Если сборка прошла успешно, то присылает билд лог и .hex в аттаче. Если ошибки, то присылает просто билд лог без файла
- Помечает заказ в базе как выполненый ОК или с ошибкой, второй раз к нему не возвращается
Для сборки MPNG под линуксом понадобилось подправить несколько мэйкфайлов чтобы добавить туда таргет mpng с его HALом и передачу дефайнов в сборку.
Ну и сами файлы с настройками тоже конечно (APM_Config.h, RCInput_MPNG.cpp).
Алексей, если так подходит, то я скину все изменённые файлы и скрипты.
ЗЫ:
Саму прошивку я еще не проверял, но собирается вроде без проблем особых.