Специальные цены   новые товары
Закрытая тема
Страница 29 из 112 ПерваяПервая ... 19 27 28 29 30 31 39 ... ПоследняяПоследняя
Показано с 1,121 по 1,160 из 4444

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

Тема раздела Полеты по камере, телеметрия в категории Cамолёты - Общий; Сообщение от LeonVS Где хранятся процедуры в арду? На данный момент интересно тельце вот этой гадости calc_throttle(); Это не Ардуиновская ...

  1. #1121

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Где хранятся процедуры в арду? На данный момент интересно тельце вот этой гадости
    calc_throttle();
    Это не Ардуиновская функция. Она находится в MegaPiratePlane\Attitude.pde Это один из самых важных файлов в MegaPiratePlane. Фактически он и выполняет расчёт yaw, pitch, рулит сервами и т.д.

    Цитата Сообщение от LeonVS Посмотреть сообщение
    А к чему этот баг приводил? Случаем не к ресетам при слабой телеметрии?
    Эмм, этот ахтунг приводил к тому, что хвост( указатель конца) буффера на трансмит указывал не на начало буффера на тринсмит, а на начало буффера на ресив. Т.е. на данные предназначенные не для передачи, а для приёма. Приводить могло к много чему. К стати, вроде как общение с ОСД в EOSD идёт через тот же FastSerial. Времени пока смотреть нету.

  2.  
  3. #1122

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

  4. #1123

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    У нас FastSerial от 26й версии, \MegaPiratePlane2.26\libraries\FastSerial\FastSerial.cpp 197я строка. Там этот же баг есть.
    А отразиться на функциональности он может только, если дергается соответствующий метода в котором эта строка, flush()

  5. #1124

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Костя, дай мастер класс Хочу подрыгать сервой на свободном канале, как в арду задается задержка чтоб не мешать основному коду? Допустим:
    Дергаем сервой в одну сторону;
    надо сделать задержку в 2 секунды;
    дергаем сервой в другую сторону;
    ?

  6.  
  7. #1125

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

  8. #1126

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Вопрос к Олегу.
    radio.pde
    процедура init_rc_out():
    Код:
    static void init_rc_out()
    {
    	APM_RC.OutputCh(CH_1, 	g.channel_roll.radio_trim);					// Initialization of servo outputs
    	APM_RC.OutputCh(CH_2, 	g.channel_pitch.radio_trim);
    	APM_RC.OutputCh(CH_3, 	g.channel_throttle.radio_min);
    	APM_RC.OutputCh(CH_4, 	g.channel_rudder.radio_trim);
    
    	APM_RC.OutputCh(CH_5, 	g.rc_5.radio_trim);
    	APM_RC.OutputCh(CH_6, 	g.rc_6.radio_trim);
    	APM_RC.OutputCh(CH_7,   g.rc_7.radio_trim);
    	APM_RC.OutputCh(CH_8,   g.rc_8.radio_trim);
    
    	APM_RC.Init();		// APM Radio initialization
    
    	APM_RC.OutputCh(CH_1, 	g.channel_roll.radio_trim);					// Initialization of servo outputs
    	APM_RC.OutputCh(CH_2, 	g.channel_pitch.radio_trim);
    	APM_RC.OutputCh(CH_3, 	g.channel_throttle.radio_min);
    	APM_RC.OutputCh(CH_4, 	g.channel_rudder.radio_trim);
    
    	APM_RC.OutputCh(CH_5, 	g.rc_5.radio_trim);
    	APM_RC.OutputCh(CH_6, 	g.rc_6.radio_trim);
    	APM_RC.OutputCh(CH_7,   g.rc_7.radio_trim);
        APM_RC.OutputCh(CH_8,   g.rc_8.radio_trim);
    }
    На кой они тут один и тот же код дважды повторяют? Чё-то я глубинный смысл этого не понимаю.

    Леонид. Можно поподробнее, что надо сделать? Т.е., при срабатывании какого-то переключателя на пульте, серва должна повернуться в одну сторону, постоять покурить н-е время, а потом повернуться в другую сторону? Или же этот процесс должен быть постоянным, т.е., на одном из каналов постоянно серва должна работать в крайнее положение--> подождать--> повернуться в другую сторону. И так по циклу, пока пепелац не грохнется?.

  9. #1127

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

    Цитата Сообщение от ukkr Посмотреть сообщение
    На кой они тут один и тот же код дважды повторяют?
    Копи-пасте случайно два раза нажали ))))))

  10.  
  11. #1128

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Можно конечно по деревянному задать переменную плюсовать к ней единицу при каждом цикле, и потом по определенному значению сбрасывать выполняя нужное действо, но может в аурдино это делается как то более цивилизованно
    Ну, это достаточно цивилизованно. Влепить в MegaPiratePlane.pde в функцию one_second_loop() что-то вида
    Код:
      if(xxx_wait>2){
              xxx_pos=xxx_pos*sign;//change servo direction
              xxx_wait=0;
      }else{
              xxx_wait++;
      }
      g.rc_8.closest_limit(xxx_pos);
    Вместо g.rc_8 -- нужный вам канал.
    Ну и в самом MegaPiratePlane.pde вверху объявить переменные
    Код:
    int16_t xxx_pos=1800;//angle*10 deg
    int xxx_wait=0;
    int16_t sign=-1;
    Проверить не могу, на работе ща.

  12. #1129

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    На ардупилоте все же реализовали то что я хочу
    http://diydrones.com/profiles/blogs/...ermopilot-v5-2

    Цитата Сообщение от ukkr Посмотреть сообщение
    Влепить в MegaPiratePlane.pde в функцию one_second_loop() что-то вида
    А можно для особо одаренных описать каждую строчку ? Читот я тут половины не понял...

  13. #1130

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    На ардупилоте все же реализовали то что я хочу
    А Вы планерист? А то я в Термопилоте по фичам кроме авто-поиска термиков ничего принципиально нового не нашёл.

  14. #1131

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Надо срочно портировать v2.28ThP5 прошивку

    Ага, есть немного Хотел сам попытаться переделать режим FBW_B в режим поиска термо, алгоритм то в общем элементарный

  15. #1132

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    А можно для особо одаренных описать каждую строчку ? Читот я тут половины не понял...
    Смотрите, в MegaPiratePlane.pde есть основная функция
    Код:
     void loop()
    которая дёргает 3 основные подцикла.
    Код:
    fast_loop();
    -- для тайм-критикл вещей типа считывание команд с радио, расчёт DCM и т.д. Второй подцикл
    Код:
    medium_loop()
    -- для менее критических вещей. Ну и 3й подцикл
    Код:
    one_second_loop()
    -- дёргается ориентировочно раз в секунду. Вот в этот цикл я и предлагаю вставить код для управления определённым каналом:
    Код:
     if(xxx_wait>2){//если мы уже прождали больше 2х секунд 
              xxx_pos=xxx_pos*sign;//изменить направление сервы на противоположное
              xxx_wait=0;//обнулить счётчик, сколько секунд мы стоим в текущем положении
      }else{
              xxx_wait++;//увеличить счётчик, сколько секунд мы стоим в текущем положении на 1 сек
      }
      g.rc_8.closest_limit(xxx_pos);//вызываете у нужного вам канала установку положения в градусах*10. Метод closest_limit принимает градусы*10, если правильно помню. Вместо g.rc_8 -- нужный вам канал
    Код:
    int16_t xxx_pos=1800;//angle*10 deg
    -- изначально серва на 180 градусов повёрнута. Ставьте на любой нужный вам угол. Через 2 секунды оно повернётся в положение -180. Я бы начал с небольщих углов (45*=450)для проверки, чтоб не попалить серву.
    Код:
    int xxx_wait=0;
    //сколько секунд мы уже ждём в последнем положении
    Код:
    int16_t sign=-1;
    //просто константа, на неё домножается текущее положение, чтоб повернуть серву в противоположную сторону каждые 2 секунды.

  16. #1133

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    one_second_loop()
    Кость, не совсем въезжаю как понять где начало, а где конец данного цикла?
    static void one_second_loop() - начало?
    А где конец? до конца кода идет все этот подцикл?
    Опять же странность... если это так, ниже идет обновление данных ГПС
    static void update_GPS(void) - зачем тогда ставят 10Гц модули если обновление идет раз в секунду???

  17. #1134

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Леонид, если не против я на "ты" перейду. Возраст у нас почти одинаковый, а с "Вы"-канием много не объяснишь.

    Смотри, вот вся функция этого лупа
    Код:
    static void one_second_loop()
    {
    
    	// send a heartbeat
    	gcs_send_message(MSG_HEARTBEAT);
        gcs_data_stream_send(1,3);
        if(imu.ax()!=g.sensor_cal_x) imu.ax(g.sensor_cal_x);
        if(imu.ay()!=g.sensor_cal_y) imu.ay(g.sensor_cal_y);
    }
    Всё остальное -- совсем другие функции; к этому лупу отношения не имеют.

    Модифицированная функция этого лупа будет выглядеть приблизительно так:
    Код:
    static void one_second_loop()
    {
    
    if(xxx_wait>2){
              xxx_pos=xxx_pos*sign;//change servo direction
              xxx_wait=0;
      }else{
              xxx_wait++;
      }
      g.rc_8.closest_limit(xxx_pos);
    // send a heartbeat
    gcs_send_message(MSG_HEARTBEAT);
    gcs_data_stream_send(1,3);
    if(imu.ax()!=g.sensor_cal_x) imu.ax(g.sensor_cal_x);
    if(imu.ay()!=g.sensor_cal_y) imu.ay(g.sensor_cal_y);
    }

  18. #1135

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    если не против я на "ты" перейду
    Буду только рад

    Цитата Сообщение от ukkr Посмотреть сообщение
    Смотри, вот вся функция этого лупа
    Теперь все ясно

  19. #1136

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

  20. #1137

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Ха, так а кода то и не видно. Закрытый какой-то это форк.
    А про фичу поиска термика я в описалове нашёл:
    " The ThermoPilot is a full enhancement of the ArduPlane v2.28 which adds the Thermal Hunting capabilitie and some others features for the gliders pilots. "
    отсюда http://diydrones.com/profiles/blogs/...ermopilot-v5-2

    Есть сырцы этого самого Термопилота, но по дате уж больно старые: http://code.google.com/p/ardupilotde...nk/Thermopilot

  21. #1138

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Код к стати запустил, усе пашет как полагается, СПАСИБ за ликбез Правда исполняемую команду пришлось подшаманить, твоя не заработала, ну и еще добавил чтоб эта фишка включалась только в режиме авто Дрыгает выходом М7, М8 у меня отдан на закрылки

    if(control_mode == AUTO){
    if(xxx_wait>2){
    xxx_pos=xxx_pos*sign; //change servo direction
    xxx_wait=0;
    }else{
    xxx_wait++;
    }
    //g.rc_7.closest_limit(xxx_pos);
    APM_RC.OutputCh(9, xxx_pos);
    }

    К стати есть мысли как ему принудительно в любое время врубить режим CIRCLE, тобишь аварийный режим посадки с кружением и выключением двигла?
    Суть сие действа в следующем, летит самуль по маршруту, тут по какой то причине захотелось чтоб оно летело на базу в срочном порядке, врубаем РТЛ оно летит, но по прилету АП будет тупо кружить пока не сдохнет батарейко, а хотелось бы его заставить сесть, но не в ручном режиме, а все же на автомате В общем надо или вызвать LAND, с координатами что прописаны в конце миссии, или чего вполне было бы достаточно режим CIRCLE.

    К стати походу где то еще надо крутнуть для безглючности прошивки... из доп выходов адекватными являются только 7 и 8, на 5 и 6 хаотичное дикое дерганье сервы... Команду видит, но дико дергается в районе заданного положения...

    И еще обнаружил косяк... думал прицепить бароскорость, но не на одном аналоговом входе данные не идут... Походу в ардупилоте с пиратом в аналоге совпадает только 1 порт с которого берется вольтаж АКБ...
    Последний раз редактировалось LeonVS; 15.02.2012 в 01:47.

  22. #1139

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Леонид,
    Смотреть в полноэкранном режиме надо, канал 6
    Код -- тот же, что я копировал, только чуть лучше, убрано умножение на sign. Вы у себя можете точно также соптимизировать.
    Код:
     if(xxx_wait>2){
              xxx_pos=-xxx_pos;//change servo direction
              xxx_wait=0;
      }else{
              xxx_wait++;
      }
      g.rc_6.closest_limit(xxx_pos);
    Леонид, сорри за нубский вопрос, а как заставить эту Чёрного Пирата подёргать сервами? Я в какой "М" серву не втыкал, но Пират даже не думает начинать дёргать сервами. При том, что подключен на вход ему и приёмник и на АРМ Планёре смотрю, на каналах в channel_XX_in циферя от моего радио бегут. А вот на Мки оно нифига не шлёт. Должен же он рулить yaw,pitch и т.д. просто после включения? Или ему надо скормить миссию какую-то или в режим какой перевести? А то хотел проверить, чего
    исполняемую команду пришлось подшаманить, твоя не заработала
    , ведь в показометре у меня на 6м канале всё чётко в АРМ Планёре, а в реальности ты говоришь дохлый номер.
    Последний раз редактировалось ukkr; 15.02.2012 в 03:21.

  23. #1140

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    а в реальности ты говоришь дохлый номер.
    Тут думаю "хвосты" портирования дают о себе знать
    g.rc_6.closest_limit(xxx_pos); - показывает на практике в планере и думаю что будет работать в ардупилоте, но в вортексе сие не пашет...
    APM_RC.OutputCh(9, xxx_pos); - сие хрень не где не чего не кажет, но сервой дрыгает
    Эт из серии "вам шашечки или ехать" )))
    Это все касается только доп каналов, 4 основных канала и отображают нормально и дрыгают Смотрю у вас приемышь вообще не подключен?

  24. #1141

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    у вас приемышь
    Лёнь, мы ж на ты?
    У меня на тот момент был не подключён. Я полез проверять после твоего сообщения напрямую, без приёмыша и серв. Когда увидел в показометре, что мой ch6_out дрыгается так, как я и задумал -- решил подрубить сервы с приёмышем. Вот тут и писец -- никак оно не пыталось дрыгать ни одним из "Motor". Ни Yaw ни Pitch и т.д не реагировали.

  25. #1142

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

    А то кроме их свободных не осталось... Мало ли еще придет в голову бомболюк замутить ))

  26. #1143

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Фиг его знает. Пока не смотрел.
    Лёнь, а что по поводу этого
    Леонид, сорри за нубский вопрос, а как заставить эту Чёрного Пирата подёргать сервами? Я в какой "М" серву не втыкал, но Пират даже не думает начинать дёргать сервами. При том, что подключен на вход ему и приёмник и на АРМ Планёре смотрю, на каналах в channel_XX_in циферя от моего радио бегут. А вот на Мки оно нифига не шлёт. Должен же он рулить yaw,pitch и т.д. просто после включения?

  27. #1144

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    В мануал режиме должно быть IN = OUT без всяких извращений, у тебя стоит RTL, вруби режим CLI и в терминале запрограмь выбор режимов на 5 канале.

  28. #1145

    Регистрация
    06.04.2006
    Адрес
    Гродно Беларусь
    Возраст
    46
    Сообщений
    1,305
    Цитата Сообщение от ukkr Посмотреть сообщение
    Лёнь, мы ж на ты?
    У меня на тот момент был не подключён. Я полез проверять после твоего сообщения напрямую, без приёмыша и серв. Когда увидел в показометре, что мой ch6_out дрыгается так, как я и задумал -- решил подрубить сервы с приёмышем. Вот тут и писец -- никак оно не пыталось дрыгать ни одним из "Motor". Ни Yaw ни Pitch и т.д не реагировали.
    Константин.
    Если у тебя Вортекс - не забудь посмотреть на выходах М2-М6 нет питающей шины(!) - я добавлял проводник (в начале ветки есть сообщение...)...
    Может и у тебя тупо питалово на сервы не идет? Проверь!
    ПС Я уже почти вернулся!!!!

  29. #1146

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от alex-ber Посмотреть сообщение
    Я уже почти вернулся!!!!
    Молодца! А то я тут в жало сам с собой общался, сейчас хоть Костя подключился, что радует

    Цитата Сообщение от alex-ber Посмотреть сообщение
    Может и у тебя тупо питалово на сервы не идет?
    Точно, про это я и забыл Вортекс изначально был заточен под коптеры, а там вместо серв реги с беком, и чтоб они друг друга не мучали, их разнесли, в самолетной же версии если ставить сервы, надо центральную + шину объеденить на все 8 выходов.

    g.rc_7.closest_limit(xxx_pos);
    APM_RC.OutputCh(9, xxx_pos);
    Поставил в цикл обе строчки, теперь и показывает и дрыгает
    Последний раз редактировалось LeonVS; 15.02.2012 в 22:17.

  30. #1147

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

  31. #1148

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Так-с, аксакалы. По порядку. Спасибо, что вы вспомнили, что на M-ках + питалова не подаётся в Вортексах. Именно из-за этого все сервы стояли как вкопанные. Начал прозванивать -- "-" у всех М-ок общий, соединён со всеми минусами на плате. А вот "+" -- нет. Самое интересное, у М1 и М2 "+" запараллелен. Но к даже там оно не подключено к общим +5В. Короче, я просто прифигел с этого. Если бы вы не вспомнили -- чёрта с 2 так быстро разобрался б. Пришлось с обратной стороны платы припоем "ссопливить" все "+" М-ок. Ну и свободной М-ки канал "+" бросить на +5В выход справа. И всё стало шоколадно. Вот бы где фак такой замутить, чтоб такие "ньюансы" складировать.
    Второй ньюанс, из-за которого я чуть не растоптал ногой Вортекс -- несоответствие номера канала номеру "М-ки". Т.е., я думал, что g.rc_6 будет выводиться на М6. Не тут-то было. Пришлось взять 9й канал по твоей наводке, Леонид. Бо там ты чётко написал какой оно М-ке соответствует:
    Дрыгает выходом М7
    . Сразу обрадовало:

    Слушайте, а есть где-то линка на документ или текст, чтоб не путаться какому номеру канала какая М-ка соответствует? Ну не писать же 8 прошивок с перетыками сервы для поиска где-чего?

  32. #1149

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    несоответствие номера канала номеру "М-ки"
    Не забываем что сие дело портировано с ардупилота, а у них распиновка "слегка" другая
    По каналам отнимаем 2 и получаем номер канала, тобишь OutputCh(9, xxx_pos); 9 - 2 = М7

    Разобрался как подключить датчик скорости
    https://store.diydrones.com/ProductD...DP-01&CartID=1
    В закладке "sensors" требуется заменить:
    (float)adc.Ch(AIRSPEED_CH) - (у вортекса данный вход походу отсутствует как таковой...)
    на
    analogRead(BATTERY_PIN2)
    Датчик при этом цепляем на 2 аналоговый вход вортекса, проверить в полете пока увы не могу, датчик ко мне только еще едет... Но в теории все должно работать, на стенде меняя напругу на аналоговом входе воздушная скорость меняется

    Цитата Сообщение от LeonVS Посмотреть сообщение
    отнимаем 2 и получаем номер канала
    Правда на данный момент устойчиво работают только М7 и М8.
    С М5 и М6 надо искать в коде глюк, серва дергается как угорелая...

    Цитата Сообщение от alex-ber Посмотреть сообщение
    игрался или на дефолтных летаешь?
    Конечно игрался как без этого, и еще чую надо играться, по высоте есть нарекания... слишком он шустро ныряет, надо угол пикирования уменьшать...
    Завтра могу скинуть скин с моими пидами Только вот у тебя вроде Алекс 24 прошивка, пиды отличаются...
    К стати Кость, у тебя 26 виснет??? чтот все жалуются на нее, хотя у меня она гораздо стабильней и уверенней летает нежели 24...

    Цитата Сообщение от alex-ber Посмотреть сообщение
    Теперь просьба (чтоб быстрее нагнать...) - так как я совсем не програмист,
    Да я в общем то то же кроме бейсика не чего и не крутил Так по наитию, ну и с подсказками Кости поэтому с объяснениями туго... но попробовать можно, так что если что спрашивай
    Последний раз редактировалось LeonVS; 16.02.2012 в 00:20.

  33. #1150

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от LeonVS Посмотреть сообщение
    В закладке "sensors" требуется заменить:
    (float)adc.Ch(AIRSPEED_CH) - (у вортекса данный вход походу отсутствует как таковой...)
    на
    analogRead(BATTERY_PIN2)
    Дело в том, что AP_ADC_ADS7844 (а это и есть adc) у нас на Вортексе вообще нету. Соответственно код, который его юзает -- ничего хорошего от него не получит. У нас есть стандартные 5 пинов, которые идут прямо на вход ADC нашего центрального проца Mega2560. С помощью функции analogRead() вы можете читать значения с любого из этих входов в любом месте. На самом деле -- Mega2560 пофигу, что подключено на эти пины, оно просто оцифровывает тот сигнал, что вы подаёте на пин. Это может быть как термометр, так и барометр, который выдаёт аналоговый сигнал и т.д.
    К стати, по поводу вашего датчика https://store.diydrones.com/ProductD...DP-01&CartID=1 -- готовьтесь, вам надо будет распотрошить его серво-кабель -- провод сигнала бросить на любой из аналоговых входов, хоть на тот же BATTERY_PIN2, а вот + и - бросить на +5В и - соответственно.
    К стати Кость, у тебя 26 виснет???
    -- в принципе, я с ней не летал, только застольные испытания. Работает стабильно. По крайней мере 10 минут пока я не шью новую прошивку . Обнаружил интересный глюк -- если у меня подключен к компу Вортекс, и в это время в другой ЮСБи порт я вставляю флешку, то Вортекс перезагружается. С чем этот полтергейст связан -- ума не приложу.

  34. #1151

    Регистрация
    06.05.2005
    Адрес
    Санкт-Петербург
    Возраст
    41
    Сообщений
    1,309
    Цитата Сообщение от ukkr Посмотреть сообщение
    С помощью функции analogRead() вы можете читать значения с любого из этих входов
    Ну в общем то это я и предлагаю, подсунув значение с 2 входа вместо AP_ADC_ADS7844

    Цитата Сообщение от ukkr Посмотреть сообщение
    готовьтесь, вам надо будет распотрошить
    Ну это само собой

    Цитата Сообщение от ukkr Посмотреть сообщение
    -- в принципе, я с ней не летал, только застольные испытания.
    У всех кроме меня оно и на столе висло... Полагаю зависон вызывался не закоментированными строчками считывающими в ардупилоте микрики... Что вызвало у меня реверсы каналов...
    Алекс, ты эти строчки закоментил?

  35. #1152

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от LeonVS Посмотреть сообщение
    По каналам отнимаем 2 и получаем номер канала, тобишь OutputCh(9, xxx_pos); 9 - 2 = М7
    Совсем не так.
    Номер канала (число, а не СН_х) - Мх
    0 - М3
    1 - М4
    2 - М1
    3 - М2
    4 - PAN
    5 - TILT
    6 - M5
    7 - M6

    9 - M7
    10- M8

  36. #1153

    Регистрация
    06.04.2006
    Адрес
    Гродно Беларусь
    Возраст
    46
    Сообщений
    1,305
    Леонид.
    Спасибо за согласие помочь с настройками.
    вообще у меня 26 проша глючила, поэтому откатился (особо не разбираясь) на 24-ю...
    впрочем сейчас нелетная погода у нас да и времени на полеты пока нет - поэтому завтра постараюсь прошиться вновь на 26-ю и еще раз попробовать с ней поработать (кстати может ты мне кинешь ссылку на 26, которая у тебя залита - может у меня при скачке-заливке что-то не так пошло? просто с СС такая шняга была - скачал прошивку на бук, прошился - не работает... по-новой скачал - прошил - все работает... даже не знаю - система дурит или прошивка...).
    Костя.
    Класс! сразу вопрос ребром - а можно отправить эти команды на выходы управления камерой (точно не помню - плата в самике а искать фотку долго... Но вроде пан и титл называются (между входами и М-ками расположены...) ) и интервал в крайних положениях задать функцией (вроде так у програмеров обзывается...).
    Поясню - камера при переключении тумблера начинает сканирование = поворот вправо до упора, задержка (было бы очень класно, чтоб задержку можно было выставить или в Планере или (что еще круче !) доп каналом с крутелкой...), поворот в центр, поворот влево и т.д.?
    у тебя на видео впринципе так и есть - поворот -пауза-поворот... но на другом канале хотелось бы и с паузой в крайних точках...

  37. #1154

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Олег, с возвращением. Позволю себе повторить вопрос
    radio.pde
    процедура init_rc_out():
    Код:
    static void init_rc_out()
    {
    APM_RC.OutputCh(CH_1, g.channel_roll.radio_trim); // Initialization of servo outputs
    APM_RC.OutputCh(CH_2, g.channel_pitch.radio_trim);
    APM_RC.OutputCh(CH_3, g.channel_throttle.radio_min);
    APM_RC.OutputCh(CH_4, g.channel_rudder.radio_trim);

    APM_RC.OutputCh(CH_5, g.rc_5.radio_trim);
    APM_RC.OutputCh(CH_6, g.rc_6.radio_trim);
    APM_RC.OutputCh(CH_7, g.rc_7.radio_trim);
    APM_RC.OutputCh(CH_8, g.rc_8.radio_trim);

    APM_RC.Init(); // APM Radio initialization

    APM_RC.OutputCh(CH_1, g.channel_roll.radio_trim); // Initialization of servo outputs
    APM_RC.OutputCh(CH_2, g.channel_pitch.radio_trim);
    APM_RC.OutputCh(CH_3, g.channel_throttle.radio_min);
    APM_RC.OutputCh(CH_4, g.channel_rudder.radio_trim);

    APM_RC.OutputCh(CH_5, g.rc_5.radio_trim);
    APM_RC.OutputCh(CH_6, g.rc_6.radio_trim);
    APM_RC.OutputCh(CH_7, g.rc_7.radio_trim);
    APM_RC.OutputCh(CH_8, g.rc_8.radio_trim);
    }
    На кой они тут один и тот же код дважды повторяют? Чё-то я глубинный смысл этого не понимаю.

  38. #1155

    Регистрация
    06.04.2006
    Адрес
    Гродно Беларусь
    Возраст
    46
    Сообщений
    1,305
    Цитата Сообщение от LeonVS Посмотреть сообщение
    Алекс, ты эти строчки закоментил?

    Ух... Ну вы все и строчить стали - прямо Чат!!!
    Не успел написать а тут уже все обсудили...
    Леонид - естественно : НЕТ! Я тогда про эти траблы с микриками даже не догадывался! Спасибо - завтра попробую закоментить и залить 26-ю...

  39. #1156

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

    Цитата Сообщение от ukkr Посмотреть сообщение
    Позволю себе повторить вопрос
    позволю себе не ответить, т.к. не моих рук дело На мой взгляд, верхняя половина до init бесполезна.

  40. #1157

    Регистрация
    06.04.2006
    Адрес
    Гродно Беларусь
    Возраст
    46
    Сообщений
    1,305
    Цитата Сообщение от Syberian Посмотреть сообщение
    я замечал конкретный сброс платы, т.е. в планировщике писало initialising

    Привет Олег!!!
    Да, если память мне не изменила - было тоже самое: Вортекс просто уходил в перезагруз...
    Тогда мы решили, что переполнялся буфер обмена (у нас с Олегом АРС 220 с низкой скоростью обмена, у Леонида даталинк от Александра с максимальной скоростью...).

  41. #1158

    Регистрация
    11.10.2005
    Адрес
    Киев, Украина
    Возраст
    36
    Сообщений
    600
    Цитата Сообщение от alex-ber Посмотреть сообщение
    Поясню - камера при переключении тумблера начинает сканирование = поворот вправо до упора, задержка (было бы очень класно, чтоб задержку можно было выставить или в Планере или (что еще круче !) доп каналом с крутелкой...), поворот в центр, поворот влево и т.д.?
    у тебя на видео впринципе так и есть - поворот -пауза-поворот... но на другом канале хотелось бы и с паузой в крайних точках...
    Дык, она паузу и делает после поворота в крайнюю точку, как Леонид и заказывал Или имеется ввиду, что серва должна плавно перемещаться с определённой задержкой, скажем на 5-10 градусов в секунду. При достижении крайнего положения, она должна замереть на какую-то паузу, а потом начать двигаться в обратную сторону. И так до потери пульса?

    БТВ, у МегаПилота есть поддержка управлением камера-маунтом. Само управление сосредоточено в AP_Mount и поддерживает туеву кучу функционала, к примеру
    MAV_MOUNT_MODE_RETRACT // высунуть маунт на заданное пользователем положение и ничего больше не делать
    MAV_MOUNT_MODE_NEUTRAL //нейтральное положение
    MAV_MOUNT_MODE_MAVLINK_TARGETING // то же, что и MAV_MOUNT_MODE_NEUTRAL + постоянная работа стабилизации подвески
    MAV_MOUNT_MODE_RC_TARGETING // ручное управление с пульта
    MAV_MOUNT_MODE_GPS_POINT //направлять камеру на ГПС координату
    Только я это не тестировал, посему не смогу вам рассказать, работает ли оно или это очередной мёртвый отросток от основной версии.

    Цитата Сообщение от Syberian Посмотреть сообщение
    позволю себе не ответить, т.к. не моих рук дело На мой взгляд, верхняя половина до init бесполезна.
    Чудненько, наши мысли совпали Вот и стал код Пирата на 8 строчек короче

  42. #1159

    Регистрация
    06.04.2006
    Адрес
    Гродно Беларусь
    Возраст
    46
    Сообщений
    1,305
    Цитата Сообщение от ukkr Посмотреть сообщение
    Только я это не тестировал, посему не смогу вам рассказать, работает ли оно или это очередной мёртвый отросток от основной версии.

    Спасибо!
    ПС Константин - какбы мы в этой теме Свои - давайте на ТЫ - так вроде проще общаться! (если не против...).
    Спасибо еще раз - буду разбираться...

  43. #1160

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от ukkr Посмотреть сообщение
    Самое интересное, у М1 и М2 "+" запараллелен.
    Изначально вортекс был придуман для мультикоптеров. М1 соединен с М2 для того, чтобы в случае трикоптера запитать хвостовую серву. Во все остальные места втыкались регуляторы, имеющие свои UBEC. Плата имеет свой стаб от 12В (который дико греется).
    Вот схема разводки питания вортекса
    http://static.rcgroups.net/forums/at...wer_Vortex.jpg

    В случае самолета нужно
    1) соединить все средние провода Мх
    2) соединить их с Sonar+, чтобы обеспечить питание самой платы.

    Также я лично соединил с USB+, чтобы не подавать внешнее питание при перешивке платы.

    В первом посте картинка есть
    http://www.rcgroups.com/forums/showthread.php?t=1547655



    Цитата Сообщение от ukkr Посмотреть сообщение
    С помощью функции analogRead() вы можете читать значения с любого из этих входов в любом месте. На самом деле -- Mega2560 пофигу, что подключено на эти пины, оно просто оцифровывает тот сигнал, что вы подаёте на пин. Это может быть как термометр, так и барометр, который выдаёт аналоговый сигнал и т.д.
    Главное, отключить led sequencer с соответствующих каналов, т.к. он объявляет их выходами.



    Извините, что не по порядку коментю... нафлудили много
    Последний раз редактировалось Syberian; 16.02.2012 в 02:54.

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

Похожие темы

  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

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

Ваши права

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