Sadržaj:

ATtiny85 RF daljinski upravljač: 3 koraka
ATtiny85 RF daljinski upravljač: 3 koraka

Video: ATtiny85 RF daljinski upravljač: 3 koraka

Video: ATtiny85 RF daljinski upravljač: 3 koraka
Video: ATtiny85 Relais Switch 2024, Studeni
Anonim
ATtiny85 RF daljinski upravljač
ATtiny85 RF daljinski upravljač

NAPOMENA: Moja instrukcija "Virtualna skrivača i igra" pokazuje kako se koristi ova vrsta daljinskog upravljača s modulom RXC6 koji automatski dekodira poruku.

Kao što sam spomenuo u prethodnom Instructable -u, nedavno sam se počeo igrati s nekim ATtiny85 čipovima. Prvi projekt koji sam imao na umu bio je napraviti RF daljinski upravljač koji bi mogao raditi na bateriju u obliku kovanice. Morao sam ići sa sirovim čipom jer niti jedan od Arduina koji imam ne može zadovoljiti potrebu za vrlo niskom snagom i relativno male veličine. Modificirani LilyPad se približio, ali čip je bolji odgovor. Ideja nije bila toliko u dupliciranju postojećeg daljinskog upravljača, već u pokazivanju načina na koji možete sastaviti vlastiti odašiljač i prijemnik. Osim što je zabavan projekt učenja, omogućuje vam i stvaranje vlastite "tajne" kombinacije koda. Stavio sam "tajnu" pod navodnike jer je prilično lako razbiti ove jednostavne kodove.

Korak 1: Format RF poruke

Format RF poruke
Format RF poruke

Za ovaj projekt odlučio sam replicirati signale za jedan od svojih bežičnih prekidača Etekcity RF (pogledajte moj Instructable na tim modulima). To sam učinio jer sam mogao provjeriti radi li moj odašiljač s prijemnikom Etekcity i radi li prijemnik s daljinskim upravljačem Etekcity. Slučajno znam i koji su ispravni kodovi i format za te uređaje jer sam ih prethodno snimio. Pogledajte moj "Arduino RF senzorski dekoder" za upute za skicu hvatanja koda.

Kodovi i formati za prodajna mjesta Etekcity vrlo su tipični za jeftine RF uređaje. Imam jeftine sigurnosne uređaje koji koriste vrlo slične formate sa samo nekim varijacijama vremena. Duljina poruke je prikladnih 24 bita s dugim početnim i kratkim zaustavnim bitom. Kôd možete lako izmijeniti kako biste dodali još bajtova podataka i promijenili vrijeme sinkronizacije i podatkovnih bitova. Opet, ova skica je samo početni predložak.

Korak 2: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

Odašiljač radi na kovanici (2032) pa je niska potrošnja energije ključna. Većina toga postiže se softverom, ali tome pomaže činjenica da ATtiny85 normalno radi na unutarnjem taktu od 1 MHz. Pravilo je da niže frekvencije takta zahtijevaju manje energije i 1-MHz je savršeno za logiku odašiljača.

Stvarni modul RF odašiljača koji volim koristiti je FS1000A koji je općenito dostupan. Dolazi u verzijama od 433 MHz i 315 MHz. Softver ne zanima koji ćete koristiti, ali morate biti sigurni da ploča prijemnika radi na istoj frekvenciji. Većina mojih projekata koristi uređaje od 433 MHz jer to je ono što koriste različiti jeftini bežični uređaji koje sam nakupio. Izgled ploče odašiljača prikazan na slici lijepo se uklapa u staru bočicu s tabletama. Nije lijepo, ali dovoljno dobro za dokaz koncepta.

Prijemnik se nalazi na ploči bez lemljenja jer mu je jedina svrha pokazati kako primati signale i kako uključiti/isključiti nešto na temelju primljenih kodova. Koristi LED za označavanje statusa uključenosti/isključenosti, ali to možete zamijeniti upravljačkim programom releja itd. Bilo koji Arduino može se koristiti za prijamnik jer ne mora isprazniti bateriju. Ako veličina još uvijek razmišljate, možete upotrijebiti drugi ATtiny85 čip. Ključno je da ATtiny85 mora raditi na 8-MHz u prijemniku. Pogledajte moju prethodnu ATtiny85 Instructable za jednostavnu skicu koja potvrđuje da ste uspješno promijenili interni sat na 8-MHz. Na kraju mog Instructable -a o dekodiranju senzora uključio sam Arduino Nano verziju softvera prijemnika. Identična je ovdje uključenoj verziji ATtiny85, osim nekoliko razlika u registru čipova.

Kao što sam detaljno opisao u svojim ranijim RF Instructables, radije bih koristio prijemnik poput uobičajenog RXB6. To je super-heterodinski prijemnik koji radi puno bolje od super-regenerativnih prijamnika koji se obično isporučuju s odašiljačima FS1000A.

I moduli odašiljača i prijemnika bolje rade s odgovarajućim antenama, ali se često ne isporučuju. Možete ih kupiti (dobiti ispravnu frekvenciju) ili ih možete sami izraditi. Na 433-MHz, desna duljina je oko 16 cm za antenu s ravnom žicom. Da biste napravili namotanu, uzmite oko 16 cm izolirane žice s čvrstom jezgrom i omotajte je oko nečega poput drške svrdla od 5/32 inča u jednom sloju. Skinite izolaciju s kratkog ravnog dijela na jednom kraju i spojite je na ploču odašiljača/prijamnika. Otkrio sam da žica od otpadnog Ethernet kabela dobro funkcionira za antene. Ploča odašiljača obično ima mjesto za lemljenje antene, ali ploča prijemnika može imati samo pinove (poput RXB6). Samo provjerite je li veza sigurna ako je ne lemite.

Korak 3: Softver

Softver odašiljača koristi uobičajene tehnike za prebacivanje čipa u stanje mirovanja. U tom načinu rada troši manje od 0,2ua struje. Ulazi sklopke (D1-D4) imaju uključene unutarnje vučne otpornike, ali ne crpe nikakvu struju sve dok se prekidač ne pritisne. Ulazi su konfigurirani za prekid pri promjeni (IOC). Kada se pritisne prekidač, dolazi do prekida i prisiljava čip da se probudi. Rukovalac prekida izvodi kašnjenje od oko 48 ms kako bi omogućio otklanjanje prekidača. Zatim se provjerava kako bi se utvrdilo koji je prekidač pritisnut i poziva se odgovarajuća rutina. Prenesena poruka se ponavlja nekoliko puta (odabrao sam 5 puta). To je tipično za komercijalne odašiljače jer vani postoji toliko RF prometa na 433-MHz i 315-MHz. Ponovljene poruke pomažu osigurati da barem jedna dođe do primatelja.

Vrijeme sinkronizacije i vrijeme bita definirano je na prednjoj strani softvera odašiljača, ali su bajti podataka ugrađeni u svaku od četiri rutine gumba. Očigledni su i lako se mijenjaju, a dodavanje bajtova za stvaranje duže poruke također je jednostavno. Sve iste definicije uključene su u softver prijemnika, kao i definicije bajtova podataka. Ako u poruku dodate bajtove podataka, morat ćete promijeniti definiciju za "Msg_Length" i dodati bajtove u varijablu "RF_Message". Također ćete morati dodati kôd za provjeru “RF_Message” u “loop” kako biste provjerili pravilan prijem dodatnih bajtova i definirali te bajtove.

Preporučeni: