Специальные цены   новые товары
Закрытая тема
Страница 2 из 6 ПерваяПервая 1 2 3 4 ... ПоследняяПоследняя
Показано с 41 по 80 из 204

Как принять сигнал с приемника в AVR (PWM|Digital)

Тема раздела Бортовая электроника в категории Cамолёты - Общий; Уровень сигнала с сервотестера может быть мал. Если в нем стоит стабилизатор на 3,3 В, а на внешнем проце 5 ...

  1. #41

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Уровень сигнала с сервотестера может быть мал. Если в нем стоит стабилизатор на 3,3 В, а на внешнем проце 5 В, то система может глючить. Нужно согласовать уровни сигналов, например через транзисторный каскад.
    Или попробуйте завести сигнал с сервотестера на вход аналогового компаратора Меги, а второй вход компаратора кинуть на внутренний опорник. В этом случае амплитуды входного сигнала должно хватить.

  2.  
  3. #42

    Регистрация
    06.12.2008
    Адрес
    Н.Новгород
    Возраст
    43
    Сообщений
    437
    Для начала напишите маленькую проверочную прогу, которая считывает состояние ноги к которой подключен сигнал и это же состояние выставляет на другой ноге. Соотв. у вас должен получиться программный "повторитель". На вход подаете сигнал с сервотестера, на выход вешаете серву. Если все работает, значит все соединено правильно, все уровни совпадают и все подтяжки выставлены тоже правильно. Дальше уже можно писать код. Вместо сервы можно подключить резистор со светодиодом. Различие 1 мс импульсов от 2 мс импульсов видно на глаз (по изменению яркости).

  4. #43

    Регистрация
    21.08.2010
    Адрес
    Тюмень
    Возраст
    29
    Сообщений
    127
    Добрый вечер! Спасибо за советы! Внезапно разобрался во всем сам. Не тот порт заткнул, когда все прояснилось - цифры на LCD стали показывать правильные длительности импульса. Правда, при попытке выдать принятый PWM на выход (через 16-битный таймер, т.к. основная программа занята), серва дергается. Дискретизация по времени приема PWM с сервотестера - порядка 52мкс, если ставить больше, как писали - 2000 тиков таймера на 2мс, то на основную программу просто не остается тактов процессора. Вообще, все это нужно чтобы в полете в какой-то момент отобрать управление у приемника и заставить серву исполнять сигнал по программе процессора. Может, лучше поставить транзистор, который будет закрывать путь для прохода PWM-сигнала с приемника по команде процессора?

  5. #44

    Регистрация
    04.10.2004
    Адрес
    Балашиха
    Возраст
    38
    Сообщений
    2,871
    Цитата Сообщение от RL2000 Посмотреть сообщение
    Может, лучше поставить транзистор, который будет закрывать путь для прохода PWM-сигнала с приемника по команде процессора?
    Не проще запретить внешнее прерывание?

  6.  
  7. #45

    Регистрация
    28.03.2007
    Адрес
    Клязьма, МО
    Возраст
    31
    Сообщений
    1,153
    Записей в дневнике
    4
    Коллеги, позвольте задать дилетантский вопрос:

    сейчас встала необходимость принять на мегу сигнал с приемника, на этом канале висит несколько серв. Идея такая:
    1. Принимаем сигнал на ICP, меряем длительность импульса счетчиком.
    2. Значение длины полученного импульса программно корректируется, т.е. от него либо отнимается время, либо сколько-то прибавляется.
    3. формируется новый импульс заданной длинны на соответствующем PWM пине проца.

    Таким образом имея 1 вход можно на него через проц повесить 2-3-4 серво в режиме секвенсора.

    Вопрос собсно такой: принять и обсчитать импульс это не проблема, новый тоже сформировать нет, но насколько я понимаю пока проц будет "думать" над текущим обрабатываемым импульсом в это время на ICP будет тикать новый и его мега не успеет уже принять и обработать. Т.е. если я правильно понимаю как минимум будет запаздывание в 1 цикл ШИМ от приёмника. Можно как-то решить эту проблему или дело настолько серьезно, что напрашивается RTOS?
    Для справки, JR matchbox выполняет именно такую ф-ию, но в руках не держал, не разбирал... Если я прав, то это в принципе можно реализовать на 2-3-4 независимых камнях типа тиньки25 или 13, у которой есть входы ICP.

    Частота 4 МГц, камень ATMega32...пока. На нем отрабатываются узлы, потом все переезжает в 128ю.

    Буду признателен за любые подсказки.С Уважением.

  8. #46

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Маскимальная длительность пришедшего с приемника импульса - 2 миллисекунды. Такт поступления импульсов - 20 миллисекунд. Итого остается 18 милисекунд.
    На последовательную генерацию трех импульсов (максимум те-же 2 миллисекунды каждый) уйдет 6 миллисекунд. Итого, на все расчетные удовольствия остается 12 миллисекунд.
    Вторичные импульсы есс-но будут отставать от исходного, но все будут сгенерированы до прихода следующего импульса с приемника.

  9. #47

    Регистрация
    28.03.2007
    Адрес
    Клязьма, МО
    Возраст
    31
    Сообщений
    1,153
    Записей в дневнике
    4
    Благодарю!
    Т.е. генерация новых "обсчитанных" импульсов идет в процессоре в фоновом режиме, в то время как проц обрабатывает новые входящие, правильно?
    Извините за нескромность, у Вас часом нет этого куска кода? Мне хоть посмотреть в какую сторону бежать...

  10.  
  11. #48

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Камень - тини 13А, частота внутреннего RC-генератора 9,6 МГц. Импульс снимается в прямом цикле без прерываний с 4 входа порта В. После метки main10 в регистрах Delay находится разность между 2,2 мс и фактической длиной импульса. Импульс меряется тактами по 6 тиков в каждом. Принцип последующей генерации выходных импульсов после обсчета - такой-же.
    =============================================
    ;********** переопределям регистры ***********************
    .def Delay_L = R19 ; задержка (младший байт)
    .def Delay_H = R20 ; задержка (старший байт)
    .....
    ;********* задаем константы (9,6 МГц, 6 тактов) **********
    .equ VRRST = 3520 ; верхний порог (2,200 мс)
    .....
    ;********** обработка импульса ********************************
    ldi Delay_L,Low(VRRST) ; начинаем обработку импульса
    ldi Delay_H,High(VRRST); загружаем 2,2 мс в регистры задержки
    pul_3: sbis PinB, 4
    rjmp main10 ; выходим, если импульс закончился
    subi Delay_L, 1
    sbci Delay_H, 0
    brcc pul_3
    main10: .....
    =======================================
    Сразу предупреждаю, что в плане ассемблера я "начинающий" программист.
    Возможно кто-то из гуру расщедрится на более грамотное решение.

  12. #49

    Регистрация
    28.03.2007
    Адрес
    Клязьма, МО
    Возраст
    31
    Сообщений
    1,153
    Записей в дневнике
    4
    Спасибо!
    Ну, я "сишник", за ассемблером к отцу пойду, он у меня спец по нему. В принципе всё понятно, попробую это на си портировать, но чувствуется без прерывания не обойтись.

  13. #50

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Код делался под примитивную задачу, хотелось обойтись без прерываний.

  14. #51

    Регистрация
    28.03.2007
    Адрес
    Клязьма, МО
    Возраст
    31
    Сообщений
    1,153
    Записей в дневнике
    4
    Александр, а не поясните пжлст: что значит
    Цитата Сообщение от V_Alex Посмотреть сообщение
    Импульс снимается в прямом цикле
    ? Т.е. как я понимаю программа в бесконечном цикле (jmp loop) проверяет изменение сигнала на входе (1 или 0) и уже потом обрабатывает его?

  15. #52

    Регистрация
    21.08.2010
    Адрес
    Тюмень
    Возраст
    29
    Сообщений
    127
    Цитата Сообщение от Aleksey_Gorelikov Посмотреть сообщение
    Не проще запретить внешнее прерывание?
    Такой способ не подойдет, задумал вообще не считывать PWM-сигнал с приемника. Сразу с приемника на сервопривод, а в нужный момент отобрать линию у приемника. Разве что ставить дополнительную микросхему и передавать тщательно вычисленную длительность через UART или еще как.

  16. #53

    Регистрация
    28.03.2007
    Адрес
    Клязьма, МО
    Возраст
    31
    Сообщений
    1,153
    Записей в дневнике
    4
    Цитата Сообщение от RL2000 Посмотреть сообщение
    Сразу с приемника на сервопривод
    Цитата Сообщение от RL2000 Посмотреть сообщение
    отобрать линию у приемника
    Цитата Сообщение от RL2000 Посмотреть сообщение
    дополнительную микросхему и передавать тщательно вычисленную длительность через UART
    это как?? В любом случае придется процессор в разрыв тогда ставить.

  17. #54

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Цитата Сообщение от Петруччо Посмотреть сообщение
    ... как я понимаю программа в бесконечном цикле (jmp loop) проверяет изменение сигнала на входе (1 или 0) и уже потом обрабатывает его?
    Именно так. После инициализации запрыгиваем в бесконечный цикл. Если на входе 4 установилась единица, значит там сервоимпульс. Вот его и меряем. Замер заканчивается с окончанием импульса и наступлением синхропаузы (на входе 4 - ноль). Дальше делаем с импульсом все, что нам надо и, по аналогичной замеру методе, выводим его на любую другую лапку камня. Можно еще раз обработать и вывести на еще одну лапку.
    Главное - уложиться в синхропаузу (18 мс). Обработали, вывели, расслабились. Ждем, пока на входе 4 не закончится ноль. Как закончился, перепрыгиваем к обработке входного импульса и все повторяется по-новой.
    По хорошему перед первым замером пару импульсов лучше пропустить, чтобы не влезть в середину импульса. После замера можно проверить импульс на попадание в допустимые пределы.

  18. #55

    Регистрация
    28.03.2007
    Адрес
    Клязьма, МО
    Возраст
    31
    Сообщений
    1,153
    Записей в дневнике
    4
    Цитата Сообщение от V_Alex Посмотреть сообщение
    Именно так.
    Все гениальное просто
    Спасибо, попробую повторить оное на сях в меге.

  19. #56

    Регистрация
    24.08.2002
    Адрес
    Тобольск
    Возраст
    46
    Сообщений
    496
    На тиньке 13 по другому сделать и не получится у нее нет 16 битного таймера и входа ICP. А вот на меге желательно использовать встроенные аппаратные ресурсы.
    Вначале вы правильно решили вводить импульс при помощи ICPи выводить ШИМ.
    Ввод и вывод в фоновом режиме под прерываниями, между ними обработка импульса.
    При этом джитер измерения и вывода импульса минимальный и на обработку остается вагон времени.
    Есть несколько тонкостей чисто аппаратных.
    Советую использовать ICPвход не напрямую, а через встроенный аналоговый компаратор, у меги есть функция их сцепки. В этом случае исчезнут проблемы с уровнями сигнала от приемника.
    Выводить импульс удобнее при помощи прерывания Compare соответствующего выхода.
    Кварц удобней использовать на 8 МГц тогда при установке делителя 16 битного таймера счетчика на 8. Мы получаем 1 тик таймера =1 микросекунда. Проще будет потом производить расчеты в программе.
    Счетчик не перезагружаем, пусть молотит по кругу. Все измерения импульсов производим как разность показаний счетчика в начале и в конце импульса.

  20. #57

    Регистрация
    28.03.2007
    Адрес
    Клязьма, МО
    Возраст
    31
    Сообщений
    1,153
    Записей в дневнике
    4
    ага, спасибо огромное за науку! В принципе я так и думал что так правильно, просто терзали сомнения успеет ли камень обрабатывать новый входящий импульс, в то время как PWM генерит текущий обсчитанный. про компаратор - посмотрю осциллографом что там на выходе, м.б. и обойдусь малой кровью, компаратор может еще понадобиться, так что можно кинуть в принципе какой-нить простенький ОУ на входе.

  21. #58

    Регистрация
    02.03.2011
    Адрес
    Санкт-Петербург, Оренбург,
    Возраст
    50
    Сообщений
    3,035
    Цитата Сообщение от project Ikar Посмотреть сообщение
    что такое по Вашему "аппаратно-заточенный под ШИМ вход" и что за чудо схемотехника стоит за этим входом, что он носит гордое название "аппаратно-заточенный"?..
    Полагаю, ув. Blade, просто хотел сказать что принимать и обрабатывать ШИМ сигналы гораздо удобнее если использовать внешние аппаратные прерывания, вот и вся "заточка" справедливо это для 4 и 5 (но не 5 и 6 ) ног Атмеги8,168, 328, в Ардуино как раз, и чаще всего, именно два последние и используются, это внешние прерывания 0 и 1, . Действительно, для ввода ШИМ сигналов гораздо удобнее пользоваться именно этими портами Атмеги. Учитывая возможность использовать обработчик прерывания по любому(каждому) изменению логического состояния сигнала на входе, сам бог велел этим воспользоваться в своих целях )) Очень удобно, оказавшись в обработчике прерывания первым делом проверить состояние входа и в зависимости от того чем вызвано прерывание началом или окончанием импульса либо если начало то обнулить и запустить таймер, либо, если окончание, то прочесть из таймера и вычислить вполне точное значение длительности входного импульса... остальными "ногами" тоже вполне можно пользоваться для ввода ШИМ но тогда будет маловато времени для какой либо другой деятельности процессора, а его вполне можно бы использовать и с бОльшей пользой.

  22. #59

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Да, это более правильный подход, но в жизни бывают ситуации, когда 16-разрядный таймер нужен для других целей. ИМХО для 90 % модельных приложений Мега не нужна. Очень хороши 24 и 25 тиньки.

  23. #60

    Регистрация
    02.03.2011
    Адрес
    Санкт-Петербург, Оренбург,
    Возраст
    50
    Сообщений
    3,035
    Цитата Сообщение от V_Alex Посмотреть сообщение
    Попробую объяснить свою точку зрения. Рабочие коды коммерческих версий устройств выкладывать никто не будет. Project Ikar звучил это в соседней теме совершенно определенно. Я считаю это справедливым, поскольку затраты времени и здоровья на вылизывание софта могут быть весьма значительными.
    Давайте определимся с тем что такое коммерческая версия устройства, очевидно что это устройство(либо хоть какая то его часть) производимое с целью извлечения коммерческой выгоды - продажи.
    В остальных случаях секреты разработчика это просто его интеллектуальная собственность и делиться или нет этой собственностью с другими он сам вправе решать.

  24. #61

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Цитата Сообщение от Probelzaelo Посмотреть сообщение
    Давайте определимся с тем что такое коммерческая версия устройства...
    А чего тут определяться? Ваша точка зрения никак не противоречит моей. Каждый сам решает, как поступать со своими разработками. У меня иногда получается одновременно и делиться: http://www.rcdesign.ru/articles/elec...tery_indicator и
    наживаться: http://igva.ru/prd/led/10led/10led_1.htm, чего и Вам желаю .

  25. #62

    Регистрация
    02.03.2011
    Адрес
    Санкт-Петербург, Оренбург,
    Возраст
    50
    Сообщений
    3,035
    Цитата Сообщение от V_Alex Посмотреть сообщение
    У меня иногда получается одновременно и делиться: http://www.rcdesign.ru/articles/elec...tery_indicator и
    наживаться: http://igva.ru/prd/led/10led/10led_1.htm, чего и Вам желаю .
    Это правильно, но на мне в той же ситуации нажились китайцы )) http://www.hobbyking.com/hobbyking/s...itor_2_6S.html
    впрочем я не проиграл, как то в цифрах понятнее, а с другой стороны при установке на борту, цвета различать даже проще чем циферки.
    Но за вас я, в любом случае, очень радуюсь ... ))

  26. #63

    Регистрация
    28.07.2004
    Адрес
    Москва
    Возраст
    47
    Сообщений
    806
    Гланды конечно можно разными способами удалять...
    В семействе восьмых мег есть превосходный механизм для аппаратного захвата и генерации шим. Даже представить не могу, как ещё можно использовать в модельном применении 16-бит таймер, кроме как для безджиттерного измерения и генерации сервосигналов? Есть выбор входа с цифровой ноги или с аналогового компаратора, есть подавление шума, есть регистр захвата значения таймера, есть гибкая генерация прерываний и флагов, есть механизм коррекции фазы и частоты по ICR для генерации PWM. И всё это аппаратное! За 48-ю мегу нынче просят денег меньше чем за тиньку. Так нет-же, люди продолжают искать джиттер и конфликты прерываний на свою голову!

  27. #64

    Регистрация
    06.12.2008
    Адрес
    Н.Новгород
    Возраст
    43
    Сообщений
    437
    Цитата Сообщение от RL2000 Посмотреть сообщение
    Правда, при попытке выдать принятый PWM на выход (через 16-битный таймер, т.к. основная программа занята), серва дергается. Дискретизация по времени приема PWM с сервотестера - порядка 52мкс, если ставить больше, как писали - 2000 тиков таймера на 2мс, то на основную программу просто не остается тактов процессора.
    Складывается ощущение, что вы каждые 52 мкс (без всяких условий) уходите в прерывание, считываете состояние входа и ставите его на выходе.
    Конечно будет дергаться, причем будет жрать много ресурсов, чем точнее, тем больше.
    Алгоритм то совсем другой. Нужно сделать прерывание не по таймеру, а по изменению состояния входа. Соотв при старте импульса записывать значение таймера (который тикает примерно 2000 тиков или больше на 2 мс), а при окончании импульса вычитать записанное значение из текущего. Т.о. прерывание должно происходить всего 2 раза за 20 мс (100 раз в секунду) и на основную программу остается куча времени.

  28. #65

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Цитата Сообщение от Boroda Посмотреть сообщение
    Гланды конечно можно разными способами удалять...
    Даже представить не могу, как ещё можно использовать в модельном применении 16-бит таймер, кроме как для безджиттерного измерения и генерации сервосигналов?...
    Можно, можно . Все зависит от конкретной задачи. Тут полстраницы ушло на обсуждение, как лучше организовать переключение сигнала с двух разных источников на одну серву. Правильный ответ - коммутатор на одном корпусе КМОП-логики за пять рублей. Считаем дальше: 13 тинька стоит 0,5-0,6 бакса. РУчная пайка одной ноги при мелкой серии - 2 цента и выше. И размер посадочного места (стоимость плате) тоже имеет значение. Если строить для себя в одном экземпляре - нет проблем (собственно с этого тема и начиналась). Если серию, то значение имеет каждый цент. Кусочек кода, который я выкладывал, из серийного изделия. Импульс обрабатывается в 16-разрядном режиме, соответственно джиттера нет. Прерывание там только одно - по WDT, других нет, соответственно нет и конфликтов. А 16-разрядный таймер бывает нужен, например, для организации 9-10 разрядного ШИМа, типа чтобы свечку от 12 Вольт калить. Кстати, в 24 тиньке он есть.

  29. #66

    Регистрация
    10.12.2009
    Адрес
    Kyiv
    Возраст
    34
    Сообщений
    186
    Удалил. не та ветка...

  30. #67

    Регистрация
    09.03.2010
    Адрес
    Киев, Украина
    Возраст
    38
    Сообщений
    144
    Итак подошла к концу разработка первой версии БАНО.
    Напомню, в начале я собрал на Arduino Demilanove и бредборде макет, потом хотел сделать шилд, но получилось много веса, в результате заказал Arduino Mini. Получилось нечто монстроидальное на 12,5 грамм без шнурков:

    9 независимых каналов по 20 милиампер (максимум 40) и то на все про все запас 200 милиампер (больше АТмега не пускает через себя).
    Первую версию кода я публиковал в этой ветке раньше.
    Это была бета-версия, на которой откатывалось мое знакомство с AVR процессорами
    После началась борьба за граммы и стоимость, в результате получилась уже первая версия устройства:




    Это уже подключился мой товарищ Костя, и мы разработали плату без шнурка 6 грамм, со шнурком 8 грамм. Оставлены интерфейсы для замены прошивки, так как на первой версии еще никто не останавливался
    Теперь нагрузка отделена от логики, есть возможность ее запитать отдельно (джамперами выставляется от бортового питания или подается отдельное питание), до 30 вольт и 4 ампер. Вдруг понадобятся мощные светодиоды или ленты на самолете...
    Все так же 4 режима полета, (выключено, стоянка, взлет/посадка, полет), можно управлять яркостью огней с передатчика (не реализовано но возможность есть). На борту 2 диода, один зеленый - Power ON, второй синий - Signal (светиться когда есть сигнал с передатчика)

    В следующей версии -
    1. управление яркостью для мощных нагрузок (возможность заложена в конструктив);
    2. подключение бузера для поиска модели при пропадании сигнала с передатчика. (возможность заложена в конструктив, надо спаять пьезу и дописать софт).

    Это устройство можно собрать и на АТмеге8, без управления яркостью, разница в 2 долара с АТмегой168, вся схема получилась до 10 долларов, так что любителей PIC и Tiny не совсем понимаю, с учетом возможностей ATmega168...

    П.С. Благодарю всех оказавших помощь в этом интересном мероприятии, перед зимой свет на самолете - это большое облегчение!
    П.П.С. Видео с облетов не выкладываю в ввиду эксплуатации в пасмурные дни, когда фотоаппарат не очень эффективен в качестве камеры.

  31. #68

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Цитата Сообщение от eliash Посмотреть сообщение
    Итак подошла к концу разработка первой версии БАНО...
    Это устройство можно собрать и на АТмеге8, без управления яркостью, разница в 2 долара с АТмегой168, вся схема получилась до 10 долларов, так что любителей PIC и Tiny не совсем понимаю...
    Э-э-э, зачэм абижаишь, дарагой .
    Вот БАНО на attiny 13A:

    Нажмите на изображение для увеличения
Название: БАНО-1.jpg
Просмотров: 73
Размер:	31.3 Кб
ID:	568758
    Наружу выходят 4 канала до 500 мА каждый. Два канала распараллелены под фары и крыльевые огни. Этот-же конструктив позволяет получить и "авто"-вариант с фарами дальнего и ближнего света + спецсигналы. Весит 6 грамм с корпусом.

  32. #69

    Регистрация
    02.03.2011
    Адрес
    Санкт-Петербург, Оренбург,
    Возраст
    50
    Сообщений
    3,035
    Цитата Сообщение от eliash Посмотреть сообщение
    надо спаять пьезу и дописать софт
    А ты расскажи плиз, софт полностью сам "сочинял" или какие то уже готовые библиотечки для ардуино использовал?
    Если есть библиотеки, брось ссылочкой плиз.

  33. #70

    Регистрация
    09.03.2010
    Адрес
    Киев, Украина
    Возраст
    38
    Сообщений
    144
    Цитата Сообщение от V_Alex Посмотреть сообщение
    Э-э-э, зачэм абижаишь, дарагой .
    Вот БАНО на attiny 13A:

    Наружу выходят 4 канала до 500 мА каждый.
    Не хотел никого обидеть, разница в 2 грамма но функционал... хотя размер у вас меньше, как же так с весом получилось? Там на другой стороне ТО-220?
    Я рассматривал тиньки, но у них каналов крайне мало, так что простой свет - да, но развития в этой платформе нет, разве что с переходом на тини2324 - а она по цене такая же как и АТмега168, при этом у атмеги ног больше, шимов больше, прерываний больше... управление питанием лучше... в общем, я что-то упускаю из виду?

    Цитата Сообщение от Probelzaelo Посмотреть сообщение
    А ты расскажи плиз, софт полностью сам "сочинял" или какие то уже готовые библиотечки для ардуино использовал?
    Если есть библиотеки, брось ссылочкой плиз.
    Библиотек для ардуины готовых нет, так что "сочинял" сам...
    Хотя для бузера, скорей всего, будет использована либа Tone - есть во всех поставках Arduino IDE, там же и пример использования. Если не придумаю как прокачать пьезо элемент менее обьемным способом.

    Есть еще мысль добавить сенсор для батарейки и передатчик на землю, вот сейчас раскуриваю передачтик на 433 мгц, маленький и легкий, вот только пока не поддается укращению

  34. #71

    Регистрация
    09.08.2003
    Адрес
    Москва
    Возраст
    54
    Сообщений
    8,120
    Цитата Сообщение от eliash Посмотреть сообщение
    Не хотел никого обидеть, разница в 2 грамма но функционал... хотя размер у вас меньше, как же так с весом получилось?
    4,7 грамма плата с проводком и 1,2 грамма - коробочка.

    Цитата Сообщение от eliash Посмотреть сообщение
    Я рассматривал тиньки, но у них каналов крайне мало, так что простой свет - да, но развития в этой платформе нет, разве что с переходом на тини2324 - а она по цене такая же как и АТмега168, при этом у атмеги ног больше, шимов больше, прерываний больше... управление питанием лучше... в общем, я что-то упускаю из виду?
    Упускаете. Вообще-то, Вы делали БАНО. С соответствующим функционалом. Я просто показал, что именно этот функционал реализуется намного проще и дешевле. Ваша платформа дает намного больше возможностей, но то,что Вы затеяли сейчас, уже больше похоже на телеметрию .

  35. #72

    Регистрация
    09.03.2010
    Адрес
    Киев, Украина
    Возраст
    38
    Сообщений
    144
    Цитата Сообщение от V_Alex Посмотреть сообщение
    Упускаете. Вообще-то, Вы делали БАНО. С соответствующим функционалом. Я просто показал, что именно этот функционал реализуется намного проще и дешевле. Ваша платформа дает намного больше возможностей, но то,что Вы затеяли сейчас, уже больше похоже на телеметрию .
    Ну БАНО как первый шаг к "бортовому компьютеру" и как знакомство с технологиями, я раньше с микроконтролерами дела не имел, надо было с чего-то начинать. Хотя да, я когда от беты пришел к первой версии, то пришлось запаять мосфеты по 4,1А на нагрузку, так как через микруху прокачать можно максимум 40 ма на порт и 200 на все порты в сумме, и когда получилось выходных 3 канала то можно было б заменить тинькой, но без ШИМ... А с сильными диодами надо регулировать яркость, иначе если близко летаешь - глаза выедает...

    Ну телеметрия - это громко сказано, я всего лишь хочу получить контроль над зарядом батареи (6 резисторов на 3S и 3 аналоговых порта) да пару градусников поставить DS18B20 чтоб за регулем присмотреть. Ног много, чего добру пропадать, увеличение схемы - только второй этаж коробочки сделаю двухсторонний и окуратней будет и по весу может добавит пару грамм...

  36. #73

    Регистрация
    02.03.2011
    Адрес
    Санкт-Петербург, Оренбург,
    Возраст
    50
    Сообщений
    3,035
    Библиотечки/примеры и тп есть, я уже копал, просто мне интересно было чем то из этих пользовался или нет, потому и спрашивал. Я недавно этой темой интересовался вот кое что нашлось, загляни может быть черпнешь полезного от импортных сотоварищей, тем более там есть ссылочки на очень похожие работки и что приятно включая програмство

    http://aeroquad.com/showthread.php?5...IY-PPM-Encoder....
    http://diydrones.com/profiles/blogs/...-ardupilotmega
    http://diydrones.com/profiles/blogs/...BlogPost:38393
    http://aeroquad.com/showthread.php?2...t-with-arduino
    в посту #2 ответ совершенно по теме

    а это, просто из раздела интересное, по близкой теме
    http://www.arduino.cc/cgi-bin/yabb2/...1193927390/all
    http://www.arduino.cc/cgi-bin/yabb2/...num=1262479982

  37. #74

    Регистрация
    17.02.2008
    Адрес
    Москва
    Возраст
    38
    Сообщений
    293
    Цитата Сообщение от eliash Посмотреть сообщение
    Библиотек для ардуины готовых нет, так что "сочинял" сам...
    Я хочу собрать на arduino небольшой девайс для контроля бензинового двигателя. Мне надо считывать с приемника один канал(PWM) постоянно, и параллельно с пары датчиков. Не знаю как лучше читать с приемника, может покажите свой кусок кода по чтению сигнала с приемника?

  38. #75

    Регистрация
    09.03.2010
    Адрес
    Киев, Украина
    Возраст
    38
    Сообщений
    144
    Цитата Сообщение от Probelzaelo Посмотреть сообщение
    Библиотечки/примеры и тп есть, я уже копал, просто мне интересно было чем то из этих пользовался или нет, потому и спрашивал.
    Ну я тоже гуглил, и много чего успел пересмотреть и прочитать, там главное концепцию понять - а дальше чужой код не всегда хорошо
    Кстати я тоже заметил, что буржуи намного больше кода публикуют на форумах, чем у нас... У нас если прогер написал 10 строк - то уже горд собой и ни с кем делиться не хочет, за исключением небольшого количества нормальных людей.
    Да у них есть где подсмотреть...
    я больше с серво-прокси смотрел, там хороший вариант захвата ппм с определением длины сигнала, но там тоже нет фильтрации помех, а я заметил что помех принимает и отдает приемник не мало, так что надо фильтровать все что меньше 0,9мс...

    Цитата Сообщение от Bare Посмотреть сообщение
    Я хочу собрать на arduino небольшой девайс для контроля бензинового двигателя. Мне надо считывать с приемника один канал(PWM) постоянно, и параллельно с пары датчиков. Не знаю как лучше читать с приемника, может покажите свой кусок кода по чтению сигнала с приемника?
    А можно больше информации? Дело в том, что с приемника PWM не идет... идет PPM и в начале темы есть мой код считывания.
    Если вам надо получить данные от двух или более датчиков - то надо их опрашивать по очереди. если они не умеют сами постить данные по какому-нибудь протоколу (I2C,1wire,2wire)

  39. #76

    Регистрация
    02.03.2011
    Адрес
    Санкт-Петербург, Оренбург,
    Возраст
    50
    Сообщений
    3,035
    Ясен, перец, что в чужих кодах только редкие мысли...

  40. #77

    Регистрация
    17.02.2008
    Адрес
    Москва
    Возраст
    38
    Сообщений
    293
    Цитата Сообщение от eliash Посмотреть сообщение
    А можно больше информации? Дело в том, что с приемника PWM не идет... идет PPM и в начале темы есть мой код считывания. Если вам надо получить данные от двух или более датчиков - то надо их опрашивать по очереди. если они не умеют сами постить данные по какому-нибудь протоколу (I2C,1wire,2wire)
    Я наверно не правильно выразился. Я считал что когда идет сразу несколько каналов с одной шины ( например тренерский разъем на передатчике) это PPM, а если снимается конкретный канал с разъема приемника (куда подключается серва), то там PWM. К ардуине я буду подключать 2 сервы и два канала с приемника, полюс датчик холла. С датчика холла я хочу считать импульсы через счетчик повешенный на прерывание. Еще одно прерывание буду использовать для таймера. Вот и кончились внешние прерывания. В связи с этим, негде взять еще 2 прерывания, для двух каналов, для чтения сигнала с приемника. Смотрел исходники AeroQuad, там вроде они читают сразу с четырех или более каналов , параллельно меняя вектора прерывания. Ном там все так сильно завязано на другой код и куча классов, что я не смог разобраться.

  41. #78

    Регистрация
    18.10.2011
    Адрес
    Самара
    Возраст
    47
    Сообщений
    81
    Цитата Сообщение от eliash Посмотреть сообщение
    А можно больше информации? Дело в том, что с приемника PWM не идет... идет PPM и в начале темы есть мой код считывания.
    Ну у кого что приемником называется. Если это приемник на выходе которого готовые каналы (модуль приемника с N-каналами), то в каждом канале PWM.
    Если это кусок электронной схемы на входе которой антенна, а на выходе не демультиплексированный на каналы низкочастотный сигнал, то это PPM (или PCM)

  42. #79

    Регистрация
    17.02.2008
    Адрес
    Москва
    Возраст
    38
    Сообщений
    293
    Вот кусок кода AeroQuad (Receive), читают и ppm и pwm. А вот как от туда выдернуть только нужное, я не знаю.
    Вложения

  43. #80

    Регистрация
    18.10.2011
    Адрес
    Самара
    Возраст
    47
    Сообщений
    81
    Ну вроде примеров для оцифровки PPM хватает. Есть проекты PPM-> USB (для симуляторов), вот простой:
    https://github.com/thomaspfeifer/PPM...rchives/master

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

Похожие темы

  1. Ответов: 423
    Последнее сообщение: 14.08.2014, 10:04
  2. Фиксированная скорость нарастания сигнала PPM
    от АДэшник в разделе Самодельная электроника, компьютерные программы
    Ответов: 3
    Последнее сообщение: 16.05.2011, 17:36
  3. Продам Приемник "Pilotage-6 Digital", 40MHz, FM, микро, 6 каналов
    от Bizon в разделе Барахолка. Аппаратура
    Ответов: 4
    Последнее сообщение: 15.02.2011, 11:03
  4. RSSI сигнал на приёмнике 1.2 ГГц
    от =FLY= в разделе Полеты по камере, телеметрия
    Ответов: 9
    Последнее сообщение: 13.02.2011, 17:10
  5. PWM, PPM, частоты
    от ultrablox в разделе Новичкам
    Ответов: 10
    Последнее сообщение: 22.10.2010, 16:35

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

Ваши права

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