Innholdsfortegnelse:
Video: ATtiny85 RF -fjernkontroll: 3 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
MERK: Mitt instruerbare "virtuelle skjul-og-søk" -spill viser hvordan du bruker denne typen fjernkontroll med en RXC6-modul som automatisk dekoder meldingen.
Som jeg nevnte i en tidligere Instructable begynte jeg nylig å spille med noen ATtiny85 -brikker. Det første prosjektet jeg hadde i tankene var å lage en RF -fjernkontroll som kunne fungere på et myntbatteri. Jeg trengte å gå med en rå chip fordi ingen av Arduinoene jeg har kan dekke både behovet for veldig lav effekt og relativt liten størrelse. En modifisert LilyPad kom i nærheten, men brikken er et bedre svar. Tanken var ikke så mye å kopiere en eksisterende fjernkontroll, men å demonstrere hvordan du kan lage ditt eget sender- og mottakersett. I tillegg til å være et morsomt læringsprosjekt, lar det deg også lage din egen "hemmelige" kodekombinasjon. Jeg satte "hemmelig" i anførselstegn fordi det er ganske enkelt å knekke disse enkle kodene.
Trinn 1: RF -meldingsformat
For dette prosjektet valgte jeg å replikere signalene for en av mine trådløse Etekcity RF -svitsjer (se min Instructable på disse modulene). Jeg gjorde det fordi jeg kunne bekrefte at senderen min fungerer med Etekcity -mottakeren og at mottakeren min fungerer med Etekcity -fjernkontrollen. Jeg vet også tilfeldigvis nøyaktig hva som er de riktige kodene og formatet for disse enhetene fordi jeg fanget dem tidligere. Se min "Arduino RF Sensor Decoder" Instruerbar for kodefangstskissen.
Kodene og formatene for Etekcity -utsalgsstedene er veldig typiske for rimelige RF -enheter. Jeg har billige sikkerhetsenheter som bruker veldig like formater med bare noen tidsvariasjoner. Meldingslengden er en praktisk 24 bit med en lang startbit og en kort stoppbit. Du kan enkelt endre koden for å legge til flere byte med data og for å endre tidspunktet for synkronisering og databiter. Igjen, denne skissen er bare en startmal.
Trinn 2: Maskinvare
Senderen går på et myntbatteri (2032), så lavt strømforbruk er nøkkelen. Det meste oppnås i programvaren, men det er hjulpet av det faktum at ATtiny85 normalt kjører på 1 MHz intern klokke. Regelen er at lavere klokkefrekvenser krever mindre strøm og 1-MHz er perfekt for senderlogikken.
Selve RF -sendermodulen jeg liker å bruke er en FS1000A som er tilgjengelig. Den kommer i både 433-MHz og 315-MHz versjoner. Programvaren bryr seg ikke om hvilken du bruker, men du må sørge for at mottakerbordet fungerer med samme frekvens. De fleste av prosjektene mine bruker 433-MHz-enheter fordi det er det som brukes av de forskjellige rimelige trådløse enhetene jeg har samlet. Senderkortoppsettet som vises på bildet, passer fint inn i en gammel pilleflaske. Det er ikke pent, men bra nok for et proof-of-concept.
Mottakeren er på et loddfritt brødbrett fordi det eneste formålet er å vise hvordan du mottar signaler og hvordan du slår noe på/av basert på mottatte koder. Den bruker en LED for å indikere av/på -status, men du kan erstatte den med en relédriver osv. Enhver Arduino kan brukes til mottakeren fordi den ikke trenger å gå tom for et batteri. Hvis størrelsen fortsatt er en vurdering, kan du bruke en annen ATtiny85 -brikke. Nøkkelen er at ATtiny85 må kjøre på 8-MHz i mottakeren. Se min tidligere ATtiny85 Instructable for en enkel skisse som bekrefter at du har endret den interne klokken til 8-MHz. På slutten av min Instructable on sensor -dekoding inkluderer jeg en Arduino Nano -versjon av mottakerprogramvaren. Det er identisk med ATtiny85 -versjonen som er inkludert her bortsett fra et par chipregisterforskjeller.
Som jeg beskrev i mine tidligere RF -instrukser, foretrekker jeg å bruke en mottaker som den vanlige RXB6. Det er en super-heterodyne-mottaker som fungerer mye bedre enn super-regenerative mottakere som vanligvis følger med FS1000A-sendere.
Både sender- og mottakermodulene fungerer bedre med riktige antenner, men de leveres ofte ikke. Du kan kjøpe dem (få riktig frekvens) eller du kan lage din egen. Ved 433 MHz er riktig lengde ca 16 cm for en rett trådantenne. For å lage en spiral, ta ca 16 cm isolert, solid kjernetråd og pakk den rundt noe som en 5/32-tommers borekrone i et enkelt lag. Fjern isolasjonen fra en kort rett seksjon i den ene enden og koble den til sender/mottakerbordet. Jeg har funnet ut at ledningen fra en skrot Ethernet -kabel fungerer godt for antenner. Senderkortet har vanligvis et sted å lodde antennen, men mottakerbordet kan bare ha pinner (som RXB6). Bare sørg for at tilkoblingen er sikker hvis du ikke lodder den.
Trinn 3: Programvare
Senderprogramvaren bruker vanlige teknikker for å sette brikken i hvilemodus. I den modusen trekker den mindre enn 0.2ua strøm. Bryterinngangene (D1-D4) har de interne opptrekkmotstandene slått på, men de trekker ikke strøm før du trykker på en bryter. Inngangene er konfigurert for interrupt-on-change (IOC). Når en bryter trykkes, genereres et avbrudd og det tvinger brikken til å våkne. Avbryterbehandleren utfører omtrent 48 ms forsinkelse for å la bryteren gå av. En sjekk blir deretter utført for å finne ut hvilken bryter som ble trykket, og den riktige rutinen blir kalt. Den overførte meldingen gjentas flere ganger (jeg valgte 5 ganger). Dette er typisk for kommersielle sendere fordi det er så mye RF-trafikk på 433 MHz og 315 MHz der ute. De gjentatte meldingene er med på å sikre at minst én kommer til mottakeren.
Synkroniserings- og bitetiden er definert på forsiden av senderprogramvaren, men databyte er innebygd i hver av de fire knapprutinene. De er åpenbare og enkle å endre, og det er også enkelt å legge til byte for å lage en lengre melding. Alle de samme definisjonene er inkludert i mottakerprogramvaren, så vel som databyte -definisjonene. Hvis du legger til databyte i meldingen, må du endre definisjonen for "Msg_Length" og legge til byte i variabelen "RF_Message". Du må også legge til kode i "RF_Message" -innsjekkingen i "loop" for å bekrefte at de ekstra bytes er godt mottatt og definere disse byte.
Anbefalt:
Større og forbedret julestjerne Neopixel Attiny85: 3 trinn (med bilder)
Større og forbedret julestjerne Neopixel Attiny85: I fjor lagde jeg en liten 3D-trykt julestjerne, se https://www.instructables.com/id/Christmas-Star-LE…I år laget jeg en større stjerne av en tråd av 50 Neopixels (5V WS2811). Denne større stjernen hadde flere mønstre (jeg legger fortsatt til og forbedrer
Redusere batteristrømforbruket for Digispark ATtiny85: 7 trinn
Redusere batteristrømforbruket for Digispark ATtiny85: eller: Kjører en Arduino med en 2032 myntcelle i 2 år. Ved bruk av Digispark Arduino Board ut av esken med et Arduino -program trekker den 20 mA ved 5 volt. Med en 5 volt powerbank på 2000 mAh vil den bare gå i 4 dager
ATTiny85 kondensatormåler: 4 trinn
ATTiny85 kondensatormåler: Denne instruksjonen er for en kondensator måler basert på ATTiny85 med følgende funksjoner: Basert på ATTiny85 (DigiStamp) SSD1306 0.96 " OLED DisplayFrekvensmåling for kondensatorer med lav verdi 1pF - 1uF ved bruk av 555 oscillator Måling av ladetid
AtTiny85 Adresserbar LED -stripe: 10 trinn
AtTiny85 Adresserbar LED-stripe: Målet mitt var å lage en bordlampe av lysdioder. Jeg ønsket at den skulle være justerbar, så den kunne brukes både på dag og natt. I mitt første forsøk brukte jeg en enkel LED-stripe og stor MOS- FETs for å kjøre dem klokken 12v.Denne gangen valgte jeg adresserbare lysdioder som er kraftige
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: 4 Steps (with Pictures)
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: How to make the wearable activity tracking watch? Dette er en bærbar gadget designet for å vibrere når den oppdager stagnasjon. Bruker du mesteparten av tiden din på datamaskinen som meg? Sitter du i timevis uten å innse det? Da er denne enheten f