Crius Hobby MultiWii
Их можно использовать, как здесь написано
Спасибо. Я нашел даташит на Atmega328P, выяснилось, что это 2 входа АЦП, которые не могут быть использованы как-то еще, кроме как входы АЦП. В оригинальном Arduino они не разведены.
Попробовал прицепить сателиты спектрум(заранeе биндил через приёмник).
Подключал к выводу THROTTLE на плате. Подтяжка выхода сателита через 10К на +3.3в.
В конфиг файле раскоментил:
#define SERIAL_SUM_PPM PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,CAMPITCH,CAMROLL //For Graupner/Spektrum
для DSM2 #define SPEKTRUM 1024
для DSMX #define SPEKTRUM 2048
И тишина. Оба сателита не заработали.
После перепрошивки GUI не работает.
Подскажите, что я не доделал.
Подключал к выводу THROTTLE на плате
For PROMINI, attach sat grey to RX0. Attach sat black to ground.
Надо не на throttle(D2) а на RX1
после раскоментаривания #define SPEKTRUM 1024 GUI и не должна работать.
Пока плата идет почтой, пересмотрел еще раз описание шины i2c.
Насколько я понял из pdf-a на проц, для приема/передачи по i2c используются пины SDA и SCL (PC4, PC5, выделены красным). Может кто тестером прозвонить, выведены ли они на какие-нибудь пины?
Далее, судя по всему в коде надо раскомментировать строчки:
#define I2C_PULLUPS_ENABLE PORTC |= 1<<4; PORTC |= 1<<5;
#define I2C_PULLUPS_DISABLE PORTC &= ~(1<<4); PORTC &= ~(1<<5);
Ну и включить через define то устройство, которое собственно хотим использовать.
Все думаю, заказывать GPS или не заказывать… Вроде как никто с этой платой его не испытывал, хотя теоретически как бы должно заработать. Не хотелось бы подпаиваться напрямую к процу, уж больно все мелкое.
Насколько я понял из pdf-a на проц, для приема/передачи по i2c используются пины SDA и SCL (PC4, PC5, выделены красным). Может кто тестером прозвонить, выведены ли они на какие-нибудь пины?
Судя по фотке
Никуда на разъем не выведены, придется к резюкам(Р9 и Р8 ВРОДЕ) паяца или к доржкам - калхоз наше все 😃)
Вчера позанимался с сателитом 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.
Ктонибудь подключил именно к этой плате сателит спектрум? И каким образом?
Вопервых, что вы увидели на осцилографе? Там уарт. Вы осцилографом чиселки расшифровывали?
Во вторых. Сателит надо подключать уже забинденый. С каким приемником биндили? С родным от ДХ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 бит - значение этого канала.
Сателит DSM2(1024) биндил с AR6200, DSMX(2048) с AR8000 из комплекта DX8.
Осцилограф декодировать не умеет, но если видимый пакет визуально разделить на 8 чистей и
подвигать стики,тумблера и крутилки, то видно в которой из 8-м визуальных зон происходит изменение.
но если видимый пакет визуально разделить
Визуально - не катит, т.к. номер канала в этих чиселках тоже передается. Причем, экспериментально я убедился в том, что не важно в какой последовательности передавать. Приемник сам декодирует. Т.е. то, что вы визуально поделили на 8 частей - если эти части перемешать между собой - оставив только первые 2 байта на месте (а в случае с 2048 и последние) - ничего не изменится. Приемник точно также их декодирует и ничего не перепутает.
Из виденных мною, последовательность в спектруме 7 - была 1,5,4,2,6,0,3 а в 12канальном модуле для мультиплекс - 1, 8, 4, 9, 10, 12, 2, 6, 3, 5, 7, 11
Кстати, осцилограф чтобы увидеть эти циферки не нужен. Достаточно шнурка с адаптером от этой платы. И софт какой-нибудь типа “ком-порт-тул-кит”. В обычных терминалках на экран символы выводятся, терминалкой не увидишь.
Спорить не буду. Изучать протокол времени нету.
Вам удалось подключить спектрум сателит к этой плате?
У меня нет этой платы.
Уважаемые подскажите как правильно установить плату на квадрик. Вариант 1 не успел проверить, занимаюсь этим на работе (когдасвободен). а вариант 2 как-то странно себя проявляет и по крену и по тангажу. Моторыи направление вращения подключены правильно по схеме. прошивка последняя, раскоментировал только это #define CRIUS_SE // Crius MultiWii SE.
квдрик Х.
Спасибо за оперативный ответ завтра попробую.
Увожаемые подскажите как правилно установить плату на квадрик
Квадрик будет “Х” или “+” ?
Для квадрика “Х” вариант №1
Вариант 1- правильно для Х конфигурации, вариант 2- для +.
Может кто подскажет как включить дисплей,а то не как не включаеться, т.е. заставка загораеться и всё может чего в прошивке вписать надо?дисплей такой www.aliexpress.com/snapshot/104258843.html прошивка MultiWii_1_9_a2
Я не пробовал, но судя по коду, надо раскомментировать LCD_SERIAL3W.
Я не пробовал, но судя по коду, надо раскомментировать LCD_SERIAL3W.
у меня в этой прошивке такой строчки нет
Я смотрю код этой - multiwii.googlecode.com/files/MultiWii_2_0.zip
Для поддержки плат там также есть define CRIUS_SE в config.h.
Сегодня прикрутил сателит от спектрума dx6i к криусу . Паяеться на rx-0. В прошивке раскоментировал //#define SPEKTRUM 2048.
Вы прицепили DSMX?
В прошивке раскоментировали только //#define SPEKTRUM 2048?
Я смотрю код этой - multiwii.googlecode.com/files/MultiWii_2_0.zip
Для поддержки плат там также есть define CRIUS_SE в config.h.
Понятно,а можно от туда скопировать значения в мою прошивку и куда?
Вы прицепили DSMX?
В прошивке раскоментировали только //#define SPEKTRUM 2048?
Не силен в протоколах. DX6i вроде как DSM2 должен быть. Пробовал #define SPEKTRUM 1024 не работало…
Понятно,а можно от туда скопировать значения в мою прошивку и куда?
Теоретически можно взять программу Araxis Merge и аккуратно перенести все нужные участки кода, где есть дефайны, но зачем? Могут какие-нибудь проблемы вылезти, проще новую прошивку залить.
Я не пробовал, но судя по коду, надо раскомментировать LCD_SERIAL3W.
LCD_SERIAL3W
Именно так. Подтверждаю. Комплектный LCD работает. На 2.0 с полпинка раскомментированием
#define LCD_CONF.
#define LCD_SERIAL3W
#define DISPLAY_2LINES
Но криво. И еще. Сам он не включается. Его надо активировать комбинацией стиков.
Его в разных фагах (В т.ч. ютубе) показывают на аппах с разными модами. Вообще у меня заработало так, как в ПДФ инструкции к криусу.
THR-Вниз (при дисарме)
RUD-Вправо
ELE-Вверх.
Но похоже текст который выдает прошивка, какой то неформатный. Либо неверно указан дисплей…
Не полностью влазит в строку. Иногда псевдографика вылазит. но крутить получается. Стиками, как положено.
Отложу на будущее, пока с ПИДами не разберусь, Гексик чето никак не хочет ровно висеть. Все время вперед уходит.
Я смотрю код этой - 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
Обратите внимание на реверсы Гиры и Акселя. Надо бы фак на первой странице поправить…
Проблема продключения сателита спектрум с DX8 похоже в том, что текущие версии софта не работают с 8-м
канальным передатчиком
Покопал в исходниках и обнаружил:
#define SPEK_MAX_CHANNEL 7
…
static uint8_t spekRcChannelMap[SPEK_MAX_CHANNEL] = {1,2,3,0,4,5,6};
Надо выяснить порядок передачи каналов для 8-ми канального передатчика.
Если кто имеет эти данные, пожалуйста поделитесь.