Создание собственной системы стабилизации
осталось только придумать как переключать входы ШИМ/ППМ/СБУС,
Вообщем придумал:
ШИМ - без перемычек;
ППМ - перемычка 2-3, 1 канал ППМСУМ;
СБУС - перемычка 1-2.
Перемычка проверяется 1 раз при сбросе.
1 канал ППМСУМ;
4-й канал (по табличке на плате - + 4 в ряд) удобнее 😃
4-й канал (по табличке на плате - + 4 в ряд) удобнее
А… ну да!😃 ППМ - перемычка 2-4, 1 канал ППМСУМ;
Я вот думаю, а на СБУС надо переназначение каналов делать? Или они в таком же порядке как в ППМ идут?
А… ну да! ППМ - перемычка 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
};
Нужна ваша помощь. Мне для осд нужно чтобы 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
Не могу догнать что нужно сделать что бы “мозги” арду начали отсылать эти данные.
Нужна ваша помощь. Мне для осд нужно чтобы Arducopter сбрасывал следующие сообщения:
Алексей, я в самом коде АПМ совсем не лазил, я занимался портом РТОС Нутекс по запуск АПМ на плате F4BY, поэтому квалифицированно помочь не могу.
Вроде как в libraries\GCS_MAVLink\include\mavlink\v1.0\common\mavlink_msg_attitude.h есть прототипы функций, вызываются они из ArduCopter\GCS_Mavlink.pde
в принципе тот же 6000 только в меньшем корпусе, единственный смысл если корпуса с 9250 одинаковые, то можно заложить (купить) потом поменять микрухи…
Не могу догнать что нужно сделать что бы “мозги” арду начали отсылать эти данные.
HEARTBEAT отсылается всегда (вроде раз в секунду). Остальное надо запрашивать. Проще всего посмотреть код того же MinimOSD. По сути, вы запрашиваете такие то данные и говорите, что надо их отправлять с частотой 10HZ, дальше данные будут капать с указанной частотой.
Скоро мозг взорвется.
Посмотрел что шлет 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.
То ли лыжи не едут то ли я что то не понимаю.😵
в принципе тот же 6000 только в меньшем корпусе, единственный смысл если корпуса с 9250 одинаковые, то можно заложить (купить) потом поменять микрухи…
шумы сравниете и поймете что это не 6000 это хуже.
Фух наконец-то платки объявились на горизонте 😃 вчера хотел сделать GPS модуль в коробочке (старый для тестов на новой плате, новый пока не делаю ибо антенна не скоро появится) так вот схватил первый попавшийся постер, а он, собака, с каким-то лаком был - короче припечаталось так что не отдерёшь 😦 ладно вырвусь может на работу сегодня (я с детьми сегодня) сделаю поновому…
Привет камрады, выдалось время, как просили выкачал через терминал какието логи из ириса. Че с ними делать? вот например: yadi.sk/d/ZJo7jkVoDwXXX
есть две новости , хорошая и плохая …
- хорошая … судя по code.google.com/p/esc32/source/list автоквады допиливают CAN на своих регулях …
- плохая … гдето в сети видел фото китайской версии ESC32 с обратной стороны (везде у продавцов фото почемуто только с одной стороны) , так вот , там небыло места под CAN трансивер (видимо поэтому Шопу и не показывают) …
скоро придедут китайцы , посмотрим … если CAN вырезали , придется препарировать плату …
если CAN вырезали
ну какбы одна лапа на jtag разъёме, а вот вторая х.з.
вот например:
чёт мне кажется это крайнее включение на столе, не? у меня на SD-шке они под номерами складываются…
На столе как раз крайний в списке был, а этот из середины списка. Так че с ним делать? Мишн планер не хочет его открывать, ошибку выдает мол файл занят…И так скаждым. Как смотреть их?
На столе как раз крайний в списке был, а этот из середины списка. Так че с ним делать? Мишн планер не хочет его открывать, ошибку выдает мол файл занят…И так скаждым. Как смотреть их?
у меня открывает, у вас ardu 3 rc-2 (в кино что я делал rc-5 летала 😈 )
ну какбы одна лапа на jtag разъёме, а вот вторая х.з.
это не решает проблему … нельзя юзать китайскую , бум делать свою …
буду сдувать детали и срисовавать схематик … ну а дальше делать этажерку - контроллер с драйверами на одной плате (18 микрон меди) а мосфеты на другой (70/105 микрон)
и получим это rccopter.ru/…/esc-regulyator-2n-2n-can-bus
да там переключатели стоят для адреса…
ну чтото в этом духе … тока с транзисторами они явно грубанули … 2х160 ампер , вот это запас прочности …плата сгорит намного раньше чем мосфеты …
думаю если поставить IRFHM830 также по 2 штуки в параллель то будет намного легче и компактнее … да они всего 40 ампер каждый , но думаю этого будет достаточно … сопротивление 3,8 миллиома против 3,1 миллиома тоже ненамного выше …
переключатели нафиг , 4 перемычки намного компактнее …
ну да 4 перемычки дадут 16 адресов, больше и не надо 😃 хотя can драйвера на плате не видно, но они там две с куевой хучей слоёв…