Создание собственной системы стабилизации

oleg70
Alexey_1811:

У меня стоит на коптере.

Сам паял??

oleg70
Alexey_1811:

Угу

Вот и я спаял, вроде все по “книжке” , а он запускается -через раз на третий- , может секрет какой есть ?
С питанием играл, “RESET” нажимал … не пойму закономерность не-запуска, прям засада какая то…

Alexey_1811

У меня модуль SIM68R. Проблем не замечено с запуском. Правда настройки не сохраняются и существует только 2 прошивки на фиксированные скорости 9600 и 115200. У вас батарейка подключена?

oleg70
Alexey_1811:

батарейка подключена?

У меня (sim68 без R), про батарейку в даташите явно не указано, всю обвязку сделал по “фирменной схеме” (ды там и обвязки то почти нет 😃)… и в инете особо примеров примения нет 😦

Alexey_1811

Могу ошибаться но у меня без батарейки кажись тоже плохо работало.

mataor

многие модели без батареи очень плохо запускаются. если не нужна - то хотя-бы диод+резистор на 4.7-10к к ножке кинуть

rual
rual:

осталось только придумать как переключать входы ШИМ/ППМ/СБУС,

Вообщем придумал:
ШИМ - без перемычек;
ППМ - перемычка 2-3, 1 канал ППМСУМ;
СБУС - перемычка 1-2.

Перемычка проверяется 1 раз при сбросе.

SergDoc
rual:

1 канал ППМСУМ;

4-й канал (по табличке на плате - + 4 в ряд) удобнее 😃

rual
SergDoc:

4-й канал (по табличке на плате - + 4 в ряд) удобнее

А… ну да!😃 ППМ - перемычка 2-4, 1 канал ППМСУМ;

Я вот думаю, а на СБУС надо переназначение каналов делать? Или они в таком же порядке как в ППМ идут?

SergDoc
rual:

А… ну да! ППМ - перемычка 2-4, 1 канал ППМСУМ;

нет!!! перемычка 1-2, 4-й канал ППМСУМ (это если из таблички), 2-3 СБУС
табличка снизу платы…

а на схеме вход 6 ППМСУММ, перемычки 9,7,5, я забыл просто переименовать, в обратном порядке все…

как и здесь у меня было

static const uint16_t multiPPM[] = {
    PWM6  | TYPE_IP,     // PPM input  6-й для проца, 4-й для пользователя (считать человеку легче слева направо)
    PWM9  | TYPE_M,
    PWM10 | TYPE_M,
    PWM11 | TYPE_M,
    PWM12 | TYPE_M,
    PWM13 | TYPE_M,
    PWM14 | TYPE_M,
    PWM15 | TYPE_M,
    PWM16 | TYPE_M,
    PWM17 | TYPE_S,
    PWM18 | TYPE_S,
    PWM19 | TYPE_S,
    PWM20 | TYPE_S,
    0xFFFF
};

static const uint16_t multiPWM[] = {
    PWM1 | TYPE_IW,     // input #1
    PWM2 | TYPE_IW,
    PWM3 | TYPE_IW,
    PWM4 | TYPE_IW,
    PWM5 | TYPE_IW,
    PWM6 | TYPE_IW,
    PWM7 | TYPE_IW,
    PWM8 | TYPE_IW,     // input #8
    PWM9 | TYPE_M,
    PWM10 | TYPE_M,
    PWM11 | TYPE_M,
    PWM12 | TYPE_M,
    PWM13 | TYPE_M,
    PWM14 | TYPE_M,
    PWM15 | TYPE_M,
    PWM16 | TYPE_M,
    PWM17 | TYPE_S,
    PWM18 | TYPE_S,
    PWM19 | TYPE_S,
    PWM20 | TYPE_S,
    0xFFFF
};

Alexey_1811

Нужна ваша помощь. Мне для осд нужно чтобы Arducopter сбрасывал следующие сообщения:
#define MAVLINK_MSG_ID_HEARTBEAT 0
#define MAVLINK_MSG_ID_SYS_STATUS 1
#define MAVLINK_MSG_ID_GPS_RAW_INT 24
#define MAVLINK_MSG_ID_VFR_HUD 74
#define MAVLINK_MSG_ID_ATTITUDE 30
#define MAVLINK_MSG_ID_NAV_CONTROLLER_OUTPUT 62
#define MAVLINK_MSG_ID_MISSION_CURRENT 42
#define MAVLINK_MSG_ID_RC_CHANNELS_RAW 35

Не могу догнать что нужно сделать что бы “мозги” арду начали отсылать эти данные.

rual
Alexey_1811:

Нужна ваша помощь. Мне для осд нужно чтобы Arducopter сбрасывал следующие сообщения:

Алексей, я в самом коде АПМ совсем не лазил, я занимался портом РТОС Нутекс по запуск АПМ на плате F4BY, поэтому квалифицированно помочь не могу.
Вроде как в libraries\GCS_MAVLink\include\mavlink\v1.0\common\mavlink_msg_attitude.h есть прототипы функций, вызываются они из ArduCopter\GCS_Mavlink.pde

SergDoc

в принципе тот же 6000 только в меньшем корпусе, единственный смысл если корпуса с 9250 одинаковые, то можно заложить (купить) потом поменять микрухи…

Sir_Alex
Alexey_1811:

Не могу догнать что нужно сделать что бы “мозги” арду начали отсылать эти данные.

HEARTBEAT отсылается всегда (вроде раз в секунду). Остальное надо запрашивать. Проще всего посмотреть код того же MinimOSD. По сути, вы запрашиваете такие то данные и говорите, что надо их отправлять с частотой 10HZ, дальше данные будут капать с указанной частотой.

Alexey_1811

Скоро мозг взорвется.
Посмотрел что шлет ArduCamOSD в контроллер при старте. Получил:

//                          STX  |           HEADER          |                      DATA            | CRC    |
unsigned char strInit0[] = {0xFE, 0x06, 0x00, 0x0C, 0x01, 0x42, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01, 0xD7, 0xD3};
unsigned char strInit1[] = {0xFE, 0x06, 0x01, 0x0C, 0x01, 0x42, 0x02, 0x00, 0x01, 0x01, 0x02, 0x01, 0x22, 0x69};
unsigned char strInit2[] = {0xFE, 0x06, 0x02, 0x0C, 0x01, 0x42, 0x05, 0x00, 0x01, 0x01, 0x03, 0x01, 0x55, 0x0A};
unsigned char strInit3[] = {0xFE, 0x06, 0x03, 0x0C, 0x01, 0x42, 0x02, 0x00, 0x01, 0x01, 0x06, 0x01, 0x61, 0xA1};
unsigned char strInit4[] = {0xFE, 0x06, 0x04, 0x0C, 0x01, 0x42, 0x05, 0x00, 0x01, 0x01, 0x0A, 0x01, 0x3C, 0x63};
unsigned char strInit5[] = {0xFE, 0x06, 0x05, 0x0C, 0x01, 0x42, 0x02, 0x00, 0x01, 0x01, 0x0B, 0x01, 0x69, 0xAB};

Выдрал код подсчета контрольной суммы с ArduCamOSD

void _crc_accumulate(unsigned char data, unsigned short *crcAccum)
{
    unsigned char tmp;

    tmp = data ^ (unsigned char)(*crcAccum &0xff);
    tmp ^= (tmp<<4);
    *crcAccum = (*crcAccum>>8) ^ (tmp<<8) ^ (tmp <<3) ^ (tmp>>4);
}

//====================================================================================================
void _crc_init(uint16_t* crcAccum)
{
    *crcAccum = X25_INIT_CRC;
}

//====================================================================================================
unsigned short _crc_calculate(unsigned char* pBuffer, unsigned short length)
{
    unsigned short crcTmp;
    _crc_init(&crcTmp);
    while (length--) {
        _crc_accumulate(*pBuffer++, &crcTmp);
    }
    return crcTmp;
}

Считаю CRC16 для 0x06, 0x00, 0x0C, 0x01, 0x42, 0x02, 0x00, 0x01, 0x01, 0x01, 0x01 и у меня нифига не получается 0xD7, 0xD3.
То ли лыжи не едут то ли я что то не понимаю.😵

Rabbit_Fly
SergDoc:

в принципе тот же 6000 только в меньшем корпусе, единственный смысл если корпуса с 9250 одинаковые, то можно заложить (купить) потом поменять микрухи…

шумы сравниете и поймете что это не 6000 это хуже.

SergDoc

Фух наконец-то платки объявились на горизонте 😃 вчера хотел сделать GPS модуль в коробочке (старый для тестов на новой плате, новый пока не делаю ибо антенна не скоро появится) так вот схватил первый попавшийся постер, а он, собака, с каким-то лаком был - короче припечаталось так что не отдерёшь 😦 ладно вырвусь может на работу сегодня (я с детьми сегодня) сделаю поновому…

Drinker

Привет камрады, выдалось время, как просили выкачал через терминал какието логи из ириса. Че с ними делать? вот например: yadi.sk/d/ZJo7jkVoDwXXX