[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: RD3AVJ 
Форум » форумы » В разработке » Радиоуправление RT5-433 RR10-433 Tiny13 (Устройство радиоуправления на Bascom)
Радиоуправление RT5-433 RR10-433 Tiny13
GSVДата: Суббота, 26.10.2013, 15:54 | Сообщение # 1
Группа: Проверенные
Сообщений: 31

Статус: Offline
Всем доброе время суток!Мой вопрос на первый взгляд уже сто раз задавали и до
меня, но мне полного ответа найти так и не удалось. Есть обычные радиомодули: передатчик RT5-433 и приемник RR10-433 от Telecontrolli. Хотелось бы сделать на Tiny13 простое устройство для радиоуправления нагрузками. Передавать  однобайтовый,или подобный  код кнопки на приемник. Приемник будет распознавать код и управлять портами. Передатчик использовать как с
кнопками, так и в режиме реагирования на изменение состояния пина. Например,пришел на пин высокий(низкий) уровень от какого-нибудь датчика, передатчик сформировал посылку и отправил, приемник принял и что-то включил(выключил). Идея
не моя и не нова, но реализации именно на Bascom  не нашел. RC5 в тини13 не влезает, а программный UART с радиомодулями  забивается шумами. Еще хотелось бы иметь возможность менять коды кнопок впередатчике(приемнике), чтобы повторить это устройство .Опыта программирования на Bascom у менясовсем мало, поэтому прошу подсказать как можно сделать отправку и прием кода (очень желательно в примерах), или поделиться ссылкой.

Схема примерно такая:
Прикрепления: 2362826.jpg(27Kb)




Сообщение отредактировал GSV - Суббота, 26.10.2013, 15:56
 
topДата: Воскресенье, 27.10.2013, 13:06 | Сообщение # 2
Группа: Друзья
Сообщений: 146

Статус: Offline
Система с АМ (Амплитудной модуляцией) получается. Канальное кодирование тоже имеет место. Предполагается АМ с пассивной паузой? Думаю стоит придумать формат посылки (преамбула, синхрослово, данные, контрольная сумма) и способ её распознавания в приемнике. Скорее всего у передатчика один вход, прямиком на модулятор. Если так то вывод данных можно осуществлять просто дергая ножкой МК согласно передаваемм данным. С приемом сложнее, т.к. нужна синхронизация. Способы есть, но они ведут либо к усложнению програмной начинки либо к схемотехническим изыскам.
Если сказанное мной окажется трудным для понимания, предлагаю последовательно, по порядку разбирать интересующие вопросы wink


 
GSVДата: Понедельник, 28.10.2013, 10:19 | Сообщение # 3
Группа: Проверенные
Сообщений: 31

Статус: Offline
Вы совершенно правы. Передатчик RT5-433 имеет амплитудную модуляцию и один вход, а приемник простой сверхгенератор с широкой полосой.Когда-то я пробовал делать прием/передачу на тоновом декодере LM567. Работало,но неустойчиво,потому что из-за температурной нелинейности компонентов частота все время плавала. Недавно пробовал делать передачу через программный UART.По проводам все работает.Хотел посмотреть что будет,если просто подключить эти радиомодули. Передатчик запитал отдельно,а приемник от usb, и с приемника вывел в терминал. На приеме все время в терминале бежит мусор, но когда жму кнопку передачи в этом мусоре вижу свою посылку,а выделить её из шума не могу.Еще повторял такую схему вот отсюда: http://cxem.net/rmodem/rmodem16.php
Только вместо передатчика из схемы использовал свои передатчик RT5-433 и приемник RR10-433. Все работало,да и схемотехника проста, но сделано это на пике и нет исходников, которые наверняка на си, а я и с Bascom на "ВЫ" с двух больших букв, не то что с си... Возможно формат посылки можно сделать не очень длинный,например,стартовый байт,код кнопки,сумма и в такой же последовательности дешифровать. Вот только как должно выглядеть в коде формирование посылки,выдача её на вход передатчика,принятие и снова разложение на составляющие мне пока не понятно. Хочется не повторять чужое,а понимать как это работает и сделать своё.Хоть и похожее,но своё smile
Прикрепления: 5049234.png(22Kb) · 3547172.png(12Kb)




Сообщение отредактировал GSV - Понедельник, 28.10.2013, 10:23
 
topДата: Понедельник, 28.10.2013, 12:30 | Сообщение # 4
Группа: Друзья
Сообщений: 146

Статус: Offline
Цитата GSV ()
На приеме все время в терминале бежит мусор, но когда жму кнопку передачи в этом мусоре вижу свою посылку,а выделить её из шума не могу.
К сожалению шумы удел не только аналоговых систем связи. Вон у самого система с ЧМн и посылка из двух синхробайт в начале пакета. Тем не менее шумы эфира с большим успехом "наводят" в антенне приемника точь в точь мое синхрослово и как итог проникновение случайных данных под видом валидных. 
Цитата GSV ()
Вот только как должно выглядеть в коде формирование посылки,выдача её на вход передатчика,принятие и снова разложение на составляющие мне пока не понятно.
В баскоме есть много функций для работы с последовательными интерфейсами. Те же shiftout и shift in. Но дело в том что в них как минимум надо две линии: такты и данные. UART в этом понимании верное решение - всего одна линия! Стоит проанализировать зависимость количества ошибок от скорости UART. Логично предположить что чем меньше скорость тем меньше ошибок. Скажем у меня при 2400 БОД "пролазило" на выходе приемника около 10-20 ошибочных байт в сутки. А при 19200 БОД - то же количество ошибочных байт но за один час. И фильтрация: на входе приемника поставить полосовой фильтр и хорошо бы второго, а то и третьего порядка. Ширина полосы пропускания фильтра выбирается исходя из скорости UART.


 
GSVДата: Понедельник, 28.10.2013, 16:08 | Сообщение # 5
Группа: Проверенные
Сообщений: 31

Статус: Offline
top,
Значит с  UART лучше не связываться? А как тогда можно  реализовать вот такой вариант?
Цитата top ()
вывод данных можно осуществлять просто дергая ножкой МК согласно передаваемм данным.
Ведь нужно только замодулировать несущую и на приеме должны получить то,что отправили.


 
topДата: Вторник, 29.10.2013, 09:57 | Сообщение # 6
Группа: Друзья
Сообщений: 146

Статус: Offline
GSV, как раз таки либо UART либо самостоятельно ножкой дергать)

 
GSVДата: Вторник, 29.10.2013, 11:23 | Сообщение # 7
Группа: Проверенные
Сообщений: 31

Статус: Offline
top, Значит дергать ножкой самостоятельно.Может направите меня,где можно доходчиво и с примерами изучить эту тему?

 
topДата: Среда, 30.10.2013, 15:47 | Сообщение # 8
Группа: Друзья
Сообщений: 146

Статус: Offline
GSV, собственно говоря задача сводится к изучению работы с портами ввода вывода) Как настроить порт на выход и выдавать в него 0 или 1 Вы знаете?

Вот из баскомовского хэлпа:
Прикрепления: 4317091.jpg(67Kb)




Сообщение отредактировал top - Среда, 30.10.2013, 15:48
 
GSVДата: Среда, 30.10.2013, 20:52 | Сообщение # 9
Группа: Проверенные
Сообщений: 31

Статус: Offline
top, Поискал еще информации на эту тему.Всё же большинство мнений за UART. Попробовал ещё раз программный UART, только немного усложнил посылку.Заработало,правда всего с одной кнопкой и несколько неустойчиво, но уже что-то.
По поводу портов.Как настроить порты я знаю, только не знаю какой командой выдать в порт сразу все биты посылки. Пробовал в цикле передавать массив,но не осилил.А пробовать по хелпу без более полных примеров не хватает времени,потому и хотелось заиметь рабочий кусок кода,чтоб видеть КАК это должно быть.


 
topДата: Четверг, 31.10.2013, 19:04 | Сообщение # 10
Группа: Друзья
Сообщений: 146

Статус: Offline
GSV, Все верно, в цикле)
Например храним 8 бит данных в массиве A()

Dim portbit as bit

For i = 1 to 8
    portbit = A(i)
    portb.0 = portbit
    waitms(50)
Next 

Если массив не битовый а байтовый, что скорее всего, то надо вынимать из массива по одномй байту, а затем разбирать байт на биты например  сдвигом вправо а затем ЛОГИЧЕСКИМ И с единицей) тем самым побитно считывая байт. Ну можно и зеркально со старшего бита, тогда сдвиг влево и ЛОГИЧЕСКОЕ И с 128. А может есть и вовсе логические операции, которые сразу извлекают нужный бит - я может не в курсе их.


 
GSVДата: Среда, 06.11.2013, 15:17 | Сообщение # 11
Группа: Проверенные
Сообщений: 31

Статус: Offline
top, Спасибо за участие,но скорей всего пойду другим путем.

 
forterДата: Пятница, 06.12.2013, 13:27 | Сообщение # 12
Группа: Друзья
Сообщений: 17

Статус: Offline
А можно еще и так:
1. Проверяем старший БИТ байта, если 0, то сбрасываем разряд порта, если - 1, то устанавливаем.
2. Можно вставить необходимую задержку
3. Сдвигаем байт влево на одну позицию командой shift
4. переходим на п.1
5. повторяем 7 раз.
Я делал так...


 
Форум » форумы » В разработке » Радиоуправление RT5-433 RR10-433 Tiny13 (Устройство радиоуправления на Bascom)
Страница 1 из 11
Поиск: