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

LeonVS

Сфоткай крупным планом вортекса снизу, покажу 😃

Syberian:

Но вообще плодить кучу вариантов железа не входило в мои планы…

Надо тебе платку развести, да заказать штучек так 10-100 😃 Думаю большинство бы купило, в том числе и я 😃 Ну если соизмеримо будет по цене с собранной из макеток 😃 И проблема бы данная ушла, и тебе денежка за труды капала бы 😃 Только ГПС давай отдельно мутить, встроенный в плату на примере вортекса показал себя не с лучшей стороны…

Syberian

апдейт 2.0.1257 (+ наземка)

Впихнуто распознавание дефектов шины I2C: коротыш, пересечение, дохлые датчики. При запуске все отказы перечисляются на ОСД под надписью sensors failure. До устранения дальше не пустит.
Прим. перев.: барометр временно отключен совсем, поэтому baro alt=0 и температура тоже. Не до него щас.
В полете работа датчиков также постоянно мониторится, но на экран не выводится (только звуком)

Включено измерение напряжения ходовой батареи до 50В на входе AIN4 (через делитель 30к:2к2). В наземке в панели настроек выведена подстройка показаний напряжометра.
Также автоматом определяется кол-во банок ли-по. Позже, по мере разряда батареи до низкого (по моему разумению) уровня, индикатор напруги меняет внешний вид и начинает мозолить глаза 😃

На 90% сделана телеметрия в видеосигнале. Думал, придется ужиматься, а туда влез вообще весь протокол наземки, еще и место осталось. Идея такая: на какой-нибудь андурино и (опять) е-осд в кач-ве синхры делается “наземка”, которая из видеосигнала выковыривает всю телеметрию, свою часть (команды трекера) передает на сервы, остальное спихивает в ком-порт на mpx_gcs.
Проблема с первоначальным реквестом решена периодическим обновлением параметров, т.е. полностью односторонний режим возможен.
Помехи и замирания побоку, т.к. каждый из 5 субканалов повторяется 10 раз в секунду и каждый пакет закрыт CRC. Пока виден хоть полукадр со снегом, ТМ будет идти.

ViktorDoma

Телеметрия в видео - это суперБл. АААгооонь !

Возможно я выскажу глупость, но попытаюсь.

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

Назначение реальных осей к виртуальным прописать в иПром или флэшь. и указывать матрицу осей при старте системы.

Тоже самое можно сделать и для каналов управления (входящих и исходящих).

Если идти дальше по пути универсализации, то тогда стоило бы и адреса датчиков хранить в каком то месте.

Суть такого решения позволила бы использовать ЛЮБЫЕ платы ИМУ (с правильным набором датчиков) и Любой ориентацией.

Если я не прав , то хоть скажите ПОЧЕМУ.

Syberian
ViktorDoma:

Если я не прав , то хоть скажите ПОЧЕМУ.

Виктор, а ради чего это все затевать? Вот скажи, ты, наверно, собрал дискавери, впихнул какую-то плату датчиков, подключил ПЗУ, ОСД, приемник, и у тебя раздаются в динамиках вопли sensors failure? Или просто так предлагаешь, ради “общечеловеческих ценностей”?

На данный момент только Юрий показал, что у него уже что-то работает и он действительно участвует в проекте на СТМ. Если ему вдруг нужно будет какой-то датчик повернуть (или баро отключить по причине неимения, что уже сделано) - не вопрос. А пытаться предугадать, в какой ларек с датчиками заглянет вероятный пользователь - не вижу смысла.

alex-ber
LeonVS:

Сфоткай крупным планом вортекса снизу, покажу

ну Вортекса сфотать только вечером смогу - он в самике, самик в Моделке 9еще и вырвать его оттуда (в смысле Вортекса из самика…) нуно.
А ссылку на новый Ежеуж?
Да и какой ГПС посоветуешь вместо ублокса?
спасибо!

ViktorDoma

Все компоненты собраны в “кучу”, но не спаяны, по причине отсутствия времени 😦 Буду постараться сделать сегодня вече-ноче-ром.

Если я правильно понял, никаких ограничений, кроме “религия не позволяет” нет. Так почему бы и не сделать. Понятно что это скучно и не кайф с этим возиться.

Просто я в своей деятельности ОЧЕНЬ часто сталкиваюсь с юзерами (пользователями), и качество софта определяет не только только функционал, но еще и дружественность к конечному потребителю.

И когда 50 человек начинают названивать и спрашивать а как сделать так или иначе, приходится или переписывать код под новые запросы (требования) или делать его относительно универсальным.

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

А теперь представь, начнут писать 5-10-20 человек и просить повернуть оси туда или сюда. Вопрос а нахрена тебе это нужно ? И скорее всего на третьем или десятом ты их пошлете наФиг за правильными платами.

А это уже не есть дружественная поддержка конечного пользователя.

Все это моё личное ИМХО. И уж тем более, я ни в коем случае не осуждаю подход АВТОРА к программированию и поддержке.

пысы Мне не составит проблем переделать плату под правильную ориентацию датчиков. Это просто отдвинет финальную сборку на пару дней. Но не у всех есть такая возможность и не все умеют ЭТО паять.

LeonVS
alex-ber:

Да и какой ГПС посоветуешь вместо ублокса?

Да по барабану, лепи какой есть, по идее даже с герцовым отлично летает, я прилепил от какого то ОСД не помню уже названия.

alex-ber
LeonVS:

Да по барабану, лепи какой есть, по идее даже с герцовым отлично летает, я прилепил от какого то ОСД не помню уже названия.

Фот ссылка на фотку - s019.radikal.ru/i609/1206/5f/ecfa99b4e34f.jpg
вот фотка в тексте

LeonVS

В общем как то так 😃 RX у GPS можно не припаивать, и того получаем 3 проводка, я вывел через разъем сервы, очень удобно получилось 😃

alex-ber
LeonVS:

В общем как то так 😃 RX у GPS можно не припаивать, и того получаем 3 проводка, я вывел через разъем сервы, очень удобно получилось 😃

Спасибо!!!
буду пробовать уже завтра… а на ублокс питалово отрезать или нет? Вроде не много кушает…
и еще вопрос попутно - в коде (твоем…) что потом править? Я так понимаю что протокол ГПС автоматом определяться будет…
ты в коде больше копался - Вортекс в модуль при инициализации что-то посылает? в смысле Вортекс команду на скорость и частоту обновления не дает?
Дело в том, что есть у меня хороший модуль на базе МТК, но у него не шьется еером - если пнуть командой то выдает данные на любой скорости и с любой частотой, но если потом отключить питалово и сново подключить все сбрасывается на дефолт… А дефолт не очень…

LeonVS

У меня ТХ с ГПС вообще обрезан 😃
Самуль не коптер, и 1Гц в общем то достаточно 😃 А ионистор на вывод бекапа прилепить не пробовал?

alex-ber
LeonVS:

У меня ТХ с ГПС вообще обрезан 😃
Самуль не коптер, и 1Гц в общем то достаточно 😃 А ионистор на вывод бекапа прилепить не пробовал?

Ионистор стоит…
Настройки сбрасываются когда перерыв между включениями большой… сам понимаешь - настраивать ГПС перед выездом на поле - ну совсем не в кайф…
ладно буду думать… сейчас просто пдключу и проверю - может проблеммы и нет…
Завтра спишемся - буду мучать вопросами…

Syberian

а я сегодня отлетался 😃

HDRка падла перестала писать из-за помехи, плата датчиков была приклеена на тяжелую стандартную серву для гашения вибрации (конечно же с мотором) и поэтому горизонт сходил с ума, но конечная цель достигнута.
Выявлена пара глюков в поведении и проверена работа RTH. Завтра пойду летать миссии.

LeonVS

Поздравляю с успешным облетом 😃
Походу вибрации не дают спокойно жить и кватернионам на СТМ… 😃

Syberian

да там бесполезно бороться… голая плата датчиков весит пару грамм, а проп воет жутко, вибрации в звуковом диапазоне, реально горизонт на месте плавать начинает. Утяжелил - все пропало.

LeonVS

Я в аурдине плату датчиков прямо к основной плате на термоклей прифигачил, вроде все тип топ, не считая уплыва в виражах…
Пытаюсь разобраться с твоим МАРГ, он библиотеку IMU вообще не юзает походу… Все идет напрямую с датчиков? Так как компас глючит пытаюсь вклячить курс с ГПС, чтот не въезжаю как сие реализовать… Пробовал зделать как в ДЦМ библиотеке:

yaw = -atan2(2*q1*q2+2*q0*q3,2*q0*q0+2*q1*q1-1);
cos_psi_err = cos(ToRad(g_gps->ground_course/100.0) - yaw);
sin_psi_err = sin(ToRad(g_gps->ground_course/100.0) - yaw);
rot_mat.a.x = cos_psi_err;
rot_mat.a.y = -sin_psi_err;
rot_mat.b.x = sin_psi_err;
rot_mat.b.y = cos_psi_err;
rot_mat.a.z = 0;
rot_mat.b.z = 0;
rot_mat.c.x = 0;
rot_mat.c.y = 0;
rot_mat.c.z = 1.0;
dcm_matrix = rot_mat * dcm_matrix; /// Не въеду на что мне умножить матрицу rot_mat в МАРГе???
Если есть мысли, наведи на путь истинный 😃?

Syberian

уууу матан!!! я пас 😃 у мене тройка в дипломе по вышке 😉
навскидку: матрица - это 3 трехмерных вектора, а кват - 1 четырехмерный. Втупую не перемножишь. Тем более, там какой-то алгоритм gradient decent применен, формулы на пол-страницы.
Попробуй лучше перевести курс в XYZ якобы от магнетометра, опираясь на текущие roll pitch, и потом его же и подай штатно в марг.
Примерно так: если roll-pitch равны 0, mX и mY - это синус и косинус жпс-курса. Если roll,допустим, 90 грд, вместо mX будет mZ.
Короче, куча синусов и косинусов.
А вообще, я бы зобил. Нормально компас работает, если калибровать нормально.

LeonVS
Syberian:

А вообще, я бы зобил. Нормально компас работает, если калибровать нормально.

Там даже проблема немного в другом… Допустим при боковом ветре самулю чтоб лететь на точку надо брать опережение и лететь под углом, если курс берем просто с ГПС никаких проблем самуль смотрит допустим на 30 градусов в сторону ветра, а летит четко по линии, если же АП ориентируется по компасу он будет плавать туды сюды пытаясь повернуть нос на точку его будет сносить и тд тп… В общем обработка курса с компасом гораздо запарней 😃

Syberian

Имея 4 параметра: жпс курс, жпс скорость, компас и аирспид ты вполне можешь вычислить куда тебя несет, с какой скоростью, каким боком и куда при этом нужно парировать, чтобы не сорваться и еще и по прямой линии к цели валить.

LeonVS

Вот как раз с ЖПС курсом и засадко выходит в МАРГе:) Хочу еще раз с твоим МАРГом поиграться, кручения в руке по сравнению с ДЦМ дают гораздо лучшие результаты по уплыву… Можно конечно извратиться подрубив еще и ДЦМ, что то таскать от туда что то от туда… и в общем то мега даже сие тянет, но как то через ж получается 😃

alex-ber

Вообщем сегодня перепаял ГПС (СПАСИБО Леониду…).
проверил пока на земле (у нас верер и дождь…) - походил с самиком вокруг домов. По логу точность позиции составила 2 метра… ГПС модуль работает на частоте 5 Гц (хотя может и 10…) и скорость передачи 9600 по умолчанию (с толчка может и 57600 давать…).
Вопрос: забить и так попробовать или мудрить с модулем?
если в коде (Ежеужа) при старте в модуль кинуть МТК - строчку, модуль переключится в нужный режим… тока как это сделать я не знаю… В смысле строчку я найду (гдето записана) но как сделать чтоб Вортекс посылку отправил…