Mundarija:

USB NEC infraqizil uzatuvchi va qabul qiluvchi: 4 qadam (rasmlar bilan)
USB NEC infraqizil uzatuvchi va qabul qiluvchi: 4 qadam (rasmlar bilan)

Video: USB NEC infraqizil uzatuvchi va qabul qiluvchi: 4 qadam (rasmlar bilan)

Video: USB NEC infraqizil uzatuvchi va qabul qiluvchi: 4 qadam (rasmlar bilan)
Video: USB portni O'CHIRISH va YOQISH || Отключить и Включить USB-порт 2024, Noyabr
Anonim
USB NEC infraqizil uzatuvchi va qabul qiluvchi
USB NEC infraqizil uzatuvchi va qabul qiluvchi

Bu loyiha men ishlayotgan boshqa loyihaning bir qismi, chunki men masofadan boshqarish bo'yicha 2017-yilgi instruktivlar tanlovi bor, men bu loyihani joylashtirdim deb o'yladim. Agar sizga bu loyiha yoqsa, unga ovoz bering. Rahmat.

Siz bilganingizdek, men Microchip 8-bitli PIC kontrollerlarining ashaddiy muxlisiman, qarang:

Men JAL dasturlash tilidan foydalanaman, chunki u Paskalga o'xshaydi (menga ham yoqadi). JAL kompilyatori va kutubxonalarni https://www.justanotherlanguage.org/downloads saytidan yuklab olish mumkin (oxirgi chiqarilgan versiyani pastga aylantiring).

Odatda men nima qilayotganimni to'liq tushunish uchun hamma kodni o'zim yozaman, lekin bu loyiha uchun PICni kompyuterning USB portiga ulashim kerak edi, shuning uchun menga bu PIC boshqaruvchisi uchun JAL USB ketma -ket drayveri kerak edi. Men USB seriyali drayverini JAL yuklash paketida ishlatardim, u yaxshi ishlaydi. Bu USB ketma -ket drayveri bitta aniq PIC uchun yozilganligi uchun men PIC18F14K50 bo'lgan PICdan foydalanardim. Bu tekshirgich menda ushbu loyihaga kerak bo'lgandan ko'ra ko'proq funktsiyaga ega, shuning uchun men hozirda bu USB drayverini PIC16F1455 oddiy PIC versiyasida ishlashini, bu ham arzonroq.

Xo'sh, bu loyiha nima haqida? Ushbu yo'riqnomada ko'rsatilgan qurilma yordamida siz mashhur NEC Infra-Red protokoli yordamida kompyuterdan USB port orqali infraqizil masofadan boshqarish buyruqlarini yuborishingiz va qabul qilishingiz mumkin. Shunday qilib, siz infraqizil-qizil buyruqlarni kuzatishingiz va NEC infraqizil-qizil masofadan boshqarish protokolidan foydalanadigan har qanday qurilmani boshqarishingiz mumkin. Loyiha infraqizil xabarlarning kodini ochadi va manzil baytiga, buyruq baytiga yoki takroriy xabarga aylantiradi. Manzil, albatta, televizor yoki radio kabi ma'lum bir qurilmaga murojaat qilish uchun ishlatiladi, bu erda buyruq bayt ovoz balandligi, ovoz balandligini pasaytirish kabi bajarilishi kerak bo'lgan funktsiyani ko'rsatadi. Ushbu xabarlarni dekodlashdan tashqari, ular ushbu qurilma yordamida infraqizil orqali ham uzatilishi mumkin.

1-qadam: NEC infraqizil protokoli haqida ba'zi ma'lumotlar

NEC infraqizil protokoli haqida ba'zi ma'lumotlar
NEC infraqizil protokoli haqida ba'zi ma'lumotlar

Ushbu protokolga qisqacha kirish. NEC infraqizil masofadan boshqarish pulti siz sotib olishingiz mumkin bo'lgan ko'plab qurilmalarda va masofadan boshqarish pultlarida ishlatiladi. U 38 kHz chastotali infraqizil signalni modulyatsiya qiladi va mantiqiy "1" va mantiqiy "0" ni kodlash uchun impulsli masofani kodlashdan foydalanadi. Protokol oddiy tekshiruvdan foydalanib, xabarning hammasi yaxshi yoki yo'qligini, bir xil xabarda manzilni ham, buyruq baytini ham, teskari versiyasini ham yuboradi va qabul qilinganidan keyin bir xilligini tekshiradi. Masofadan boshqarish pultidagi tugma bosilganda, u bir marta manzil va buyruq bilan to'liq infraqizil xabar yuboradi. Tugmani bosib tursangiz, manzil va buyruq ma'lumotisiz qisqa xabar yuboriladi. Tugmani bosib ushlab turish paytida uzatilgan xabarlarning takrorlanish vaqti aniqlanadi.

Infraqizil NEC protokoli haqida qo'shimcha ma'lumotni, masalan, https://sibotic.files.wordpress.com/2013/12/adoh-n… topishingiz mumkin.

2 -qadam: kerakli komponentlar

Kerakli komponentlar
Kerakli komponentlar
Kerakli komponentlar
Kerakli komponentlar

Ushbu loyiha uchun sizga quyidagi komponentlar kerak bo'ladi:

  • PIC mikrokontroller PIC18F14K50, qarang:
  • Kristal 12 MGts
  • Seramika kondansatörü: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Elektrolitik kondansatör 47 uF/16V
  • Infraqizil qabul qilgich TSOP4838, qarang:
  • Rezistorlar: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • LEDlar: 2 * infraqizil, 1 amber, 1 yashil, 1 qizil
  • Transistor BC640, qarang:
  • Jumper (ixtiyoriy)
  • USB ulagichi

Komponentlarni qanday ulash haqida sxemaga qarang. Men rasmda va videoda ko'rib turganingizdek, men bu loyiha uchun taxtadan foydalandim. Zanjir o'z kuchini kompyuterning USB portidan oladi.

3 -qadam: dasturiy ta'minot va qurilmaning ishlashi

Yuqorida aytib o'tilganidek, dasturiy ta'minot PIC18F14K50 uchun yozilgan. Bu JALda yozilgan. PIC -ni dasturlash uchun Intel Hex fayli biriktirilgan. Dastur quyidagi funktsiyalarni bajaradi:

  • Infraqizil NEC xabarlarini dekodlash va kompyuterga USB orqali yuborish. Xabar infraqizil qabul qilgich tomonidan ishlab chiqarilgan va oqim + buyruq xabariga yoki takroriy xabarga tarjima qilingan bit oqimidan dekodlanadi.
  • Kompyuterdan USB orqali NEC Infra Red xabarlarini yuborish. E'tibor bering, dasturiy ta'minot infraqizil LEDlarni to'g'ridan-to'g'ri boshqaradigan 38 kHz chastotali tashuvchi chastotasini ham yaratadi. Infraqizil LED-ga parallel ravishda, xabarning uzatilishini ko'rinadigan qilish uchun, sariq rangli LED ulangan.

Odatiy bo'lib, bu sxema infraqizil xabarni uzatishda infraqizil qabul qiluvchining ovozini o'chiradi. Agar o'tish moslamasi "Ovozni o'chirish" holatiga qo'yilsa, bu ovozni o'chirish funktsiyasini o'chirib qo'yadi. Bunday holda, uzatilgan infraqizil xabar ham uzatishga parallel ravishda dekodlanadi va to'liq qabul qilingandan so'ng u infraqizil xabar sifatida kompyuterga yuboriladi. Agar tegishli NEC Infraqizil xabari qabul qilinsa, "IR OK OK" qizil chirog'i yonadi.

Bu qurilmani ishlatish uchun shaxsiy kompyuteringizda terminal emulyatori dasturi bo'lishi kerak. Men bu maqsadda "Termit" dan foydalandim. Qurilma kompyuterga ulanganda, u avtomatik ravishda Windows 10 tomonidan qo'shimcha COM porti sifatida tan olinadi, chunki Windows 10-da bu qurilma uchun Microchip drayveri o'rnatilgan. Ushbu COM portining sozlamalari quyidagicha bo'lishi kerak: 19200 bod 8 bit, 1 stop-bit, paritet yo'q va RTS/CTS oqimini boshqarish yordamida. Agar kerak bo'lsa, bod tezligi boshqa qiymatga o'rnatilishi mumkin, shuning uchun 115200 bost tezligi ham ishlaydi. Qurilma USB port orqali terminal Emulator dasturi orqali ulanganidan so'ng, konfiguratsiyalangan yashil LED yonadi.

Infraqizil xabarlarni qabul qilish

Infraqizil xabar kelganida, terminal emulyatori dasturida quyidagilar ko'rsatiladi:

  • To'liq xabar bo'lsa, "A: xx C: xx", bu erda xx - manzil (A) va (C) buyrug'ining o'n oltilik raqami. Ikkalasi uchun qiymatlar 0x00 (0) dan 0xFF (255) gacha bo'lishi mumkin.
  • Agar takroriy xabar bo'lsa, "takrorlang".

Infraqizil xabarlarni yuborish

Buning uchun men qurilmaga nima qilish kerakligini aytadigan protokolni aniqlashim kerak edi. Terminal emulyatoridan foydalanganimiz uchun men xabarni aniqlash uchun ASCII belgilaridan foydalanardim. Qurilmaga buyruq yuborish protokoli quyidagi formatni ishlatadi: '! AACCRR#', bu erda (barcha belgilar katta -kichik sezilmaydi):

  • "!" Xabar boshlanishini bildiradi.
  • "AA" - bu o'n oltilik belgilarda "0" dan "9" gacha va "A" dan "F" gacha bo'lgan manzilning qiymati,
  • "CC" buyrug'i o'n oltilik belgilarda "0" dan "9" gacha va "A" dan "F" gacha bo'lgan qiymatdir.
  • "RR" - bu o'n oltilik belgilarda "0" dan "9" gacha va "A" dan "F" gacha uzatilishi kerak bo'lgan takrorlanadigan xabarlar soni. "00" qiymati takroriy xabar yuborilmasligini bildiradi.

0x07, 0x05 buyrug'i va 3 ta takrorlashli xabar namunasi Terminal Emulator dasturida quyidagicha yozilishi kerak:! 070503#

Kompyuterdan buyruq yuborilgandan so'ng, qurilma boshqacha javob beradi:

  • "Y" xabar yuborilganligini anglatadi. E'tibor bering, bu javob barcha xabarlar (shu jumladan, barcha takrorlar) uzatilgandan keyin beriladi, shuning uchun ko'p takroriy xabarlarni yuborish kerak bo'lganda, bu javobni berish uchun biroz vaqt ketishi mumkin.
  • "N" shaxsiy kompyuterga yuborilgan xabarda noqonuniy belgi borligini bildiradi.
  • "B" degani, buyruq berilganda, infraqizil uzatish hali ham band edi.
  • ? "Bu qurilma"! "Kutganini anglatadi, lekin u boshqa narsani oldi.

4 -qadam:

Men qurilmaning amaldagi qisqa videosini tayyorladim. Ushbu video uchun men uzatish va qabul qilish ishini ko'rish uchun masofadan boshqarish pulti bilan tijorat LED lampasidan foydalandim. Videoda quyidagilar ko'rsatilgan:

  • USB qurilmasini terminal emulyatsiyasi dasturidan sozlash. Qurilma konfiguratsiya qilinganida, u "USB NEC infraqizil uzatuvchi va qabul qiluvchisi" xabari bilan javob beradi. Qurilmada Yashil LED yonadi, bu qurilma kompyuter tomonidan sozlanganligini ko'rsatadi.
  • Chiroq masofadan boshqarish pulti yordamida yoqiladi. Buning uchun masofadan boshqarish pulti 0x00 manzilidan va 0x07 buyrug'idan foydalanadi, u qurilma tomonidan dekodlanadi va kompyuterda ko'rsatiladi.
  • Chiroq masofadan boshqarish pulti yordamida o'chiriladi. Buning uchun masofadan boshqarish pulti 0x00 manzilini va 0x06 buyrug'ini ishlatadi, u qurilma tomonidan dekodlanadi va kompyuterda ko'rsatiladi.
  • Chiroq kompyuterda takrorlash qiymati 0 (takrorlanmaydi) bilan bir xil masofadan boshqarish pultini yozish orqali yoqiladi, shuning uchun "! 000700#" yoziladi. Chiroq yonadi.
  • 0x00 manzili va 0x0A buyrug'i va 0x30 takrorlash yordamida chiroq rangini ko'k rangga o'zgartirish. Infraqizil LEDlar bilan parallel ravishda bog'langan Amber Led yonib -o'chib turadi va Infra Red orqali takroriy xabarning uzatilishini ko'rsatadi. Kiritilgan xabar "! 000A30#".

E'tibor bering, bu videoni yozish paytida "Ovozni o'chirish" jumper ulanishi faol bo'lgan, shuning uchun siz "! 00700#" uzatilgan xabarini ko'rishingiz mumkin, "A: 00 C: 07" sifatida qabul qilinadi. Ko'k rangga bo'yalgan chiroqning demosida, shuningdek, qizil LED yonib turishini ko'rishingiz mumkin, chunki takroriy xabarlar qabul qilingan va takrorlangan xabarlarning uzatilishiga parallel ravishda dekodlangan.

O'z loyihangizni qurishdan zavqlaning va sizning munosabatingizni kuting. Agar sizga yoqsa, masofadan boshqarish pulti 2017 tanlovida ushbu loyihaga ovoz berishni unutmang. Yana bir bor rahmat.

Tavsiya: