Оглавление:

Пульт дистанционного управления ATtiny85 RF: 3 шага
Пульт дистанционного управления ATtiny85 RF: 3 шага

Видео: Пульт дистанционного управления ATtiny85 RF: 3 шага

Видео: Пульт дистанционного управления ATtiny85 RF: 3 шага
Видео: Радиореле на 433Мгц и управление с Arduino 2024, Ноябрь
Anonim
Радиочастотный пульт дистанционного управления ATtiny85
Радиочастотный пульт дистанционного управления ATtiny85

ПРИМЕЧАНИЕ. Моя обучаемая «Виртуальная игра в прятки» показывает, как использовать этот тип пульта дистанционного управления с модулем RXC6, который автоматически декодирует сообщение.

Как я уже упоминал в предыдущем руководстве, я недавно начал играть с некоторыми чипами ATtiny85. Первоначальный проект, который я имел в виду, состоял в том, чтобы сделать радиочастотный пульт дистанционного управления, который мог бы работать от монетной батарейки. Мне нужно было использовать необработанный чип, потому что ни один из имеющихся у меня Arduinos не может удовлетворить потребность в очень низком энергопотреблении и относительно небольшом размере. Модифицированный LilyPad подошел вплотную, но чип - лучший ответ. Идея заключалась не столько в том, чтобы скопировать существующий пульт, сколько в демонстрации того, как вы можете собрать свой собственный комплект передатчика и приемника. Помимо того, что это увлекательный обучающий проект, он также позволяет вам создавать свою собственную «секретную» кодовую комбинацию. Я заключил слово «секрет» в кавычки, потому что эти простые коды довольно легко взломать.

Шаг 1. Формат сообщения RF

Формат сообщения RF
Формат сообщения RF

Для этого проекта я решил воспроизвести сигналы для одного из моих беспроводных коммутаторов Etekcity RF (см. Мою инструкцию по этим модулям). Я сделал это, потому что смог убедиться, что мой передатчик работает с приемником Etekcity, а мой приемник работает с пультом дистанционного управления Etekcity. Я также точно знаю, каковы правильные коды и формат для этих устройств, потому что я записал их ранее. Обратитесь к моему руководству «Arduino RF Sensor Decoder» для скетча захвата кода.

Коды и форматы торговых точек Etekcity очень типичны для недорогих радиочастотных устройств. У меня есть дешевые устройства безопасности, которые используют очень похожие форматы с некоторыми вариациями по времени. Длина сообщения составляет 24 бита с длинным стартовым битом и коротким стоповым битом. Вы можете легко изменить код, чтобы добавить больше байтов данных и изменить синхронизацию битов данных и синхронизации. Опять же, этот набросок - всего лишь начальный шаблон.

Шаг 2: Оборудование

Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение
Аппаратное обеспечение

Передатчик работает от батарейки типа «таблетка» (2032), поэтому ключевым моментом является низкое энергопотребление. Большая часть этого выполняется в программном обеспечении, но этому помогает тот факт, что ATtiny85 обычно работает на внутренней частоте 1 МГц. Правило состоит в том, что более низкие тактовые частоты требуют меньше энергии, а 1 МГц идеально подходит для логики передатчика.

Фактический модуль радиочастотного передатчика, который мне нравится использовать, - это широко доступный FS1000A. Он доступен в версиях с частотой 433 МГц и 315 МГц. Программному обеспечению безразлично, какой из них вы используете, но вам нужно убедиться, что плата приемника работает на той же частоте. В большинстве моих проектов используются устройства с частотой 433 МГц, потому что это то, что используется различными недорогими беспроводными устройствами, которые я накопил. Схема платы передатчика, показанная на картинке, прекрасно вписывается в старую бутылку с таблетками. Это не очень красиво, но достаточно хорошо для проверки концепции.

Приемник находится на макетной плате без пайки, потому что его единственная цель - показать, как принимать сигналы и как включать / выключать что-либо на основе полученных кодов. Он использует светодиод для индикации состояния включения / выключения, но вы можете заменить его на драйвер реле и т. Д. В качестве приемника можно использовать любую Arduino, потому что ему не нужно разряжаться от батареи. Если размер все еще важен, вы можете использовать другой чип ATtiny85. Ключевым моментом является то, что ATtiny85 должен работать на частоте 8 МГц в приемнике. Обратитесь к моей предыдущей инструкции по ATtiny85, где вы найдете простой набросок, подтверждающий, что вы успешно изменили внутренние часы на 8 МГц. В конце моей инструкции по декодированию датчика я включаю версию программного обеспечения приемника для Arduino Nano. Он идентичен включенной здесь версии ATtiny85, за исключением нескольких различий в регистрах микросхемы.

Как я подробно описал в своих предыдущих инструкциях по радиочастотам, я предпочитаю использовать приемник, такой как обычный RXB6. Это супергетеродинный приемник, который работает намного лучше, чем супергетеродинные приемники, обычно поставляемые с передатчиками FS1000A.

Модули передатчика и приемника лучше работают с подходящими антеннами, но они часто не входят в комплект. Вы можете купить их (получить правильную частоту) или сделать свои собственные. На частоте 433 МГц правильная длина составляет около 16 см для антенны с прямым проводом. Чтобы сделать сверло, возьмите около 16 см изолированного провода с твердым сердечником и оберните его вокруг чего-то вроде хвостовика сверла диаметром 5/32 дюйма в один слой. Снимите изоляцию с короткого прямого участка на одном конце и подсоедините его к плате передатчика / приемника. Я обнаружил, что провод от использованного кабеля Ethernet хорошо подходит для антенн. На плате передатчика обычно есть место для пайки антенны, но на плате приемника могут быть только контакты (как у RXB6). Просто убедитесь, что соединение надежно, если вы его не паяете.

Шаг 3: Программное обеспечение

Программное обеспечение передатчика использует общие методы для перевода микросхемы в спящий режим. В этом режиме он потребляет менее 0,2 мкА тока. На входах переключателя (D1-D4) включены внутренние подтягивающие резисторы, но они не потребляют ток, пока не будет нажат переключатель. Входы настроены на прерывание при изменении (IOC). При нажатии переключателя генерируется прерывание, которое заставляет микросхему «проснуться». Обработчик прерывания выполняет задержку около 48 мсек, чтобы позволить коммутатору отключиться. Затем выполняется проверка, чтобы определить, какой переключатель был нажат, и вызывается соответствующая процедура. Переданное сообщение повторяется несколько раз (я выбрал 5 раз). Это типично для коммерческих передатчиков, потому что там очень много радиочастотного трафика на 433 МГц и 315 МГц. Повторяющиеся сообщения помогают гарантировать, что хотя бы одно доходит до получателя.

Синхронизация и время передачи битов определяются на передней панели программного обеспечения передатчика, но байты данных встроены в каждую из четырех программных процедур. Они очевидны и их легко изменить, а также легко добавить байты, чтобы сделать сообщение длиннее. Все те же определения включены в программное обеспечение приемника, а также в определения байтов данных. Если вы добавляете байты данных в свое сообщение, вам нужно будет изменить определение для «Msg_Length» и добавить байты в переменную «RF_Message». Вам также потребуется добавить код к проверке «RF_Message» в «цикле», чтобы проверить правильность получения дополнительных байтов и определить эти байты.

Рекомендуемые: