Crius Hobby MultiWii

PoroHard

Вчера позанимался с сателитом DSM2, но результатов мало. Передатчик DX8.
Версия софта 2.0
Раскоментил:
#define SERIAL_SUM_PPM PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,CAMPITCH,CAMROLL //For Graupner/Spektrum
#define SPEKTRUM 1024
Сателит подключал к 4-х пиновому разъёму(сигнал к RXI(RX1-?)). Компилировал под ARDUINO 1.0, борд выбирал Duemilanova и ProMini.
На стики и переключение режимов не реагирует. Единственным изменением стало отсутствие мигания синим светодиодом с периодом в 5-6сек.(один длинный и два коротких).
Смотрел осцилографом сигнал с сателита. Расположение каналов полностью не соответствует этому -
PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,CAMPITCH,CAMROLL.
Ктонибудь подключил именно к этой плате сателит спектрум? И каким образом?

Aleksey_Gorelikov

Вопервых, что вы увидели на осцилографе? Там уарт. Вы осцилографом чиселки расшифровывали?

Во вторых. Сателит надо подключать уже забинденый. С каким приемником биндили? С родным от ДХ8? А в каком режиме он работает? В ДСМ2(1024) или в ДСМ-2048. Если ваш осцилограф умеет декодировать уарт в чиселки - увидите разницу. Выбирать дефайн 2048 пробовали?

Вот что выдает сателит в в 1024-режиме:
03 02 0F 5A 0A E6 06 03 16 CE 01 58 13 BD 1A CE
Тут первые два байта - это всякая статистика, остальные - по паре байт - инфа о канале. Если вдаваться в подробности - первых 3 бита - нули, далее 3 бита - номер канала, далее 10 бит - значение канала.

А вот в 2048:
00 00 83 E5 3B E5 1B E5 43 E5 4B E5 5B EF FF FF 00 00 0B E5 2B E5 13 E5 23 E5 33 E5 53 E5 FF FF
Я специально выделил два кадра. Вся последовательность передается за 2 кадра. Каждый канал занимает 2 байта.
В них зашифровано: первый бит - испоьзуется только в первом канале для дентификации кадра, далее 4 бита - номер канала и оставшиеся 11 бит - значение этого канала.

PoroHard

Сателит DSM2(1024) биндил с AR6200, DSMX(2048) с AR8000 из комплекта DX8.
Осцилограф декодировать не умеет, но если видимый пакет визуально разделить на 8 чистей и
подвигать стики,тумблера и крутилки, то видно в которой из 8-м визуальных зон происходит изменение.

Aleksey_Gorelikov
PoroHard:

но если видимый пакет визуально разделить

Визуально - не катит, т.к. номер канала в этих чиселках тоже передается. Причем, экспериментально я убедился в том, что не важно в какой последовательности передавать. Приемник сам декодирует. Т.е. то, что вы визуально поделили на 8 частей - если эти части перемешать между собой - оставив только первые 2 байта на месте (а в случае с 2048 и последние) - ничего не изменится. Приемник точно также их декодирует и ничего не перепутает.
Из виденных мною, последовательность в спектруме 7 - была 1,5,4,2,6,0,3 а в 12канальном модуле для мультиплекс - 1, 8, 4, 9, 10, 12, 2, 6, 3, 5, 7, 11

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

PoroHard

Спорить не буду. Изучать протокол времени нету.
Вам удалось подключить спектрум сателит к этой плате?

mtk99

Уважаемые подскажите как правильно установить плату на квадрик. Вариант 1 не успел проверить, занимаюсь этим на работе (когдасвободен). а вариант 2 как-то странно себя проявляет и по крену и по тангажу. Моторыи направление вращения подключены правильно по схеме. прошивка последняя, раскоментировал только это #define CRIUS_SE // Crius MultiWii SE.

квдрик Х.
Спасибо за оперативный ответ завтра попробую.

devv
mtk99:

Увожаемые подскажите как правилно установить плату на квадрик

Квадрик будет “Х” или “+” ?

Для квадрика “Х” вариант №1

anevst

Вариант 1- правильно для Х конфигурации, вариант 2- для +.

frolovdi

Может кто подскажет как включить дисплей,а то не как не включаеться, т.е. заставка загораеться и всё может чего в прошивке вписать надо?дисплей такой www.aliexpress.com/snapshot/104258843.html прошивка MultiWii_1_9_a2

DVE

Я не пробовал, но судя по коду, надо раскомментировать LCD_SERIAL3W.

frolovdi
DVE:

Я не пробовал, но судя по коду, надо раскомментировать LCD_SERIAL3W.

у меня в этой прошивке такой строчки нет

mx400mx400

Сегодня прикрутил сателит от спектрума dx6i к криусу . Паяеться на rx-0. В прошивке раскоментировал //#define SPEKTRUM 2048.

PoroHard

Вы прицепили DSMX?
В прошивке раскоментировали только //#define SPEKTRUM 2048?

mx400mx400
PoroHard:

Вы прицепили DSMX?
В прошивке раскоментировали только //#define SPEKTRUM 2048?

Не силен в протоколах. DX6i вроде как DSM2 должен быть. Пробовал #define SPEKTRUM 1024 не работало…

DVE
frolovdi:

Понятно,а можно от туда скопировать значения в мою прошивку и куда?

Теоретически можно взять программу Araxis Merge и аккуратно перенести все нужные участки кода, где есть дефайны, но зачем? Могут какие-нибудь проблемы вылезти, проще новую прошивку залить.

levteros
DVE:

Я не пробовал, но судя по коду, надо раскомментировать LCD_SERIAL3W.

DVE:

LCD_SERIAL3W

Именно так. Подтверждаю. Комплектный LCD работает. На 2.0 с полпинка раскомментированием
#define LCD_CONF.
#define LCD_SERIAL3W
#define DISPLAY_2LINES

Но криво. И еще. Сам он не включается. Его надо активировать комбинацией стиков.
Его в разных фагах (В т.ч. ютубе) показывают на аппах с разными модами. Вообще у меня заработало так, как в ПДФ инструкции к криусу.
THR-Вниз (при дисарме)
RUD-Вправо
ELE-Вверх.
Но похоже текст который выдает прошивка, какой то неформатный. Либо неверно указан дисплей…
Не полностью влазит в строку. Иногда псевдографика вылазит. но крутить получается. Стиками, как положено.
Отложу на будущее, пока с ПИДами не разберусь, Гексик чето никак не хочет ровно висеть. Все время вперед уходит.

DVE:

Я смотрю код этой - multiwii.googlecode.com/files/MultiWii_2_0.zip

Для поддержки плат там также есть define CRIUS_SE в config.h.

Именно с 2.0 мой ГУИ и начал работать как надо. Ось Z Гиры на уровне 250, остальные не скачут. значения PPM SUM тоже замерли (а то скакали на 1,9 постоянно, что приводило к дерганью моторов)
И обращу внимание, при включении CRIUS_SE настройки сенсоров не такие как на первой странице ветки.
Сейчас моделька коптера в гуи ведет себя абсолютно адекватно, и север выровнялся.

#if defined(CRIUS_SE)
#define ITG3200
#define BMA180
#define HMC5883
#define BMP085
#define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
#define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
#define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
#endif

Обратите внимание на реверсы Гиры и Акселя. Надо бы фак на первой странице поправить…

PoroHard

Проблема продключения сателита спектрум с DX8 похоже в том, что текущие версии софта не работают с 8-м
канальным передатчиком
Покопал в исходниках и обнаружил:
#define SPEK_MAX_CHANNEL 7

static uint8_t spekRcChannelMap[SPEK_MAX_CHANNEL] = {1,2,3,0,4,5,6};
Надо выяснить порядок передачи каналов для 8-ми канального передатчика.
Если кто имеет эти данные, пожалуйста поделитесь.

Flutter

Насчет правки 1-й страницы. Залил версию 2.0, откалибровал, полетал, получил дерганье по роллу и питчу в стаб. моде. Править ПИДы прынцыпыально не стал, а залил опять версию 1.9а1. Результат - висит как прибитый. А отличия в версиях по сенсорам действительно имеют место быть, и заметная разница в ПИДах. Так что “не надо торописа, не надо волноваса”.

А про “гексик уходит вперед”, - калибровать, калибровать и т.д. (В.Ильич). Имел похожую проблему, вылечил так. 1).Сначала выставил квадр в горизонт с помощью пузырькового уровня. А именно плоскость, проходящую по торцам валов моторов.
2).В крепежные отверстия платы вставил болтики со слегка накрученными гайками, так, чтобы высота от опорной поверхности гаек до концов болтов была строго одинаковой. Получаем плоскость, которую тоже нужно выставить в горизонт, регулируя наклон платы. Если крепежные отверстия заняты, используем проставки из трубки подходящего диаметра, чтобы охватывали гайки, и торцы трубок опирались на плату.
3). Калибруем АСС.
Аллес.

ЗЫ. Еще мне очень не понравилось поведение MAG в GIU 2.0. После калибровки компаса он показывает север правильно, но стоит немного покрутить плату, стрелка периодически срывается хрен знает куда, правда потом все-таки возвращается