Специальные цены   новые товары
+ Ответить в теме
Страница 2 из 57 ПерваяПервая 1 2 3 4 12 ... ПоследняяПоследняя
Показано с 41 по 80 из 2248

OSD на ATmega1281

Тема раздела Самодельная электроника, компьютерные программы в категории Общие вопросы; Сообщение от Nick_Shl Нет, не отвес. Примерно так: Трубка из диэлектрика, две токопроводящие пробки, к одной из них приклеивается токопроводящим ...

  1. #41

    Регистрация
    02.06.2005
    Адрес
    Ростов Великий
    Возраст
    53
    Сообщений
    556
    Цитата Сообщение от Nick_Shl Посмотреть сообщение

    Нет, не отвес. Примерно так:

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

  2.  
  3. #42

    Регистрация
    20.03.2007
    Адрес
    Minsk, Belarus
    Возраст
    34
    Сообщений
    326
    Цитата Сообщение от Vad64 Посмотреть сообщение
    Неудачная идея, т.к. не будет выдавать постоянную составляющую
    Что имеется ввиду под "постоянная составляющая"? То что напряжение в покое(относительном) будет находится в 0, а напряжение будет изменятся как в плюс, так и в минус? Так там в любом случае нужно будет ОУ ставить для корректировки диапазона выдаваемых значений, который бы АЦП МК смог бы преобразовывать... А противоположном входе(инвертирующем/не инвертирующем в зависимости от подключения основного сигнала) можно организовать постоянную составляющую.

  4. #43

    Регистрация
    06.04.2006
    Адрес
    Гродно Беларусь
    Возраст
    46
    Сообщений
    1,261
    http://store.diydrones.com/ProductDe...90247ESF%2DDSA и еще кое что там найдете.
    надеюсь поможет
    я заказывал - доставляют исправно, инвойс автоматом занижают...

  5. #44
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Интересный сайт. Но цены не радуют, увы... Действительно получается пока дешевле сразу FMA-голову купить. Правда там нет вертикальной пары(?).
    Ладно, пока декодером займусь, а там видно будет..

  6.  
  7. #45

    Регистрация
    31.01.2006
    Адрес
    София, Болгария
    Возраст
    47
    Сообщений
    38
    Nintendo сделали Wii MotionPlus для игровой конзоли Wii. У него 3-осевой гироскоп. Управление I2C. Также естъ Nunchuck Controller for Wii у которого 3-осевой акселерометер. Управление тоже I2C.
    Китайские клонинги http://www.dealextreme.com/details.dx/sku.26391 и http://www.dealextreme.com/details.dx/sku.14236.

    Дешевле акселерометр и жироскоп вряд ли найдем, но что внутри клонингов и подходят ли для ваших целей???

  8. #46

    Регистрация
    02.06.2005
    Адрес
    Ростов Великий
    Возраст
    53
    Сообщений
    556
    Цитата Сообщение от Nick_Shl Посмотреть сообщение
    Что имеется ввиду под "постоянная составляющая"? То что напряжение в покое(относительном) будет находится в 0, а напряжение будет изменятся как в плюс, так и в минус?
    Я имею в виду постоянную составляющую ускорения, а не сигнала. Поставьте Ваш датчик вертикально - будет он показывать постоянное ускорение свободного падения? Нет, не будет - очень скоро напряжение на пьезокристалле станет нулевым. А нормальные акселерометры, например, http://www.freescale.com/webapp/sps/...7261QT&fsrch=1 работают с постоянной составляющей. Это позволяет, к примеру, довольно точно измерять наклоны (конечно, если датчик в покое).

  9. #47
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Добавил в свой OSD декодер группового PPM. Делаю управление. Диаграмку обработки выложу чуть позже.
    Пока разбираюсь с каналом крена, сделал полноценный PID.
    В проекте папарацев, как я понял, используют значения канала газа для учета изменения управляемости по крену для разных скоростей. Пока этим не стал заморачиваться, будем летать в ограниченном диапазоне скоростей.
    Для D-ветки простейшее дифференцирование первого порядка ( D=Kd*(e[n]-e[n-1]) )показалось мало эффективно, сервы не будут успевать отрабатывать, добавил задержку дифф импульса - восстановление по квадратичному закону за задаваемым временем.
    I-ветка примитивный метод прямоугольников с ограничением. Задается время интегрирования и диапазон ограничения. Что-то не могу сообразить что ждать от этой ветки. Если сделать время интегрирование большим, может есть шанс получить эффект автотриммирования. Если малым- компенсацию избыточной устойчивости скажем высокоплана для ненулевого крена. Кстати, для последнего может есть смысл добавить еще ветку - пропорциональную заданному значению крена (не ошибки). Собственно это все вопросы...

  10.  
  11. #48
    GSL
    GSL вне форума

    Регистрация
    14.09.2008
    Адрес
    Верхняя Салда
    Возраст
    63
    Сообщений
    1,230
    Цитата Сообщение от msv Посмотреть сообщение
    Отвес?
    В большой авиации до сравнительно недавнего времени именно по отвесу (маятнику пузырьковому) авиагоризонт корректировали. У больших самолетов он ведь тоже убегает по времени. Правда модель болтает больше чем реальный самолет, простым выключателем коррекции уже наверное не обойтись.

  12. #49
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    ИМХО по поводу "до сравнительно недавнего времени ".. конечно все относительно, но в моем представлении давненько уже это было.. Подобный принцип (только трех-осевой акселерометр) еще худо-бедно годится для индикации, и может даже поможет выбраться пилоту из облака, но никак уж не пойдет для системы управления. Уж очень велика вероятность получить на вираже за счет центробежного ускорения около нулевые показания крена, ну и тп..
    А вопрос по датчикам углов остается открытым.. Пока для отладки использую пару потов в каналах АЦП, накручивая ими "крен","тангаж". Секретную информацию о том, как использовать трехосевой компас для определения углов, так и не получил. Но сообщение заставило еще раз задуматься... А что если крутить компас, например вдоль одной оси?.. Тогда конец вектора S-N будет определять окружность лежащую в нужной плоскости. Но крутить как угодно систему координат можно и математически... И опять вспоминаю аксиому- по двум точкам нельзя определить плоскость... Парадокс, млин...

  13. #50
    GSL
    GSL вне форума

    Регистрация
    14.09.2008
    Адрес
    Верхняя Салда
    Возраст
    63
    Сообщений
    1,230
    Цитата Сообщение от msv Посмотреть сообщение
    ИМХО по поводу "до сравнительно недавнего времени ".. конечно все относительно, но в моем представлении давненько уже это было.. Подобный принцип (только трех-осевой акселерометр) еще худо-бедно годится для индикации, и может даже поможет выбраться пилоту из облака, но никак уж не пойдет для системы управления. Уж очень велика вероятность получить на вираже за счет центробежного ускорения около нулевые показания крена, ну и тп..
    Гировертикали, корректируемые пузырьковым отвесом, стоят на самолетах, находящихся в эксплуатации до сих пор. Ну например на Ту-154. И вполне справляются со своими обязанностями. И не только для индикации но и в качестве датчика для автопилота. Есть конечно проблемы с применением такого принципа в моделях, но тут наверное опираться надо на изучение существующих систем а не на свои представления о них.

  14. #51
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Не судите строго, с авиацией дел никогда не имел и в моделизме новичок. (Да и с математикой на уровне средней школы..) Свои предствления в этой теме формирую на основании сообщений форума и вики. Именно там написано- "Авиагоризо́нт — бортовой гироскопический прибор, используемый в авиации для определения...". О применении в авиации "пузырьков" ничего не упоминается. Зато попадалось:
    "Кренометр - прибор для измерения угла крена судна. Кренометр устанавливается в ходовой рубке. Простейший кренометр представляет собой отвес, перемещающийся по сектору, разбитому на градусы. Жидкостные кренометры (клинометры), основаны на использовании пузырьковых уровней."
    Известные мне существующие системы в авиамоделизме практически все выполнены на ИК-термодатчиках.

  15. #52

    Регистрация
    02.06.2005
    Адрес
    Ростов Великий
    Возраст
    53
    Сообщений
    556
    Цитата Сообщение от msv Посмотреть сообщение
    Секретную информацию о том, как использовать трехосевой компас для определения углов, так и не получил.
    Повторю еще раз, получить крен и тангаж только из трехосевого датчика магнитного поля невозможно. За исключением случая полета в районе магнитного полюса, где силовые линии магнитного поля Земли вертикальны. В наших широтах наклон линий к горизонту - около 70 градусов.

  16. #53

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Ну вот, вывод графики типо работает.... 192х160
    Пока без камеры, формирую синхро сам. Бенчмарк с другого изделия, шрифт 8х12 + 10 движущихся элементов, FPS довольно неплох
    На экране появляются артефакты, т.к. AT90CAN128 разогнана с 16 до 20 МГц. Других под рукой не было. Надо переползать на что-то побыстрее.




    msv, прошу прощения, "обоснование" раздобыть не удалось, потому и не отписал
    Кстати, у вас на изображении шум на вертикальных элементах присутствует? Типа край дрожит...
    Мну это поборол.

  17. #54
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    От разгона по идее не должно быть никаких артефактов. Проц или заведется или уж нет. Это только ИМХО, своей практики не так много.
    Дрожание вертикальных полос есть маленько. Кварцы камеры и меги гуляют и самое заметное, когда они близко по частоте становятся. Тогда видны конкретные биения. Период тактового генератора меги всего в 4 раза меньше ширины пикселя, вот на эту четвертушку и бьет... Совсем побороть это можно только синхронизировав по фазе генераторы. Решение этой задачки считаю неоправданно сложным для столь простой схемки.

  18. #55

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от msv Посмотреть сообщение
    Период тактового генератора меги всего в 4 раза меньше ширины пикселя, вот на эту четвертушку и бьет
    Неправда ваша
    Дело все в том, что переход по прерыванию от 1881 происходит только по завершении текущей инструкции. А они могут быть 1-тактные (nop, ldi*, sbi...), 2-тактные( rjmp, lds, breq...), 3-тактные (ld *Z+...) и 4-тактные ( jmp). Это дает ощутимую задержку в зависимости от того, что выполняется в момент прихода прерывания.
    Ниже привожу компенсатор, который я поставил в самое начало прерывания. Правда, у меня прерывание работает от таймера TCNT1. При синхронизации от INT0 1881 планирую устанавливать TCNT1 в определенное значение и действовать по-прежнему от таймера.
    Код:
    #asm
    push tmp
    push tmp1
    lds tmp,TCNT1L
    lds tmp1,TCNT1H
    cpi tmp,0x19
    brlo rovn1
    cpi tmp,0x21
    brsh rovn1
    
    ldiz rovn // 
    subi tmp,0x19
    clr tmp1
    add zl,tmp
    adc zh,tmp1
    ijmp
    rovn:    nop
            nop
            nop
            nop
            nop
            nop
            nop
            nop
    rovn1:        
    pop tmp1
    pop tmp
    
    #endasm

  19. #56
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Неопределенность по времени входа в прерывания у меня решена как и во всех подобных системах, перед выводом "рабочих"строк (на которые накладывается картинка), проц "засыпляется"- asm("sleep"). Вся работа фоновых функций разрешена только в межкадровый интервал. Если этого не делать, картинка просто безобразная..
    А с остановкой проца остается только неопределенность на длину периода тактового генератора.
    При синхронизации от INT0 1881 планирую устанавливать TCNT1 в определенное значение....
    Не понял.. каким образом??
    Последний раз редактировалось msv; 03.12.2009 в 09:44.

  20. #57

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от msv Посмотреть сообщение
    каким образом??
    У вас, как я понял, вывод строк идет в теле прерывания INT, а у меня, пока не подключена камера, в прерывании T1CompareA с собственной частотой 15625Гц.
    По приходу ССИ от 1881 я устанавливаю TCNT1 на 8 мкс до сброса, а при срабатывании таймера начинаю тупо выводить очередную строку, пропустив программное формирование ССИ. Если ССИ от 1881 не поступало (камера разбилась, промокла, мало ли что), таймерное прерывание будет само формировать ССИ и КСИ, что позволит выдавать OSD даже без входа с камеры.
    Т.е. прикрутив намертво плату к передатчику и резервной батарейке, решаем проблему поиска грохнувшегося самоля по GPS координатам.

    Кстати, поэтому у меня проц сейчас вообще не усыпляется и все вычисления основного цикла main проходят непрерывно, только отвлекаясь на прерывание таймера. Т.е. сложность вычислений и время вывода на экран не имеет значения. А дрожание порешил, как указал выше.
    Последний раз редактировалось Syberian; 03.12.2009 в 10:25.

  21. #58
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Если правильно понял, пока у Вас нет внешних асинхронных процессов. Естественно и проблем нет.
    По приходу ССИ от 1881 я устанавливаю TCNT1 на 8 мкс до сброса
    Я и спрашиваю- каким образом??? Может есть какой-то аппаратный способ установки таймера, мне такое неизвестно.. А если программно в обработчике INT, то даже при программной реализации ФАПЧ таймера, будет та-же неопределенность в несколько тактов, только для момента установки/коррекции таймера... Короче, может туплю, но так и не могу понять, куда собираетесь сажать выходы 1881? на прервание или .. ?...
    ---------
    Может кому будет интересно, вот диаграмка обработки сигналов моего уже реализованного автопилота:
    Нажмите на изображение для увеличения
Название: diagram.jpg
Просмотров: 583
Размер:	48.6 Кб
ID:	301888
    В диаграмме указаны конфигурационные коэффициенты (задаются с ПС). Но многие детали пропущены. Да и не все показано, например нет логики переключения режимов Manual/Assistent/Autopilot, дополнительных аналоговых и дискретных каналов с функциями failsave.
    Все отлаживалось на страшненьком симуляторе:
    Нажмите на изображение для увеличения
Название: ss.JPG
Просмотров: 444
Размер:	65.8 Кб
ID:	301889
    Это, конечно, не полноценны сим, аэродинамики там нет, просто замедленная реакция на заведомо загрубленные (для проверки I-веток PID регуляторов) команды.
    В железе пока только оценена общая работоспособность.

  22. #59

    Регистрация
    14.10.2008
    Адрес
    Омск
    Возраст
    37
    Сообщений
    3,257
    Записей в дневнике
    3
    Цитата Сообщение от msv Посмотреть сообщение
    Может есть какой-то аппаратный способ установки
    Это лишнее. После формирования строки у нас есть еще 1-2 мкс на различные операции до поступления следующего ССИ (время обратного хода луча). В это время мы выходим из прерывания.
    Второе прерывание у нас очень короткое: по INT0 (внешний ССИ) устанавливаем TCNT1 на 12 мкс до срабатывания, устанавливаем флаг наличия внешнего ССИ и выходим. Через 12 мкс (ССИ 4 мкс+СГИ 8 мкс) у нас срабатывает таймер. В таймерном, если был флаг внешнего ССИ, сразу выводим строку. Если не было, сами формируем ССИ и проч. Выходим. Процесс повторить.
    Если внешнего ССИ не было в течение 12 мкс, сработает таймер и сформирует нормальную строку со всеми нужными сигналами.
    И еще. Если внешний ССИ возник во время отрисовки строки, флаг прерывания сохранится, и оно выполнится сразу после выхода из таймерного. Т.е. в худшем случае синхронизация восстановится за 64/12=~6 строк.
    Понятно? нет? Доделаю - покажу.

    Кстати, а что за прога рисует такие красивые графы? или вручную?

  23. #60
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    у нас есть еще 1-2 мкс на различные операции до поступления следующего ССИ
    До окончания ССИ времени даже побольше. Я (точнее мега) успеваю за это время считать по готовности байт с UART от GPS-модуля и уложить в буфер, и считать значение регистра захвата таймера, устанавливаемого PPM сигналом, и тоже записать в буфер. Ну это отношения к вопросу не имеет.. а вот
    по INT0 (внешний ССИ) устанавливаем TCNT1 на 12 мкс
    меня смущает, что момент установки будет не точным, а, как Вы и писали, плюс-минус 4-такта. А значит и сработает тайметр с такой же неопределенностью.. Сделать вывод по таймеру имхо возможно, но действовать надо по хитрее.. Ладно, подождем результата, может я что и не понял...
    -----------------------
    Протестировал на столе автопилот, результат вполне обнадеживает.
    Очень неплохо работает декодер PPM, наверное потому как проверка пакета делается на основании предварительно откалиброванных значений (мин, мах длина строба, мин мах значения для каждого канала). При ухудшении приема, сервы начинаю только слегко ерзать и отрабатывать команды с замедлением (почти как PWM).
    Пару слов о логике автопилота.
    В ручном режиме все работает как обычно, декодированные значения выдаются на соответствующие по конфигурации выходы.
    В режиме "помощник" данные по каналам PPM трактуются как целевые углы крена и тангажа. Максимальное отклонение ручек соответствует максимальным углам, задаваемым конфигурацией. Далее алгоритмы управления (ПИД для крена, ПИ для тангажа), на основании текущих и целевых углов поворачивают в нужную сторону на требуемый угол сервы.
    По своему небогатому опыту пилотирования, решил что для гарантированного сохранения устойчивости самолета, есть смысл динамически ограничивать максиманый угол тангажа в зависимости от крена. Получается приоритет у крена, те. пока поворачиваем, стараемся лететь ровно по тангажу. Для расчета максимального тангажа используется большее значение из текущего и целевого углов крена, и конфигурационный параметр - значение макс. тангажа при макс. крене. В промежуточных углах крена- линейная интеполяция.
    В режиме "автопилот"- все так же, только целевой угол крена считается в зависимости от данных GPS о текущем курсе и направлении на базу. Для исключения неопределенности при расхождении курса близкому к 180град, используется конфигурируемый гистерезис переключения направления поворота. Целевой тангаж расчитывается по текущей высоте, целевой (конфигурируется) высоте и расстоянию до базы.
    В режиме "автопилот" управление газом определяется по большему значению (текущий, целевой) тангажа. Конфигурацией задается значения газа для максимального, 0-вого и мин тангажа, а так же (для демпфирования) скорости изменения на увеличение газа и уменьшение. Кроме того контролируется скорость GPS и если она меньше порога, считаем что упали, газ отрубаем. Ну и сделал отчечку по напряжению с конфигурируемой скоростью уменьшения газа (очень полезно будет для двухмоторника).
    Надеюсь это будет кому-нибудь интересно...

  24. #61
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Наконец пришел от FMA датчик горизонта.. Увы, действительно получилось дешевле, чем если бы заказавал отдельно термопары.. (Хотя цена этой коробочки с операционником и четырьмя датчиками получилась равна GPS модулю.... тоже как-то не по божески.. ) Поставщики, у которых термопары копейки стоят, на мои письма не отвечают, вероятно торгуют только вагонами и с моими 6-ю штучками возиться не хотят .. Ну а у тех, кто в розницу торгуют- просто бессовестные цены. С FMA датчиком прийдется довольствоваться только двумя осями, ну на первое время потянет.. Вот снял тест, вместо теплой земли- теплая клава ноута. Точность не так что бы очень, но объяснима ограниченной площадью клавы и ее нераномерным нагревом. Надеюсь в реале будет точнее, хотя для моих криволетов и "супер" алгоритмов даже так сойдет..

  25. #62
    ubd
    ubd вне форума

    Регистрация
    17.03.2003
    Адрес
    г.Осинники, Кемеровская обл
    Возраст
    37
    Сообщений
    4,124
    Серёга, ГЕНИАЛЬНО!!!!!

  26. #63
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Если это о том, что можно "полетать" прямо над клавой ноута, то согласен.. Поначалу хотел противень в духовке подогревать..

  27. #64
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Преследуя "корыстную" цель- не дать утонуть теме, выложу побочный результат "конверсии" по этой разработке.
    Столкнулся с проблемой, что для питания ТВ-передатчика и камеры на борту, требуется стабилизированные 12В. Ставить еще один акк. как-то неспортивно.. Да и все равно прийдется стабилизатор городить... Борт питается от 3S ( 9-12,6В ), напрашивается SEPIC-преобразователь. К сожалению с ним результат получился не очень.. Какой-то неустойчивый режим генерации, греются дроссели... Возможно требуется очень точно подбирать дроссели для нормальной работы. Но решил не усложнять себе жизнь и сделать простой step-up (boost) преобразователь, посчитав что даже на полностью заряженных акка, преобразователь заткнется и на выходе будет макс 12,2В за счет падения на диоде. Что вполне приемлемо для камеры и передатчика. Элементная база была выбрана по принципу мин. бюджета из деталей в местном киоске, поэтому применил MC34063 + IRF7413. Но при таком подходе, есть еще один плюс - расширяемость. Те. при желании можно поставить дроссельки побольше, диодик помощнее, ключики несколько в параллель или помощнее и получить любой разумный максимальный ток. Работа схемы так понравилась, что под впечатлением слепил step-down на 5V. Тут сразу не получилось, тк пытался обойтись в затворе низкоомным делителем. Увы.. без ключа на биполярнике фронты оказались недостаточно крутые и соответсвенно низкое кпд.
    Вот собственно окончательные схемки:
    Нажмите на изображение для увеличения
Название: BEC.jpg
Просмотров: 611
Размер:	40.1 Кб
ID:	332253
    Ничего особенного, но это провереные рабочие варианта из доступных, относительно дешевых деталюшек.
    Дроссели все самомотанные, основной для 5В step-down на колечке от материнской платы. Остальные на гантельках из платы монитора.
    Ну и печатка ( не идеал конечно ):
    BEC1.rar
    Попробую по этой же схемке сделать step-up помощнее 12->19В для питания ноута от автомобильного акка...

  28. #65

    Регистрация
    16.06.2008
    Адрес
    Israel (Byalik)
    Возраст
    42
    Сообщений
    132
    Цитата Сообщение от msv Посмотреть сообщение
    Преследуя "корыстную" цель- не дать утонуть теме
    Проект классный и достойный уважения, а чтобы он не заглох, возможно стоит сделать его возможным для повторения.
    Выложить к примеру схему, плату, сорс или прошивку.
    Лишь после того как другие, менее или более продвинутые программисты/электронщики повторят и испытают этот проект, можно будет его развивать дальше.
    Тема интересная, не останавливайтесь, все вас поддержат.

  29. #66
    ReM
    ReM вне форума

    Регистрация
    15.09.2004
    Адрес
    Lithuania
    Возраст
    49
    Сообщений
    296
    Записей в дневнике
    10
    Как вычислить направление до какой-то точки? Например до точки старта как в OSD. Т.е. именно направление (или угол), чтобы стрелка правильно показывала.

  30. #67

    Регистрация
    22.03.2004
    Адрес
    Кемерово
    Возраст
    40
    Сообщений
    2,437
    Записей в дневнике
    18
    угол - тригонометрически. получается прямоугольный треугольник. оба катета известны, их отношение - это арктангенс. из него можно получить, как угол, так и гипотенузу. вычислять лучше таблично или CORDIC. перевод гипотенузы из градусов в метры делается с коррекцией широты/долготы. ведь 1 градус в москве и архангельске имеют разную длину =)

  31. #68
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Надеюсь, что поможет- фукция расчета расстояния до базы, угла направления на базу и пройденного пути:
    Код:
    void calc_los(void)
    {
    unsigned long dx, dy;
    u_int course;
    static u_char div_wp=0;
     
    if(gGPS_mode!=3) return;
    if(gGPS_speed<gMainConfig.MinValidSpeed) return;
    if(gGPS_lat_start>=gGPS_lat.Val) dy=gGPS_lat_start-gGPS_lat.Val;
    else dy=gGPS_lat.Val-gGPS_lat_start;
    if(gGPS_lon_start>=gGPS_lon.Val) dx=gGPS_lon_start-gGPS_lon.Val;
    else dx=gGPS_lon.Val-gGPS_lon_start;
    dy*=GRAD_METER_CONST; dy/=1000;
    dx*=gGPS_lon_gm; dx/=1000;
    gGPS_los=lsqrt((dx*dx)+(dy*dy));
    //course
    if(gGPS_los>gMainConfig.MinLos)
      {
      if(dx>=dy) course=90-(dy*45)/dx;
      else course=(dx*45)/dy;
      if(gGPS_lat_start<gGPS_lat.Val)
        {
        if(gGPS_lon_start>=gGPS_lon.Val) course=180-course;
        else course=180+course;
        }
      else if(gGPS_lon_start<gGPS_lon.Val) course=360-course;
      gGPS_course_base=course;
      }
    // wp
    if(++div_wp>=5)
      {
      div_wp=0;
      if(gGPS_lat_wp>=gGPS_lat.Val) dy=gGPS_lat_wp-gGPS_lat.Val;
      else dy=gGPS_lat.Val-gGPS_lat_wp;
      if(gGPS_lon_wp>=gGPS_lon.Val) dx=gGPS_lon_wp-gGPS_lon.Val;
      else dx=gGPS_lon.Val-gGPS_lon_wp;
      dy*=GRAD_METER_CONST; dy/=1000;
      dx*=gGPS_lon_gm; dx/=1000;
      gGPS_wp+=lsqrt((dx*dx)+(dy*dy));
      gGPS_lat_wp=gGPS_lat.Val;
      gGPS_lon_wp=gGPS_lon.Val;  
      }
    }
    Как видите для расчета арктангеса используется линейная интерполяция на участках 45град. Погрешность оценивал, точно не помню, но что-то меньше 2град, что для моей задачи вполне достаточно.

  32. #69
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Наверное точнее не интерполяция, а линейная аппроксимация...
    Отвечу на вопросы в личке здесь: Посчитать константу GRAD_METER_CONST и расчет глобальной переменной gGPS_lon_gm (считается один раз после инициализации GPS ) - "задание на дом". Остальные переменные вроде бы очевидные, если не понятно спрашивайте..

  33. #70

    Регистрация
    24.01.2010
    Адрес
    Екатеринбург
    Возраст
    43
    Сообщений
    51
    Записей в дневнике
    2
    Цитата Сообщение от Mishanya Посмотреть сообщение
    Проект классный и достойный уважения, а чтобы он не заглох, возможно стоит сделать его возможным для повторения.
    Выложить к примеру схему, плату, сорс или прошивку.
    Лишь после того как другие, менее или более продвинутые программисты/электронщики повторят и испытают этот проект, можно будет его развивать дальше.
    Тема интересная, не останавливайтесь, все вас поддержат.
    Полностью согласен !

  34. #71
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Люди, покаюсь... В принципе изначально не было в планах доводить проект до законченной конструкции с полным представлением всех исходников итп. Очень рассчитываю на обмен мнениями, идеями, как по железу, так и по алгоритмам. Много ценных замечаний и идей получаю в личке (чего только стоит шедевральный цикл вывода в строке за 3 такта на пиксель от уважаемого abalex), за что всем авторам большое спасибо.
    От себя, например, могу доложить, что датчик температуры TMP36 категорически не хочет работать в зоне облучения 1гГц видеопередатчика. Боялся, что будут проблемы с GPS, а тут какой-то г-ный датчик температуры на несколько дней все затормозил...
    В приципе сейчас все готово, лайнер снаряжен, осталось дождаться ходовых акков с ХС и хорошей погоды для проведения летных испытаний. Правда вес мой 1,5м ероплан, на котором уже отлетал 1,5 сезона, прибавил значительно, ужо засомневался, а взлетит-ли.. Ну май уже скоро, там и посмотрим..

  35. #72

    Регистрация
    24.01.2010
    Адрес
    Екатеринбург
    Возраст
    43
    Сообщений
    51
    Записей в дневнике
    2
    Я это к тому что поразвивать этот проект в вертолетно-коптерном направлении- там специфики своей много очень, ее по любому прописывать заново, просто если мы все будем одних и тех же барабашек вылавливать, быстрее их не выловим.
    По поводу термодатчика: он в металле? кондер на ногах стоит? хотя по меньшей мере странно, гиры в коптере гораздо более чувствительны к полям, и измерения на уровне одного отсчета АЦП, 3,3мв, прямо под платой стоит видеопередатчик с оторваным экраном(перегревается иначе) 0,5вт, а рядом с платой антенна двухстороннего радиолинка 0,5 вт 433мгц на основе rfm12bp, все это летает, не дрыгается.

    В рабочих проектах правда давно уж применяем DS18S20. На него весь стек проверенный мной есть. Но в данном случае это врятли будет работоспособно, у него свой реалтайм жесткий

    PS/ хотя я сейчас уже на распутье (концептуальном), а стоит ли делать так. Сейчас имею радиолинк с потенциалом 3 км в городе! двухсторонний на основе кода Слона(http://www.1slon.ru/rc24868.htm). Потенциал линка заведомо превышает все мои возможные полеты на коптере, дом просвечивает, небольшой холмик тоже, имея высоту, горизонт стрелку и LOS, подогнать к себе коптер можно (хотя сложно ) ППП, потенциал видео (0,5 вт на 2,4ГГц) заведомо меньше. Поэтому напрашивается osd делать на земле, в том числе и при пропадении синхронизации с камеры, а это уж явно не AVR. либо ASIC, либо ПЛИС.
    Последний раз редактировалось cvy7; 12.04.2010 в 21:20. Причина: добавил

  36. #73
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Первый раз этот датчик использовал в своем пульте с 35Мгц передатчиком. Тоже заработал только после того, как повесил на питание и на выход непосредственно на датчик емкости.
    А тут.. датчик на маленький платке, питание и выход зашунтированы емкостями SMD, все в глухом экране, на шлейфе ферритовое колечко... На расстоянии ближе ~1м от антенны на выходе вместо постоянки, какие-то прямоугольники.. Блин.. все законы физики неверны... Купил другой - такая же фигня.. Уж не так мне нужен этот датчик, просто было уже интересно.. повесил доп. нагрузочный резистор, запитал от отдельного источника, еще что-то мудрил, уже не помню.. Прямо не датчик температуры, а сверхвысокочувствительный датчик эл.магнитного поля...
    C DS18S20 некогда обмениваться, Вы правы. Во всяком случае неохота городить еще один критичный реал-тайм процесс.. Пока сделал на делителе с KTY81. Нелинейность плюс/минус километр, ну как индикатор пока пойдет..

  37. #74
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Облетал вчерась свой бпла... Ощущений/адреналину море..
    Самолетик с возросшей нагрузкой справился на 5. Даже лучше стало. Возросла скорость (что мне тоже понравилось), увеличилась стабильность и даже появилась некоторая "солидность" в полете.
    Горизонт работает без нареканий. FMA- марку держит...
    Фиговенькое качество видео.. И камерка не так что сильно (хотя для своих 25-баков вполне достойно..), дальше все заметно ухудшает радиоканал, потом пинакл с очень низким динамическим диапазоном, ну и под конец добивает картинку кодер.. Надо поиграться уровнями видео-сигнала, а вот с радиоканалом не знаю что делать, слишком много выпадений похоже из-за интерференций. Конечно нужно антенну поприличнее слепить на приеме, но не уверен, что это радикально решит проблему.
    По телеметрии нарекания только к значению высоты. Почему-то за 10мин полета обновилось значение 2(!) раза.. Или с модуля так редко идут GGA, или в парсинге что-то попутал.. Странно, все нормально вроде бы было...
    Режим стабилизации- первый раз после включения - восторг! Идет как вкопанный широченной дугой (неидеальное триммирование) несмотря на довольно сильные порывы ветра. А вот второй раз включил, вроде бы все нормально, но после команды на крен с пульта, валится на крыло.. Потом при анализе видео понял, что все правильно.. Самолет шел с выключенными двигами на планировании. После включения стабилизации, система долго и довольно успешно пыталась выдерживать нулевой тангаж практически доведя полет до парашютирования. Но дача крена.. да еще с ветерком.. это уже было через-чур.. Есть о чем подумать..
    Автопилот- далеко не отлетал, но с 300м уверенно, взревев двигами ( все четко по алгоритму, для поддержания близкого к 0 тангажа на вираже, было включено ~70% газа), развернул самолет на базу, сбросил газ (тк. текущая высота, хоть и неверная, была больше целевой) спланировал прямехонько к нам.
    Летал с визуальным контролем, тк. просто хотел для начала проверить работу всех систем. В конце поддался на уговоры сына/ассистента, поуправлять по картинке на ноуте в машине. Залез в машину и только начал приходить в себя пытаясь ориентироваться в непривычной ситуации, отключается ноут.. Сдохли батареи.. Выскакиваю из машины.. Где????!!! Сын, несмотря на предварительный инструктаж (если я в машине- ты наблюдаешь за ним визуально!), тоже оказывается глядел через плечо на ноут.. Несколько секунд ужаса.. и треск дерева в который попал самолет, как ни странно было облегчением... Сильно серьезных повреждений нет, но морду придется переклеить...

  38. #75

    Регистрация
    21.06.2004
    Адрес
    Москва, Север
    Возраст
    44
    Сообщений
    110
    Хорошо-бы фото/видеоматериалы прикладывать для наглядности!?

  39. #76

    Регистрация
    24.01.2010
    Адрес
    Екатеринбург
    Возраст
    43
    Сообщений
    51
    Записей в дневнике
    2
    msv, с видео - надо 2-3 приемника, антенны их в 3х плоскостях, с приемников вытащить RSSI на мегу, мегой переключать например с помощью 74hc4051, тогда все стабильно будет км на 3 на 0,5 вт передатчика, я в этой штуке еще и OSD запихал.

  40. #77
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Хорошо-бы фото/видеоматериалы прикладывать для наглядности!?
    Все правильно, но уж шибко не терпелось поделиться хотя бы на словах...
    Качество видео с борта фиговенькое, может попытаюсь со временем что-нибудь нарезать. А вот с земли есть красивые кадры, но писали на DVD-R, жалко пока финализировать. Попозже смонтируем...
    огда все стабильно будет км на 3
    Ок, подумаю.. Пока летал на 300м, и был удивлен кол-вом выпадений, причем независящим от расстояния. Вообще направленная антеннка, по идеи и интерференцию должна поприбить..

  41. #78

    Регистрация
    21.06.2004
    Адрес
    Москва, Север
    Возраст
    44
    Сообщений
    110
    2msv
    Скажите, а блок работы с видео вы сами проектировали или брали что-то за основу. Интересно, исходя из каких соображений?
    на входе 1881 фильтр странно обустроен (в моем понимании сначала должен стоять фильтр НЧ из резистора и конденсатора, после него разделительный конденсатор, как впрочем и прорисовано в даташите)
    Я то-же себе блок OSD делаю. Набросал схему, работает, но зависит от абсолютных уровней виделсигнала - если интересно - брошу на форум.
    Насчёт горизонта - пока склоняюсь к тому, что будет достаточно adxl202 1 штука и крен и тангаж контролировать.

    PS хорошо, что вы продолжаете публиковать свои достижения - интересно читать. Насчёт качества картинки - цели сравнивать с промышленными или отработанными системами нет - кто в этом разбирается - плохое качество картинки не смутит, хотя многоминутные клипы из этого лучше не делать

  42. #79
    msv
    msv вне форума

    Регистрация
    05.03.2008
    Адрес
    Новокузнецк
    Возраст
    54
    Сообщений
    2,367
    Не хочу утомлять низким качеством картинки, выложу только минутку полета.
    Пунктирная линия на авиагоризонте появляется в режимах помощника и автопилота- целевые крен/тангаж. 3 маленькие шкалы- значения на выходе каналов управления (по сути положение серв) Все остальное, вроде бы понятно..


    Писали навстречу, получилось - мгновенный ответ..
    Видео-модулятор сам сочинял. Из каких соображений.... ну что бы работало... А что не понятно? спрашивайте...
    Где стоит кондер ФНЧ, до разделительного или после для електичесва не играет значения...
    Что такое adxl202? Конечно могу глянуть дш..

  43. #80

    Регистрация
    21.06.2004
    Адрес
    Москва, Север
    Возраст
    44
    Сообщений
    110
    По видеомодулятору - сформулирую вопросы - задам. Привожу схему моего модулятора.

    ваше видео дает хорошее представление о получившемся OSD - хорошо, что с помощью графики можно выводить сложные картинки, разрешение чувствуется, что недостаточно.

    ADXL - называют акселерометр, но они разные бывают, а детали, как правило не уточняются. Применяют для измерения угла наклона в двух плоскостях. В паре с гироскопом позволяет строить эффективные устройства для определения угла наклона. Сам по себе возможно будет достаточен, что-бы определять угол в тепличных условиях (незначительные угловые ускорения, наклоны до 45град)
    Миниатюры Миниатюры Нажмите на изображение для увеличения
Название: vm.gif‎
Просмотров: 265
Размер:	5.1 Кб
ID:	338434  

+ Ответить в теме

Похожие темы

  1. Обзор Eagletree OSD Pro
    от R_K в разделе Полеты по камере, телеметрия
    Ответов: 5815
    Последнее сообщение: 10.06.2017, 23:06
  2. Eagle Tree Video OSD Expander
    от _Олег_ в разделе Полеты по камере, телеметрия
    Ответов: 14
    Последнее сообщение: 08.06.2009, 01:09
  3. RV OSD g2 vs IF Dragon OSD что лучше?
    от Шифт в разделе Полеты по камере, телеметрия
    Ответов: 1
    Последнее сообщение: 03.04.2009, 20:44
  4. OSD Expander + EagleTree v.3
    от sf73 в разделе Фото и видеосъемка, системы стабилизации
    Ответов: 3
    Последнее сообщение: 03.04.2009, 03:15
  5. Супер-камера с osd на Tricon'е и дельталете
    от Prikupets в разделе Электролеты. Общие вопросы
    Ответов: 2
    Последнее сообщение: 02.08.2006, 15:54

Ваши права

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