Распознавание канальных импульсов микроконтроллером
Привет
Я делал подобную штуку ,правда совсем для других целей - лень было лишние провода тащить от приемника а хотелось в джипе стопы поворотники итд включать - в итоге отрезал в 118 приемнике вход DSC и сделал из него выход комплексного сигнала а в контроллере его разбирал
и всем управлял (втч и машинками)
могу программку на С послать (AVR)
Best Regards
Evgeny
Вот и славненько что дискуссия закончилась, она и не нужна была.
Вся соль заключалась в самом первом вопросе, а не в последующих идеях, о них даже вспоминать пока не станем. Мне нужен был совет опытного embedded программиста. Пока пришёл к выводу, что одним простым MCU, даже вроде PIC16F877 или AT90S8535, тут можно и не обойтись. Смысл затеи был в том, что бы устройство контролирующее импульсы, в минимальном случае исполняющее FailSafe режим, подключалось к имеющимся FM приёмникам без внутреннего вмешательства. Т.е. целиком самостоятельное устройство, имеющее к примеру 8 входов и 8 выходов. Трудность в одновременном измерении длительности входных импульсов и формировании исходящих. Со входом оказалось проще простого. Казалось бы, подключил на прямую входы к 8-ми ногам MCU и работай. 😉 Не тут то было. Таймерных входов имеем обычно один или два, в случае 16F877 один вход 16-bit и два 8-bit. 16-bit вполне подойдёт, но он один. Уже по этому поводу можно призадуматься крепко. Решение оказалось простейшим. Импульсы то идут последовательно, и объединив все сигнальные провода через диоды, получаем один последовательный сигнал. Теперь значения каждого следующего импульса можно измерить и работать с этими данными далее. Ок. С этим разобрались. Вопрос определения ошибочных входных импульсов тоже решается. Осталось определиться с формированием исходящих 8-ми сигналов, одновременно при обработке входящих. На этом месте и стопорюсь. Контроллер такого уровня, при работе таймера, не может заниматься другими задачами. Тут уж или выбор другого MCU (какого ?), или использование двух независимых. Выслушаю любые конструктивные предложения по выбору контроллера и решению задачи в целом.
Glider
Не надо путать цели и задачи спортивно-хоббийного моделизма и устройств специального применения. В моделизме весь “цимес” в том, чтобы САМОМУ управлять моделью, а “терц” в том, чтобы уметь “вытащить” ее из любой ситуёвины и вернуть живой и здоровой “к ноге”!
Поскольку не спортсмен, ничего не скажу о спортивном моделизме, но рамки хоббийного моделизма так ограничивать не стал бы. Потому как для кого “цимес” в том, чтобы летающую табуретку “уметь “вытащить” из любой ситуёвины и вернуть живой и здоровой “к ноге””, для кого то - наслаждаться полетом по прямой супер копии “Геркулеса”, а кто то получает удовольствие от того что его модель (причем неважно - табуретка или “Геркулес”) сама взлетела и сама села с помощью им же разработанного ХОББИЙНОГО устройства. (надеюсь не задел ничьих хоббийных или более того спортивных чувств).
Кстати например почему бы не сказать что укороченная антенна в моделизме неприемлема, т.к. “терц” в том, чтобы управляя моделью одновременно не выколоть глаз соседу. Я преувеличил для наглядности, опять же не хотел никого обидеть и антенной пользуюсь с большим удовольствием.
По вопросу:
Осталось определиться с формированием исходящих 8-ми сигналов, одновременно при обработке входящих. На этом месте и стопорюсь. Контроллер такого уровня, при работе таймера, не может заниматься другими задачами. Тут уж или выбор другого MCU (какого ?), или использование двух независимых.
Вывести несколько разных сигналов можно при помощи 1го таймера(из процедуры обработки прерывания таймера) просто управляя портами как I/O, для каждого организовав внутри программный таймер с требуемой резолюцией. Итак 1 таймер на захват сигнала, один на формирование причем оба с разрядностью даже и в 8 бит. Главное, чтобы прерывания были например сажем микросекундные(для милисекунды минимального пульса PPM будет хорошая резолюция). А вот хватит ли оставшегося времени на обработку зависит от сложности ее алгоритма.
У меня где то были описания подобных устройств, правда на 1 канал и более примитивных но всетаки на процессоре (все нашел в И-нете). Будут вопросы - пиши на e-mail. Не будем мозолить глаза дядьке Глайдеру 😉
с pic контроллерами я не пробовал, а пробовал с 1878ве1 ( примерно так он назывался точно не помню ). Поскольку входные импульсы идут последовательно ( по времени) я использовал входные порты и внутренний таймер. По входам делал прерывания по фронту и срезу сигнала. По фронту сбрасывался и запускался таймер и по чтению из порта определялось какой из каналов выдал импульс, по срезу останавливался таймер и читалось его значение и по нему определялась длительность соответствующего импульса.
Что касается выдачи импульсов - здесь вроде как не должно быть проблем. Дело в том что общая длительность входных импульсов ( зависит от количества каналов) меньше чем период молчания между сериями импульсов. Поэтому сформировать их можно и без использования таймера с помощью программных задержек.
Т.е. общий алгоритм следующий: читаются входные импульсы ( вышеописанным способом ) потом когда они закончатся формируются выходные. Далее процесс повторяется.
To Dmitry: абсолютно верно!
To DjAndy: мне кажется, Вы не с того конца взялись за проблему. Я этим вопросом интересуюсь много лет, но что такое датчик положения самолета - не понял. Если это не по принципу оптического автопилота, то что это? Поделитесь мыслями!
Мне кажется создание авто пилотов и подобных
приборов бессмысленое дело(правда очень интересное).
Гораздо важнее сделать очень надежную радио связь
с моделью, а уж если не смог модель спасти так полностью твоя вина.
Надежность можно повысить если поставить на модель
приемопередатчик и чтоб приемник работал не на 35 или 40,72 , а гдени буть повыше , да не на одной частоте а на каналах 40 чтоб если помеха мог переключаться.
Суважением Сергей!
Мужики, вы толко не кипятитесь! Проблема серьезная, и дядька Глайдер, прав во многом. Проще научиться хорошо летать, как он сказал “к ноге…”. Подобный девайс, который бы сам “рулил” на простеньком PICе не соберешь… Уж слишком много если в данной проблеме. Но коль уж не терпится погрызть гранит данной проблемы, что ж, честь и хвала смельчаку! Может он и не соорудит ничего хоть отдаленно напоминающего подобный девайс, но наберется знаний это уже точно. А опыт есть сын ошибок в том числе, как классик правилно заметил, трудных. И данное замечание естественно распространяется и на обучение полетному “ремеслу” или хобби. Другое дело всякие там экстремальные девайсы летящие со скоростями эдак за 400 км/час. От таких полетов и чердак задыметь может и подобная техника сослужила неплохую службу. А на счет помех можно сказать одно: если они таковы что модель “кувыркается”, то нечего летать в этом месте и на этой частоте. Такую потерю сигнала уже не скомпенсировать подобными “умными” штуковинами. Так как при таком интеллекте отпадает сам вопрос в использовании передатчика как такового…
Вобщем, всем удачи! И не забывайте рассказывать народу о своих достижениях!
Вообщето микроконтролеры применяют для данных целей, но немного не так как обсуждается, имхо. Я больше склоняюсь к Глайдеру, но не полностью. Посмотрите на реализацию RX19 от Supertef, красиво и здраво. По моему ничего лишнего, и все в точку. Первое, управление синтезатором, второе подпись своего передатчика, и уже потом в случае пропадания сигнала некоторые действия по спасению модели, как то выключить двигатель, поставить по кругу и прочее. Идея сочетает как PCM так и PPM. Лично я сечас так и проектирую свой приемник, правда МК будет AVR.
К Евгению, если можеш, пришли мне свои исходники,
всякие идеи и реализации приветствуются. Я так-же собираюсь писать на С, в том числе и передатчик.
С ув. Александр
Привет
Насчет передатчика - не уверен что удастся создать свой что бы был лучше чем фабричный так как маленькие тонкости в них (коэффициенты всякие) подбираются годами
я всем ракомендую повторять FC18
нам стоит моторола hc08 которую сейчас можно купить и 2*16 индикатор
мой приятель собрал макет за день и все работает
прошивка от v3.2 у меня есть могу послать
Схему можно срисовать с передатчика
(надеюсь что у Уважаемого Glidera она уже срисована - я потерял бумажку)
В итоге получается реальный девайс (особенно если переделывать что нибудб типа старого Hitec что бы не заморачиваться с ручками и ВЧ)
Best Regards
Evgeny
/// To Glider у меня есть вкладыш с описанием дополнений
V3.1 и V3.2
…я всем ракомендую повторять FC18… прошивка от v3.2 у меня есть могу послать… Схему можно срисовать с передатчика (надеюсь что у Уважаемого Glidera она уже срисована - я потерял бумажку)…
To Glider у меня есть вкладыш с описанием дополнений
V3.1 и V3.2
Думаю, задача не очень простая для новичка, но вполне выполнимая.
У меня, к сожалению, схемы нет - не было необходимости срисовывать. 😦
Описание релизов V3.1 и V3.2, и тем более - прошивки очень интересуют, буду признателен, если поделитесь.
…я всем ракомендую повторять FC18… прошивка от v3.2 у меня есть могу послать…
--------
Буду весьма признателен за прошивку и описание релизов.
Вот только проблема со схемой, я не имею доступа к FC18 😦 Может кто имеет?
В принципе я заморачиваюсь со своим передатчиком потому что хочу иметь свои исходники, развивать легче и не зависишь от разработчика. По этому поводу думал повторить MS2000, там весьма подробно изложен алгоритм работы кодера, но на другом процессоре.
С ув. Александр