Satura rādītājs:

ATtiny85 RF tālvadības pults: 3 soļi
ATtiny85 RF tālvadības pults: 3 soļi

Video: ATtiny85 RF tālvadības pults: 3 soļi

Video: ATtiny85 RF tālvadības pults: 3 soļi
Video: How to make a 8 Channel Transmitter | 8 Channel Simple RF Remote Control For RC | Part 01 #jlcpcb 2024, Jūlijs
Anonim
ATtiny85 RF tālvadības pults
ATtiny85 RF tālvadības pults

PIEZĪME. Mana pamācāmā "virtuālā paslēpes spēle" parāda, kā izmantot šāda veida tālvadības pulti ar RXC6 moduli, kas automātiski atšifrē ziņojumu.

Kā jau minēju iepriekšējā Instructable, es nesen sāku spēlēt ar dažām ATtiny85 mikroshēmām. Sākotnējais projekts, ko es domāju, bija izveidot RF tālvadības pulti, kas darbotos ar monētu bateriju. Man vajadzēja iet ar neapstrādātu mikroshēmu, jo neviens no maniem Arduinos nevar apmierināt gan nepieciešamību pēc ļoti mazas jaudas, gan salīdzinoši maza izmēra. Modificēts LilyPad tuvojās, bet mikroshēma ir labāka atbilde. Ideja nebija tik daudz, lai dublētu esošo tālvadības pulti, bet gan lai parādītu, kā jūs varat izveidot savu raidītāju un uztvērēju. Tas ir ne tikai jautrs mācību projekts, bet arī ļauj jums izveidot savu “slepeno” kodu kombināciju. Es pēdiņās ievietoju “noslēpumu”, jo šos vienkāršos kodus ir diezgan viegli uzlauzt.

1. darbība: RF ziņojuma formāts

RF ziņojumu formāts
RF ziņojumu formāts

Šim projektam es izvēlējos atkārtot signālus vienam no maniem Etekcity RF bezvadu slēdžiem (skatiet manu pamācību par šiem moduļiem). Es to darīju, jo varēju pārbaudīt, vai mans raidītājs darbojas ar Etekcity uztvērēju un vai mans uztvērējs darbojas ar Etekcity tālvadības pulti. Es arī precīzi zinu, kādi ir pareizie kodi un formāts šīm ierīcēm, jo es tos iemūžināju iepriekš. Koda uztveršanas skici skatiet manā instrukcijā “Arduino RF sensora dekodētājs”.

Etekcity tirdzniecības vietu kodi un formāti ir ļoti raksturīgi lētām RF ierīcēm. Man ir lētas drošības ierīces, kas izmanto ļoti līdzīgus formātus ar tikai dažām laika variācijām. Ziņojuma garums ir ērts 24 biti ar garu sākuma bitu un īsu apstāšanās bitu. Jūs varat viegli modificēt kodu, lai pievienotu vairāk datu baitu un mainītu sinhronizācijas laiku un datu bitus. Atkal šī skice ir tikai sākuma veidne.

2. darbība. Aparatūra

Aparatūra
Aparatūra
Aparatūra
Aparatūra
Aparatūra
Aparatūra

Raidītājs darbojas ar monētu akumulatoru (2032), tāpēc galvenais ir zems enerģijas patēriņš. Lielākā daļa no tā tiek paveikta programmatūrā, taču to palīdz tas, ka ATtiny85 parasti darbojas ar 1 MHz iekšējo pulksteni. Noteikums ir tāds, ka zemākām pulksteņa frekvencēm ir nepieciešama mazāka jauda, un 1 MHz ir lieliski piemērots raidītāja loģikai.

Faktiskais RF raidītāja modulis, ko man patīk izmantot, ir FS1000A, kas ir plaši pieejams. Tas ir pieejams gan 433 MHz, gan 315 MHz versijās. Programmatūrai ir vienalga, kuru jūs izmantojat, taču jums jāpārliecinās, vai uztvērēja plate darbojas ar tādu pašu frekvenci. Lielākā daļa manu projektu izmanto 433 MHz ierīces, jo tieši to izmanto dažādas lētas bezvadu ierīces, kuras esmu uzkrājis. Attēlā redzamais raidītāja plates izkārtojums lieliski iekļaujas vecā tablešu pudelē. Tas nav skaisti, bet pietiekami labi, lai pierādītu koncepciju.

Uztvērējs atrodas uz bezlodēšanas maizes dēļa, jo tā vienīgais mērķis ir parādīt, kā saņemt signālus un kā kaut ko ieslēgt/izslēgt, pamatojoties uz saņemtajiem kodiem. Tas izmanto LED, lai norādītu ieslēgšanas/izslēgšanas statusu, bet jūs to varētu aizstāt ar releja draiveri utt. Uztvērējam var izmantot jebkuru Arduino, jo tam nav jāizlādē akumulators. Ja izmērs joprojām tiek ņemts vērā, varat izmantot citu ATtiny85 mikroshēmu. Galvenais ir tas, ka ATtiny85 uztvērējā jādarbojas ar 8 MHz. Skatiet manu iepriekšējo ATtiny85 Instructable, lai iegūtu vienkāršu skici, kas pārbauda, vai esat veiksmīgi nomainījis iekšējo pulksteni uz 8 MHz. Savas instrukcijas par sensoru atšifrēšanu beigās es iekļauju uztvērēja programmatūras Arduino Nano versiju. Tas ir identisks šeit iekļautajai ATtiny85 versijai, izņemot dažas mikroshēmu reģistra atšķirības.

Kā es detalizēti aprakstīju savos iepriekšējos RF instrukcijās, es labprātāk izmantoju uztvērēju, piemēram, parasto RXB6. Tas ir super-heterodīna uztvērējs, kas darbojas daudz labāk nekā super-reģeneratīvie uztvērēji, kas parasti ir komplektā ar FS1000A raidītājiem.

Gan raidītāja, gan uztvērēja moduļi darbojas labāk ar atbilstošām antenām, taču tie bieži netiek piegādāti. Jūs varat tos iegādāties (iegūt pareizo frekvenci) vai arī izveidot savu. Pie 433 MHz frekvences pareizais garums ir aptuveni 16 cm taisnas stieples antenai. Lai izveidotu satītu, paņemiet apmēram 16 cm izolētu, cietu serdes vadu un aptiniet to vienā slānī ap 5/32 collu urbja kātu. Noņemiet izolāciju no īsas taisnas daļas vienā galā un pievienojiet to raidītāja/uztvērēja platei. Es atklāju, ka vads no Ethernet kabeļa lūžņiem labi darbojas antenām. Raidītāja panelī parasti ir vieta, kur lodēt antenu, bet uztvērēja panelī var būt tikai tapas (piemēram, RXB6). Vienkārši pārliecinieties, vai savienojums ir drošs, ja to nelodējat.

3. darbība: programmatūra

Raidītāja programmatūra izmanto parastās metodes, lai mikroshēmu ieslēgtu miega režīmā. Šajā režīmā tas patērē mazāk nekā 0.2ua strāvu. Slēdža ieejās (D1-D4) ir ieslēgti iekšējie pievilkšanas rezistori, bet tie neņem strāvu, kamēr nav nospiests slēdzis. Ieejas ir konfigurētas pārmaiņu pārtraukšanai (IOC). Nospiežot slēdzi, tiek radīts pārtraukums un tas liek mikroshēmai pamosties. Pārtraukuma apstrādātājs veic aptuveni 48 ms aizkavēšanos, lai ļautu slēdzim atslēgties. Pēc tam tiek veikta pārbaude, lai noteiktu, kurš slēdzis tika nospiests, un tiek izsaukta atbilstošā rutīna. Nosūtītā ziņa tiek atkārtota vairākas reizes (es izvēlējos 5 reizes). Tas ir raksturīgi komerciāliem raidītājiem, jo tur ir tik daudz RF trafika 433 MHz un 315 MHz. Atkārtotie ziņojumi palīdz nodrošināt, ka vismaz viens nokļūst līdz saņēmējam.

Sinhronizācijas un bitu laiki ir definēti raidītāja programmatūras priekšpusē, bet datu baiti ir iegulti katrā no četrām pogu procedūrām. Tie ir acīmredzami un viegli maināmi, un ir arī viegli pievienot baitus, lai izveidotu garāku ziņojumu. Visas tās pašas definīcijas ir iekļautas uztvērēja programmatūrā, kā arī datu baitu definīcijās. Ja savam ziņojumam pievienojat datu baitus, jums būs jāmaina “Msg_Length” definīcija un jāpievieno baiti mainīgajam “RF_Message”. Jums būs jāpievieno kods arī “RF_Message” pārbaudē “cilpā”, lai pārbaudītu, vai ir saņemti papildu baiti, un definējiet šos baitus.

Ieteicams: