Sommario:

Telecomando ATtiny85 RF: 3 passaggi
Telecomando ATtiny85 RF: 3 passaggi

Video: Telecomando ATtiny85 RF: 3 passaggi

Video: Telecomando ATtiny85 RF: 3 passaggi
Video: ATtiny85 IR Remote Control for Room Automation, smallest Arduino 2024, Luglio
Anonim
ATtiny85 Telecomando RF
ATtiny85 Telecomando RF

NOTA: My Instructable "Gioco virtuale a nascondino" mostra come utilizzare questo tipo di telecomando con un modulo RXC6 che decodifica automaticamente il messaggio.

Come ho detto in un precedente Instructable, di recente ho iniziato a giocare con alcuni chip ATtiny85. Il progetto iniziale che avevo in mente era quello di realizzare un telecomando RF che potesse funzionare con una batteria a bottone. Avevo bisogno di un chip grezzo perché nessuno degli Arduino che ho può soddisfare sia la necessità di una potenza molto bassa che di dimensioni relativamente ridotte. Un LilyPad modificato si è avvicinato, ma il chip è una risposta migliore. L'idea non era tanto quella di duplicare un telecomando esistente, ma di dimostrare come creare il proprio set trasmettitore e ricevitore. Oltre ad essere un divertente progetto di apprendimento, ti consente anche di creare la tua combinazione di codici "segreti". Ho messo "segreto" tra virgolette perché è abbastanza facile decifrare questi semplici codici.

Passaggio 1: formato del messaggio RF

Formato messaggio RF
Formato messaggio RF

Per questo progetto ho scelto di replicare i segnali per uno dei miei switch wireless Etekcity RF (fare riferimento al mio Instructable su quei moduli). L'ho fatto perché sono stato in grado di verificare che il mio trasmettitore funziona con il ricevitore Etekcity e che il mio ricevitore funziona con il telecomando Etekcity. Mi capita anche di sapere esattamente quali sono i codici e il formato corretti per quei dispositivi perché li ho catturati in precedenza. Fare riferimento al mio "Decodificatore sensore RF Arduino" Instructable per lo schizzo di acquisizione del codice.

I codici e i formati per i punti vendita Etekcity sono molto tipici dei dispositivi RF economici. Ho dispositivi di sicurezza economici che utilizzano formati molto simili con solo alcune variazioni di temporizzazione. La lunghezza del messaggio è di 24 bit con un bit di avvio lungo e un bit di stop breve. È possibile modificare facilmente il codice per aggiungere più byte di dati e modificare i tempi della sincronizzazione e dei bit di dati. Ancora una volta, questo schizzo è solo un modello di partenza.

Passaggio 2: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Il trasmettitore funziona con una batteria a bottone (2032), quindi un basso consumo energetico è fondamentale. La maggior parte di ciò si realizza nel software, ma è aiutato dal fatto che l'ATtiny85 normalmente funziona con l'orologio interno da 1 MHz. La regola è che frequenze di clock inferiori richiedono meno potenza e 1 MHz è perfetto per la logica del trasmettitore.

L'attuale modulo trasmettitore RF che mi piace usare è un FS1000A comunemente disponibile. È disponibile nelle versioni a 433 MHz e 315 MHz. Al software non interessa quale usi, ma devi assicurarti che la scheda del ricevitore funzioni alla stessa frequenza. La maggior parte dei miei progetti utilizza dispositivi a 433 MHz perché questo è ciò che viene utilizzato dai vari dispositivi wireless economici che ho accumulato. Il layout della scheda del trasmettitore mostrato nell'immagine si adatta perfettamente a un vecchio flacone di pillole. Non è carino ma abbastanza buono per un proof-of-concept.

Il ricevitore è su una breadboard senza saldatura perché il suo unico scopo è mostrare come ricevere segnali e come accendere/spegnere qualcosa in base ai codici ricevuti. Utilizza un LED per indicare lo stato di accensione/spegnimento, ma è possibile sostituirlo con un driver relè, ecc. Qualsiasi Arduino può essere utilizzato per il ricevitore perché non ha bisogno di scaricare la batteria. Se la dimensione è ancora una considerazione, puoi utilizzare un altro chip ATtiny85. La chiave è che ATtiny85 deve funzionare a 8 MHz nel ricevitore. Fare riferimento al mio precedente ATtiny85 Instructable per un semplice schizzo che verifica di aver modificato con successo l'orologio interno a 8-MHz. Alla fine del mio Instructable sulla decodifica dei sensori includo una versione Arduino Nano del software del ricevitore. È identico alla versione ATtiny85 inclusa qui, tranne per un paio di differenze di registro del chip.

Come ho spiegato nei miei precedenti RF Instructables, preferisco usare un ricevitore come il comune RXB6. È un ricevitore super-eterodina che funziona molto meglio dei ricevitori super-rigenerativi comunemente in bundle con i trasmettitori FS1000A.

Sia il trasmettitore che il ricevitore funzionano meglio con le antenne appropriate ma spesso non vengono fornite. Puoi acquistarli (ottenere la frequenza corretta) o puoi crearne uno tuo. A 433 MHz, la lunghezza corretta è di circa 16 cm per un'antenna a filo dritto. Per realizzarne uno arrotolato, prendi circa 16 cm di filo isolato e solido e avvolgilo intorno a qualcosa come un gambo di una punta da 5/32 pollici in un unico strato. Rimuovere l'isolamento da una breve sezione diritta a un'estremità e collegarla alla scheda trasmettitore/ricevitore. Ho scoperto che il filo di un cavo Ethernet di scarto funziona bene per le antenne. La scheda del trasmettitore di solito ha un posto per saldare l'antenna, ma la scheda del ricevitore può avere solo pin (come l'RXB6). Assicurati solo che la connessione sia sicura se non la saldi.

Passaggio 3: software

Il software del trasmettitore utilizza tecniche comuni per mettere il chip in modalità di sospensione. In quella modalità assorbe meno di 0.2ua di corrente. Gli ingressi dell'interruttore (D1-D4) hanno i resistori di pull-up interni accesi ma non assorbono corrente finché non viene premuto un interruttore. Gli ingressi sono configurati per l'interrupt-on-change (IOC). Quando viene premuto un interruttore, viene generato un interrupt e forza il chip a svegliarsi. Il gestore di interrupt esegue circa 48 msec di ritardo per consentire allo switch di eseguire l'antirimbalzo. Viene quindi effettuato un controllo per determinare quale interruttore è stato premuto e viene chiamata la routine appropriata. Il messaggio trasmesso viene ripetuto più volte (io ho scelto 5 volte). Questo è tipico dei trasmettitori commerciali perché c'è così tanto traffico RF su 433 MHz e 315 MHz là fuori. I messaggi ripetuti aiutano a garantire che almeno uno arrivi al destinatario.

I tempi di sincronizzazione e bit sono definiti nella parte anteriore del software del trasmettitore, ma i byte di dati sono incorporati in ciascuna delle quattro routine dei pulsanti. Sono ovvi e facili da modificare e anche l'aggiunta di byte per rendere un messaggio più lungo è facile. Tutte le stesse definizioni sono incluse nel software del ricevitore così come le definizioni dei byte di dati. Se si aggiungono byte di dati al messaggio, sarà necessario modificare la definizione per "Msg_Length" e aggiungere byte alla variabile "RF_Message". Sarà inoltre necessario aggiungere il codice al "RF_Message" check in "loop" per verificare la corretta ricezione dei byte extra e definire quei byte.

Consigliato: