Taula de continguts:

Control remot ATtiny85 RF: 3 passos
Control remot ATtiny85 RF: 3 passos

Vídeo: Control remot ATtiny85 RF: 3 passos

Vídeo: Control remot ATtiny85 RF: 3 passos
Vídeo: ATtiny85 IR Remote Control for Room Automation, smallest Arduino 2024, Juliol
Anonim
Control remot ATtiny85 RF
Control remot ATtiny85 RF

NOTA: El meu "Joc d'amagatall virtual" instructiu mostra com utilitzar aquest tipus de comandament a distància amb un mòdul RXC6 que descodifica automàticament el missatge.

Com he esmentat en un Instructable anterior, recentment vaig començar a jugar amb alguns xips ATtiny85. El projecte inicial que tenia en ment era fer un comandament a distància RF que pogués funcionar amb una bateria de monedes. Necessitava anar amb un xip cru perquè cap dels Arduinos que tinc pot satisfer la necessitat de molt poca potència i de mida relativament petita. Es va acostar un LilyPad modificat, però el xip és una millor resposta. La idea no era tant duplicar un comandament a distància existent, sinó demostrar com podeu configurar el vostre propi conjunt de transmissors i receptors. A més de ser un divertit projecte d'aprenentatge, també us permet crear la vostra pròpia combinació de codis "secreta". Poso "secret" entre cometes perquè és bastant fàcil trencar aquests codis senzills.

Pas 1: format de missatge RF

Format de missatge RF
Format de missatge RF

Per a aquest projecte, vaig optar per replicar els senyals d’un dels meus commutadors sense fils Etekcity RF (consulteu la meva instrucció d’aquests mòduls). Ho vaig fer perquè vaig poder comprovar que el meu transmissor funciona amb el receptor Etekcity i que el meu receptor funciona amb el comandament Etekcity. També sé exactament quins són els codis i el format correctes per a aquests dispositius perquè els vaig capturar anteriorment. Consulteu el meu "Descodificador de sensor RF Arduino" que es pot instruir per a l'esbós de captura de codi.

Els codis i formats dels punts de venda d’Etekcity són molt típics dels dispositius de RF de baix cost. Tinc dispositius de seguretat econòmics que utilitzen formats molt similars amb només algunes variacions de temps. La longitud del missatge és de 24 bits convenient amb un bit d’inici llarg i un bit d’aturada curt. Podeu modificar fàcilment el codi per afegir més bytes de dades i per canviar el temps de sincronització i bits de dades. De nou, aquest esbós és només una plantilla inicial.

Pas 2: maquinari

Maquinari
Maquinari
Maquinari
Maquinari
Maquinari
Maquinari

El transmissor funciona amb una bateria de monedes (2032), de manera que és bàsic un baix consum d’energia. La majoria d’això s’aconsegueix al programari, però s’ajuda al fet que l’ATtiny85 normalment funciona al rellotge intern d’1 MHz. La regla és que les freqüències de rellotge més baixes requereixen menys potència i 1 MHz és perfecte per a la lògica del transmissor.

El mòdul de transmissor de RF real que m’agrada utilitzar és un FS1000A que sol estar disponible. Ve en versions tant de 433 MHz com de 315 MHz. Al programari no li importa quin utilitzeu, però heu d’assegurar-vos que la placa del receptor funciona a la mateixa freqüència. La majoria dels meus projectes fan servir dispositius de 433 MHz perquè això és el que fan servir els diversos dispositius sense fils de baix cost que he acumulat. El disseny del tauler transmissor que es mostra a la imatge s’adapta molt bé a una vella ampolla de pastilles. No és bonic, però prou bo per a una prova de concepte.

El receptor està en una placa de soldadura sense soldadura perquè el seu únic propòsit és mostrar com rebre senyals i com activar / desactivar alguna cosa en funció dels codis rebuts. Utilitza un LED per indicar l’estat d’encès / apagat, però podeu substituir-lo per un controlador de relé, etc. Qualsevol Arduino es pot utilitzar per al receptor perquè no necessita que s’acabi la bateria. Si la mida encara és una consideració, podeu utilitzar un altre xip ATtiny85. La clau és que l'ATtiny85 ha de funcionar a 8 MHz al receptor. Consulteu el meu anterior instructiu ATtiny85 per obtenir un esbós senzill que verifiqui que heu canviat correctament el rellotge intern a 8 MHz. Al final de la meva descodificació de sensors instructable, incloc una versió Arduino Nano del programari del receptor. És idèntic a la versió ATtiny85 que s’inclou aquí, excepte un parell de diferències de registre de xips.

Com he detallat a les meves instruccions RF anteriors, prefereixo utilitzar un receptor com el RXB6 comú. És un receptor superheterodí que funciona molt millor que els receptors superregeneratius que s’acostumen a incloure amb els transmissors FS1000A.

Tant els mòduls transmissor com el receptor funcionen millor amb les antenes adequades, però sovint no es subministren. Podeu comprar-los (obtenir la freqüència correcta) o fer-ne els vostres. A 433 MHz, la longitud correcta és d’uns 16 cm per a una antena de cable recte. Per fer-ne un de enrotllat, agafeu uns 16 cm de filferro de nucli sòlid i aïllat i emboliqueu-lo al voltant d’una mena de broca de 5/32 polzades en una sola capa. Retireu l’aïllament d’una secció recta curta en un extrem i connecteu-lo a la placa de transmissor / receptor. He comprovat que el cable d’un cable Ethernet de rebuig funciona bé per a les antenes. La placa transmissora sol tenir un lloc per soldar l’antena, però la placa receptora només pot tenir pins (com el RXB6). Assegureu-vos que la connexió sigui segura si no la soldeu.

Pas 3: programari

El programari del transmissor utilitza tècniques habituals per posar el xip en mode de repòs. En aquest mode, treu menys de 0,2ua de corrent. Les entrades d’interruptors (D1-D4) tenen les resistències internes activades però no treuen corrent fins que no es prem un interruptor. Les entrades estan configurades per a interrupcions de canvi (IOC). Quan es prem un interruptor, es genera una interrupció que obliga al xip a despertar-se. El controlador d’interrupcions realitza uns 48 ms de retard per permetre que el commutador es deseventi. A continuació, es fa una comprovació per determinar quin interruptor es va prémer i es crida a la rutina adequada. El missatge transmès es repeteix diverses vegades (he triat 5 vegades). Això és típic dels transmissors comercials perquè hi ha molt trànsit de RF a 433 MHz i 315 MHz. Els missatges repetits ajuden a garantir que almenys un arribi al receptor.

La sincronització i els temps de bits es defineixen a la part frontal del programari del transmissor, però els bytes de dades estan incrustats en cadascuna de les quatre rutines de botons. Són obvis i fàcils de canviar i afegir bytes per fer un missatge més llarg també és fàcil. Totes les mateixes definicions s’inclouen al programari del receptor, així com a les definicions de bytes de dades. Si afegiu bytes de dades al missatge, haureu de canviar la definició de "Msg_Length" i afegir bytes a la variable "RF_Message". També haureu d'afegir codi a la comprovació "RF_Message" a "bucle" per verificar la recepció adequada dels bytes addicionals i definir-los.

Recomanat: