Indholdsfortegnelse:

ATtiny85 RF fjernbetjening: 3 trin
ATtiny85 RF fjernbetjening: 3 trin

Video: ATtiny85 RF fjernbetjening: 3 trin

Video: ATtiny85 RF fjernbetjening: 3 trin
Video: Test Radio 433MHz with ATtiny85 2024, Juli
Anonim
ATtiny85 RF fjernbetjening
ATtiny85 RF fjernbetjening

BEMÆRK: My Instructable "Virtual Hide-and-Seek Game" viser, hvordan du bruger denne type fjernbetjening med et RXC6-modul, der automatisk afkoder meddelelsen.

Som jeg nævnte i en tidligere instruerbar, begyndte jeg for nylig at spille med nogle ATtiny85 -chips. Det første projekt, jeg havde i tankerne, var at lave en RF -fjernbetjening, der kunne fungere på et møntbatteri. Jeg havde brug for at gå med en rå chip, fordi ingen af de Arduinos, jeg har, kan opfylde både behovet for meget lav effekt og relativt lille størrelse. En modificeret LilyPad kom tæt på, men chippen er et bedre svar. Ideen var ikke så meget at kopiere en eksisterende fjernbetjening, men at demonstrere, hvordan du kan sammensætte dit eget sender- og modtagersæt. Udover at være et sjovt læringsprojekt, giver det dig også mulighed for at oprette din egen "hemmelige" kodekombination. Jeg satte "hemmelighed" i anførselstegn, fordi det er ret let at knække disse enkle koder.

Trin 1: RF -meddelelsesformat

RF -meddelelsesformat
RF -meddelelsesformat

Til dette projekt valgte jeg at replikere signalerne for en af mine Etekcity RF trådløse switches (se min Instructable på disse moduler). Jeg gjorde det, fordi jeg kunne kontrollere, at min sender fungerer med Etekcity -modtageren, og at min modtager fungerer med Etekcity -fjernbetjeningen. Jeg ved også tilfældigt, hvad de korrekte koder og format er for disse enheder, fordi jeg har fanget dem tidligere. Se min "Arduino RF Sensor Decoder" Instruerbar for kodeoptagelsesskitsen.

Koderne og formaterne til Etekcity -forretningerne er meget typiske for billige RF -enheder. Jeg har billige sikkerhedsenheder, der bruger meget lignende formater med kun nogle tidsvariationer. Beskedlængden er en bekvem 24 bit med en lang startbit og en kort stopbit. Du kan nemt ændre koden for at tilføje flere bytes med data og for at ændre tidspunktet for synkronisering og databit. Igen er denne skitse bare en startskabelon.

Trin 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Senderen kører på et møntbatteri (2032), så lavt strømforbrug er nøglen. Det meste opnås i softwaren, men det er hjulpet af, at ATtiny85 normalt kører på 1-MHz internt ur. Reglen er, at lavere urfrekvenser kræver mindre strøm, og 1-MHz er perfekt til senderlogikken.

Det egentlige RF -transmittermodul, jeg kan lide at bruge, er en FS1000A, der er almindeligt tilgængelig. Den fås i både 433-MHz og 315-MHz versioner. Softwaren er ligeglad med hvilken du bruger, men du skal sørge for, at modtagerkortet fungerer med samme frekvens. De fleste af mine projekter bruger 433-MHz-enheder, fordi det er det, der bruges af de forskellige billige trådløse enheder, jeg har akkumuleret. Senderkortets layout vist på billedet passer fint ind i en gammel pilleflaske. Det er ikke smukt, men godt nok til et proof-of-concept.

Modtageren er på et loddet brødbræt, fordi dets eneste formål er at vise, hvordan man modtager signaler, og hvordan man tænder/slukker noget baseret på de modtagne koder. Den bruger en LED til at angive tænd/sluk -status, men du kan erstatte den med en relædriver osv. Enhver Arduino kan bruges til modtageren, fordi den ikke behøver at løbe tør for et batteri. Hvis størrelsen stadig er en overvejelse, kan du bruge en anden ATtiny85 -chip. Nøglen er, at ATtiny85 skal køre ved 8-MHz i modtageren. Se min tidligere ATtiny85 Instructable for en simpel skitse, der verificerer, at du med succes har ændret det interne ur til 8-MHz. I slutningen af min Instructable on sensor -dekodning inkluderer jeg en Arduino Nano -version af modtagersoftwaren. Det er identisk med ATtiny85 -versionen, der er inkluderet her bortset fra et par chipregisterforskelle.

Som jeg har beskrevet i mine tidligere RF -instruktioner, foretrækker jeg at bruge en modtager som den almindelige RXB6. Det er en super-heterodyne-modtager, der fungerer meget bedre end de super-regenerative modtagere, der normalt følger med FS1000A-senderne.

Både sender- og modtagermodulerne fungerer bedre med de korrekte antenner, men de leveres ofte ikke. Du kan købe dem (få den korrekte frekvens), eller du kan lave din egen. Ved 433-MHz er den rigtige længde ca. 16 cm for en lige trådantenne. For at lave en spiralformet skal du tage omkring 16 cm isoleret, massiv kernetråd og vikle den omkring noget som en 5/32-tommer borekrank i et enkelt lag. Fjern isoleringen fra en kort lige sektion i den ene ende og tilslut den til dit sender/modtager bord. Jeg har fundet ud af, at ledningen fra et skrot Ethernet -kabel fungerer godt til antenner. Senderkortet har normalt et sted at lodde antennen, men modtagerkortet må kun have stifter (som RXB6). Bare sørg for, at forbindelsen er sikker, hvis du ikke lodder den.

Trin 3: Software

Sendersoftwaren bruger almindelige teknikker til at sætte chippen i dvaletilstand. I den tilstand trækker den mindre end 0.2ua strøm. Kontaktindgangene (D1-D4) har de interne pull-up-modstande tændt, men de trækker ikke strøm, før der trykkes på en kontakt. Inputene er konfigureret til interrupt-on-change (IOC). Når der trykkes på en switch, genereres en afbrydelse, og den tvinger chippen til at vågne. Afbrydelsesbehandleren udfører cirka 48 ms forsinkelse for at tillade kontakten at debounce. En kontrol foretages derefter for at afgøre, hvilken kontakt der blev trykket på, og den relevante rutine kaldes. Den overførte besked gentages flere gange (jeg valgte 5 gange). Dette er typisk for kommercielle sendere, fordi der er så meget RF-trafik på 433-MHz og 315-MHz derude. De gentagne meddelelser er med til at sikre, at mindst én kommer igennem til modtageren.

Synkroniserings- og bitetiderne er defineret på forsiden af transmittersoftwaren, men databyte er integreret i hver af de fire knaprutiner. De er indlysende og lette at ændre, og det er også let at tilføje bytes for at lave en længere besked. Alle de samme definitioner er inkluderet i modtagersoftwaren samt databyte -definitionerne. Hvis du tilføjer databyte til din meddelelse, skal du ændre definitionen for "Msg_Length" og tilføje bytes til variablen "RF_Message". Du bliver også nødt til at tilføje kode til "RF_Message" -tjekket i "loop" for at verificere den korrekte modtagelse af de ekstra bytes og definere disse bytes.

Anbefalede: