Mundarija:

ATtiny85 RF masofadan boshqarish pulti: 3 qadam
ATtiny85 RF masofadan boshqarish pulti: 3 qadam

Video: ATtiny85 RF masofadan boshqarish pulti: 3 qadam

Video: ATtiny85 RF masofadan boshqarish pulti: 3 qadam
Video: ATtiny85 RF Transmitter & Receiver 2024, Noyabr
Anonim
ATtiny85 RF masofadan boshqarish pulti
ATtiny85 RF masofadan boshqarish pulti

QAYD: Mening "Virtual yashirish o'yini" ko'rsatmasi, bu xabarni avtomatik ravishda dekodlaydigan RXC6 moduli bilan qanday masofadan boshqarishni ko'rsatadi.

Avvalgi ko'rsatmada aytib o'tganimdek, men yaqinda ATtiny85 chiplari bilan o'ynay boshladim. Men o'ylayotgan birinchi loyiha tanga batareyasida ishlaydigan RF masofadan boshqarish pultini yaratish edi. Menga xom chip bilan borish kerak edi, chunki menda mavjud bo'lgan Arduinolarning hech biri juda kam quvvatga va kichik hajmga bo'lgan ehtiyojni qondira olmaydi. O'zgartirilgan LilyPad yaqin keldi, lekin chip yaxshi javob. Bu g'oya mavjud bo'lgan masofadan boshqarish pultini takrorlash emas, balki qanday qilib o'zingizning transmitter va qabul qilgichlar to'plamini yasashni ko'rsatish edi. Qiziqarli o'quv loyihasi bo'lishdan tashqari, u sizga o'zingizning "maxfiy" kod kombinatsiyangizni yaratishga imkon beradi. Men "sir" ni tirnoqlarga qo'yaman, chunki bu oddiy kodlarni sindirish juda oson.

1 -qadam: RF xabarlari formati

RF xabar formati
RF xabar formati

Ushbu loyiha uchun men Etekcity RF simsiz kalitlaridan birining signallarini takrorlashni tanladim (ushbu modullar bo'yicha ko'rsatmalarimga qarang). Men buni qildim, chunki men transmitterim Etekcity qabul qiluvchisi bilan ishlashini va qabul qilgichim Etekcity pulti bilan ishlashini tekshirishga muvaffaq bo'ldim. Men bu qurilmalar uchun to'g'ri kodlar va format nima ekanligini aniq bilaman, chunki men ularni ilgari suratga olganman. Kodni yozish eskizi uchun "Arduino RF sensori dekoderi" ga qarang.

Etekcity rozetkalari uchun kodlar va formatlar arzon RF qurilmalariga juda xosdir. Menda juda o'xshash formatlardan foydalanadigan arzon xavfsizlik qurilmalari bor, faqat ba'zi vaqt farqlari. Xabar uzunligi - qulay 24 bit, boshlanish biti va to'xtash biti qisqa. Ma'lumotlarning ko'proq baytini qo'shish, sinxronizatsiya va ma'lumotlar bitlarini vaqtini o'zgartirish uchun siz kodni osongina o'zgartirishingiz mumkin. Shunga qaramay, bu eskiz faqat boshlang'ich shablon.

2 -qadam: Uskuna

Uskuna
Uskuna
Uskuna
Uskuna
Uskuna
Uskuna

Transmitter tanga batareyasida ishlaydi (2032), shuning uchun kam quvvat sarfi asosiy hisoblanadi. Buning aksariyati dasturiy ta'minotda amalga oshiriladi, lekin bunga ATtiny85 odatda 1 MGts ichki soatda ishlaydi. Qoida shundaki, past chastotali chastotalar kam quvvat talab qiladi va 1 MGts transmitter mantig'iga mos keladi.

Men foydalanishni yoqtiradigan haqiqiy RF uzatuvchi moduli - bu odatda mavjud bo'lgan FS1000A. U 433 MGts va 315 MGtsli versiyalarda keladi. Qaysi birini ishlatishingiz dasturiy ta'minotga ahamiyat bermaydi, lekin siz qabul qilgich bir xil chastotada ishlashiga ishonch hosil qilishingiz kerak. Mening loyihalarimning ko'pchiligi 433 MGtsli qurilmalardan foydalanadi, chunki bu men to'plagan turli xil arzon simsiz qurilmalar. Rasmda ko'rsatilgan transmitterlar taxtasi tartibi eski tabletka shishasiga juda mos keladi. Bu chiroyli emas, lekin kontseptsiyani isbotlash uchun etarlicha yaxshi.

Qabul qilgich lehimsiz non panelida joylashgan, chunki uning yagona maqsadi signallarni qabul qilish va olingan kodlar asosida biror narsani qanday yoqish/o'chirishni ko'rsatishdir. U LEDni yoqish/o'chirish holatini ko'rsatish uchun ishlatadi, lekin siz uni o'rni drayveri bilan almashtira olasiz va hokazo. Qabul qilgich uchun har qanday Arduino -dan foydalanish mumkin, chunki batareyani o'chirish shart emas. Agar o'lcham hali ham hisobga olinsa, siz boshqa ATtiny85 chipidan foydalanishingiz mumkin. Asosiysi, ATtiny85 qabul qilgichda 8 MGts chastotada ishlashi kerak. Oddiy eskiz uchun oldingi ATtiny85 Instructable-ga qarang, u ichki soatni 8 MGts ga muvaffaqiyatli o'zgartirganingizni tasdiqlaydi. Sensorlarni dekodlash bo'yicha ko'rsatma oxirida men qabul qiluvchi dasturining Arduino Nano versiyasini o'z ichiga olaman. Bu ATtiny85 versiyasi bilan bir xil, bir nechta chip registri farqlaridan tashqari.

Avvalgi RF yo'riqnomalarida batafsil aytib o'tganimdek, men oddiy RXB6 kabi qabul qilgichdan foydalanishni afzal ko'raman. Bu super heterodinli qabul qilgich, odatda FS1000A transmitterlari bilan o'ralgan o'ta regenerativ qabul qiluvchilarga qaraganda ancha yaxshi ishlaydi.

Ham uzatuvchi, ham qabul qiluvchi modul to'g'ri antennalar bilan yaxshi ishlaydi, lekin ular ko'pincha etkazib berilmaydi. Siz ularni sotib olishingiz mumkin (to'g'ri chastotani oling) yoki o'zingiz qilishingiz mumkin. 433-MGts chastotada to'g'ri uzunlikdagi antenna uchun to'g'ri uzunlik taxminan 16 sm. Sarilgan simni yasash uchun taxminan 16 sm izolyatsiyalangan, qattiq yadroli simni oling va 5/32 dyuymli matkap uchi kabi bir qatlamga o'rang. Qisqa tekis qismning izolyatsiyasini bir chetidan olib tashlang va uni uzatuvchi/qabul qilgichga ulang. Men chekilgan Ethernet kabelining simlari antennalar uchun yaxshi ishlashini aniqladim. Transmitter platasida odatda antennani lehimlaydigan joy bor, lekin qabul qilish kartasida faqat pinlar bo'lishi mumkin (RXB6 kabi). Agar siz uni lehimlamasangiz, ulanish xavfsizligiga ishonch hosil qiling.

3 -qadam: dasturiy ta'minot

Transmitter dasturi chipni uyqu rejimiga o'tkazish uchun umumiy usullardan foydalanadi. Bu rejimda u 0,2ua dan kam tok oladi. Kommutator kirishlari (D1-D4) ichki tortish rezistorlari yoqilgan, lekin ular tugma bosilmaguncha hech qanday tok olmaydilar. Kirishlar o'zgarishda uzilishlar (IOC) uchun tuzilgan. Kalit bosilganda, uzilish paydo bo'ladi va u chipni uyg'onishga majbur qiladi. To'xtatishni boshqaruvchi 48 msn kechikishni bajaradi, bu esa o'chirishni o'chirishga imkon beradi. Keyin qaysi kalit bosilganligini aniqlash uchun tekshiruv o'tkaziladi va tegishli tartib chaqiriladi. O'tkazilgan xabar bir necha marta takrorlanadi (men 5 marta tanladim). Bu tijorat transmitterlariga xosdir, chunki u erda 433 va 315 MGts chastotali chastotali trafik juda ko'p. Takroriy xabarlar hech bo'lmaganda bitta qabul qiluvchiga o'tishini ta'minlashga yordam beradi.

Sinxronizatsiya va bit vaqtlari uzatuvchi dasturiy ta'minotning old tomonida belgilanadi, lekin ma'lumotlar baytlari to'rtta tugmachali dasturlarning har biriga joylashtirilgan. Ular aniq va o'zgarishi oson, uzunroq xabar qilish uchun bayt qo'shish ham oson. Xuddi shu ta'riflarning barchasi qabul qiluvchi dasturiy ta'minotga, shuningdek ma'lumotlar baytining ta'rifiga kiritilgan. Agar siz xabaringizga ma'lumotlar baytini qo'shsangiz, "Msg_Length" ta'rifini o'zgartirishingiz va "RF_Message" o'zgaruvchisiga bayt qo'shishingiz kerak bo'ladi. Qo'shimcha baytlarning to'g'ri qabul qilinganligini tekshirish va bu baytlarni aniqlash uchun "loop" da "RF_Message" belgisiga kod qo'shish kerak bo'ladi.

Tavsiya: