Специальные цены   новые товары
Закрытая тема
Показано с 1 по 11 из 11

Вопрос по ик-управлению

Тема раздела Аппаратура радиоуправления в категории Cамолёты - Общий; Если кто собирал ИК-упрвление для комн. самолетов подскажите: 1) Не могу подобрать аналог м/сх LTC3200-5 в приемнике (преобразователь 3V в ...

  1. #1

    Регистрация
    12.05.2005
    Адрес
    г. Северодвинск
    Сообщений
    12

    Вопрос по ик-управлению

    Если кто собирал ИК-упрвление для комн. самолетов подскажите:
    1) Не могу подобрать аналог м/сх LTC3200-5 в приемнике (преобразователь 3V в 5V). Вроде что-то есть у MAXIM, но на вых. ток 100mA у подобной м/сх получается приличная по весу 'обвеска' др. деталями. А может и без м/сх моно ?
    2) Начал писать прогу для PIC, но не совсем понятно с программной точки зрения, как в том-же приемнике (а точнее в PIC контроллере) происходит одновременно прием РРМ сигнала и формирование 3-х выходных сигналов ШИМ ?

  2.  
  3. #2

    Регистрация
    07.08.2001
    Адрес
    Воронеж
    Возраст
    58
    Сообщений
    4,397
    Записей в дневнике
    4
    1.Лучше подобрать контроллер, работающий напрямую от одного литиевого элемента. Такие есть. Или подобрать чип преобразователя DC-DC на сайте irf.com Их преобразователи чаще встречаются в наших магазинах.
    2. Программируемые счетчики формируют ШИМ. Импульс - число. Что непонятно то?

  4. #3
    Давно не был
    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    39
    Сообщений
    3,117
    Цитата Сообщение от Лом
    2) Начал писать прогу для PIC, но не совсем понятно с программной точки зрения, как в том-же приемнике (а точнее в PIC контроллере) происходит одновременно прием РРМ сигнала и формирование 3-х выходных сигналов ШИМ
    Минутку, а зачем одновременно-то? Приходит пачка импульсов, первый импульс без изменения на первую машинку, как только он кончился - второй импульс на вторую машинку. Просто своеобразный коммутатор. По-моему так. То есть импульсы на машинки идут не одновременно, а как-бы со сдвигом по времени на величину одного канального импульса. Ну это самый простейший вариант.

  5. #4

    Регистрация
    12.09.2002
    Адрес
    Балашиха
    Возраст
    45
    Сообщений
    1,482
    Записей в дневнике
    2
    Ну а если хочется "одновременно" и имелся в виду ШИМ на вариаторы, то тоже проблем особых нет. PPM сигнал заводится на вывод контроллера. Пишем обработчик прерывания по изменению сигнала на этом выводе. Измеряем длину импульса таймером. В основном теле программы в цикле генерируем ШИМ либо программно, либо аппаратно, если контроллер позволяет, тут вообще ничего сложного...
    Если есть второй таймер, можно его использовать для формирования длительностей сигналов ШИМ.
    То ли здесь, то ли на RCGroups, уже обсуждались способы. Можно посмотреть исходники спид-контроллеров. Период у всех 3-х ШИМ-сигналов делаем одинаковым. А длительности "сортируем" по возрастанию. "Включаем" все выводы ШИМ, задержка по длительности самого короткого импульса, "выключаем" вывод, затем задержка на разницу в длительности между самым коротким и следующим импульсом, "выключаем" следующий вывод, и т.д. до последнего. Задержки делаем либо таймером, либо программно.
    Вот так, вкратце.

  6.  
  7. #5
    Давно не был
    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    39
    Сообщений
    3,117
    Цитата Сообщение от romychs
    То ли здесь, то ли на RCGroups, уже обсуждались способы. Можно посмотреть исходники спид-контроллеров. Период у всех 3-х ШИМ-сигналов делаем одинаковым. А длительности "сортируем" по возрастанию.
    Работать, конечно, будет, но этот вариант значительно сложнее и больше годится для pcm. Поясню. Мы сначала должны все импульсы в пачке измерить, затем мы длительности передаем блоку, который отвечает за отсыл. Получается задержка на длительность пачки. В pcm пока мы всю пачку не расшифровали, все равно ничего слать не можем. А в моем случае все можно сделать в одном простом цикле на самом простейшем контроллере, без прерываний, безничего, даже без таймера:

    Код:
           ; самый простейший вариант для примера
    
           ; три ноги контроллера - три выхода на машинки
           ; pin[0] - 1 канал
           ; pin[1] - 2-ой и так далее
    
              ; все выходы в 0
               zero_all_pins;
              ; зашкаливаем счетчик каналов
               counter = 255;
              ; если это 1, 2 или 3 канал, то их нужно направлять на машинки
    @@01:     if (counter < 3) then goto @@2;
              ; если 4 и больше, то ждем следующую пачку
    @@03:     skip_channels_waitsynchropause;
              ; первый импульс в пачке имеет 0 индекс
               counter = 0;
              ; ждем передний фронт импульса, то есть ждем на входе 1
    @@02:     wait_impulse_front;
              ; как дождались тут же ставим 1 в текущем выходе
               pin[counter] = 1;
              ; проверяем в цикле наличие заднего фронта импульса (было 1 станет 0)
    @@04:     if not (check_impulse_rear) then goto @@05;
              ; проверяем, не слишком ли длинный канальный импульс   
               if not (current_impulse_too_long) then goto @@04
              ; если слишком длинный, то либо помеха либо синхропауза
              ; сбрасываем все, переходим на ожидание начала пачки
               pin[counter] = 0;
               goto @@03;
    
              ; устанавливаем текущий выход в 0       
    @@05:     pin[counter] = 0;
              ; следующий выход
               counter = counter + 1;
              ; и так до бесконечности
               goto @@01;
    годится практически без изменений для четырехканалки и выше

  8. #6

    Регистрация
    12.09.2002
    Адрес
    Балашиха
    Возраст
    45
    Сообщений
    1,482
    Записей в дневнике
    2
    Да, я понял, это если мы делаем просто дешифратор. Та схема, которую он привел, расчитана на использование актуаторов, т.е. это не просто дешифратор, ему нужен на выходе не один серво-импульс а готорый ШИМ сигнал. Т.е. грубо - реверсивный 3-х канальный спид-контроллер со встроенным дешифратором..

  9. #7
    Давно не был
    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    39
    Сообщений
    3,117
    Ну тогда конечно, программа сильно усложняется. Если так, то еще обратная связь от потенциометров сервомоторов... то есть приемник, спид-контроллер плюс две сервы и все-в-одном получается?

  10.  
  11. #8

    Регистрация
    12.09.2002
    Адрес
    Балашиха
    Возраст
    45
    Сообщений
    1,482
    Записей в дневнике
    2
    Раз уж автор молчит... Будем считать, что он все же актуаторы использует. Там просто магнит помещен внутрь катушки, поворачивается пропорционально полю -> току в катушке -> скважности ШИМ. С ними обратная связь не нужна. Ну не то, чтоб не нужна, просто сложно что либо простое придумать, учитывая габариты актуатора и его вес, это же всё микрофлай, летающие граммы . Там на сколько получится, на столько и отклонится.

  12. #9
    Давно не был
    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    39
    Сообщений
    3,117
    Цитата Сообщение от romychs
    Будем считать, что он все же актуаторы использует.
    Блин! Я тормоз!!! Прошу прощения за свое невежество, просто у меня почему-то засело в голове что катушка с магнитом - это дискретное управление. Микросайзеров насмотрелся. )

  13. #10

    Регистрация
    12.05.2005
    Адрес
    г. Северодвинск
    Сообщений
    12
    Цитата Сообщение от romychs Посмотреть сообщение
    Раз уж автор молчит... Будем считать, что он все же актуаторы использует. Там просто магнит помещен внутрь катушки, поворачивается пропорционально полю -> току в катушке -> скважности ШИМ. С ними обратная связь не нужна. Ну не то, чтоб не нужна, просто сложно что либо простое придумать, учитывая габариты актуатора и его вес, это же всё микрофлай, летающие граммы . Там на сколько получится, на столько и отклонится.
    Совершенно так! Именно это я и хочу сделать (в принципе и по схеме понятно).

    Вот и получается заморочка, что сигналы ШИМ должны постоянно идти на актуаторы с некоторой частотой (на форуме ссылались на www.Didel.com ,ШИМ актуаторов 5кГц, двигателя - 3кГц). Но при этом непонятно как одновременно (опять это противное слово) с этим мы еще и входной сигнал PPM 'расканаливаем' ? По раздельности это сделать не проблема. ШИМ на выходах - прерывание по таймеру с периодом 0,2мс (5кГц) - что надо в прерывании выставил, счетчик в этом прерывании отматывает необходимый импульс(соотношение 1/0) и все!
    Сигнал на входе - прерывание по фронту, либо как выше - смотреть вход через некоторые промежутки времени.
    Но совместить эти события в одну прграмму не выходит !

  14. #11
    Давно не был
    Регистрация
    02.08.2002
    Адрес
    Москва
    Возраст
    39
    Сообщений
    3,117
    Цитата Сообщение от Лом
    Но при этом непонятно как одновременно (опять это противное слово) с этим мы еще и входной сигнал PPM 'расканаливаем' ?
    Входные импульсы измеряете как в моем примере. Вместо pin[counter] = 1 запоминаете значение таймера, вместо pin[counter] = 0 из запомненного значения вычитаете текущее значение таймера - получаете длительность канала.

    Все три шима формируете, к примеру, как написал romychs - прочтите его пост внимательно. Реальзовать то, что он предложил, можно, к примеру, так. На этапе инициализации программируете прерывание второго таймера. При его срабатывании берете самую маленькую длительность из измеренных. Тут же в прерывании перепрограммируете таймер на его длинну и включаете 1 во всех трех выходах. Когда он сработает, перепрограммируете таймер на разницу между самым коротким и средним импульсом, сбрасываете 0 на выходе, которому соответствует самый короткий импульс. В следующее срабатывание прерывание таймера программируете его на следующую разницу и сбрасываете в 0 текущий выход. В конце перепрограммируете таймер на разницу между самым длинным импульсом и периодом шим.

    Таким образом получается два "параллельных" процесса: в основном цикле крутится измерение длительностей импульсов. Постоянно перепрограммируемое само в себе прерывание таймера формирует все три (или сколько надо) ШИМ-ов, это второй "параллельный" процесс.

    Тут главная засада будет в передаче измеренных импульсов в процесс формирования ШИМ'а. После того как все три выходных импульса выданы и таймер программируем на паузу, нужно взять из памяти все три измеренных значения канальных импульсов, положить их в другое место в памяти и отсортировать (и запомнить какой импульс к какому каналу относится). Иначе возникнет путаница.

    Добавлено

    А там вообще-то по той ссылке, что вы привели в первом посте, была прошивка... Зачем велосипед-то изобратать? Три варианта прошивки: futaba/hitec, jr, sanwa. Если хочется написать самому, то можно взять эту прошивку за основу.

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

Похожие темы

  1. ИК-управление
    от DvL в разделе Микро и комнатные самолеты
    Ответов: 143
    Последнее сообщение: 26.02.2011, 19:56
  2. вертолет на ик управлении(китайчонок)
    от rexton в разделе Новичкам
    Ответов: 33
    Последнее сообщение: 12.01.2010, 22:15
  3. ик-управление. Есть подвижки...
    от Лом в разделе Аппаратура радиоуправления
    Ответов: 11
    Последнее сообщение: 24.10.2005, 23:46
  4. ик-управление для комнатной
    от Лом в разделе Аппаратура радиоуправления
    Ответов: 5
    Последнее сообщение: 22.08.2005, 09:33

Ваши права

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