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, Juli
Anonim
ATtiny85 RF daljinski upravljač
ATtiny85 RF daljinski upravljač

NAPOMENA: Moja instrukcija "Virtuelna igra skrivača" pokazuje kako se koristi ovaj tip daljinskog upravljača sa modulom RXC6 koji automatski dekodira poruku.

Kao što sam spomenuo u prethodnom Instructable -u, nedavno sam počeo igrati sa 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 nijedan Arduinos 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 da se duplicira postojeći daljinski upravljač, već da se pokaže kako možete sastaviti vlastiti set odašiljača i prijemnika. 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 uspio 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” koji se može uputiti za skicu hvatanja koda.

Kodovi i formati Etekcity utičnica 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. Dužina poruke je prikladnih 24 bita sa dugim početnim i kratkim zaustavnim bitom. Kôd možete lako izmijeniti kako biste dodali još bajtova podataka i promijenili vrijeme sinhronizacije 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 bateriju u obliku kovanice (2032) pa je niska potrošnja energije ključna. Većina toga je postignuta softverom, ali tome pomaže činjenica da ATtiny85 normalno radi na internom 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 predajnika 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. Raspored ploče predajnika 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 osnovu 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 prijemnik 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 o dekodiranju senzora uključujem Arduino Nano verziju softvera prijemnika. Identična je s ovdje uključenom verzijom ATtiny85, osim nekoliko razlika u registru čipova.

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

I moduli predajnika 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 napraviti. Na 433-MHz, desna dužina je oko 16 cm za antenu sa ravnom žicom. Da biste napravili namotanu, uzmite oko 16 cm izolirane žice s čvrstim 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/prijemnika. Otkrio sam da žica od otpadnog Ethernet kabela dobro funkcionira za antene. Ploča predajnika 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 predajnika 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 unutrašnje otpornike, ali ne povlače 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 48msec 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 u osiguravanju da barem jedna osoba dođe do prijemnika.

Vremena sinhronizacije i bitova su definisana na prednjoj strani softvera predajnika, ali su bajtovi podataka ugrađeni u svaku od četiri rutine dugmadi. Očigledne su i lako se mijenjaju, a dodavanje bajtova za stvaranje duže poruke je također 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čuje se: