Índice:

Controle remoto ATtiny85 RF: 3 etapas
Controle remoto ATtiny85 RF: 3 etapas
Anonim
ATtiny85 RF Controle Remoto
ATtiny85 RF Controle Remoto

NOTA: Meu instrutivo "Jogo virtual de esconde-esconde" mostra como usar este tipo de controle remoto com um módulo RXC6 que decodifica automaticamente a mensagem.

Como mencionei em um Instructable anterior, recentemente comecei a jogar com alguns chips ATtiny85. O projeto inicial que eu tinha em mente era fazer um controle remoto RF que pudesse operar com uma bateria tipo moeda. Eu precisava usar um chip bruto porque nenhum dos Arduinos que tenho pode atender à necessidade de energia muito baixa e tamanho relativamente pequeno. Um LilyPad modificado chegou perto, mas o chip é uma resposta melhor. A ideia não era tanto duplicar um controle remoto existente, mas demonstrar como você pode criar seu próprio conjunto de transmissor e receptor. Além de ser um projeto de aprendizado divertido, também permite que você crie sua própria combinação de código “secreto”. Eu coloquei "segredo" entre aspas porque é muito fácil decifrar esses códigos simples.

Etapa 1: Formato da mensagem RF

Formato de mensagem RF
Formato de mensagem RF

Para este projeto, optei por replicar os sinais para um dos meus comutadores sem fio RF Etekcity (consulte meu Instructable sobre esses módulos). Fiz isso porque consegui verificar se meu transmissor funciona com o receptor Etekcity e se meu receptor funciona com o controle remoto Etekcity. Também sei exatamente quais são os códigos e formatos corretos para esses dispositivos, porque os capturei anteriormente. Consulte o meu “Decodificador de sensor de RF Arduino” Instructable para o esboço de captura de código.

Os códigos e formatos para as tomadas Etekcity são muito típicos de dispositivos RF baratos. Tenho dispositivos de segurança baratos que usam formatos muito semelhantes, com apenas algumas variações de tempo. O comprimento da mensagem é de 24 bits convenientes com um bit de início longo e um bit de parada curto. Você pode modificar facilmente o código para adicionar mais bytes de dados e alterar o tempo dos bits de sincronização e dados. Novamente, este esboço é apenas um modelo inicial.

Etapa 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

O transmissor funciona com uma bateria tipo moeda (2032), portanto, o baixo consumo de energia é fundamental. A maior parte disso é realizado no software, mas é ajudado pelo fato de que o ATtiny85 normalmente funciona com o clock interno de 1 MHz. A regra é que frequências de clock mais baixas requerem menos energia e 1 MHz é perfeito para a lógica do transmissor.

O módulo transmissor de RF real que gosto de usar é um FS1000A, que está comumente disponível. Ele vem nas versões de 433 MHz e 315 MHz. O software não se importa com qual você usa, mas você precisa se certificar de que a placa receptora opera na mesma frequência. A maioria dos meus projetos usa dispositivos de 433 MHz porque é isso que é usado pelos vários dispositivos sem fio baratos que acumulei. O layout da placa do transmissor mostrado na imagem se encaixa perfeitamente em um frasco de comprimidos antigo. Não é bonito, mas bom o suficiente para uma prova de conceito.

O receptor está em uma placa de ensaio sem solda porque seu único propósito é mostrar como receber sinais e como ligar / desligar algo com base nos códigos recebidos. Ele usa um LED para indicar o status ligado / desligado, mas você pode substituí-lo por um driver de relé, etc. Qualquer Arduino pode ser usado para o receptor porque não precisa funcionar com bateria. Se o tamanho ainda for uma consideração, você pode usar outro chip ATtiny85. A chave é que o ATtiny85 precisa rodar a 8 MHz no receptor. Consulte meu ATtiny85 Instructable anterior para um esboço simples que verifica se você alterou com sucesso o clock interno para 8 MHz. No final do meu Instructable on sensor decoding, incluo uma versão Arduino Nano do software do receptor. É idêntico à versão ATtiny85 incluída aqui, exceto por algumas diferenças de registro de chip.

Conforme detalhei em meus instrutáveis RF anteriores, prefiro usar um receptor como o RXB6 comum. É um receptor super-heteródino que funciona muito melhor do que os receptores super-regenerativos comumente agrupados com os transmissores FS1000A.

Os módulos transmissor e receptor funcionam melhor com as antenas adequadas, mas geralmente não são fornecidos. Você pode comprá-los (obter a frequência correta) ou fazer o seu próprio. Em 433 MHz, o comprimento certo é de cerca de 16 cm para uma antena de fio reto. Para fazer um enrolado, pegue cerca de 16 cm de fio de núcleo sólido isolado e enrole em algo como uma haste de broca de 5/32 polegadas em uma única camada. Retire o isolamento de uma seção reta curta em uma extremidade e conecte-a à placa do transmissor / receptor. Descobri que o fio de um cabo Ethernet sucateado funciona bem para antenas. A placa do transmissor geralmente tem um local para soldar a antena, mas a placa do receptor pode ter apenas pinos (como o RXB6). Apenas certifique-se de que a conexão está segura se você não a soldar.

Etapa 3: Software

O software do transmissor usa técnicas comuns para colocar o chip no modo de hibernação. Nesse modo, ele consome menos de 0,2ua de corrente. As entradas do interruptor (D1-D4) têm os resistores pull-up internos ligados, mas eles não consomem nenhuma corrente até que um interruptor seja pressionado. As entradas são configuradas para interrupção na mudança (IOC). Quando um interruptor é pressionado, uma interrupção é gerada e força o chip a despertar. O manipulador de interrupção executa cerca de 48 ms de atraso para permitir que o switch faça o debounce. Uma verificação é feita para determinar qual interruptor foi pressionado e a rotina apropriada é chamada. A mensagem transmitida é repetida várias vezes (escolhi 5 vezes). Isso é típico de transmissores comerciais porque há muito tráfego de RF em 433 MHz e 315 MHz por aí. As mensagens repetidas ajudam a garantir que pelo menos uma chegue ao receptor.

Os tempos de sincronização e bit são definidos na frente do software do transmissor, mas os bytes de dados são incorporados em cada uma das quatro rotinas de botão. Eles são óbvios e fáceis de alterar e adicionar bytes para fazer uma mensagem mais longa também é fácil. Todas as mesmas definições estão incluídas no software do receptor, bem como as definições de bytes de dados. Se você adicionar bytes de dados à sua mensagem, você precisará alterar a definição de “Msg_Length” e adicionar bytes à variável “RF_Message”. Você também precisará adicionar código à verificação “RF_Message” em “loop” para verificar o recebimento adequado dos bytes extras e definir esses bytes.

Recomendado: