Проект Мегапират на самик!

ViktorDoma
Syberian:

в конфиге отключить reduced_protocol и будет показывать

Не нашел в планере Mission Planner 1.1.2 этот параметр. Подскажите где его искать.

С миксами ТРАБЛА

Сделал так:
// The Mixer Table
// R2, R3, R1, R4, R7, R8
// Roll Pitch Throttle Rudder Ch_7 Ch_8

/* M3 */ -100, 0, 0, 0, 0, 0,
/* M4 */ 0, -100, 0, 0, 0, 0,
/* M1 */ 0, 0, 100, 0, 0, 0,
/* M2 */ 0, 0, 0, 100, 0, 0,
/* M5 */ 0, 0, 0, 0, 100, 0,
/* M6 */ 0, 0, 100, 0, 0, 100

};
До калибровки РАДИО
Микс получился дискретный - как выключатель. Поясню - канал М1 работает нормально - т.е. пропорционально стику газа, а канал М6 - работает только в крайние положения (До середины стоит в обном крайнем положениеи, а потом перекидывает в другое крайнее).
После калибровки РАДИО - микс вообще умер (серва на М6 вообще не реагирует никак).

Еще момент - или я где то пропустил или что то не так работает.
Плата БВ лежит на столе с уклоном в 2-3 градуса.
Горизонт автоматом не выравнивается. Так и должно быть ? Или нужно где то что то нажать ?

По МИКСАМ если надо могу сделать мини ролик (реакция на стики) - делать ?

Сделал другой микс - тоже хрень какая то.

// R2, R3, R1, R4, R7, R8
// Roll Pitch Throttle Rudder Ch_7 Ch_8

/* M3 */ -100, 0, 0, 0, 0, 0,
/* M4 */ 0, -100, 0, 0, 0, 0,
/* M1 */ 0, 0, 100, 0, 0, 0,
/* M2 */ 0, 0, 0, 100, 0, 0,
/* M5 */ 0, 100, 0, 0, 100, 0,
/* M6 */ 0, 0, 100, 0, 0, 100

Соединил R3 с М5 и М4 - реакция другая. Канал М4 - норма. Канал М5 -если ручка стика в середине - убегает в крайнее положение и там сидит, при движении стика одну сторону не реагирует в другую, после середины перекидывает в противоположную крайнюю точку. Подозреваю что центр канала R3 смещен слегка и получается часное от первой траблы по миксу R1 к М1 и М6.

Как бы особо не критично, но миксы получились дискретными. Что они начнут делать в режимах отличных от мануала не проверял, но подозреваю, что так же.

Олег - если побороть миксо-траблу нет возможности, маякните.

Я тогда пойду другой путёй с Миксами.

Lazy
Syberian:

Точнее, соосно с направлением движения самолета (учитывая угол атаки) и горизонтально в плоскости крыльев.

А что, кто то додумался ставить иначе? 😃

alex-ber
Lazy:

Сообщение от Syberian Точнее, соосно с направлением движения самолета (учитывая угол атаки) и горизонтально в плоскости крыльев. А что, кто то додумался ставить иначе?

А иногда просто не получается по другому…
В прошивке В1 угол наклона платы можно было скомпенсировать в настройках, теперь нет.

А плата уже установлена и закреплена в фюзе - неохота было переделывать, вот и попробовал так как было…
теперь переделаю и попробую сново (на то и существует тестирование - методом проб и ошибок настраивается продукт…).
Олег.
Тогда я всеравно не понимаю что это было - в видео явно видно как горизонт заваливается после первого полета и отлично держит после второго…
Может в мозгах какие хвосты от предыдущей прошивки (2.26) остались?
Может стоит все почистить, ресетнуться и залить по-новой? как сделать полный сброс?
Спасибо.

Syberian
alex-ber:

можно было скомпенсировать в настройках, теперь нет.

В Б1 было то же самое.
А где видео-то?

alex-ber
alex-ber:

Вечером приду домой - закачаю…

Вобщем вот видео посадки и проверки после первого полета - качество сильно пострадало от сжатия (двойного - мной и Ютубом…) но надеюсь видно как горизонт поплыл…

:blink:

ПС вторую посадку выкладывать нет смысла - там уже все в порядке: и горизонт на месте и при вращении не плывет… впринципе видно (хоть и плохо-пожалось засильно) что уплыв горизонта начался не в полете а после приземления (примерно через 2 сек) и зависел от положения самика относительно сторон света - когда я крутился вместе с самиком…😮
Причем потом самик просто полежал (я отключал компас - как окозалось зря - на управление не влияет…), я даже питание не передергивал…

LeonVS

Ндя косяк… крен то еще туда сюда, а вот тангаж плавает очень сильно…

Алекс, может у тебя до сих пор МАРГ залит 😉))?

alex-ber
LeonVS:

Алекс, может у тебя до сих пор МАРГ залит ))?

Да не… Перепрошивался на новую прошивку… да и старая вообще горизонт не держала (2.24) а 2.26 перезагружала плату.
Так самое интересное то, что во втором полете это не вылазило!
У меня теперь шальная мысля проскачила - может в вортексе что-то там оставалось, а потом стерлось… надо еще раз проверить - спецом больше ничего менять не буду… Как есть так и полечу…
типо - для подтверждения или опровержения…

Syberian
ViktorDoma:

про миксы прокомментируй плиз.

Как проверю - прокомментирую

alex-ber:

потом самик просто полежал

Ни фига. Я, конечно, весь глаз сломал, но видел, что садился ты с сильно заниженным питчем. Сижу вот, голову ломаю.

А с В1, говоришь, все было отлично?
Может, ее DCM попробовать…

ViktorDoma

Я уже шальным делом попробовал процедуру переделаить - вообще не работает 😦

void flight_mixer(void)
{ // debias the channels
static long chm_in[6];
byte i,j;
long chm_out[6];

chm_in[0]= g.channel_roll.radio_out-1500;
chm_in[1]= g.channel_pitch.radio_out-1500;
chm_in[2]= g.channel_throttle.radio_out-g.channel_throttle.radio_min;
chm_in[3]= g.channel_rudder.radio_out-1500;
chm_in[4]= g.rc_7.radio_out-1500;
chm_in[5]= g.rc_8.radio_out-1500;

for(i=0;i<6;i++)
{chm_out[i]=0;
for(j=0;j<6;j++)
chm_out[i]+=mxt[6*i+j]*chm_in[j];
chm_out[i]/=100;
}
g.channel_roll.radio_out=chm_in[0]+1500;
g.channel_pitch.radio_out=chm_in[1]+1500;
g.channel_throttle.radio_out=chm_in[2]+g.channel_throttle.radio_min;
g.channel_rudder.radio_out=chm_in[3]+1500;
g.rc_7.radio_out=chm_in[4]+1500;
g.rc_8.radio_out=chm_in[5]+1500;

APM_RC.OutputCh(CH_1, g.channel_roll.radio_out); // send to Servos
APM_RC.OutputCh(CH_2, g.channel_pitch.radio_out); // send to Servos
APM_RC.OutputCh(CH_3, g.channel_throttle.radio_out); // send to Servos
APM_RC.OutputCh(CH_4, g.channel_rudder.radio_out); // send to Servos
APM_RC.OutputCh(CH_7, g.rc_7.radio_out); // send to Servos
APM_RC.OutputCh(CH_8, g.rc_8.radio_out); // send to Servos
}

Дабы посмотреть чЁ в Ардуплан по каналам серв летит.

после переделки кода - микс вообще перестал работать, как после калибровки.

Такое ощущение, что после вызова flight_mixer() есть еще какая то обработка сигналов.

Ща буду копатЦо в APM_RC.OutputCh, не факт что вкурю, но попытаюсь.

Жаль что нет отладчика 😦

alex-ber
Syberian:

А с В1, говоришь, все было отлично? Может, ее DCM попробовать…

Да - с В1 все пучком! Если небыло сильных порывов ветра передатчик можно было просто положить на землю и стоять и смотреть как самик сам летает (проделывал такой фокус пару раз - выпендривался перед зрителями…). При порывах ветра (особенно боковых) подруливал только РН - для коррекции курса… Крен и тангаж - идеально держал АП (впрочем я уже раньше писал, что на В1 достаточно выключить двигло и самик сам садился…). В В1 все было хорошо, кроме авторежимов - что-то у меня с ними не сраслось сразу, а потом уже и не проверил - новые прошивки пошли…
Грубо говоря - если не получится с этими - вернусь на В1 (авторежимы тестировать…).

LeonVS
Syberian:

Может, ее DCM попробовать…

Идея не плохая! ДЦМ в Б1 работал вполне не плохо 😃

А это так просто? переменные все те же остались?

Syberian

Там DCM сильно переколбасили, но зависимости остались те же.
У В1 растут ноги от ардупилота 2.12, а 2.24 - ясно откуда, и разрыв между ними - полгода.

ViktorDoma:

попробовал процедуру переделаить

отсыл обратно в radio_out - это погоня за собственным хвостом. В APM_RC тоже ковырять нечего - это конечная точка, где уже на сервы передается.

===
Вот, скопируйте в библиотеки AP_DCM из этого архива В1 …googlecode.com/…/MegaPiratePlaneB1.zip
Работает сразу, ничего перестраивать не нужно.

Алекс, а у тебя GPS вообще работал? почему-то на осд не видно было стрелки домой.
++Ага, нашел косяк.
В _EOSD.pde надо заменить
hom=get_bearing(&current_loc,&home);
на
hom=get_bearing(&current_loc,&home)-dcm.yaw_sensor;

ViktorDoma
Syberian:

отсыл обратно в radio_out - это погоня за собственным хвостом

Была надежда, что протокол обмена по ЮЭСБИ подхватит обновленные величины и пульнет их в комп.

Не найду никак вызов set_servos(), и flight_mixer() походу только из нее запускается ?

Syberian
ViktorDoma:

Не найду никак вызов set_servos()

вызывается из megapirateplane.pde, строка 520

Серво пуляются в комп из mavlink_common.h, строка 202 и далее, каналы с 5 по 8 вообще забиты нулями

Поставь себе что-то типа FAR manager, там есть полнотекстовый поиск по файлам.

ViktorDoma

Я разобрался в проблеме

Миксер работает, но есть НО
Ща пообмозгую и изложу СУТЬ

LeonVS

Похоже НО обмозговыванию не поддалось 😃

alex-ber
LeonVS:

Похоже НО обмозговыванию не поддалось 😃

Поделись с народом - может мозговой штурм поможет…
Я сейчас сидел с самиком разбирался (хочу завтра с работы смотаться на поле…) - целый час гонял его на всех режимах - глюк не вылазит. В самике ничего не менял (в смысле прошивку и т.д.).
Всетаки хочу попробовать так как есть - для того чтоб или подтвердить или опровергнуть наличие косяков в данной прошивке.
Надеюсь завтра получится…
Леонид как разберешься с миксами - отпишись. Очень интересно так как собираюсь Вортекс на другой носитель переставить, а там миксы будут нужны…
Спасибо.

ViktorDoma

Подмозговыванию поддаётся, только если б еще и работать было не надо - процесс был бы побыстрее.

Пока моделирую разные варианты миксов, если меня удовлетворит то что задумано, представлю свой вариант микса на опробовывание.

ViktorDoma

Олег, подскажите как включить режим CLI , хочу в терминал отправлять значения переменных для посмотреть и отладки.