INHOUDSOPGAWE:

ATtiny85 RF -afstandsbediening: 3 stappe
ATtiny85 RF -afstandsbediening: 3 stappe

Video: ATtiny85 RF -afstandsbediening: 3 stappe

Video: ATtiny85 RF -afstandsbediening: 3 stappe
Video: ATtiny85 RF Transmitter & Receiver 2024, Julie
Anonim
ATtiny85 RF afstandsbediening
ATtiny85 RF afstandsbediening

LET WEL: my instruksionele 'virtuele wegkruipspeletjie' wys hoe u hierdie tipe afstandsbediening kan gebruik met 'n RXC6-module wat die boodskap outomaties dekodeer.

Soos ek in 'n vorige Instructable genoem het, het ek onlangs met 'n paar ATtiny85 -skyfies begin speel. Die eerste projek wat ek in gedagte gehad het, was om 'n RF -afstandsbediening te maak wat op 'n muntbattery kan werk. Ek moes 'n rou chip gebruik, want nie een van die Arduinos wat ek het, kan voldoen aan die behoefte aan baie lae krag en 'n relatief klein grootte nie. 'N Gewysigde LilyPad het naby gekom, maar die chip is 'n beter antwoord. Die idee was nie net om 'n bestaande afstandsbediening te dupliseer nie, maar om te demonstreer hoe u u eie sender- en ontvangerstel kan saamstel. Behalwe dat dit 'n prettige leerprojek is, kan u ook u eie 'geheime' kodekombinasie skep. Ek het 'geheim' in aanhalings geplaas, want dit is redelik maklik om hierdie eenvoudige kodes te kraak.

Stap 1: RF -boodskapformaat

RF -boodskapformaat
RF -boodskapformaat

Vir hierdie projek het ek gekies om die seine vir een van my Etekcity RF draadlose skakelaars te herhaal (verwys na my Instructable op die modules). Ek het dit gedoen omdat ek kon verifieer dat my sender met die Etekcity -ontvanger werk en dat my ontvanger met die Etekcity -afstandsbediening werk. Ek weet ook toevallig presies wat die korrekte kodes en formaat vir die toestelle is, want ek het dit voorheen vasgelê. Raadpleeg my instruksie "Arduino RF Sensor Decoder" vir die skets van die vaslegging van die kode.

Die kodes en formate vir die Etekcity -afsetpunte is baie tipies van goedkoop RF -toestelle. Ek het goedkoop beveiligingstoestelle wat baie soortgelyke formate gebruik, met slegs 'n paar tydsberekeningvariasies. Die boodskaplengte is 'n gerieflike 24 bisse met 'n lang beginbit en 'n kort stopbit. U kan die kode maklik verander om meer grepe data by te voeg en die tydsberekening van die sinchronisasie- en databits te verander. Weereens, hierdie skets is slegs 'n aanvangsjabloon.

Stap 2: Hardeware

Hardeware
Hardeware
Hardeware
Hardeware
Hardeware
Hardeware

Die sender werk op 'n muntbattery (2032), dus 'n lae kragverbruik is die sleutel. Die meeste daarvan word in die sagteware bereik, maar dit word gehelp deur die feit dat die ATtiny85 normaalweg op die 1-MHz interne klok werk. Die reël is dat laer klokfrekwensies minder krag benodig en 1-MHz is perfek vir die senderlogika.

Die werklike RF -sender module wat ek graag gebruik, is 'n FS1000A wat algemeen beskikbaar is. Dit kom in beide 433 MHz en 315 MHz weergawes. Die sagteware gee nie om watter een u gebruik nie, maar u moet seker maak dat die ontvangerbord op dieselfde frekwensie werk. Die meeste van my projekte gebruik 433-MHz-toestelle, want dit word gebruik deur die verskillende goedkoop draadlose toestelle wat ek versamel het. Die uitleg van die senderbord in die prentjie pas goed in 'n ou pilbottel. Dit is nie mooi nie, maar goed genoeg vir 'n bewys van konsep.

Die ontvanger is op 'n soldeerlose broodbord, want die enigste doel daarvan is om te wys hoe om seine te ontvang en hoe om iets aan/uit te skakel op grond van die ontvangde kodes. Dit gebruik 'n LED om aan/uit -status aan te dui, maar u kan dit vervang met 'n aflosbestuurder, ens. Enige Arduino kan vir die ontvanger gebruik word omdat dit nie 'n battery hoef te loop nie. As die grootte steeds oorweeg word, kan u 'n ander ATtiny85 -chip gebruik. Die sleutel is dat die ATtiny85 teen 8-MHz in die ontvanger moet werk. Raadpleeg my vorige ATtiny85 Instructable vir 'n eenvoudige skets wat bevestig dat u die interne klok suksesvol na 8-MHz verander het. Aan die einde van my Instructable on sensor decoding bevat ek 'n Arduino Nano weergawe van die ontvanger sagteware. Dit is identies aan die ATtiny85 -weergawe wat hier ingesluit is, behalwe vir 'n paar chipregisterverskille.

Soos ek in my vroeëre RF Instructables uiteengesit het, verkies ek om 'n ontvanger soos die gewone RXB6 te gebruik. Dit is 'n super-heterodyne-ontvanger wat baie beter werk as die super-regeneratiewe ontvangers wat gereeld saam met die FS1000A-senders saamgevoeg word.

Beide die sender- en ontvangermodules werk beter met die regte antennas, maar dit word dikwels nie verskaf nie. U kan dit koop (kry die korrekte frekwensie), of u kan dit self maak. By 433 MHz is die regte lengte ongeveer 16 cm vir 'n reguit draadantenne. Om 'n opgerolde een te maak, neem ongeveer 16 cm geïsoleerde, soliede kerndraad en draai dit om iets soos 'n 5/32-inch boorpunt in 'n enkele laag. Verwyder die isolasie van 'n kort reguit gedeelte aan die een kant en koppel dit aan u sender/ontvangerbord. Ek het gevind dat die draad van 'n afval Ethernet -kabel goed werk vir antennas. Die senderbord het gewoonlik 'n plek om die antenna te soldeer, maar die ontvangerbord mag slegs penne hê (soos die RXB6). Maak net seker dat die verbinding veilig is as u dit nie soldeer nie.

Stap 3: sagteware

Die senderprogrammatuur gebruik algemene tegnieke om die chip in die slaapmodus te plaas. In die modus trek dit minder as 0.2ua stroom. Die skakelaaringange (D1-D4) het die interne optrekweerstande aangeskakel, maar hulle trek geen stroom totdat 'n skakelaar ingedruk word nie. Die insette is gekonfigureer vir interrupt-on-change (IOC). As 'n skakelaar ingedruk word, word 'n onderbreking gegenereer en dit dwing die chip om wakker te word. Die onderbrekingshanteerder voer ongeveer 48 msek vertraging uit sodat die skakelaar kan terugspring. 'N Kontrole word gedoen om vas te stel watter skakelaar ingedruk is en die toepaslike roetine word gebel. Die oorgedra boodskap word verskeie kere herhaal (ek het 5 keer gekies). Dit is tipies van kommersiële senders omdat daar soveel RF-verkeer is op 433-MHz en 315-MHz daar buite. Die herhaalde boodskappe help om te verseker dat ten minste een by die ontvanger uitkom.

Die sinchronisasie- en bittye word aan die voorkant van die senderprogrammatuur gedefinieer, maar die datagrepe is ingebed in elk van die vier knoppie -roetines. Dit is duidelik en maklik om te verander, en dit is ook maklik om grepe by te voeg om 'n langer boodskap te maak. Dieselfde omskrywings is ingesluit in die ontvangerprogrammatuur sowel as die definisies van die databyt. As u databytes by u boodskap voeg, moet u die definisie vir "Msg_Length" verander en grepe by die veranderlike "RF_Message" voeg. U moet ook kode by die "RF_Message" -kontrole in "lus" voeg om die korrekte ontvangs van die ekstra grepe te verifieer en die grepe te definieer.

Aanbeveel: