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

romychs

Да, я понял, это если мы делаем просто дешифратор. Та схема, которую он привел, расчитана на использование актуаторов, т.е. это не просто дешифратор, ему нужен на выходе не один серво-импульс а готорый ШИМ сигнал. Т.е. грубо - реверсивный 3-х канальный спид-контроллер со встроенным дешифратором…

toxa

Ну тогда конечно, программа сильно усложняется. Если так, то еще обратная связь от потенциометров сервомоторов… то есть приемник, спид-контроллер плюс две сервы и все-в-одном получается?

romychs

Раз уж автор молчит… Будем считать, что он все же актуаторы использует. Там просто магнит помещен внутрь катушки, поворачивается пропорционально полю -> току в катушке -> скважности ШИМ. С ними обратная связь не нужна. Ну не то, чтоб не нужна, просто сложно что либо простое придумать, учитывая габариты актуатора и его вес, это же всё микрофлай, летающие граммы 😃. Там на сколько получится, на столько и отклонится.

toxa
romychs

Будем считать, что он все же актуаторы использует.

Блин! Я тормоз!!! 😃 Прошу прощения за свое невежество, просто у меня почему-то засело в голове что катушка с магнитом - это дискретное управление. Микросайзеров насмотрелся. 😃)

Лом
romychs:

Раз уж автор молчит… Будем считать, что он все же актуаторы использует. Там просто магнит помещен внутрь катушки, поворачивается пропорционально полю -> току в катушке -> скважности ШИМ. С ними обратная связь не нужна. Ну не то, чтоб не нужна, просто сложно что либо простое придумать, учитывая габариты актуатора и его вес, это же всё микрофлай, летающие граммы 😃. Там на сколько получится, на столько и отклонится.

Совершенно так! Именно это я и хочу сделать (в принципе и по схеме понятно).

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

toxa
Лом

Но при этом непонятно как одновременно (опять это противное слово) с этим мы еще и входной сигнал PPM ‘расканаливаем’ ?

Входные импульсы измеряете как в моем примере. Вместо pin[counter] = 1 запоминаете значение таймера, вместо pin[counter] = 0 из запомненного значения вычитаете текущее значение таймера - получаете длительность канала.

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

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

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

Добавлено

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