Obsah:

RF diaľkové ovládanie ATtiny85: 3 kroky
RF diaľkové ovládanie ATtiny85: 3 kroky

Video: RF diaľkové ovládanie ATtiny85: 3 kroky

Video: RF diaľkové ovládanie ATtiny85: 3 kroky
Video: Attiny85 with NRF24L01 remote controller with reciever #arduino #Remote #Attiny85 #3pin 2024, November
Anonim
RF diaľkové ovládanie ATtiny85
RF diaľkové ovládanie ATtiny85

POZNÁMKA: Moja inštrukcia „Virtuálna hra na schovávačku“ukazuje, ako používať tento typ diaľkového ovládača s modulom RXC6, ktorý správu automaticky dekóduje.

Ako som už spomenul v predchádzajúcom Instructable, nedávno som začal hrať s niektorými čipmi ATtiny85. Pôvodný projekt, ktorý som mal na mysli, bolo vyrobiť RF diaľkové ovládanie, ktoré by fungovalo na mincovú batériu. Potreboval som ísť so surovým čipom, pretože žiadny z Arduinosov, ktoré mám, nedokázal splniť potrebu veľmi nízkeho výkonu a relatívne malých rozmerov. Upravený LilyPad sa priblížil, ale čip je lepšou odpoveďou. Cieľom nebolo ani tak duplikovať existujúce diaľkové ovládanie, ale predviesť, ako si môžete zostaviť vlastnú súpravu vysielača a prijímača. Okrem toho, že je to zábavný vzdelávací projekt, umožňuje vám to aj vytvoriť vlastnú „tajnú“kombináciu kódu. „Tajomstvo“uvádzam v úvodzovkách, pretože je ľahké prelomiť tieto jednoduché kódy.

Krok 1: Formát správy RF

RF formát správy
RF formát správy

Pre tento projekt som sa rozhodol replikovať signály pre jeden z mojich bezdrôtových prepínačov Etekcity RF (pozrite si moje pokyny k týmto modulom). Urobil som to, pretože som bol schopný overiť, že môj vysielač funguje s prijímačom Etekcity a že môj prijímač funguje s diaľkovým ovládaním Etekcity. Tiež som presne vedel, aké sú správne kódy a formát pre tieto zariadenia, pretože som ich zachytil predtým. Pozrite sa na môj návod „Dekodér RF senzora Arduino RF“, kde nájdete náčrt zachytávania kódu.

Kódy a formáty pre zásuvky Etekcity sú veľmi typické pre lacné RF zariadenia. Mám lacné zabezpečovacie zariadenia, ktoré používajú veľmi podobné formáty len s niekoľkými variáciami načasovania. Dĺžka správy je praktických 24 bitov s dlhým štartovacím bitom a krátkym stop bitom. Kód môžete ľahko upraviť tak, aby pridal ďalšie bajty údajov a zmenil načasovanie synchronizácie a dátových bitov. Tento náčrt je opäť len počiatočnou šablónou.

Krok 2: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér
Hardvér
Hardvér

Vysielač funguje na mincovú batériu (2032), takže nízka spotreba energie je kľúčová. Väčšina z toho je vykonaná v softvéri, ale pomáha tomu skutočnosť, že ATtiny85 bežne beží na interných hodinách 1 MHz. Platí pravidlo, že nižšie hodinové frekvencie vyžadujú menší výkon a 1 MHz je pre logiku vysielača ideálny.

Skutočný modul RF vysielača, ktorý rád používam, je FS1000A, ktorý je bežne dostupný. Dodáva sa vo verziách 433 MHz a 315 MHz. Softvéru je jedno, ktorý použijete, ale musíte sa uistiť, že doska prijímača funguje na rovnakej frekvencii. Väčšina mojich projektov používa zariadenia s frekvenciou 433 MHz, pretože to používajú rôzne lacné bezdrôtové zariadenia, ktoré som nazhromaždil. Rozloženie dosky vysielača zobrazené na obrázku krásne zapadá do starej fľaše s tabletkami. Nie je to pekné, ale dosť dobré na dôkaz koncepcie.

Prijímač je na nepájivej doske, pretože jeho jediným účelom je ukázať, ako prijímať signály a ako niečo zapínať/vypínať na základe prijatých kódov. Indikátor LED indikuje stav zapnutia/vypnutia, ale môžete ho nahradiť reléovým ovládačom atď. Pre prijímač je možné použiť akékoľvek Arduino, pretože nepotrebuje batériu. Ak stále záleží na veľkosti, môžete použiť ďalší čip ATtiny85. Kľúčové je, že ATtiny85 musí v prijímači bežať na 8 MHz. Jednoduchý náčrt, ktorý overuje, či ste úspešne zmenili interný takt na 8 MHz, nájdete v mojom predchádzajúcom pokyne ATtiny85. Na konci svojho návodu na dekódovanie senzora uvádzam verziu softvéru prijímača Arduino Nano. Je identický s tu zahrnutou verziou ATtiny85, okrem niekoľkých rozdielov v registroch čipov.

Ako som podrobne popísal v mojich predchádzajúcich pokynoch RF, radšej používam prijímač ako bežný RXB6. Je to superheterodynový prijímač, ktorý funguje oveľa lepšie ako superregeneračné prijímače bežne dodávané s vysielačmi FS1000A.

Moduly vysielača aj prijímača fungujú lepšie so správnymi anténami, ale často nie sú dodávané. Môžete si ich kúpiť (získať správnu frekvenciu) alebo si môžete vytvoriť svoj vlastný. Pri frekvencii 433 MHz je správna dĺžka asi 16 cm pre rovnú drôtovú anténu. Na výrobu zvinutého kusu vezmite asi 16 cm izolovaného plného jadrového drôtu a obalte ho jednou vrstvou ako stopka vrtáka 5/32 palca. Na jednom konci odizolujte krátku rovnú časť izolácie a pripojte ju k doske vysielača/prijímača. Zistil som, že drôt zo zberného ethernetového kábla funguje dobre pre antény. Doska vysielača má zvyčajne miesto na spájkovanie antény, ale doska prijímača môže mať iba kolíky (ako RXB6). Ak ho nespájkujete, uistite sa, že je pripojenie zaistené.

Krok 3: Softvér

Softvér vysielača používa bežné techniky na uvedenie čipu do režimu spánku. V tomto režime odoberá menej ako 0,2ua prúdu. Spínacie vstupy (D1-D4) majú zapnuté vnútorné výsuvné odpory, ale kým nestlačia spínač, neodoberajú žiadny prúd. Vstupy sú nakonfigurované na prerušenie pri zmene (IOC). Po stlačení spínača sa vygeneruje prerušenie, ktoré prinúti čip prebudiť sa. Obsluha prerušenia vykoná oneskorenie približne 48 ms, aby sa prepínač mohol odpojiť. Potom sa skontroluje, ktorý spínač bol stlačený a zavolá sa príslušná rutina. Prenesená správa sa opakuje niekoľkokrát (vybral som 5 -krát). To je typické pre komerčné vysielače, pretože tam je veľký RF prenos na 433 MHz a 315 MHz. Opakované správy pomáhajú zaistiť, aby sa k prijímaču dostal aspoň jeden.

Synchronizačné a bitové časy sú definované v prednej časti softvéru vysielača, ale dátové bajty sú zakomponované v každej zo štyroch rutín tlačidiel. Sú zrejmé a dajú sa ľahko zmeniť a pridanie bajtov na vytvorenie dlhšej správy je tiež jednoduché. Všetky rovnaké definície sú zahrnuté v softvéri prijímača, ako aj definíciách dátových bajtov. Ak do správy pridáte dátové bajty, budete musieť zmeniť definíciu pre „Msg_Length“a pridať bajty do premennej „RF_Message“. Budete tiež musieť pridať kód do „slučky“na kontrolu „RF_Message“, aby ste overili správne prijatie ďalších bytov a definovali tieto bajty.

Odporúča: