Специальные цены   новые товары
Закрытая тема
Страница 28 из 112 ПерваяПервая ... 18 26 27 28 29 30 38 ... ПоследняяПоследняя
Показано с 1,081 по 1,120 из 4444

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

Тема раздела Полеты по камере, телеметрия в категории Cамолёты - Общий; Нашел я откуда лезут реверсы: if (!g.switch_enable) { // switches are disabled in EEPROM (see SWITCH_ENABLE option) // this means ...

  1. #1081

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Нашел я откуда лезут реверсы:

    if (!g.switch_enable) {
    // switches are disabled in EEPROM (see SWITCH_ENABLE option)
    // this means the EEPROM control of all channel reversal is enabled
    return;
    }
    // up is reverse
    // up is elevon
    g.mix_mode = (PINL & 128) ? 1 : 0; // 1 for elevon mode
    if (g.mix_mode == 0) {
    g.channel_roll.set_reverse((PINE & 128) ? true : false);
    g.channel_pitch.set_reverse((PINE & 64) ? true : false);
    g.channel_rudder.set_reverse((PINL & 64) ? true : false);
    } else {
    g.reverse_elevons = (PINE & 128) ? true : false;
    g.reverse_ch1_elevon = (PINE & 64) ? true : false;
    g.reverse_ch2_elevon = (PINL & 64) ? true : false;
    }

    Но почему это происходит по изменению температуры для меня так и остается загадкой...

  2.  
  3. #1082

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Что касается inverted_flight -- найти где он ставится проблемы нету, это происходит только в одном месте. По умолчанию inverted_flight=false.
    И только в control_modes.pde в методе read_control_switch() он переставляется:


    Код:
    static void read_control_switch()
    {
    ......
        if (g.inverted_flight_ch != 0) {
            // if the user has configured an inverted flight channel, then
            // fly upside down when that channel goes above INVERTED_FLIGHT_PWM
            inverted_flight = (control_mode != MANUAL && APM_RC.InputCh(g.inverted_flight_ch-1) > INVERTED_FLIGHT_PWM);
        }
    }
    Т.е., если пользователь сконфигурировал с компа какой-то канал как "инвертированный", то inverted_flight поменяет своё значение при условии, что пепелац сейчас управляется не вручную и значение этого управляющего канала превысло INVERTED_FLIGHT_PWM , т.е. 1750 (
    Код:
    define INVERTED_FLIGHT_PWM 1750
    ).
    Не знаю, говорит ли Вам это о чём-то, но общий смысл достаточно прост-- если с вашего пульта пришла команда по какому-то сконфигурированному Вами каналу на вход Вортексу больше чем 1750 и в это время пепелац летел на автопилоте--МегаПират принимает решения, что у Вас inverted_flight .

  4. #1083

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    static void read_control_switch()
    {
    ......
    if (g.inverted_flight_ch != 0) {
    // if the user has configured an inverted flight channel, then
    // fly upside down when that channel goes above INVERTED_FLIGHT_PWM
    inverted_flight = (control_mode != MANUAL && APM_RC.InputCh(g.inverted_flight_ch-1) > INVERTED_FLIGHT_PWM);
    }
    }

    Это все коментил, переход в инверт на морозе оставался.

    Глюк пропадает только когда коментишь вот этот кусок:

    g.channel_roll.set_reverse((PINE & 128) ? true : false);
    g.channel_pitch.set_reverse((PINE & 64) ? true : false);
    g.channel_rudder.set_reverse((PINL & 64) ? true : false);

    Честно говоря не совсем понимаю что здесь происходит...?

    Цитата Сообщение от ukkr Посмотреть сообщение
    но общий смысл достаточно прост-- если с вашего пульта пришла команда по какому-то сконфигурированному Вами каналу на вход Вортексу больше чем 1750 и в это время пепелац летел на автопилоте--МегаПират принимает решения, что у Вас inverted_flight
    Вот только не пойму, ЗАЧЕМ??? Тут не происходит класического "полета в инверте" (АП переворачивает самуль и удерживает его в таком положении) - НЕТ! При данном переключении самуль закрутится юлой и по тангажу и крену и по любасу рухнет...
    Режим самоуничтожения ?

    К стати Олег, понял в чем идет скорость
    g_gps->ground_speed * rot.a.x, // X speed cm/s

    Тобишь 250 = 25 м/с Теперь будет крайне легко преобразовать сие дело в удобночитаемую циферу
    Последний раз редактировалось LeonVS; 04.02.2012 в 23:05.

  5. #1084

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Ндя, что то под вечер с математикой моей стало ))

  6.  
  7. #1085

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Леонид, ща времени нет порыться посмотреть, что такое PINE и PINL. Если предположить, что это Port E и Port L Меги 2560, тогда надо порыться и посмотреть на схеме BlackVortex, что у него подключено к соответствующим ножкам этих портов:
    Код:
    (PINE & 128)
    (PINE & 64)
    (PINL & 64)
    П.С. А где схема... Блин, на ЕБее даже ссылки нету, надо искать...
    П.П.С. 250 = 25 м/с -- не вкурил.

  8. #1086

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от LeonVS Посмотреть сообщение
    кто как отлаживает код в аурдино???
    Да никак его не отладить. Только на плате через ком-порт что-то выводить.
    По поводу inverted flight. Он включается через какой-то канал приемника. У тебя случайно он не разрешен?
    Цитата Сообщение от ukkr Посмотреть сообщение
    прямо написано MEGA Pirate and MultiWii code compatible.
    Велкам в нестройные ряды пиратов Покупать надо было на csgshop.com, там на 20 баксов дешевле.
    Чтобы не ломать глаз в блокноте, используйте Notepad++, там есть подсветка синтаксиса.
    Для поиска текста по всему проекту пользуюсь FAR manager 1.63 - типа нортона под виндой.

    Цитата Сообщение от LeonVS Посмотреть сообщение
    Глюк пропадает только когда коментишь вот этот кусок:
    ага, попался! Я понял в чем засада. Дело в том, что в оригинальном ардупилоте за реверсы отвечают микропереключатели на плате. У нас их, естественно, нет, и эти ноги висят в воздухе. К тому же, на них нет подвески, т.е. все наводки и конденсат наши. В 2.24 они просто запрещены, а 2.26 была первая пробная версия, в которую я это не перенес (забыл).
    За скорость отдельное спасибо

  9. #1087

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    П.П.С. 250 = 25 м/с -- не вкурил.
    Отписался уже, что туплю под вечер Один ноль потерял В общем, гипотеза по скорости провалилась...

  10.  
  11. #1088
    Давно не был
    Регистрация
    28.12.2010
    Адрес
    Heidelberg, germany
    Возраст
    40
    Сообщений
    307
    Чисто предположу, что инверсия происходит когда происходит переполнение больше 16 бит.

  12. #1089

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от Syberian Посмотреть сообщение
    К тому же, на них нет подвески, т.е. все наводки и конденсат наши.
    Вот оно в чем дело, ну хоть все встало на свои места, что радует А по скорости очень похоже на правду что это метры в секунду / 10. Хотя смотрю у тебя уже стоит преобразование в км/ч на выход в еОСД... Чтот мое запуталось однако
    sport.write((byte)(g_gps->ground_speed * 0.036));

    Цитата Сообщение от Diman_Y Посмотреть сообщение
    Чисто предположу, что инверсия происходит когда происходит переполнение больше 16 бит.
    Тогда почему сие не происходит при комнатной температуре ни при каких условиях?

  13. #1090

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от Syberian Посмотреть сообщение
    Велкам в нестройные ряды пиратов Покупать надо было на csgshop.com, там на 20 баксов дешевле.
    Чтобы не ломать глаз в блокноте, используйте Notepad++, там есть подсветка синтаксиса.
    Для поиска текста по всему проекту пользуюсь FAR manager 1.63 - типа нортона под виндой.
    Пасиб Про csgshop.com -- не знал, спасибо, на будущее запомню. Линку брал то ли с чьего-то блога, то ли с начала этой темы. Про ЦСГШоп там не было.
    По поводу Notepad++ -- я его уже года 2 использую, как и SciTe. Много вещей в них делать удобнее чем в Eclipse( в основном, я Java Enterprise разработчик). А файловый менеджер уже нное количество лет -- Total Commander. Тока не будем разжигать религиозную войну Far Vs TC.

    Олег, возвращаясь к моему предыдущему посту:
    1)
    Код:
    PINE и PINL. Если предположить, что это Port E и Port L Меги 2560
    Правильно ли это предположение?
    2)
    посмотреть на схеме BlackVortex, что у него подключено к соответствующим ножкам этих портов:
    Код:
    (PINE & 128)
    (PINE & 64)
    (PINL & 64)
    Выходит, что к 6й, 7й ножке порта Е и 6й ножке порта L подключались те самые
    оригинальном ардупилоте за реверсы отвечают микропереключатели на плате.
    ?
    П.С. И ссылкой на схему BV не поделитесь?

  14. #1091

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    П.С. И ссылкой на схему BV не поделитесь?
    Думаю схему не кто не даст, как то тут уже писалось, мол это ком. тайна и все такое

  15. #1092

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Отписался уже, что туплю под вечер Один ноль потерял В общем, гипотеза по скорости провалилась...
    Не всё так плохо
    defines.h содержит константу предела скорости, при которой автопилот начнёт отрыв от земли
    #define SPEEDFILT 400 // centimeters/second; the speed below which a groundstart will be triggered
    По mavlinkу тоже
    g_gps->ground_speed * rot.a.x, // X speed cm/s
    g_gps->ground_speed * rot.b.x, // Y speed cm/s
    В том же config.h
    #ifndef AIRSPEED_CRUISE
    # define AIRSPEED_CRUISE 12 // 12 m/s
    #endif
    #define AIRSPEED_CRUISE_CM AIRSPEED_CRUISE*100 -- специально переводят себе в cm/s

    Идём дальше AP_DCM.cpp (хреновина, которая всё и решает ):
    #define SPEEDFILT 300 // centimeters/second
    radio.pde тоже оперирует cm/s

    Так что Ваше предположение о том, что внутри МегаПират оперирует сантиметрами/сек скорее всего верно.

    Да, если bvHUD -- ответная часть для ОСД: sport.write((byte)(g_gps->ground_speed*0.036)); //m/s *100 transform to KPH
    Если _EOSD -- ответная часть для какой-то другой ОСД sport.write((byte)(g_gps->ground_speed*0.036));
    Т.е. то же самое cm/s переводят в km/h

    Значит у МегаПилота всё нормально. Особенно, учитывая тот факт, что g_gps->ground_speed используется в МП везде.
    Если показывается в ОСД другое значение -- надо тогда смотреть код самой ОСД, скорее всего он неправильно отмалёвывает. Или неправильно вынимает то, что ему приходит от bvHUD или _EOSD части МегаПилота.
    Последний раз редактировалось ukkr; 05.02.2012 в 01:41.

  16. #1093

    Регистрация
    08.10.2008
    Адрес
    Тамбов
    Возраст
    52
    Сообщений
    531
    Записей в дневнике
    1
    Цитата Сообщение от ukkr Посмотреть сообщение
    Выходит, что к 6й, 7й ножке порта Е и 6й ножке порта L подключались те самые оригинальном ардупилоте за реверсы отвечают микропереключатели на плате.
    "Пробил" только что схему оригинального ардупилота. Таки да, переключатели реверсов подключены к ногам соответствующих портов контроллера -
    PL6 - 41
    PL7 - 42
    PE6 - 8
    PE7 - 9
    П.С. И ссылкой на схему BV не поделитесь?
    Схема Вортекса - Мега 2560 + датчики в стандартном подключении. По пдфкам с его сайта достаточно хорошо видно разводку верхней стороны платы. Ничего, кроме задействованных в Пирате ног там дополнительно не разведено. В т.ч. и эти ноги тоже не разведены. Я себе развёл свою плату, аналогичного функционала, только ЖПС вынес отдельно. Жду датчики, чтобы собрать и проверить в работе
    Последний раз редактировалось dundel1; 05.02.2012 в 01:56.

  17. #1094

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Да, по поводу нашего БлекВортекса и единиц измерения скорости в МегаПирате.
    У нас стоит U-Blox ГПС, скорость вынимается из MSG_VELNED их протокола. А там единицы измерения чётко указаны
    Код:
    velN cm/s NED north velocity
    8 I4 - velE cm/s NED east velocity
    12 I4 - velD cm/s NED down velocity
    16 U4 - speed cm/s Speed (3-D)
    20 U4 - gSpeed cm/s Ground Speed (2-D)
    Так что Леонид Вы правы, МегаПират оперирует cm/s

    Цитата Сообщение от dundel1 Посмотреть сообщение
    PL6 - 41
    PL7 - 42
    PE6 - 8
    PE7 - 9
    Отлично, что подтвердилось. Теперь по коду стало намного проще понимать, что такое PINE и PINL.

  18. #1095

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от ukkr Посмотреть сообщение
    Правильно ли это предположение?
    Если не посылать вас в даташит, то на пальцах: порт у атмеги состоит из 3 регистров: PORT DDR PIN. PORT это регистр выхода, DDR это направление, PIN это физическая нога. Буквы после них - это названия портов.
    Цитата Сообщение от ukkr Посмотреть сообщение
    Если показывается в ОСД другое значение -- надо тогда смотреть код самой ОСД
    никак нет, в осд тупо показывается значение одного байта скорости. Преобразование выполняется в _EOSD.pde

  19. #1096

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от Syberian Посмотреть сообщение
    никак нет, в осд тупо показывается значение одного байта скорости. Преобразование выполняется в _EOSD.pde
    Олег, там же банальный
    Код:
    sport.write((byte)(g_gps->ground_speed*0.036));
    Получается, есть только 3 варианта:
    1) (наименее вероятный) -- неисправный GPS или связка Atmega2560 +GPS. Но тогда должно плющить и сам самолёт, gps->ground_speed используется повсеместно в коде, даже в DCM
    2) Компилятор сгенерировал кривой код для
    Код:
    (byte)(g_gps->ground_speed*0.036)
    В принципе, вероятность этого есть, Ардуина же использует WinAvr'овский g++, а в нём часто находили говнокодо-генерацию.
    3) Баг в прошивке самой ОСД. Например в функции, которая переводит число в строку. Достаточно распространённый трабл. Правда, непонятно почему тогда остальные показометры правильно отмалёвываются в ОСД.

    Других вариантов я не вижу.

  20. #1097

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Расшевелил я смотрю ветку ;-)

    Цитата Сообщение от ukkr Посмотреть сообщение
    Компилятор сгенерировал кривой код для
    Код:
    sport.write((byte)(g_gps->ground_speed*0.036));
    Перекомпилил я сие строчку в:
    sport.write((byte)(g_gps->ground_speed * 36 / 1000));
    Может с целыми числами дело пойдет лучше
    Сегодня -22, вот думаю поэкстрималить в полях, или лучше все же дома на печи поваляться

  21. #1098

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Сегодня -22, вот думаю поэкстрималить в полях, или лучше все же дома на печи поваляться
    Та ну, ни один автопилот не стоит такого издевательства над человеком.

  22. #1099

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Перекомпилил я сие строчку в:
    sport.write((byte)(g_gps->ground_speed * 36 / 1000));
    Результат отрицательный Скорость так же скачет...

    Цитата Сообщение от ukkr Посмотреть сообщение
    Та ну, ни один автопилот не стоит такого издевательства над человеком.
    Однако ваша правда, на крайнем полете сперва думали что сглючил АП, самуль проходя последнюю точку стал разворачиваться и быстро снижаться, метрах в 10-20 переключил на ручное ручку на себя, но скай как шел под углом градусов 45 так и вписался в сугроб...
    Логи показали то ли отвалился кабанчик, то ли замерзла серва РВ... АП до последнего давил на себя на максимум...

    К стати, какая переменная отвечает за шаг миссии? Хотелось бы знать какой шаг в данный момент исполняет АП... Я бы пока нет бвХУД вместо скорости вывел данные в планер, больше толка бы было, скорость все равно кривая
    Последний раз редактировалось LeonVS; 05.02.2012 в 22:45.

  23. #1100

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    К стати, какая переменная отвечает за шаг миссии? Хотелось бы знать какой шаг в данный момент исполняет АП...
    Пока рылся в коде -- натыкался на такие переменные next_nav_command и next_nonnav_command. Собственно у МегаПирата идёт разделение на эти 2 подтипа команд. Дёргается update_commands() на каждой итерации из commands_process.pde. Все кишки сидят в commands.pde, commands_logic.pde и commands_process.pde.

  24. #1101

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Счетчик туда прилепить может? И циферу в планер выводить, для настройки будет очень кстати.

  25. #1102

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Счетчик туда прилепить может? И циферу в планер выводить, для настройки будет очень кстати.
    Не совсем понял. Там по каждой комманде при обработке идёт логирование на GCS, если я правильно понимаю :
    gcs_send_text_fmt(PSTR("Executing command ID #%i"),next_nav_command.id);
    и
    gcs_send_text_fmt(PSTR("Executing command ID #%i"),next_nonnav_command.id);

  26. #1103

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Спасиб! Это то что надо, теперь надо всего лишь "i" отправить куда надо
    Олег, может замутишь в еОСД еще один байт в сервис строке для отображения номера команды навигации?

  27. #1104

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    не, не "i" Вот это: "Executing command ID #%i" всего лишь показывает, что вместо %i надо подставить целочисленное значение.
    А уже функция gcs_send_text_fmt подставит значение второго параметра( к примеру, next_nav_command.id) в эту строку.

    То, что Вам надо-- эти две переменные:next_nav_command.id и next_nonnav_command.id. Вам надо посылать их на еОСД, а там парсить и выводить. Только учтите, эти айдишки -- всего лишь айдишки типов команд. Ну т.е. банальные 1-2-3 и т.д. А вам ещё надо, на сколько я понял, и параметры самой команды. Ну т.е, вас не устроит банальное, скажем 10(к примеру, это поворот). А Вы хотите увидеть что-то типа: команда 10(поворот), направление 10 градусов, вокруг оси Х.
    Беда в том, что у каждого типа команды свой набор параметров. Как в количественном, так и в типовом( целое, вещественное и т.д.) виде. Думаю, что вывести команды вместе с параметрами на ОСД в общем случае не выйдет.

  28. #1105

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от ukkr Посмотреть сообщение
    А вам ещё надо, на сколько я понял, и параметры самой команды
    Насколько я понял, нужен всего лишь номер команды по порядку, как она в миссии записана.

  29. #1106

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    Ну т.е, вас не устроит банальное, скажем 10
    Да нет, вполне устроит, то что делает определенная строчка я и так знаю, для меня важно знать что он в данный момент выполняет именно ее. Так что достаточно банально знать номер выполняемой команды

  30. #1107

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Так что достаточно банально знать номер выполняемой команды
    Тогда Вам нужны эти 3 переменные( насколько я понял):
    Код:
    static byte	command_index;						// current command memory location
    static byte	nav_command_index;					// active nav command memory location
    static byte	non_nav_command_index;				// active non-nav command memory location
    Потому что, next_nav_command.id и next_nonnav_command.id -- это не айдишки команд в мишн-плане, а типы команд, например: разворот, набор высоты, сфотографировать вон ту красивую мадам с глубоким декольте и т.д.

  31. #1108

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    В режиме Лойт и РТЛ ацки дергается серва РВ, фильтр чтоль отсутствует, и он так пытается высоту держать...?

  32. #1109

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Вывел вместо скорости (все равно кривую кажет) температуру с баро датчика для мониторинга, как показала практика если включенный вынести на морозец (сейчас -14) температура на плате меньше +6 не падает, вортекс сам себя греет не плохо Завтра замеряем что будет в полете.

  33. #1110

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Чтот опять ветка заглохла, походу все лежат на печи греются
    Полетали сегодня на очень позитивно Одно расстраивает, компас впадает в маразм... может летаем в аномальной зоне Данные просто замирают, и АП начинает тупить, пролетать точки и тд тп... В общем отключил его вообще и стало гораздо лучше, летает как по струнке, очень порадовал
    Сегодня впервые отпустили его за предел видимости, взлетел-пролетел-сел, все в полном автомате
    Качество видео не ахти, но кому интересно зацените
    http://dpiter.info/sky3.wmv

  34. #1111

    Регистрация
    08.10.2008
    Адрес
    Тамбов
    Возраст
    52
    Сообщений
    531
    Записей в дневнике
    1
    Цитата Сообщение от LeonVS Посмотреть сообщение
    походу все лежат на печи греются
    Да, именно так. ) У нас сегодня днём выше -22 так и не поднялось... А в ночь -32 обещают :0
    Леонид, это на 2.26? По поводу компаса - один знакомый летает на коптере, тоже отмечал, что в мороз компас начинает дурить. Я это пока не проверял, в такие холода не люблю на улицу высовываться.
    Вижу, Вы тоже две ОСД используете. Я себе, с подсказками Олега (спасибо ему за это!), "подпилил" немного код для Е-ОСД, чтобы информация не дублировалась, теперь с неё выводится на экран только режим автопилота, авиагоризонт, птичка тангажа со шкалой и в самом низу экрана строка статуса. Вся остальная информация выводится с SmallTim OSD. Если хотите, могу выложить этот вариант прошивки.

  35. #1112

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от dundel1 Посмотреть сообщение
    это на 2.26?
    Да, с 24 я чтот как то так и не подружился, летит сама куда хочет, возможно траблы были так же в компасе, только вот он там не отключается, и в терминале пытался и из планера, пишет что выключен, но по факту данные АП берет с него... + иногда не адекватные дерганья, которые победить так же не удалось...
    26 как то более адеквато себя ведет. Странно что она у кого то виснет, у меня не разу траблов не было, даже если телеметрию отключить вообще...

    Цитата Сообщение от dundel1 Посмотреть сообщение
    Если хотите, могу выложить этот вариант прошивки.
    Эх, жду бвХУД обещанный Олегом, киньте, лишним не будет, и если можно фотку, что она там кажет
    Последний раз редактировалось LeonVS; 12.02.2012 в 00:43.

  36. #1113

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Привет всем. У нас холодно, шлангую дома. -15 и ветер-- кайфа куда-то ехать никакого. Тихонько разбираюсь с кодом "Пирата". Одновременно, решил посмотреть на Mission Planner. Ну, кроме того, что это .NETовская поделка, всё остальное выглядит кошерно. Только вот 2 фигни не понравились. Первая -- при старте последней версии 1.1.34 обнаружило наличие каких-то апдейтов. Я по глупости согласился. В результате оно накачало себе апдейтов с удалённого git сервера. И после этого уже не запускалось. Как ни пытался. Пришлось сносить и ставить заново с отказом от любых апдейтов. Дальше -- всё шоколадно. Кроме 2х моментов. Снизу приаттачил скрин. ГПСом обнаружило чётко мой дом. Это при том, что я на расстоянии 3х метров от окна тестировал. Вот в чём сила внешней GPS-антены, хотя она и тяжёлая, сволочь. Так вот, на гугломепсах показало чётко, а вот слева пишет, что GPSа нет. Это чё такое? Ну и часы слева сверху со страшным значением. Откуда оно их взяло?
    Нажмите на изображение для увеличения
Название: AMP_Q2.jpg
Просмотров: 37
Размер:	69.6 Кб
ID:	602822

  37. #1114

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    Откуда оно их взяло?
    Часы как я понял идут с компа, то что ГПС пишет нет - глюк. В новом планере скорей всего все заточено под новый код арду, мы же юзаем то что они уже проехали Загрузи старый планер, будет все тип топ
    Есть мысли почему компас херню несет? К стати температура в полете на плате когда за бортом было -9 была +8 +11 градусов (по данным с барометра)

  38. #1115

    Регистрация
    08.10.2008
    Адрес
    Тамбов
    Возраст
    52
    Сообщений
    531
    Записей в дневнике
    1
    Цитата Сообщение от dundel1 Посмотреть сообщение
    вариант прошивки.
    Пожалуйста.
    Сфотографировать сейчас не могу, прошита стандартная версия, железо всё разворочено. Вот, примерно попытался изобразить. Где-то так выглядит...
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: Безымянный-1.jpg‎
Просмотров: 13
Размер:	20.9 Кб
ID:	602847  
    Вложения

  39. #1116

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    ага, попалась...
    Чтобы скорость в еосд показывало нормально, нужно поменять в _eosd.pde

    sport.write((byte)(g_gps->ground_speed*0.036));
    на
    sport.write((byte)(g_gps->ground_speed*0.01));

  40. #1117

    Регистрация
    06.04.2006
    Адрес
    Гродно Беларусь
    Возраст
    46
    Сообщений
    1,305
    Ох...
    Я немного отстал...
    Ребята - Вам огромное СПАСИБО!!! За продвижение проекта и вычисление глюков!
    Я не надолго выпал из проекта (работа, борьба с бюрократией - она оказывается совсем не закончилась, а только началась..,еще один проект - сменил прошу на передатчике - осваиваю и по новому настраиваю модели...) но думаю, что день-два и я вольюсь!
    Спасибо!
    ПС Олег - боюсь, что придется мне работать с Е-ОСД... Коробчонка вроде все-таки пропала на просторах Почты...

  41. #1118

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Есть мысли почему компас херню несет? К стати температура в полете на плате когда за бортом было -9 была +8 +11 градусов (по данным с барометра)
    Не знаю, надо чтоб ещё у кого то такая же "радость" произошла. Может непропай или микротрещина какая-то? Вот оно на морозе и проявляется.
    К стати, посмотрел я на код АрдуПилота для самолётов 28й и 26й версии. Так вот, в 28й очень много изменений по сравнению с 26й. И фиг с ним, с мавлинком. Но там изменения фундаментальней.
    1) Уход с библиотеки Wire на I2C. Это задевает всё, в том числе и работу с датчиком компаса
    2) Сам драйвер компаса AP_Compass_HMC5843.cpp кроме того, что переписан на I2C теперь ещё и сохраняет состояние последней операции( успешно или сбой) в поле healthy и умеет автоматически переинициилизироваться после сбоя:
    Код:
    bool AP_Compass_HMC5843::read()
    {
       if (!healthy) {
    	  if (millis() < _retry_time) {
    		 return false;
    	  }
    	  if (!re_initialise()) {
    		 _retry_time = millis() + 1000;
    		 return false;
    	  }
       }
    Кроме того, само поле healthy используется в куче разных мест автопилота для расчётов и принятия решения. К стати, то же самое и с бародатчиком.
    3) Улучшен( "причёсан") DCM. Вынесен резет матрицы в отдельный метод, куда добавлена и разрешение обнуления оф-та компасса:
    Код:
    AP_DCM::matrix_reset(void)
    {
    	if (_compass != NULL) {
    		_compass->null_offsets_disable();		
    	}
    	_dcm_matrix.a.x = 1.0f;
    	_dcm_matrix.a.y = 0.0f;
    	_dcm_matrix.a.z = 0.0f;
    	_dcm_matrix.b.x = 0.0f;
    	_dcm_matrix.b.y = 1.0f;
    	_dcm_matrix.b.z = 0.0f;
    	_dcm_matrix.c.x = 0.0f;
    	_dcm_matrix.c.y = 0.0f;
    	_dcm_matrix.c.z = 1.0f;
    	_omega_I.x = 0.0f;
    	_omega_I.y = 0.0f;
    	_omega_I.z = 0.0f;
    	if (_compass != NULL) {
    		_compass->null_offsets_enable();	// This call is needed to restart the nulling
    		// Otherwise the reset in the DCM matrix can mess up
    		// the nulling
    	}
    }
    4) Пофикшен тупой баг в FastSerial.cpp, было _txBuffer->tail = _rxBuffer->head; , а надо было _txBuffer->tail = _txBuffer->head;
    5) Вместо IMU_Oilpan появился IMU_INS с целой кучей своего барахла.
    6) Появился failsafe самого МегаПилота. Если он обнаруживает, что, что-то не то с МегаПилотом, то он начинает отсылать напрямую команды с приёмника на сервы, без своей обработки.
    7)Появился geo fencing. На сколько я вкурил( поверхностно) -- позволяет вам управлять границами полёта, соответственно МегаПилот не даст пепелацу вылететь за эти границы. Соответственно весь код МегаПилота проапдейчен, чтоб учитывать этот самый geo fencing.
    8) Куча всякого другого. Где-то причесали код, где-то зафиксили баги и т.д.

  42. #1119

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    АрдуПилота для самолётов 28й и 26й версии.
    Осталось только портировать ее на нашу железяку

    Цитата Сообщение от Syberian Посмотреть сообщение
    sport.write((byte)(g_gps->ground_speed*0.01));
    Залил, сегодня затестимс
    К стати кто выключает компас, на автовзлете обязательно отключать удержание курса, иначе очень вероятен краш, ГПС на земле не знает направление, и нос самуля в понимании АП смотрит как правило не по линии взлета, АП начинает по его мнению нос направить по линии взлета, в следствии чего большой крен а на маленькой скорости это смерть
    Последний раз редактировалось LeonVS; 12.02.2012 в 11:11.

  43. #1120

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    В полях сегодня было свежо -20 После отключения удержания курса, автовзлет без компаса стал идеальным Отключил по деревянному, тупо закоментив лишнее
    case MAV_CMD_NAV_TAKEOFF:
    //if (hold_course > -1) {
    // calc_nav_roll();
    //} else {
    nav_roll = 0;
    //}
    Теперь просто тупо держит крен в нуле, что и требуется
    Исправления Олегом по скорости, так же дали положительный результат Скачки все равно есть (в некоторых случаях все же кто то перетирает данную переменную...) но в остальное время кажет уже не попугаи, а то что требуется
    При -20 за бортом, температура платки в полете опускалась до -3, когда же самуль просто лежит на земле поднималась до +8 +10.
    http://dpiter.info/sky4.wmv

    Цитата Сообщение от ukkr Посмотреть сообщение
    4) Пофикшен тупой баг в FastSerial.cpp, было _txBuffer->tail = _rxBuffer->head; , а надо было _txBuffer->tail = _txBuffer->head;
    А к чему этот баг приводил? Случаем не к ресетам при слабой телеметрии?

    Вопрос к гуру аурдино
    Где хранятся процедуры в арду? На данный момент интересно тельце вот этой гадости
    calc_throttle();
    Последний раз редактировалось LeonVS; 12.02.2012 в 16:15.

Закрытая тема

Похожие темы

  1. Строю самик под FPV
    от Lexa4 в разделе Полеты по камере, телеметрия
    Ответов: 1
    Последнее сообщение: 19.05.2011, 08:53
  2. Самики на бенз. движках малой кубатуры
    от argnew в разделе Большие модели
    Ответов: 702
    Последнее сообщение: 10.03.2011, 20:32
  3. нестандартный носитель ФПВ Piper J3 Cub-первый фпв проект
    от vadson в разделе Полеты по камере, телеметрия
    Ответов: 26
    Последнее сообщение: 17.01.2011, 11:56
  4. Продам Самик ДВС ( полный комплект) в отличном состоянии.
    от val2010 в разделе Барахолка. Самолеты
    Ответов: 0
    Последнее сообщение: 15.11.2010, 02:08
  5. Строю самик - нужна консультация
    от dek_nk в разделе Новичкам
    Ответов: 35
    Последнее сообщение: 17.08.2010, 08:43

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения