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

RA4ASN
Sir_Alex:

А у меня не заработала… 😦 Возможно несовместима с 2.5 прошивками)

Вылетает при приеме данных… Обидно.

upd: Поставил 8-ю версию, что-то показывает 😃

SovGVD
RA4ASN:

разве разные версии?

одинаковые, даже в описании написано
“Note: This market version offers no additional code features compared to the free version available through code.google.com/p/copter-gcs/. This version is available for those who do not want to do manual installs/receive automatic updates/would like to donate towards development costs (such as the fee required to publish it here).”
в общем это версия для тех кто хочет сказать “спасибо” автору и получать автоматические обновления

White_0807

Эх не дождатся мне ответов про Imax…
Итак - вести с полей: летал сегодня в ветерок порывами метов до пяти , все шло отлично и ничего не предвещало беды…
Решил попробовать альтхолд - щелчок-- коптер подколбашивает высоту не держим… Щелчок обратно - заваливаем корму и идем в планету под 45 градусов… В минусе 2 пропа и камера бортовая пишущая…
Чешу репу - меняю пропы ( двиги ровные, валы не пострадали). Подъем - дикий расколбас и почти не управляется… Боротся устал - уехал домой…
Такие вот дела…

zkarust

Господа, в какой последней версии прошивки работает AllInOne с GPS ?
(по моим данным только в MegaPirateNG_2.0.40_Test8.zip)

Sir_Alex
zkarust:

Господа, в какой последней версии прошивки работает AllInOne с GPS ? (по моим данным только в MegaPirateNG_2.0.40_Test8.zip)

Во всех должна работать.

SovGVD

А никто не подскажет как GPS приемник запрограмить на нужную. частоту работы? крайне необходимо скорость понизить до 9600 на MTK MT3318

Sir_Alex

При каждом запуске, давать ему команду на изменение скорости., после этого менять скорость порта на новую. Посмотри драйвер GPS_BLACKVORTEX, там старует на 9600, затем меняется скорость на 38400 и 5Hz update. Тебе надо сделать по аналогии то ка в MTK или NMEA.
Или найти прошивку с искомой скорость и зашить намертво в GPS.

SovGVD

А не в курсе что будет если постоянно дергать Serial.begin и менять скорость? Затратное занятие?

SovGVD
Ustas69:

Мне тоже интересно, почему у меня только на 9600 работает, это вообще не слишком медленно?

у меня только на 38400 =) а мне до 9600 надо скинуть для Multiwii чтоб с OSD работать сразу
еще кстаии есть вариант что у holux m1000 просто RX не разведен в USB порт, который на самом деле UART

Sir_Alex
SovGVD:

у меня только на 38400 =) а мне до 9600 надо скинуть для Multiwii чтоб с OSD работать сразу

Так добавь в коде инициализации GPS в MultiWii, команды переключения на 9600 и сразу Serial.begin(9600)

SovGVD

Не получается =(
в сетупе сделал

    Serial.begin(38400);
    delay(10);
    Serial.println("$PMTK251,9600*17");
    delay(10);
    Serial.begin(9600);
    delay(10);

Из мануала (может быть не походит к этому чипу, но там везде про MTK NMEA)

Example:
$PMTK251,38400*27<CR><LF>

тут www.hhhh.org/wiml/proj/nmeaxor.html чексумму посчитал

он после этого кода просто перестает что либо передавать, если передернуть питание приемнику, то шлет снова на 38400

попробоавл Mini_GPS, holux команды принимает (версию прошивки глянул), но например скорость порта упорно не хочет менять, видимо залочено это… или вообще на встроенный BT модуль уходит.

Sir_Alex

Проверь через обычный терминал, как он реагирует на эту команду. В пирате есть папка tools в которой есть SerialPassThrough, можешь с его помощью пообщаться с GPS.

SovGVD

да уже, через USB-UART переходник подрубил, на некоторые команды реагирует, но скорость не хочет менять никак =) имхо залочили это для девайса

LeonVS

Господа кто наставит на путь истинный, как из Мавлинк потока льющегося на землю выковырять ГПС данные координат и высоты? Хочу трекер замутить 😃 Не догоняю к чему привязаться… Судя по протоколу это находится в параметре GPS_RAW_INT (#24), но при просмотре то что льется в 16-ричном коде при переводе в десятеричный получается ахинея полная… Задал вопрос в самолетной теме, пока тишина, может здесь есть гуры по мавлинку 😃?

Sir_Alex
LeonVS:

Судя по протоколу это находится в параметре GPS_RAW_INT

Скорее в MSG_LOCATION

    Matrix3f rot = ahrs.get_dcm_matrix(); // neglecting angle of attack for now
    mavlink_msg_global_position_int_send(
        chan,
        current_loc.lat,
        current_loc.lng,
        current_loc.alt * 10,
        g_gps->ground_speed * rot.a.x,
        g_gps->ground_speed * rot.b.x,
        g_gps->ground_speed * rot.c.x); 
LeonVS

Алекс, а как идет разделение в блоке данных не пойму судя по коду, просто друг за другом? Какой байт отвечает за начало пакета и окончание пакета? В каком формате данные летят?

Начало передачи данных это судя по всему “chan” но вот что это? Судя по всему переменная, передающаяся в начале каждого блока данных, а вот как узнать какой блок данных передается в данный отрезок времени??? Идут строго по порядку? Опять же как идентифицируется в данном случае первый пакет? Чтот мое совсем в ступоре…

Sir_Alex
LeonVS:

Чтот мое совсем в ступоре…

Не проще ли задействовать готовую либу GCS_MAVLink? Описание протокола можно найти тут qgroundcontrol.org/mavlink/start (Я правда не знаю, на сколько сильно его переделали под нужны АрдуКоптера)

P.S. Я сам не в курсе деталей работы этого протокола, пока не приходилось там что то править…