из одного аналогового канала сделать несколько дискретных

Aleksey_Gorelikov

Блин, скоро каждую неделю будут об этом спрашивать… 😦
Поиск, поиск, и еще раз поиск.
К примеру:1. rcopen.com/forum/f8/topic197662
2. rcopen.com/forum/f8/topic163804
3. rcopen.com/forum/f87/topic153744
4. rcopen.com/forum/f8/topic121688
Ну и продолжать можно до бесконечности… Кончатся темы на этом сайте - можно и погуглить… 😃
Удачи!

З.Ы. Учу поиску. Дорого!

Pacific
Aleksey_Gorelikov:

Блин, скоро каждую неделю будут об этом спрашивать… 😦

Спасибо!
значит актуально, если спрашивают …
я вот так и не нашел нужную схемку.
как правило, везде, где я нарыл, идет последовательный перебор каналов, т.е. независимо нажимать на кнопки низзя. Ну, и кроме того, на выходах декодеров стоят ключи, а мне хоцеццо ШИМку, чтобы сервой дергать😵.

Soling

А зачем ШИМ? Дискрет - оно есть или его нет нет.

Pacific
Soling:

А зачем ШИМ? Дискрет - оно есть или его нет нет.

Например, чтобы поворачивать сервой. Т.е. используется только 2 положения сервы.
Или для управления телеметрией. Насколько я понимаю, для управления телеметрией используются, как обычно пишут “каналы, не влияющие на управление”. А так можно будет на один аналоговый канал повесить и управление телеметрией и еще чего-нить.
Поправьте, если я неправильно что-то понимаю.

Aleksey_Gorelikov

Схема простая: Микроконтроллер. На одну ногу вход, на остальные - выход. Ну и питание не забыть. 😃 Реализация - на вкус и цвет. Ну вход можно по “инпут капче”, или прерывание + таймер. Выход - либо таймер + дергать ногами “ручками”, либо брать мк с кучей шим.

Как сделать первое - смотреть в примерах. Как последнее - в “самодельный передатчик”. В дебри лезть не обязательно, найдите самый первый вариант Фокуса на меге16. Там разбираться проще. Вот и все.

Pacific
Aleksey_Gorelikov:

Вот и все

Вот то-то и оно

Soling

Ну, реализация на микроконторллере, само собой. Не на россыпи же городить.
Алгоритм тоже понятен: в передатчике магазин резюков, формирующих импульсы калиброванной длительности. В декодере прога анализирует эту длительность и выдает сигнал на нужный выход. ШИМ не нужен, так как та же прога может легко выдавать импульс нужной длительности. А для “включить - выключить” и этого не надо. Достаточно ключа.
А ШИМ обычно применяют для регулировки мощности. Тут этого не надо.

ubd

То что вы ищите, не найдёте. Схем таких не видел да же. То что перебирает каналы последовательно, этого море. За частую этого достаточно для реализации каких либо потребностей.
На Футабах такая тема есть. Но как там реализованно, я да же и не понял. Типа канальный импульс как то делиться ещё на 8, и они пропорциональны при этом. Получается из одного канала делается 8 дискретных или пропорциональных. В зависимости от типа модуля. Но у пропорциональных, появляется недостаток - снижается точность дискретизации.
Но как это реализованно схемотически, не могу сказать. Такое ощущение, что если установить такой модуль на какую то другую аппу, он там работать не будет. Там видимо сам кодер адаптирован, для подключения таких модулей.

DD

Реализовать такое не очень сложно, допустим офицровываем импульс с приемника с разрядностью 8 бит, что позволяет получить 8 дискретных каналов, то есть если бит в в байте стоит, то канал включен, в передатчике ставим как тут уже сказано цап на r-2r с 8 переключателями. По идее все должно работать, тока вот точность сопротивлений в цапе должна быть большой иначе надо будет какую нибудь калибровку придумывать

Aleksey_Gorelikov

Если отвязаться от идеи R-2R, то все гараздо проще. Что мешает гнать по этому каналу цыфру и на приемной стороне дешифровать? Ну с теми же стандартными декодерами ппм чтобы не попасть - крайние положения - 0 и 1. И последовательно передавать… Или, разбить диаппазон на 4 положения и 00-01-10-11. Для надежности, можно и контрольную сумму, и избыточность ввести.

Soling
Aleksey_Gorelikov:

Что мешает гнать по этому каналу цыфру и на приемной стороне дешифровать?

Формат мешает. Декодер читает длительность импулса. По его окончанию считает, что пошел другой канал. Набивать цифирь какой то другой модуляцией - головная боль. Так что матрица проще. Недостаток - возможность использовать одновременно только одну дискретную команду. Но, это тоже можно обойти, усложнив кодер.
Например, передавать в одной пачке только инфу по одному из, скажем 8 резисторов. В следующей посылке, другой. И т.д. То есть, разнести все по времени.
А в приемнике пытаться без ошибок причитать всю эту кашу. Или, уж пойти дальше и заставить формировать импульс по этому каналу процессор.

Aleksey_Gorelikov

Так я ж и предложил принять одну длительность за 0, другую за 1. А в доп-декодере (который втыкается в разъем серво) читать последовательность и рулить чем-то. Какой формат то мешает???

Soling

На каждый канал выделен один импульс. В простейшем случае управления одним дискретным каналом так и делают. Минимальный сигнал “0” - выключено, максимальный “1” - включено. Но, речь идет о нескольких дискретных механизмах управляемых по одному пропорциональному каналу. Это можно сделать разбив максимальную длительность импульса на несколько фиксированных по длительности. А как передать цифрой в одном импульсе, что надо включить 5ую серву?

Aleksey_Gorelikov

Обычно в тех каналах, где сервы дискретно двигаются - быстродействие не нужно… Ну и пусть декодер переместит 5-ю серву при получении последовательности следующих “канальных” импульсов: 11111111 1001 1 К примеру… ну первых 8 бит для синхронизации, потом номер машинки, потом - ее положение. Ну да, не в одном пакете ППМ передали инфу, но для дискретных каналов задержка в четверть секунды не критична.
З.Ы. пример не очень удачен, т.е. синхронизация может сбиваться. Ну еще 4 нуля в конце передать, к примеру. 😃 Или какие-нибудь известные протоколы повторить…

Soling

Можно график? Боюсь так не разберемся. 😃 Лучше один раз увидеть. 😃

Aleksey_Gorelikov

Что увидеть? что в девяти пакетах ППМ канальный импульс имеет длительность 2мс, потом в двух пакетаз он же 1мс, и еще в двух снова по 2мс? 😃

Soling

Понял. Это то, о чем я писал. Разнос по времени. Но, засада в том, что надо как то надежно обозначить начало пакета. В самом формате используют синхропаузу. А как тут? Можно, конечно, сделать самую короткую посылку синхронизирующей. Но, вдруг, помеха и она пропала? Практически в двое снижается стойкость к помехе.
Хорошо ли?

Aleksey_Gorelikov

Ну я привел пример элементарный. Синхронизироваться по 4 нулям+8 единицам. Последовательность не повторится. Можно посмотреть, что изобрел тот же граупнер\футабы\мульиплекс… ВРоде тут проект расширения каналов с исходниками www.toeging.lednet.de/flieger/profi/…/nautic.htm Думаю принцип тот-же. Сам не смотрел. Только что нагуглил. Удачи!

Soling

То есть, потерять время N полных пропорциональных пакетов только на синхронизацию? Жалко. 😃

msv

Цифовых протоколов можно напридумывать массу… Или в каждой посылке передавать адрес (номер дискретного канала)+ значение по этому каналу, или передавать признак цикловой синхронизации, затем в нескольких пакетах данные по каналам, ну и закончить цикл для приличия CRC. У всех способов кодирования будут свои очевидные достоинства и недостатки, но главная проблема, что требуется доработка кодера… Если для меня и Алексея это не проблема 😉, то для топикстартера (если он хочет использовать готовую аппу с мин. переделками) действительно проще хотя бы на резисторах ЦАП слепить. В этом случае следует помнить, что канальный интервал будет сокращаться с ростом кол-ва каналов в геометрической прогрессии, и надежное декодирование, во всяком случае с аналоговым каналом связи, будет нереально…

Soling

Согласен. Увлеклись. Реальнее, все же на резисторах остановится. Иначе нужны серьезные переделки.