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

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 сек) - врядли в полете произойдет двойное перевключение…
По квадрату - сам пока еще не затестил, но по Вашим видео - мне нравится! Оставте, иначе при полете в облаках, на Солнце или зимой цифирек не видно будет…
Решил попробовать закоротить… Буду пробовать - отпишусь…

ViktorDoma

Я когда аппу шил (ТУРНИГУ 9ch), я резики просто закоротил. Потом отнес товарищу и под мелкоскопом припаяли правильные резисторы.

Если вы уверены в правильности подключения и правильном “камне” - резисторы можно и не паять.

Резисторы нужны для защиты программатора от нештатных ситуаций за разъемом (коротыши, волшебный дым и прочее).

После замены резисторов - программатор без проблем перешил две аппы, e-osd и Вортекс через ISP.

Syberian
ViktorDoma:

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

Убрать можно, но на фоне неба не видно будет нифига.
“черный ободок” делается схемотехнически (smalltim, msv), с помощью ЦАП (eagletree) или аппаратно на чипе (текстовые ОСД, использующие м/сх MAX****)
Можно было бы вообще заварганить полный графический ОСД высокого разрешения с оттенками серого и проч требухой на ПЛИС, но я сознательно выбрал самое бесплатное решение, т.к. денег тю-тю.

ViktorDoma

Значит не стоит заморачиваться с квадратом. Лучше шлифовать автопилот. А вот когда шлифовка подойдет к стадии прикручивания всяких Фкусностей, тогда стоит заняться нормальным ОСД.

На текущий момент есть несколько вариантов ГОТОВЫХ решений, которые можно комбинировать с E-OSD.

Исходники E-OSD выложены, желающие могут ковырять под себя как угодно.

Как только я с Ремзи разберусь, я выложу код сюда. Это если работа меня не доканает (вчера база упала у бухов 😦 , так что я несколько буду занят пару дней).

Не отвлекайтесь от того, что не сделает простой обыватель (я в том числе).

vadson

ТОВАРИЩИ! Принимайте меня в ряды 😃 - сегодня сделал заказик. Будем тестить., имею носитель с размахом 3 метра самодельный из потолочки и полетным временем хоть 2 часа на моторе.
По советам граждан приобрел Блек Вортекс. Сейчас её вроде и в размерах уменьшили.
Вы платы крепили на площадки?

Планируется установка логгера для подсчета потраченной энергии, вывода оборотов мотоустановки., и остальных вкусностей.?
Ну как по мне для начала главное чтобы он не сходил с ума. и при потере РУ возвращал самик.

По поводу запоминания точки дома., есть свои плюсы и минусы. Если брать с точки зрения военной надежности, то лучше вводить точку вручную.
Если подходить к вопросы со стороны удобства, тогда лучше чтобы он запоминал при вкл.,
Будет ли возможность цепляния доп. датчика - например трубки пито, для возврата самолета в сильный встречный ветер?, хотя мы в такую погоду не летаем, но если отлетев на десяток км. нарватся на грозовой фронт, который за несколько десятков км. сосет в себя воздух как пылесос, в такой ситуации при потере РУ носитель может и не вернуться.

Для телеметри на самолет скорее нужны такие модемы www.bevrc.com/bevfy602-data-radio-p-221.html

Я конечно не юзал но APC220 с заявленной дальность в 1км. никуда не годится для самолета., для квадрокоптера - да.

ViktorDoma
vadson:

доп. датчика - например трубки пито

Поддерживаю. Датчик воздушной скорости, самолету, жизненно необходим.

Тем более в коде мегапирата есть обработка воздушной скорости (airspeed).

Олег, может стоит начать приобретать ? Что Вы думаете на счет вот такого датчика store.diydrones.com/product_p/br-0004-03.htm ?