Mundarija:

UChip - IR orqali ketma -ket !: 4 qadam
UChip - IR orqali ketma -ket !: 4 qadam

Video: UChip - IR orqali ketma -ket !: 4 qadam

Video: UChip - IR orqali ketma -ket !: 4 qadam
Video: #ZAPAL#12-YOSHLI QIZ USHLANDI 2024, Iyul
Anonim
UChip - IR orqali ketma -ket!
UChip - IR orqali ketma -ket!
UChip - IR orqali ketma -ket!
UChip - IR orqali ketma -ket!

Simsiz aloqa bugungi kunda bizning loyihalarimizning asosiy xususiyatiga aylandi va simsiz aloqa haqida gapirish, birinchi navbatda Wi-Fi yoki BT, lekin Wi-Fi yoki BT aloqa protokollarini boshqarish oson ish emas va ko'p narsani talab qiladi. MCU resurslari, mening ilovamni kodlash uchun kichik joy qoldiradi. Shuning uchun men odatda rollarni ajratish va yuqori erkinlikka ega bo'lish uchun mikrokontrollerga ketma-ket ulangan tashqi Wi-Fi/BT modulini tanlayman.

Biroq, ba'zida Wi-Fi va BT past bit tezligi va qisqa aloqa masofasini talab qiladigan ba'zi ilovalar uchun "ortiqcha" bo'ladi. Bundan tashqari, Wi-Fi yoki BT-dan foydalanish smartfonni yoki qurilmani to'g'ri autentifikatsiya qilish bilan ulash zarurligini bildiradi.

Tasavvur qiling -a, siz shunchaki tashqi chiroqni yoqishingiz/o'chirishingiz yoki chiroqning kuchini o'zgartirishingiz yoki elektr eshikni ochishingiz kerak. Wi-Fi yoki BT-dan foydalanishga arziydimi?

Atrof -muhit va ilovalarga qarab, IQ (infraqizil) to'lqin uzunligi bo'yicha simsiz aloqa qulay bo'lishi mumkin. Bir nechta tashqi komponentlar (3 ta alohida komponent!) Va uChip (Arduino -ga mos keladigan juda kichik taxtali) bilan ishlaydigan IR orqali ketma -ketlik siz qidirayotgan yechim bo'lishi mumkin!

Materiallar varaqasi (bitta Tx-Rx qurilmasi uchun):

1 x uChip

1 x IQ LED: emissiya cho'qqisi 950nm

1 x TSOP-38238 (ekvivalenti)

1 x 1KOhm rezistor

Uskuna

1 x non paneli/proto taxtasi

1 x Qora plastmassa naycha: ichki diametri IQ LED bilan bir xil, quvur TSOP qabul qiluvchisi bilan o'zaro gaplashishni oldini olish uchun kerak.

1 x Alyuminiy folga (3 sm x 3 sm)

1 x lenta

MASLAHAT: Siz keraksiz RX/TX uskunasini sxemadan olib tashlash yoki eskizda tegishli kodni yoqish/o'chirish orqali bir tomonlama aloqaga muhtoj bo'lsangiz, faqat TX yoki faqat RX qurilmasini yasashingiz mumkin.

1 -qadam: simlarni ulash

Ulanish
Ulanish
Ulanish
Ulanish
Ulanish
Ulanish

Sxemaga muvofiq komponentlarni sim bilan ulang.

Oddiy sxema bo'yicha bir nechta eslatmalar. TSOP-38238 2,5 V dan 5 V gacha bo'lgan quvvat manbai va maksimal 0,45 mA ni o'zlashtirgani uchun (ma'lumotlar jadvalini BU YERDA topasiz), men qabul qilgichni mos ravishda er va quvvat manbai bilan ta'minlaydigan ikkita pin yordamida quvvat olaman. Bu talabga binoan qabul qilgichni yoqish/o'chirish va juda oddiy apparat simlarini sozlash imkonini beradi. Agar sizga bir tomonlama aloqa kerak bo'lsa, siz TSOP-38238-ni o'chirish/yoqish orqali faqat (Tx/Rx) qurilmani tanlashni tanlashingiz mumkin.

Zanjir qanday ishlaydi?

Bu juda oddiy. Sensor 38 kGts tezlikda 6 yoki undan ko'p pulsli poezdni aniqlaganda TSOP chiqish pimi past tortiladi, boshqa tomondan esa bunday signal bo'lmaganida u yuqori tortiladi. Shunday qilib, ketma -ket ma'lumotlarni IQ orqali uzatish uchun, LED katodini past tortadigan TX ketma -ket signal bilan modulyatsiyalangan 38 kHz chastotali PWM bilan LED anodni quvvatlantirish kerak.

Binobarin, TX0 seriyali yuqori darajada bo'lsa, LED teskari tomonga burilmagan yoki teskari emas (pulslar yo'q) va TSOP chiqish pimi yuqoriga tortiladi. Seriyali past darajali uzatgich, LED quvvatlanadi va mos ravishda PWM signaliga mos ravishda IQ impulslarini hosil qiladi; shuning uchun TSOP chiqishi past tortiladi.

Transmissiya to'g'ridan-to'g'ri (0-> 0 va 1-> 1) bo'lgani uchun, qabul qiluvchi tomondan invertor yoki boshqa mantiqqa ehtiyoj yo'q.

Men LEDning optik chiqish quvvatini dasturga muvofiq PWM ish aylanishini tanlab tartibga solaman. Ish tsikli qanchalik yuqori bo'lsa, optik chiqish quvvati shunchalik yuqori bo'ladi va shuning uchun siz o'z xabaringizni uzatasiz.

Shuni yodda tutingki, biz hali ham pulslarni ishlab chiqarishimiz kerak! Shunday qilib, siz 90% ish tsiklidan oshmasligingiz kerak, aks holda TSOP signalni puls sifatida aniqlay olmaydi.

Sizga ko'proq kuch kerakmi?

Oqimni kuchaytirish uchun 1kOhmli rezistorning qiymatini kamaytira olamizmi?

Balki, shunchaki talabchan bo'lmang! SAMD21 ma'lumotlar jadvalida ko'rsatilganidek, port pinini odatdagidan kuchliroq (PINCFG. DRVSTR = 1 va VDD> 3V) haydashda MCU pinidan oladigan maksimal oqim 7mA bilan cheklangan.

Biroq, standart konfiguratsiya (bu standart sifatida Arduino IDE kutubxonalari tomonidan qabul qilingan) oqimni 2mA bilan cheklaydi. Shuning uchun, 1kOhm -dan foydalanish standart sozlamalar bilan joriy chegarani beradi!

Oqimning oshishi nafaqat elektr komponentlariga bog'liq. Qisqacha:

  • Rezistorni o'zgartiring (minimal qiymati taxminan 470 Ohm -> VDD/470 ~ 7mA bilan chegaralangan);
  • Bunga mos ravishda PORT-> PINCFG-> DRVSTR-ni 1 ga o'rnating;

Kelgusi yangilanishlarda men ushbu xususiyatni o'z ichiga olgan kodni beraman.

Ammo esda tutingki, MCU pinlaridan o'z chegaralariga yaqin bo'lgan oqimni cho'ktirish va to'kish unchalik yaxshi yondashuv emas. Darhaqiqat, bu MCU xizmat muddati va ishonchliligini pasaytiradi. Shuning uchun men uzoq muddatli foydalanish uchun normal haydovchi kuchini saqlashni taklif qilaman.

2 -qadam: dasturlash

"IRSerial.ino" eskizini uChip -ga (yoki siz foydalanadigan Arduino mos keladigan taxtaga) yuklang.

Agar sizga PWM ishlab chiqaruvchi pinni o'zgartirish kerak bo'lsa, TCC taymeriga ulangan pinni ishlatganingizga ishonch hosil qiling, chunki kodning bu versiyasi faqat TCC taymerlari bilan ishlaydi (bu ma'lumot uchun taxtangizdagi "variant.c" ga qarang).). Men kelajakdagi yangilanishlarda TC taymerlarini ishlatish uchun kodni qo'shaman.

Kod juda oddiy. PIN_5 past (TSOP GND bilan ta'minlangan) va yuqori PIN_6 (TSOP quvvatlantiruvchi) parametrlari o'rnatilgandan so'ng, MCU PWMni PIN_1da ishga tushiradi, taymer davrini belgilaydi va shunga mos ravishda kerakli chastota modulyatsiyasi bilan taqqoslaydi (mening holatimda 38 KGts) va vazifa tsikl (standart sifatida 12,5%). Bu PWM pinlaridagi analogWrite () standart funktsiyasidan foydalangan holda amalga oshiriladi va faqat PER_REG (davr registri) va CC (ta'qibni solishtirish) registrini o'zgartiradi (yozma kod oddiygina wiring_analog kutubxonasidan kesilgan va yopishtirilgan). Siz kerakli chastotani mos ravishda TSOP sensori PER_REG o'zgarishi bilan belgilashingiz mumkin (bu taymer hisoblagichini qayta o'rnatishning yuqori chegarasi), shu bilan birga CC qiymatini davr tsiklining kerakli foiziga mutanosib ravishda o'rnating.

Keyin kod ketma -ket portni 2400bit / s tezlikda to'g'ri uzatishni o'rnatadi. Nega bunday tezlik past? Javob TSOP ma'lumotlar sahifasida, bu erda topishingiz mumkin. TSOP -da kirishni oldini olish uchun shovqinni rad etuvchi yuqori filtrlar mavjud, shuning uchun TSOP chiqish pinini tushirish uchun bir nechta impulsli poezdni yuborish kerak (pulslar soni TSOP versiyasiga bog'liq, 6 - odatiy qiymat). Xuddi shunday, TSOP chiqishi 10 yoki undan ko'p pulsga teng bo'lgan minimal vaqtdan keyin yuqori tortiladi. Shunday qilib, TSOP chiqishini modulyatsion TX0 signali sifatida o'rnatish uchun, quyidagi tenglamani hisobga olgan holda, bod tezligini o'rnatish kerak:

Seriyali Baud <PWM_frekans/10

38 KGtsdan foydalanish natijasida, 3800 sekunddan pastroq bo'lgan tezlik tezligi pasayadi, ya'ni ruxsat etilgan "standart" yuqori tezlik, oldindan taxmin qilinganidek, 2400 pb / s.

Bod tezligini oshirmoqchimisiz? Ikkita variant bor.

Eng oson variant - bu TSOP -ni yuqori chastotali versiyaga o'zgartirish (TSOP38256 kabi), bu sizga uzatish tezligini ikki baravar oshirishga imkon beradi (4800bps).

Yetarli emas?! Keyin oddiy IR LED+fotodiod va amplifikatsiya sxemasi yordamida o'zingizning optik havolangizni yaratishingiz kerak. Biroq, bu yechim shovqinni uzatiladigan ma'lumotlarga ta'sir qilishining oldini olish uchun juda ko'p kodlash va elektronika tajribasini talab qiladi va shuning uchun uni amalga oshirish umuman oson emas! Ammo, agar siz o'zingizga ishonchingiz komil bo'lsa, o'zingizning TSOP tizimini yaratishga harakat qilishingiz mumkin!:)

Nihoyat, ketma -ket monitorda ma'lumotlarni yuborish va qabul qilish uchun foydalanadigan SerialUSB portini (2400 soniya) o'rnatdim.

Loop () funktsiyasi ikkita serialda ma'lumotlarni uzatish uchun zarur bo'lgan kodni o'z ichiga oladi va faqat SerialPassthrough eskizidan nusxa ko'chiriladi, faqat serial nomlarini o'zgartiradi.

3 -qadam: IQ LEDni himoya qilish

IQ LEDni himoya qilish
IQ LEDni himoya qilish
IQ LEDni himoya qilish
IQ LEDni himoya qilish

Agar siz "IRSerial.ino" kodini yuklaganingizdan so'ng yuqoridagi sxemani yoqsangiz, Arduino IDE -dagi Serial monitorni tekshiring va mag'lubiyatni yuborishga harakat qiling. Siz, ehtimol, uChip uzatayotgan narsani qabul qilayotganini ko'rasiz! IQ LED va xuddi shu qurilmaning TSOP o'rtasidagi optik aloqa tufayli kontaktlarning zanglashiga olib keladi!

Mana, bu loyihaning qiyin qismi, o'zaro gaplashishning oldini olish! IQ orqali ikki tomonlama ketma -ket aloqa o'rnatish uchun pastadir buzilishi kerak.

Qanday qilib tsiklni buzamiz?

Birinchi variant, siz PWM ish aylanishini kamaytirasiz, shu bilan LEDning optik quvvatini pasaytirasiz. Biroq, bu yondashuv, shuningdek, ishonchli ketma -ket IR kanalini olish masofasini kamaytiradi. Ikkinchi variant - IQ LEDni himoya qilish, shu bilan yo'nalishli IQ "nur" qilish. Bu urinish va xato masalasidir; Nihoyat, alyumin folga va lentaga o'ralgan qora pnevmatik havo shlangidan foydalanib (elektr izolyatsiyasini ta'minlab) men o'zaro gapni buzishga muvaffaq bo'ldim. Quvur ichidagi uzatuvchi IQ LEDni qo'yish, xuddi shu qurilmaning TX va RX o'rtasidagi aloqani oldini oladi.

Mening yechimimni ko'rish uchun rasmga qarang, lekin boshqa usullarni sinab ko'ring va/yoki o'zingizni taklif qiling! Bu muammoning mutlaq echimi yo'q (agar sizga bitta yo'nalishli kanal kerak bo'lmasa) va ehtimol sizning sxemangiz, PWM ish tsikli va IQ qalqoni sizning ehtiyojlaringizga mos ravishda sozlanishi kerak.

O'zaro suhbatni buzganingizdan so'ng, siz Tx-Rx qurilmasida IQ to'lqin uzunligining IQ aks ettiruvchi yuzalarida aksini ishlatib, halqa yaratish orqali qurilmangiz hali ham ishlayotganligini tekshirishingiz mumkin.

4 -qadam: muloqot qiling

Muloqot qiling!
Muloqot qiling!
Muloqot qiling!
Muloqot qiling!

Bu hammasi

Sizning ketma -ket infraqizil qurilmangiz aloqa o'rnatishga tayyor, ulardan IR orqali ma'lumotlarni yuborish, xohlagan narsani yoqish/o'chirish yoki siz yashirgan sensor holatini tekshirishga tayyor!

Aloqa ishonchli bo'lgan masofa WiFi yoki BT qurilmasi kabi emas. Biroq, bu yo'nalishli (LED diafragma va joriy IQ ekran tizimiga bog'liq), bu ba'zi ilovalarda juda foydali bo'lishi mumkin!

Tez orada men video yuklayman, u erda siz men qilgan ilovalarning bir nechta misollarini ko'rishingiz mumkin. Xursand bo'ling!

Tavsiya: