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

LeonVS

А вот интересно мегапирата можно на верт приатачить 😃? По идее тот же трикоптер, только канал газа вывести отдельно, да спереди одна серва, сзади две 😃 Может есть такие прошивки? А то пока движки да контролеры едут, на тирекса бы его вклячил для пробы 😃

ViktorDoma
LeonVS:

А вот интересно мегапирата можно на верт приатачить 😃? По идее тот же трикоптер, только канал газа вывести отдельно, да спереди одна серва, сзади две 😃 Может есть такие прошивки? А то пока движки да контролеры едут, на тирекса бы его вклячил для пробы 😃

Если верить ArdupilotMegaPlanner 1.0.50.0 - то можно. Только не факт и нужно экспериментировать.

У меня тут три дня назад случился конфуз с Вортексом. Сдохла кренка на 5 вольт. Причем не понятно отчего 😦
Поменял. Правда сразу не заработало, пришлось шить камень через ISP. Потом переставлять дрова в винде (перекосились).
Кароче усе заработало.
Вортекс работает, приатаченный E-OSD - работает. Показывает крен, тангаж, север, режимы и прочее.

Есть замечания - Все время светитцО надпись NO FIX GPS при включенном и работающем ЖПСе.
При наведении камеры на темное пятно , срывает синхру (на картинке появляются горизонтальные полосы, или вообще на ОСД исчезают надписи и квадрат).
Крен в право не докручивается, в лево все гуд.
Напряжение мельтешит (все время меняется цифра то 12 то 11,99) - раздражает.

Протокол от Рэмзи сегодня ночером залью сюда.

Олег - новая версия ОСД и планера как скоро планируется ?

LeonVS

Чтот Олег сгинул куда то… прогит походу Б2, не отвлекаясь на пустяки 😃

alex-ber

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

Syberian
ViktorDoma:

сть замечания - Все время светитцО надпись NO FIX GPS при включенном и работающем ЖПСе. При наведении камеры на темное пятно , срывает синхру (на картинке появляются горизонтальные полосы, или вообще на ОСД исчезают надписи и квадрат). Крен в право не докручивается, в лево все гуд. Напряжение мельтешит (все время меняется цифра то 12 то 11,99) - раздражает. Протокол от Рэмзи сегодня ночером залью сюда. Олег - новая версия ОСД и планера как скоро планируется ?

У меня тоже срывается синхра иногда. Особанно когда много красного и черного на экране. Е-ОСД использует тупой делитель для синхронизации. В полете ни разу не было.
По поводу фикса и координат, это сделано злонамеренно, не доделан обмен между вортексом и ОСД, поэтому отключено.
Обновление вольтажа с частотой 10Гц, как и всего остального, вот и дрыгается.

Новая версия в разработке.
Запустил кватернион с компасом, отдельно работает замечательно, в самом пирате уводит крен с тангажом. Подозреваю конфликт переменных.
Declination не используется, компас по своему вектору корректирует не только азимут, но и крен с тангажом, так что в затяжных поворотах горизонт уплывать не будет.

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

LeonVS

Олег, телеметрию то поставил себе? Не пробовал победить подключение Б1 к планеру?

Syberian

Не поставил, однако, есть некоторые мысли… Скорость как в модулях, так и в GCS и самом пирате ставить 9600 или 19200.
Если вы ставите 57600, это скорость подачи данных в буфер, хотя эфирная у него 19200. Ардуина думает что типа скорости много и все ПИДы вначале вываливает, чем вызывает переполнение буфера радиомодуля.

Резюме: поставить скорость порта ниже.

LeonVS

я так сильно не опускался, ставил 38, становилось еще хуже (количество удачных коннектов еще сократилось… ) Чую если поставить 9600 будет совсем бяда, хотя попробовать лишним не будет 😃 Сегодня после работы поиграюсь 😃

ViktorDoma

Олег, как заполучить полные строки NMEA вида
$ GPGGA и $ GPRMC
В формате строки (string) ?

Итак - формат передачи данных для Remzibi OSD:

Навигация:

2 3 4 5 6 7 8 9 10 11
“$A,lat,lng,numSV,[dist],alt,speed,course,[azimuth],gpsDate,gpsTime,” CR LF

[dist] и [azimuth] можно оставить пустыми, но лучше передавать.
Lat и Lon формат число с плавающей точкой вида “-121.123456”

Виртуальный горизонт:
2 3
“$I,roll,pitch,” CR LF
Значения указывать целыми числами в градусах (-180,180)

Активация Ремзи и установка точки старта

"$SH"CRLF
без этой команды не запустится горизонт и навигация
Предлагаю выкатывать эту команду первой только после определения не менее 5ти спутников.

Очистка виртуально экрана от всех надписей

"$CLS"CRLF - this message will clean screen of OSD
(пока не понял нафига, но скорее всего для удаления мусора)

Выключатель ОСД (из видео потока отключается ОСД данные, для наслаждения видов походу 😃 )

“$L0” CRLF - режим OFF OSD
“$L1” CRLF - режим ON OSD

Для передачи ЛЮБЫХ текстов и знаков в любое место экрана (вот походу что бы чистить эти надписи и сделана команда очистки экрана ОСД)

"$MXXYYLLEEabc"CRLF
XX - 16ти ричное значение - координата по оси Х (на экране)
YY - 16-ти ричное значение - координата по оси Y (на экране)
LL - иконка до сообщения (из таблицы шрифтов Ремзи)
EE - иконка после сообщения (из таблицы шрифтов Ремзи)
abc - собственно текст, цыфры и прочее

Вроде все - если возникнет сомнение - я в симуляторе уточню чёкаво.

Олег, если Вы сообщите мне необходимые переменные, доступные из OSD.pde, я попытаюсь сам накропать, что бы не отвлекать от более важной работы.

Syberian

int dcm.roll_sensor - крен, умноженный на 100 (1 градус - значение 100) (-18000…+18000)
int dcm.pitch_sensor - тангаж, умноженный на 100 (1 градус - значение 100)(-18000…+18000)
int dcm.yaw_sensor - курс, умноженный на 100 (1 градус - значение 100)(0…+36000)
int target_bearing - курс на след. путевую точку (или домой, зависит от режима полета (auto - след точка, все остальные - домой) - аналогично просто курсу
wp_distance - расстояние до след. точки / дома
g_gps->ground_speed - скорость по земле
g_gps->ground_course - курс по GPS
current_loc.alt - текущая высота (абсолютная) по GPS
current_loc.lat - текущая широта
current_loc.lon - текущая долгота
(current_loc.alt - home.alt) - высота относительно “дома”
byte g_gps->num_sats - число спутников GPS

Чтобы писать что-то в текстовом виде, нужно объявить тип данных, который нужно выводить.
К примеру, вот это

“$I,roll,pitch,” CR LF

Будет выглядеть так:

sport.print(“$I,”); // заголовок
sport.print((int)dcm.roll_sensor/100); // крен
sport.write(‘,’); // запятая
sport.print((int)dcm.pitch_sensor/100); // тангаж
sport.println(“,”); // запятая и CR LF

Сырую строку GPS просто так из драйвера не вытащить, она там обрабатывается побайтно и не хранится.

LeonVS

Эх, увы, переход на 19200 результата не дал… симптомы те же…
К стати а где в Б8 меняется скорость порта телеметрии???

Нашел, в файле config.h в общем проблема походу в прошивке Б1… В Б8 для квадрика без проблем конектимся как на 19200 так и на 57600…

alex-ber

Ребята!! Нужна помощь!!!
Вообщем пришла ОСД, подпаялся к площадкам для програмирования, закачал АВР Студио 4.18 (програматор AVR910-01).
Вообщем в проге не могу законектить процессор, соответственно и прошиться…
Вопросы:
1 при програмировании питалово подавать на БАТ 1 или через програматор (есть возможность отключить питание через програматор)
2 могли бы подсказать какой версией Студио лучше шить с моим програматором (или он не катит?).
ЧТО ДЕЛАТЬ???
С уважением, Александр.

Syberian

я с бат1 подавал и все, но у меня от ЮСБ прогер питается.
пользуюсь студией 4.13
Если сам по себе ОСД работает, значит, неправильно подпаял ноги…

LeonVS:

В Б8 для квадрика без проблем конектимся

Что-то я не припомню, чтобы в квадрике ПИДы сразу читались при коннекте

tusik

А как проверить работоспособность АРС220. В HK’s Ground Control Station в кмандной строке пишет проверка скорости 57200 и все, дальше никаких действий. Как проверить?

alex-ber

[QUOTE=Syberian;2773622]я с бат1 подавал и все, но у меня от ЮСБ прогер питается.
пользуюсь студией 4.13
Если сам по себе ОСД работает, значит, неправильно подпаял ноги…

Олег.
А ты можешь скинуть фотку (или от руки схемку) подключения ног?
Я нашел фотку на РСГруппс там ты еще ответил челу что все правильно (по подключению выводов при програмировании ОСД) - вот по ней и подключался…

Кинь распиновку плиз…
Спасибо!

Syberian

плата чипом вверх, дырками к тебе: MOSI, MISO, SCK, RESET, GND, VCC
Тип микросхемы выбрать Atmega88
FUSE-биты не трогать!!!11111111 выбери файл в первой же вкладке и жми program

ViktorDoma

Олег, спасибо - сегодня покодю осд для ремзи, посмотрим что получится.

По Е-ОСД - фотка с подписанными ножками. Питание подавалось через програматор ( +5 из USB ).

Я ОСД прошивал из CodeVisionAVR и мастеркитовский AVR910 (BA9010) программатор.

Программатор доработан до нормального. Заменены резисторы на ножках на низкоомные и на 2-ю ногу подкинто питалово из ЮСБ.

Олег - а можно для отладки, сделать команду TEST -> OSD, что бы видеть в компе строки, которые выливаются в ОСД. Как настройка уровня или компаса ???
Или это геморно ?

ViktorDoma

Переделанный программатор AVR910 от МастерКит

Syberian

Вопрос на повестке дня:
стоит ли переделывать, чтобы домашняя позиция ЖПС определялась каждый раз при включении питания и достаточном кол-ве спутников? Или оставить все как есть (чтоб на балкон улетал)…
В переделке тоже есть недостаток: если дернется питание, домашняя позиция определится в воздухе, что опасно. С другой стороны, к месту “дома” можно подобраться поближе и восстановить управление вручную… Координаты-то есть

Второй вопрос:
Действительно ли так мешает обзору темный квадрат в центре и стоит ли его запихнуть куда-то в угол? (мне лично не мешает)

И этта… .не спрашивайте меня, как подключать телеметрию - я ее еще не нюхал даже 😃

ViktorDoma

По поводу домашней позиции Моё ИМХО:

Запоминать при включении и наличии, ну скажем от 5ти спутников (точность ±100 метров), но при этом обязательно запоминать и время фиксации точки старта.

Алгоритм запоминания точки старта:

Проверить статус ЖПС.
Если 0 или 1 - нет фиксации положения в пространстве - ждем изменения статуса.
Проверить количество спутников.
Если количество спутников < N ждем когда наберется нужное количество. Значение N - делать настраиваемым, но не менее 5ти.

Если количество спутников достаточное определить состояние борта:

  • Проверить статус борта: (на земле или в воздухе, проверить можно например по скорости движения)
    Если включились в полете - значит берем старую точку старта ПОЛЮБАСУ, если она есть конечно. Если её нет - становиться на круг и ждать когда пилот разберется
    или поменяет точку старта вручную.

Если на земле:

  • проверять разницу между текущим временем (получить из ЖПС) и временем фиксации последней точки старта.

Если разница > k точку старта изменить, если меньше использовать старую. Значение k - сделать настраиваемым (примерно от 20 минут до 2-х часов)

Как то так. Извините если сумбурно.

Про чёрный квадрат: Если просто летать - то пофиг, а вот если летать с заданиями разными, то мешает.

Олег, а убрать квадрат не вариант вообще ?
Может сделать горизонт чуть пожирнее и обвести чЁрным ободком ?

alex-ber

Спасибо всем, кто откликнулся!!!
По подключению - все правильно у меня.
По програматору - проштудировал еще и темку по програмированию аппы (аналогичная проблема у людей была…) так вот там советовали резисторы в програматоре закоротить (те что на выходах) , которые Виктор менях на низкоомные. Вот и думаю - искать и менять на низкоомные или просто закоротить?
Олег.
Идея (если выполнимо) Виктора на счет запоминания Дома вроде классная, или можно сделать по принципу кнопки ресета - если не нажал (в проге) - запоминаем то, что введено ранее через программу, нажал - запомнили точку при включении. Организовать этот принцип допустим двойным перевключением в отрезок времени (30-40 сек) - врядли в полете произойдет двойное перевключение…
По квадрату - сам пока еще не затестил, но по Вашим видео - мне нравится! Оставте, иначе при полете в облаках, на Солнце или зимой цифирек не видно будет…
Решил попробовать закоротить… Буду пробовать - отпишусь…