Tabla de contenido:

Control remoto de RF ATtiny85: 3 pasos
Control remoto de RF ATtiny85: 3 pasos

Video: Control remoto de RF ATtiny85: 3 pasos

Video: Control remoto de RF ATtiny85: 3 pasos
Video: Pr#54 ¿Como hago este mando ATtiny85 y 433MHz? 2024, Noviembre
Anonim
Control remoto de RF ATtiny85
Control remoto de RF ATtiny85

NOTA: Mi Instructable "Juego virtual de escondite y búsqueda" muestra cómo usar este tipo de control remoto con un módulo RXC6 que decodifica automáticamente el mensaje.

Como mencioné en un Instructable anterior, recientemente comencé a jugar con algunos chips ATtiny85. El proyecto inicial que tenía en mente era hacer un control remoto de RF que pudiera funcionar con una batería de botón. Necesitaba ir con un chip en bruto porque ninguno de los Arduinos que tengo puede satisfacer tanto la necesidad de muy baja potencia como de un tamaño relativamente pequeño. Un LilyPad modificado estuvo cerca, pero el chip es una mejor respuesta. La idea no era tanto duplicar un control remoto existente, sino demostrar cómo puedes crear tu propio transmisor y receptor. Además de ser un proyecto de aprendizaje divertido, también te permite crear tu propia combinación de códigos "secretos". Puse "secreto" entre comillas porque es bastante fácil descifrar estos códigos simples.

Paso 1: formato de mensaje de RF

Formato de mensaje RF
Formato de mensaje RF

Para este proyecto, elegí replicar las señales para uno de mis interruptores inalámbricos Etekcity RF (consulte mi Instructable sobre esos módulos). Lo hice porque pude verificar que mi transmisor funciona con el receptor Etekcity y que mi receptor funciona con el control remoto Etekcity. También sé exactamente cuáles son los códigos y el formato correctos para esos dispositivos porque los capturé previamente. Consulte mi "Decodificador de sensor de RF Arduino" Instructable para el boceto de captura de código.

Los códigos y formatos para los puntos de venta de Etekcity son muy típicos de los dispositivos de RF económicos. Tengo dispositivos de seguridad baratos que usan formatos muy similares con solo algunas variaciones de tiempo. La longitud del mensaje es conveniente de 24 bits con un bit de inicio largo y un bit de parada corto. Puede modificar fácilmente el código para agregar más bytes de datos y cambiar el tiempo de sincronización y bits de datos. Nuevamente, este boceto es solo una plantilla de partida.

Paso 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

El transmisor funciona con una batería de botón (2032), por lo que el bajo consumo de energía es clave. La mayor parte de eso se logra en el software, pero ayuda el hecho de que el ATtiny85 normalmente se ejecuta en el reloj interno de 1 MHz. La regla es que las frecuencias de reloj más bajas requieren menos energía y 1 MHz es perfecto para la lógica del transmisor.

El módulo transmisor de RF real que me gusta usar es un FS1000A que está comúnmente disponible. Viene en versiones de 433 MHz y 315 MHz. Al software no le importa cuál use, pero debe asegurarse de que la placa del receptor funcione a la misma frecuencia. La mayoría de mis proyectos utilizan dispositivos de 433 MHz porque eso es lo que utilizan los diversos dispositivos inalámbricos económicos que he acumulado. El diseño de la placa del transmisor que se muestra en la imagen encaja muy bien en un viejo frasco de pastillas. No es bonito, pero es lo suficientemente bueno para una prueba de concepto.

El receptor está en una placa de prueba sin soldadura porque su único propósito es mostrar cómo recibir señales y cómo encender / apagar algo según los códigos recibidos. Utiliza un LED para indicar el estado de encendido / apagado, pero puede reemplazarlo con un controlador de relé, etc. Se puede usar cualquier Arduino para el receptor porque no necesita funcionar sin batería. Si el tamaño aún es una consideración, puede usar otro chip ATtiny85. La clave es que el ATtiny85 debe funcionar a 8 MHz en el receptor. Consulte mi Instructable ATtiny85 anterior para obtener un boceto simple que verifica que ha cambiado con éxito el reloj interno a 8 MHz. Al final de mi Instructable sobre decodificación de sensores, incluyo una versión Arduino Nano del software del receptor. Es idéntica a la versión ATtiny85 incluida aquí, excepto por un par de diferencias en el registro del chip.

Como detallé en mis Instructables RF anteriores, prefiero usar un receptor como el RXB6 común. Es un receptor superheterodino que funciona mucho mejor que los receptores superregenerativos que se incluyen comúnmente con los transmisores FS1000A.

Tanto el módulo transmisor como el receptor funcionan mejor con las antenas adecuadas, pero a menudo no se suministran. Puede comprarlos (obtener la frecuencia correcta) o puede hacer los suyos propios. A 433 MHz, la longitud correcta es de unos 16 cm para una antena de cable recto. Para hacer uno enrollado, tome aproximadamente 16 cm de alambre de núcleo sólido aislado y envuélvalo alrededor de algo así como un vástago de broca de 5/32 pulgadas en una sola capa. Quite el aislamiento de una sección recta corta en un extremo y conéctelo a la placa de su transmisor / receptor. Descubrí que el cable de un cable Ethernet de desecho funciona bien para antenas. La placa del transmisor generalmente tiene un lugar para soldar la antena, pero la placa del receptor solo puede tener pines (como el RXB6). Solo asegúrese de que la conexión sea segura si no la suelda.

Paso 3: software

El software del transmisor utiliza técnicas comunes para poner el chip en modo de suspensión. En ese modo, consume menos de 0,2 ua de corriente. Las entradas del interruptor (D1-D4) tienen las resistencias pull-up internas encendidas, pero no consumen corriente hasta que se presiona un interruptor. Las entradas están configuradas para interrupción por cambio (IOC). Cuando se presiona un interruptor, se genera una interrupción y obliga al chip a activarse. El manejador de interrupciones realiza un retardo de aproximadamente 48 ms para permitir que el interruptor elimine el rebote. Luego se realiza una verificación para determinar qué interruptor se presionó y se llama a la rutina adecuada. El mensaje transmitido se repite varias veces (elegí 5 veces). Esto es típico de los transmisores comerciales porque hay mucho tráfico de RF en 433 MHz y 315 MHz. Los mensajes repetidos ayudan a asegurar que al menos uno llegue al receptor.

Los tiempos de sincronización y bit se definen en la parte frontal del software del transmisor, pero los bytes de datos están integrados en cada una de las rutinas de cuatro botones. Son obvios y fáciles de cambiar y también es fácil agregar bytes para hacer un mensaje más largo. Todas las mismas definiciones se incluyen en el software del receptor, así como las definiciones de bytes de datos. Si agrega bytes de datos a su mensaje, deberá cambiar la definición de "Msg_Length" y agregar bytes a la variable "RF_Message". También necesitará agregar código al "bucle" de verificación "RF_Message" para verificar la recepción correcta de los bytes adicionales y definir esos bytes.

Recomendado: