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

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. Потом вдруг заработало. Делители не использую, но они так и остались на плате, хотя Оттопайлот подключен напрямую. Может без делителей не работает? Каким то манером в коде идет проверка на их наличие?

osy13

[QUOTE=Alex_from_Israel;2864 Скорость115200, порт такой же, как при заливке прошивки[/QUOTE]
А вот тут нет… Прошивка заливалась на 57600 а планер почемуто коннектится только на 115200

На компьютере сом11.

В планере в терминале без перемычки иногда пишет error open com port
Сначала ставить перемычку, а потом тыкать в кнопочку терминал, не пробовал

RA4ASN

Спасибо, попробую. Я пытался менять в других формулах, может, поэтому ничего не шло.

Сергей, чтобы активировался режим CLI, надо поставить перемычку и сделать ресет. Вы точно во вкладке ARM_config.h выставили SERIAL0_BAUD 57600?

Alex_from_Israel
osy13:

А вот тут нет… Прошивка заливалась на 57600 а планер почемуто коннектится только на 115200

На компьютере сом11.

В планере в терминале без перемычки иногда пишет error open com port
Сначала ставить перемычку, а потом тыкать в кнопочку терминал, не пробовал

Я писал про номер порта, а не скорость в 0022. В планнере будет коннектится на 115200, если в APM_Config.h задана такая скорость на порт0.

Если не ставить перемычку и ткнуть кнопку терминала, то соединение произойдет, если все правильно подключено, пройдет инициализация акселя и напишет Ready tо fly, после целой кучи кракозябров.

Ошибка открытия порта, если неправильно установлен номер порта вверху справа в Планнере.

Chester_kz

Надоели мне всяческие лапше-провода на меге. Хочу вытравить нормальный Shield и туда все аккуратно (насколько возможно) разместить. Если ли у кого макет Шилда в Spring Layout?
Своим творчеством обязательно поделюсь.

commy_s

Подскажите, как проверить баро датчик? В комнате показания меняются -11, 0, +11 Дул на него, никакой реакции.

Musgravehill
commy_s:

Подскажите, как проверить баро датчик?

В пакет закладываете систему, дуете, чтобы пакет наполнился воздухом, горловину (через которую идет провод) стягиваете рукой и держите. На пакет давите - показания меняются.