Cuprins:

Telecomandă RF ATtiny85: 3 pași
Telecomandă RF ATtiny85: 3 pași

Video: Telecomandă RF ATtiny85: 3 pași

Video: Telecomandă RF ATtiny85: 3 pași
Video: RF 433MHZ Remote Control Test on the Production Line 2024, Noiembrie
Anonim
Telecomandă RF ATtiny85
Telecomandă RF ATtiny85

NOTĂ: „Jocul de ascundere și căutare virtual” al meu, instructabil, arată cum să utilizați acest tip de telecomandă cu un modul RXC6 care decodează automat mesajul.

După cum am menționat într-un Instructable anterior, am început recent să joc cu câteva jetoane ATtiny85. Proiectul inițial pe care îl aveam în vedere a fost să fac o telecomandă RF care să funcționeze pe o baterie de monede. Trebuia să merg cu un cip brut, deoarece niciunul dintre Arduino-urile pe care le am nu poate satisface atât nevoia de putere foarte mică, cât și dimensiunea relativ mică. Un LilyPad modificat s-a apropiat, dar cipul este un răspuns mai bun. Ideea nu a fost atât de multă pentru a duplica o telecomandă existentă, ci pentru a demonstra modul în care vă puteți compune propriul set de emițătoare și receptoare. Pe lângă faptul că este un proiect distractiv de învățare, vă permite, de asemenea, să creați propria combinație de cod „secret”. Am pus „secret” între ghilimele, deoarece este destul de ușor să spargeți aceste coduri simple.

Pasul 1: Format mesaj RF

Format mesaj RF
Format mesaj RF

Pentru acest proiect am ales să replic semnalele pentru unul dintre comutatoarele mele wireless Etekcity RF (consultați Instrucțiunile mele de pe aceste module). Am făcut asta pentru că am putut verifica dacă emițătorul meu funcționează cu receptorul Etekcity și că receptorul meu funcționează cu telecomanda Etekcity. De asemenea, se întâmplă să știu exact care sunt codurile și formatul corect pentru aceste dispozitive, deoarece le-am capturat anterior. Consultați „Decodorul senzorului Arduino RF” care poate fi descris în schița de captare a codului.

Codurile și formatele pentru prizele Etekcity sunt foarte tipice pentru dispozitivele RF ieftine. Am dispozitive de securitate ieftine care utilizează formate foarte similare, cu doar câteva variații de sincronizare. Lungimea mesajului este de 24 de biți convenabili, cu un bit de pornire lung și un bit de oprire scurt. Puteți modifica cu ușurință codul pentru a adăuga mai mulți octeți de date și pentru a modifica sincronizarea și biții de date. Din nou, această schiță este doar un șablon de pornire.

Pasul 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Transmițătorul funcționează pe o baterie monedă (2032), astfel încât consumul redus de energie este esențial. Majoritatea acestui lucru se realizează în software, dar este ajutat de faptul că ATtiny85 rulează în mod normal pe ceasul intern de 1 MHz. Regula este că frecvențele de ceas mai mici necesită o putere mai mică, iar 1-MHz este perfect pentru logica emițătorului.

Modulul real al emițătorului RF pe care îmi place să îl folosesc este un FS1000A care este disponibil în mod obișnuit. Vine atât în versiunile de 433-MHz, cât și în cele de 315-MHz. Software-ului nu îi pasă pe care îl utilizați, dar trebuie să vă asigurați că placa receptorului funcționează la aceeași frecvență. Cele mai multe dintre proiectele mele folosesc dispozitive de 433 MHz, deoarece acest lucru este utilizat de diferitele dispozitive fără fir ieftine pe care le-am acumulat. Aspectul plăcii emițătorului prezentat în imagine se potrivește frumos într-o sticlă de pilule veche. Nu este destul de bun, dar suficient de bun pentru o dovadă de concept.

Receptorul se află pe o placă fără sudură, deoarece singurul său scop este să arate cum să primiți semnale și cum să porniți / dezactivați ceva pe baza codurilor primite. Acesta folosește un LED pentru a indica starea de pornire / oprire, dar ați putea să îl înlocuiți cu un driver de releu etc. Orice Arduino poate fi utilizat pentru receptor, deoarece nu trebuie să se descarce de la o baterie. Dacă dimensiunea este încă o considerație, puteți utiliza un alt cip ATtiny85. Cheia este că ATtiny85 trebuie să ruleze la 8 MHz în receptor. Consultați versiunea anterioară ATtiny85 Instructable pentru o schiță simplă care verifică dacă ați schimbat cu succes ceasul intern la 8 MHz. La sfârșitul programului meu de decodare a senzorilor, includ o versiune Arduino Nano a software-ului receptorului. Este identic cu versiunea ATtiny85 inclusă aici, cu excepția diferențelor de registre de cipuri.

Așa cum am detaliat în instrumentele RF anterioare, prefer să folosesc un receptor precum RXB6 obișnuit. Este un receptor super-heterodin care funcționează mult mai bine decât receptoarele super-regenerative care sunt în mod obișnuit puse la dispoziție cu transmițătoarele FS1000A.

Atât modulele emițător, cât și receptorul funcționează mai bine cu antenele adecvate, dar adesea nu sunt furnizate. Puteți să le cumpărați (obțineți frecvența corectă) sau vă puteți face propriile. La 433 MHz, lungimea potrivită este de aproximativ 16 cm pentru o antenă cu fir drept. Pentru a face unul înfășurat, luați aproximativ 16 cm de sârmă izolată, cu miez solid și înfășurați-l în jurul a ceva ca o tijă de burghiu de 5/32-inch într-un singur strat. Îndepărtați izolația unei secțiuni scurte drepte la un capăt și conectați-o la placa emițător / receptor. Am constatat că firul unui cablu Ethernet restant funcționează bine pentru antene. Placa emițătorului are de obicei un loc pentru lipirea antenei, dar placa receptorului poate avea doar pini (cum ar fi RXB6). Asigurați-vă că conexiunea este sigură dacă nu o lipiți.

Pasul 3: Software

Software-ul transmițătorului folosește tehnici comune pentru a pune cipul în modul de repaus. În acest mod atrage mai puțin de 0,2ua curent. Intrările de comutare (D1-D4) au pornite rezistențele de tragere interne, dar nu trag curent până când nu este apăsat un comutator. Intrările sunt configurate pentru întrerupere la schimbare (IOC). Când este apăsat un comutator, se generează o întrerupere și forțează cipul să se trezească. Manipulatorul de întreruperi efectuează aproximativ 48 de secunde de întârziere pentru a permite comutatorului să se retragă. Apoi se face o verificare pentru a determina care comutator a fost apăsat și se apelează rutina corespunzătoare. Mesajul transmis se repetă de mai multe ori (eu am ales de 5 ori). Acest lucru este tipic pentru emițătoarele comerciale, deoarece există atât de mult trafic RF pe 433 MHz și 315 MHz acolo. Mesajele repetate vă ajută să vă asigurați că cel puțin unul ajunge la receptor.

Timpii de sincronizare și de biți sunt definiți în partea din față a software-ului transmițătorului, dar octeții de date sunt încorporați în fiecare dintre cele patru rutine de butoane. Sunt evidente și ușor de schimbat, iar adăugarea de octeți pentru a crea un mesaj mai lung este, de asemenea, ușoară. Toate aceleași definiții sunt incluse în software-ul receptorului, precum și în definițiile de octeți de date. Dacă adăugați octeți de date la mesajul dvs., va trebui să modificați definiția pentru „Msg_Length” și să adăugați octeți la variabila „RF_Message”. De asemenea, va trebui să adăugați cod la verificarea „RF_Message” în „buclă” pentru a verifica primirea corectă a octeților suplimentari și pentru a defini acești octeți.

Recomandat: