ArduCopter Mega: порт на обычную Arduino (тестим)

SovGVD
Alex_from_Israel:

Это не баг случайно?

похоже на баг, так как не понятно зачем на 2 ращных мотора одинаковые команды пихать, видимо надо на CH_3 поменять

Alex_from_Israel

Ну ни фига себе!

В прошивке закомментирован код управления моторами, соответствующий раскладке пинов подключения моторов в Вии! Используется код, где направление вращения моторов обратное!!! Проверю во всех прошивках.

Что такое Multi-Wii Mix??? Эта раскладка используется в последних прошивках! В 2.0.31 работает код, в последних прошивках закомментированый! Ничего себе!

SovGVD:

похоже на баг, так как не понятно зачем на 2 ращных мотора одинаковые команды пихать, видимо надо на CH_3 поменять

Ага, тем более, что моторы с противоположным вращением…

Блин!!!

Теперь понятно, почему мой пепелац так брыкуче реагирует на Яв! Задние моторы работают в противофазе с передними, наоборот задано направление вращения. Возможно, что и оправдано, в оригинале в 2.0.44 так, то тогда нужно изменять направление вращения правых и левых моторов на противоположное. Нигде ни слова об этом нет…

SovGVD

имхо пора бы уже делать не выбор рамы, а расстановка миксов, как в других прошивках, т.е. просто указывать коэфициенты для пич/рол/яв/тротл =) но тогда надо и планер переписывать =(

Sir_Alex

Выпустил прошивку MegaPirateNG 2.0.47 Beta1:
Изменения только в том, что она обновлена до свежей версии AC2.
На данный момент код OSD Remzibi все еще не протестирован (ко мне еще не скоро приедет OSD, а на рцгрупсах так никто и не отписался).

osy13

Подключил к меге 1280 платку AllinOne. Больше пока ничего не имею.
Загрузил 2.0.46. Поправил параметр GPS.

В каком файлике что еще менять?

Запустил планер. Удалось законнектится на скорости 115200. Почемуто планер в окошке connect/disconnect пишет что это ArduCopter2.
Почему? Этож должен быть MegaPirat.

Датчики в планере ничего не показывают. В общем не совсем понятно что делать дальше

Sir_Alex

Эммм… забыл добавить новые файлики в 2.0.47 Beta1, так что, те кто уже успел скачать, закачайте Beta2 😃

osy13
Musgravehill:

В Ардуино 022 открываешь проект (куча файлов, правишь config.h - тип коптера, гпс и т.д., в /library правишь библиотечку APM_ADC - ставишь нужные датчики, APM_RC - распиновка приемника RC). Заливаешь проект в Ардуино. Отключаешь, подключаешь к ПК, запускаешь свежий Планнер 74 или другой. Очищаешь память, настраиваешь пульт, датчики, ПИДы. Горизонт должен адекватно наклоняться, компас - работать!

В APM_ADC уже указан AllinOne и соответственнонужные датчики.
Свежий планер 74. Я по ссылкам нашел только APM Planer 1.0.30? это оно или нет?
А замыкать A5 на GND нужно как в wiki описано ?

А на AllinOne должно что-то моргать? Там только синий светодиот изредка тускла моргает

nemo61
osy13:

Свежий планер 74. Я по ссылкам нашел только APM Planer 1.0.30? это оно или нет?

планер возьмите здесь code.google.com/p/ardupilot-mega/downloads/list

osy13:

А замыкать A5 на GND нужно как в wiki описано ?

Если работать в терминале, то да.

Anadimiy

Скажите, какую прошивку лучше брать для версии с ардуино мега, бма180 и итг3200? Откуда скачать?
И желательно намекнуть что где исправлять в ней)

osy13
nemo61:

планер возьмите здесь code.google.com/p/ardupilot-mega/downloads/list

Взял. Лучше не стало.
Что-то я делаю не так, а вот что не так не понимаю.

Ну вот смотрите:

  1. AllinOne соединил четырьмя проводами SDA SCL 5V и GND
  2. Взял 46 прошивку, подправил тип GPS скопилил и залил.

Больше нигде ничего не правил. Т.к. AllinOne уже по умолчанию прописан

Подключаю к планеру. Коннектится на 115200 и больше ничего не происходит. Горизонт не двигается и т.д.

nemo61
osy13:

AllinOne соединил четырьмя проводами SDA SCL 5V и GND

Будем надеяться, что не попутали 5V и GND. Поменяйте местами SDA SCL

SovGVD

а я бы в CLI зашел (Terminal A5+GND) и посмотрел чего пишет в консоле, особенно test-adc… ну и перед всем этим неплохо бы пройти setup в планере

SovGVD
RA4ASN:

Очень прошу, пожалуйста, обратите внимание на мою проблемку

вам в тему Ардукоптера надо, а не Мегапирата, мы тут сидим с arduino+allione, а не с полноценным ардукоптером

RA4ASN

Ну так и я с тем же 😃 Но можно и там задать, может кто подскажет.

SovGVD

упс =) просто тут никто про батарейку не думает пока еще, да и схемы подключения до сих пор нет

osy13
SovGVD:

а я бы в CLI зашел (Terminal A5+GND) и посмотрел чего пишет в консоле, особенно test-adc… ну и перед всем этим неплохо бы пройти setup в планере

A5+GND ничего не дает. Как пройти setup в планере?
SDA и SCL если поменять местами то приконнектится вообще не возможно.

Кстати пошевелил контакты, подключился вроде горизонт както начал изменяться. Я подпоялся непосредственно к платам. И опять все датчики молчат.

Musgravehill
osy13:

Я подпоялся непосредственно к платам. И опять все датчики молчат.

У Ардуины вокруг каждого пина вытравлено тонкое “кольцо”, а вокруг сплошная земля. Паять нужно очень аккуратно, чтобы припой не соединился с земляной заливкой вокруг пинов.

osy13:

SDA и SCL если поменять местами то приконнектится вообще не возможно.

Страшно читать про такие опыты. Соедините все точно, без перекручивания. Не обязательно заливать скетч МегаПирата, есть простые скетчи для общения с i2c датчиками - в консоли arduinoIDE покажет значения с датчиков.

Alex_from_Israel
SovGVD:

упс =) просто тут никто про батарейку не думает пока еще, да и схемы подключения до сих пор нет

У меня такая работает. Но противоречит показаниям Ваттметра. Писал уже, но могу и повторить. Подключается к аналоговым входам 0 и1,без делителей и земля, естесственно. Код правится элементарно, в документации Оттопайлота на Спаркфане есть пример кода. Напряжение показывает, а где показывает ток, так и не нашел.

osy13:

A5+GND ничего не дает. Как пройти setup в планере?
SDA и SCL если поменять местами то приконнектится вообще не возможно.

Кстати пошевелил контакты, подключился вроде горизонт както начал изменяться. Я подпоялся непосредственно к платам. И опять все датчики молчат.

Поставить перемычку А5 - GND, нажать Терминал в Планере, появится надпись Port opened и номер версии прошивки. Если не появится надпись, проверить соединение ЮСБ и какой порт установлен. Скорость115200, порт такой же, как при заливке прошивки

Фигня с моторами началась с прошивки 2.0.39 Бета. В более ранних работает код, который сейчас закомментирован.

RA4ASN
Alex_from_Israel:

У меня такая работает. Но противоречит показаниям Ваттметра. Писал уже, но могу и повторить. Подключается к аналоговым входам 0 и1,без делителей и земля, естесственно. Код правится элементарно, в документации Оттопайлота на Спаркфане есть пример кода. Напряжение показывает, а где показывает ток, так и не нашел.

Да, я видел где Вы писали про подключение и пример, я ставил свою формулу для подсчета с нужными коэффициентами, но в планнере творилась просто жуть, цифры скакали от нуля до ста. Кстати, в последних версиях в настройках планнера появилась отдельная вкладка “battery”, судя по всему туда нужно что-то вводить руками, но ни одно поле не активно.

Alex_from_Israel
RA4ASN:

Да, я видел где Вы писали про подключение и пример, я ставил свою формулу для подсчета с нужными коэффициентами, но в планнере творилась просто жуть, цифры скакали от нуля до ста. Кстати, в последних версиях в настройках планнера появилась отдельная вкладка “battery”, судя по всему туда нужно что-то вводить руками, но ни одно поле не активно.

Странно… У меня ничего подобного не было… Напряжение меряет напрямую на 0 пин аналогового входа, ток на 1 пин. Я показывал уже свой пример кода для Оттопайлот 90 ампер, вот этот sensors.pde

battery_voltage1 = BATTERY_VOLTAGE(analogRead(BATTERY_PIN1)) * .1 + battery_voltage1 * .9;
battery_voltage2 = BATTERY_VOLTAGE(analogRead(BATTERY_PIN2)) * .1 + battery_voltage2 * .9;
battery_voltage3 = BATTERY_VOLTAGE(analogRead(BATTERY_PIN3)) * .1 + battery_voltage3 * .9;
battery_voltage4 = BATTERY_VOLTAGE(analogRead(BATTERY_PIN4)) * .1 + battery_voltage4 * .9;

if(g.battery_monitoring == 1)
battery_voltage = battery_voltage3; // set total battery voltage, for telemetry stream
if(g.battery_monitoring == 2)
battery_voltage = battery_voltage4;
if(g.battery_monitoring == 3 || g.battery_monitoring == 4)
battery_voltage = analogRead(VOLTAGE_PIN_0)/12.99;
if(g.battery_monitoring == 4) {
current_amps = analogRead(CURRENT_PIN_1)/7.44; //reads power sensor current pin
current_total += current_amps * (float)delta_ms_medium_loop * 0.000278;

И работает… В планнере устанавливается setup -> battery 4 (или 3, если нужно мерять только напряжение) 1 и 2 значение устанавливать нельзя, 1 - напряжение по ячейкам батареи для 3 банок, 2 - для 4 банок, нужен делитель напряжения и разъем для подключения балансирного разъема на батарее.

Кстати, может это важно, у меня тоже не сразу заработало. Долго возился, в том числе изготовил зазъем для мониторинга батареи по ячейкам. Там делитель, вернее 4 делителя, подключены к пинам 0, 1, 2, 3. Потом вдруг заработало. Делители не использую, но они так и остались на плате, хотя Оттопайлот подключен напрямую. Может без делителей не работает? Каким то манером в коде идет проверка на их наличие?