Mundarija:

Kompyuter IR masofadan boshqarish: 4 qadam
Kompyuter IR masofadan boshqarish: 4 qadam

Video: Kompyuter IR masofadan boshqarish: 4 qadam

Video: Kompyuter IR masofadan boshqarish: 4 qadam
Video: 45 SONIYADA ISMINGIZNI UNUTASIZ 2024, Iyun
Anonim
Kompyuter IR masofadan boshqarish
Kompyuter IR masofadan boshqarish

Ko'p maqsadlardan tashqari, men shaxsiy kompyuterimni multimediya markazi sifatida ishlataman. Ba'zida men divanda dam olaman, musiqa tinglayman yoki kino yoki televizorni ko'raman, lekin har safar ahmoq reklamalar chiqqanda yoki uyquga ketayotganimda ovoz balandligini o'zgartirishni yoki telekanalni o'zgartirishni xohlamayman. sukunat. Shunday qilib, men kompyuterni masofadan boshqarish pultini standart IR masofadan boshqarish pulti yordamida boshqarishga qaror qildim, shuning uchun men sichqonchani yoki klaviaturadagi ovozni o'chirish tugmasini bosish o'rniga, tugmani darhol bosishim mumkin edi.

Loyiha bir necha qismdan iborat:

  1. Masofaviy boshqarish
  2. Kompyuter uchun dasturiy ta'minot
  3. IQ qabul qilish moduli

1 -qadam: masofadan boshqarish pulti

Masofadan boshqarish pulti
Masofadan boshqarish pulti

Birinchi element - masofadan boshqarish pulti - bu juda oddiy. Sizga yoqadigan har qanday IR boshqaruvidan foydalaning. Men sotiladiganni IQ qabul qilgich bilan birgalikda ishlatardim - rasmga qarang. Bu turga qaror qilishimning yagona sababi, men uni allaqachon uyda bo'lganligim.

2 -qadam: dasturiy ta'minot

Men terminalda ishlaydigan GNU/Linux OS uchun dastur yaratdim. Manba kodini yuklab olish/ishlatish/ulashish/o'zgartirish bepul. Kodni kompilyatsiya qilish uchun terminalda gcc -o remotePC remotePC.c kabi buyruqni bering. Dastur turini ishga tushirish uchun./remotePC.

Bu qadamdagi quyidagi ma'lumotlar narsalarning qanday ishlashini qiziqtirganlarga qaratilgan.

Dastur tavsifi

Dastur avval /dev /ttyACM0 yoki ttyACM1 faylining mavjudligini tekshiradi. Agar shunday bo'lsa, faylning guruh identifikatori noldan farq qiladi. Bu shuni anglatadiki, ketma -ket port oddiy foydalanuvchi tomonidan o'qilishi va yozilishi mumkin. 0xAA 0x55 qiymatli ikkita bayt dasturga ma'lumotlarni qabul qilishga tayyorligini bildirish uchun portga yoziladi va kiruvchi ma'lumotlar saqlangan qiymatlar bilan taqqoslanadi. Agar moslik topilsa, oldindan belgilangan harakat bajariladi.

Ovoz balandligini boshqarish

Dastur ovozni yoqish/o'chirish, tizim darajasida ovoz balandligini oshirish/kamaytirish imkoniyatiga ega. Bunga pactl dasturi yordamida erishiladi. Keyin buyruqlar quyidagicha ko'rinadi:

pactl set-sink-mute 0 o'tish

pactl set-lavabo-hajmi 0 +10%

pactl set-lavabo-hajmi 0 -10%

Agar kerak bo'lsa, kerakli paketlarni o'rnating.

VLC Media Player boshqaruvi

Bundan tashqari, dastur audio/videoni ishga tushirishi/to'xtatib qo'yishi va VLC Media Player pleylistidagi trekni oldingi/keyingi qismga o'zgartirishi mumkin. Bunday holda, ish stoli avtobusi ishlatiladi. Buyruqlar:

dbus-send-turi = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. PlayPause

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Next

dbus-send --type = method_call --dest = org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. O'tgan

3 -qadam: IQ qabul qilish moduli

IQ qabul qilish moduli
IQ qabul qilish moduli
IQ qabul qilish moduli
IQ qabul qilish moduli
IQ qabul qilish moduli
IQ qabul qilish moduli

Loyihaning uchinchi qismi eng murakkab, ammo juda oddiy. Gap shundaki, IQ qabul qiluvchisi MCUga signal chiqaradi va uni yagona raqamga aylantiradi. Keyin bu raqam USB orqali kompyuterga uzatiladi.

Modul kompyuter korpusiga o'rnatilishi va anakartdagi USB uyasiga kabel orqali ulanishi mo'ljallangan. Agar siz USB -ga tashqi ulanishni xohlasangiz, kichik o'zgarishlar kiritishingiz kerak bo'ladi.

MCU

Men modulni PIC16F1829 mikrokontroleriga qurdim. MCU -ni tanlash juda muhim emas, agar siz manba kodini moslashtira olsangiz, boshqa MCU -dan foydalanishingiz mumkin. Men bu PICni ikkita sababga ko'ra tanladim. Birinchidan, menda mavjud edi, ikkinchidan, uning sinovlari turli sinov loyihalarida intensiv foydalanish natijasida qisman shikastlangan. Shuning uchun men uni butunlay yaroqsiz holga kelguncha doimiy loyihada ishlatmoqchi edim.:-)

IR qabul qilgich

Modulning ikkinchi qismi VS1838B IQ qabul qiluvchisidir - bu birinchi bosqichda.

UART/USB konvertori

Uchinchi qism - UCP/I2C/USB konvertori bo'lgan MCP2221.

Vazifa bu 3 qismni birlashtirib, IQ masofadan boshqarish pultidan signallarni qabul qila oladigan va ularni kompyuterga topshiradigan modulni yaratishdir.

Simlar

Birinchi rasmda non panelida sinov davri joylashgan. Ikkinchisida simlarni ulash sxemasi mavjud.

Bo'limlar ro'yxati

1 dona PIC16F1829 (yoki boshqa har qanday MCU)

1 dona VS1838B (yoki boshqa IQ qabul qiluvchisi)

1 dona MCP2221 (yoki boshqa UART/USB konvertori)

2 dona 4-pinli sarlavha

1 dona 6-pinli sarlavha

1 dona qarshilik 100R

2 dona qarshilik 10K

2 dona qarshilik 330R

1 dona kondansatör 470 nF

2 dona elektrolitik kondansatör 4.7 uF

1 ta kompyuter kaliti (ixtiyoriy)

PCB yig'ilishi

Sxemadan foydalanib, modulni birlashtiring. Siz universal taxtadan foydalanishingiz yoki maxsus PCB yaratishingiz mumkin. Agar shunday bo'lsa, men quyidagi arxivda KiCad fayllarini taqdim qilganman.

Dasturiy ta'minot

MPLAB X IDE va XC8 kompilyatori yordamida yozilgan PIC uchun manba kodini quyida yuklab olish mumkin.

Manba kodi qayd qiladi

Dastur nima bilan shug'ullanishini bilmoqchi bo'lganlar uchun quyidagi satrlar.

Barcha sozlamalar bajarilgandan so'ng, qizil LED yonadi va MCU 0x55AA ma'lumotlarini kutadi. Shundan so'ng, LED yashil rangga aylanadi va MCU uzilishlar yordamida IQ qabul qiluvchidan signalni aniqlay boshlaydi. U signalning yuqori va past darajadagi vaqt oralig'ini o'lchaydi va qayd qiladi. Bu vaqtlar keyinchalik kompyuterga yuboriladigan 32-bitli raqamga aylanadi.

Vaqt va oxirgi raqam o'rtasidagi bog'liqlik NEC protokoli bilan berilgan.

4 -qadam: Qurilmadan qanday foydalanish kerak

Qurilmadan qanday foydalanish kerak
Qurilmadan qanday foydalanish kerak
Qurilmadan qanday foydalanish kerak
Qurilmadan qanday foydalanish kerak
Qurilmadan qanday foydalanish kerak
Qurilmadan qanday foydalanish kerak

Dasturiy ta'minot

Dasturiy ta'minotni PIC -ga yuklang. Men PICkit 3 dasturchisidan foydalanaman.

Uskuna

Rasmda ko'rinib turganidek, IQ qabul qilish modulini o'rnating:

  1. USB sarlavhasini kompyuter korpusidagi anakartdagi ichki USB uyasiga mos keladigan 4 simli kabel bilan yoki tashqi USB ulagichiga standart USB kabeli bilan ulang. Ikkinchi holatda siz o'zingizga qandaydir tarzda yordam berishingiz kerak, masalan. ilhom olish uchun 3 -rasmda ko'rinib turganidek.
  2. 5 V kuchlanishli kabel, kompyuter qutisi ichidagi quvvat manbaini 4 pinli sarlavhaga ulang. Yoki tashqi foydalanish holatida modulni boshqa yo'l bilan quvvatlang.

Anakartning USB rozetkalari tavsifiga qarang. Men simlarning qandaydir standartlarga mos keladimi, bilmayman, shuning uchun ishonch hosil qilish yaxshiroqdir. Mening holimda yuqori qatorda 5 pinli va pastda 4 pinli ikkita pinli qator bor. Chapdan o'ngga pim + 5 V, D-, D +, Gnd. Birinchi qatordagi 5 -pin ulanmagan. Kabelni ikkinchi rasmda ko'rsatilgandek bog'ladim.

Dasturiy ta'minot

Dasturni terminalda ishga tushiring. Agar hamma narsa to'g'ri bo'lsa, dasturning oxirgi xabari "ma'lumotlarni kutish …". Endi siz masofadan boshqarish pultidagi tugmani bosganingizda, qabul qilingan kod terminalda paydo bo'ladi. Shunday qilib, qaysi tugma qaysi kodni chiqarayotganini bilib olasiz.

Endi sizni dasturlashning bir qismi kutmoqda, lekin xavotir olmang. Dasturni masofadan boshqarish pultiga javob berishi uchun dasturning manba kodida bir nechta narsani o'zgartirish kerak. Agar siz xohlasangiz, matn muharririda yoki IDE -da remotePC.c faylini oching va kodlarimni sizniki bilan almashtiring. Har bir harakat uchun ishlatmoqchi bo'lgan tugmachalarni birma -bir bosing. Terminalda paydo bo'ladigan kodlarni nusxalash va ularni manba kodiga mos keladigan joyga joylashtirish kifoya.

Tugatganingizdan so'ng, dasturni tugating va kodni gcc -o remotePC remotePC.c buyrug'i bilan qayta kompilyatsiya qiling. Dasturni qayta ishga tushiring va u endi sizning masofadan boshqarish pultingizga javob beradi.

Men bu usulni dasturdagi qattiq kodli harakatlar bilan ishlataman, chunki, masalan, foydalanuvchilarga qulay grafik muhitida kodlarni/harakatlarni qo'shish/o'zgartirish mumkin bo'lganda, loyihani yanada rivojlantirishga vaqtimni behuda sarflashni ma'nosiz deb bilaman. Ammo agar siz buni xohlasangiz yoki undan ham ko'proq qila olsangiz.

Tavsiya: