Mundarija:

Sizning bobongiz uchun texnologiya: 13 qadam (rasmlar bilan)
Sizning bobongiz uchun texnologiya: 13 qadam (rasmlar bilan)

Video: Sizning bobongiz uchun texnologiya: 13 qadam (rasmlar bilan)

Video: Sizning bobongiz uchun texnologiya: 13 qadam (rasmlar bilan)
Video: Я есть. Ты есть. Он есть_Рассказ_Слушать 2024, Noyabr
Anonim
Image
Image

Siz necha marta ota -bobolaringizning uyiga borgansiz, "texnologiya muammosi" ni hal qilish uchun elektr simini uzib qo'ygansiz, batareyani o'chirib qo'ygansiz yoki televizorda manbani o'zgartira olmagansiz? Bilaman, men uchun bu tez -tez sodir bo'ladi. Garchi ularning ko'p muammolarini do'konga yangi AA uchun yugurish orqali hal qilish mumkin bo'lsa -da, ba'zida ular ko'proq moslashtirilgan echimdan foydalanishlari mumkin.

Masalan, mening qiz do'stimning bobosi yangi televizorga ega bo'ldi va biz unga DVD va televizor o'rtasida almashish uchun manbani qanday o'zgartirishni o'rgatishga harakat qildik - lekin u buni tushuna olmadi. U, shuningdek, ko'rish qobiliyatining pasayishi bilan shug'ullanadi va murakkab jarayonlarni eslashga unchalik qiziqmaydi, u faqat o'z shoularini xohlagan vaqtda tomosha qilishni xohlaydi. Oxirgi tashrifimiz chog'ida qadamlarni xotirjam tushuntirishga urinib, muvaffaqiyatsizlikka uchraganidan so'ng, men uni faqat o'z qo'li bilan ikkita tugmachali masofadan boshqarish pultiga aylantirishga qaror qildim. Bu unga televizoridagi kirish manbasini og'riqsiz o'zgartirishga imkon beradi, sevimli Matlock DVD -lari va "Narx to'g'ri" ni osongina o'zgartiradi.

1 -qadam: materiallar

  • PhidgetIR
  • PhidgetSBC4 (yoki Raspberry Pi kabi har qanday bitta kompyuter)
  • Lehimlash temir
  • Yon kesgichlar
  • Tel -striptizchilar
  • Jumper simlari
  • USB kabeli
  • Phidget kabeli
  • Qoplama
  • Teshikli sarlavhalar
  • Issiqlikka chidamli quvurlar

2 -qadam: Rejalashtirish

3D bosib chiqarish
3D bosib chiqarish

Masofadan boshqarish pultini yaratish uchun menga iste'molchilarning infraqizil (CIR) buyruqlarini televizorga yuborish qobiliyati kerak edi. Men bu vazifani bajarish uchun PhigetIRdan foydalanishga qaror qildim. PhidgetIR - bu USB orqali boshqariladigan qurilma, u CIR buyruqlarini yuborish va qabul qilish imkoniyatiga ega. Men buni bir necha sabablarga ko'ra tanladim:

  • Men bu loyihani iloji boricha tezroq tugatib, foydalanishga topshirmoqchi edim, shuning uchun osiloskopimni va non taxtamni sindirish fikri jozibador emas edi. Bundan tashqari, mening qo'lda lehimli sxemalarim bir-ikki yildan keyin ham ishlay oladimi?
  • PhidgetIR CIR buyruqlarini "o'rganish" qobiliyatiga ega, bu ishlab chiqishni juda sodda qiladi.
  • PhidgetIR bilan deyarli har qanday asosiy dasturlash tilidan foydalanishingiz mumkin. Bu shuni anglatadiki, men Java -dan foydalanishim va hamma narsani tezda tugatishim mumkin edi.
  • Nihoyat, men Phidgets -da ishlayman, shuning uchun men API -ni yaxshi ko'raman va har doim yonida zaxira qurilmalar yotadi.

Men PhidgetIR -dan foydalanishni tanlaganim uchun, uni o'chirish uchun menga kompyuter kerak edi. Men bu loyiha oddiy masofadan boshqarish pultiga o'xshash mustaqil dastur bo'lishini xohlardim, shuning uchun ish stoli yoki noutbuk yo'q edi. Men PhidgetSBC4 (Debian Linux bilan ishlaydigan bitta taxtali kompyuter) dan foydalanishni tanladim, chunki bu menga qo'shimcha tugmachasiz ikkala tugmani bosish imkonini berdi. Ularni to'g'ridan-to'g'ri o'rnatilgan VINT uyasiga ulash mumkin. Eslatma: siz ushbu loyiha uchun Raspberry Pi -dan foydalanishingiz mumkin. Nihoyat, funktsional jihatdan sog'lom bo'lishdan tashqari, men bu loyihaning ajoyib ko'rinishini xohlardim, shuning uchun men 3D bosma muhofaza zarur deb qaror qildim.

3 -qadam: 3D bosib chiqarish

3D bosib chiqarish
3D bosib chiqarish
3D bosib chiqarish
3D bosib chiqarish

Ushbu loyiha uchun Geomagic korpusni modellashtirish uchun ishlatilgan. Bu jarayonni soddalashtirgan PhidgetIR va PhidgetSBC4 uchun 3D qadamli fayllar mavjud. Ushbu bosqichda korpusning o'lchamlari va funksionalligi to'g'risida ba'zi qarorlar qabul qilindi:

  • PhidgetIR -da buyruqlarni yuborish uchun televizorga yo'naltirilishi kerak bo'lgan ikkita IQ LED mavjud. PhidgetIR taxtasi atrofidagi korpusni loyihalashtirishning o'rniga, IQ -diodlarning rangini olib tashlash va ularni korpus yonidagi teshiklarga yopishtirish mumkin. PhidgetIR taxtasi bo'sh joydan foydalanib, LEDlardan uzoqda o'rnatilishi mumkin.
  • PhidgetSBC4 -dagi VINT uyasi ulagichlari yuqoriga burilgan bo'lishi mumkin, bu esa tugmachali ulanishlarga kirishga imkon beradi, shuningdek, kattaroq korpus yaratishga to'sqinlik qiladi.

Men, shuningdek, tugmachalar yorlig'i va IQ LEDlari to'g'ri yo'nalishda ko'rsatilishi uchun uning yo'nalishini ko'rsatadigan belgi qo'shishga qaror qildim. Men korpusni qora ABS plastmassadan bosib chiqarganman.

4 -qadam: O'rnatish - LEDlarni olib tashlang

O'rnatish - LEDlarni olib tashlang
O'rnatish - LEDlarni olib tashlang
O'rnatish - LEDlarni olib tashlang
O'rnatish - LEDlarni olib tashlang
O'rnatish - LEDlarni olib tashlang
O'rnatish - LEDlarni olib tashlang

Oxir -oqibat, IQ LEDlari korpusning yon tomonidagi teshiklarga yopishtiriladi. Bu shuni anglatadiki, birinchi navbatda ularni qolipdan tozalash kerak.

5 -qadam: O'rnatish - teshik sarlavhalarini qo'shing

O'rnatish - Teshik sarlavhalarini qo'shing
O'rnatish - Teshik sarlavhalarini qo'shing
O'rnatish - teshik sarlavhalarini qo'shish
O'rnatish - teshik sarlavhalarini qo'shish

Keyinchalik, LEDlar qaerda bo'lsa, teshikli sarlavhalar qo'shildi, bu ularga 4-pinli o'tish simidan foydalanishni osonlashtirdi. Tasodifan aloqa qilmaslik uchun issiqlik o'tkazmaydigan quvurlardan foydalaning.

6 -qadam: O'rnatish - LEDlarni ulang

O'rnatish - LEDlarni ulang
O'rnatish - LEDlarni ulang
O'rnatish - LEDlarni ulang
O'rnatish - LEDlarni ulang

LEDlarni korpusning yon tomoniga yopishtiring.

7 -qadam: O'rnatish - PhidgetIR -ni ulang

O'rnatish - PhidgetIR -ni ulang
O'rnatish - PhidgetIR -ni ulang
O'rnatish - PhidgetIR -ni ulang
O'rnatish - PhidgetIR -ni ulang
O'rnatish - PhidgetIR -ni ulang
O'rnatish - PhidgetIR -ni ulang

PhidgetIR -ni korpusga ulang va LEDlarni ulang.

8 -qadam: yig'ish - tugmachalarni qo'shish

O'rnatish - tugmachalarni qo'shish
O'rnatish - tugmachalarni qo'shish
O'rnatish - tugmachalarni qo'shish
O'rnatish - tugmachalarni qo'shish
O'rnatish - tugmachalarni qo'shish
O'rnatish - tugmachalarni qo'shish

Bosish tugmalari PhidgetSBC-dagi o'rnatilgan VINT uyasiga ulangan bo'lishi kerak, shuning uchun men Phidget kabelini yarmini kesib, uchlarini tugmalarga lehimladim. E'tibor bering, faqat oq sim (signal) va qora (tuproq) kerak.

9 -qadam: yig'ish - hamma narsani bir joyga to'plash

O'rnatish - Hammasini bir joyga to'plash
O'rnatish - Hammasini bir joyga to'plash
O'rnatish - Hammasini bir joyga to'plash
O'rnatish - Hammasini bir joyga to'plash

Hamma narsani birlashtirish uchun ba'zi kabellarni boshqarish kerak edi, lekin korpus yaxshi ishladi.

10 -qadam: dasturiy ta'minot - kod

Bu loyiha uchun faqat bitta Java fayli kerak, uni bu erda topishingiz mumkin. Dastur bitta PhidgetIR ob'ektidan va ikkita DigitalInput ob'ektidan foydalanadi. Siz shunday ob'ektlarni yaratishingiz mumkin:

PhidgetIR ir = yangi PhidgetIR ();

DigitalInput tvButton = yangi DigitalInput (); DigitalInput otherButton = yangi DigitalInput ();

Raqamli kirish ob'ektlari VINT uyasidagi jismoniy tugmachaga joylashtirilgan. Qo'shish, ajratish, xato va holatni o'zgartirish hodisalari ham obuna bo'ladi:

tv.setIsHubPortDevice (haqiqiy);

tvButton.setHubPort (4); tvButton.addAttachListener (onAttachListener); tvButton.addDetachListener (onDetachListener); tvButton.addErrorListener (onErrorListener); tvButton.addStateChangeListener (onStateChangeListener); tvButton.open (); otherButton.setIsHubPortDevice (rost); otherButton.setHubPort (5); otherButton.addAttachListener (onAttachListener); otherButton.addDetachListener (onDetachListener); otherButton.addErrorListener (onErrorListener); otherButton.addStateChangeListener (onStateChangeListener); otherButton.open ();

Yuqorida havola qilingan tinglovchining holatini o'zgartirish quyidagicha ko'rinadi:

xususiy statik DigitalInputStateChangeListener onStateChangeListener = yangi DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); harakat qilib ko'ring {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} tutish (PhidgetException ex) {System.out.println ("Xato:"+ ex.getDescription ());}}};

Tugma yoqilganda, voqea kodi bajariladi va bayroq o'rnatiladi. Bu bayroqlar havola qilinadi va asosiy tsiklda tiklanadi. Asosiy tsikl tugma holatining o'zgarishini kutadi va keyin PhidgetIR API -da mavjud bo'lgan uzatish funktsiyasidan foydalanib, IQ buyruqlarini yuboradi.

while (true) {if (tvButtonActivated) {

tvButtonActivated = noto'g'ri; Log.log (LogLevel. INFO, "CHANGING MADBANI - TV"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (rightButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "O'ZGARTIRISH MANBASI - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

11 -qadam: dasturiy ta'minot - CIR buyruqlari

Dasturiy ta'minot - CIR buyruqlari
Dasturiy ta'minot - CIR buyruqlari

Bu erda buyruqni qanday yaratishga misol (bu holda ovoz balandligini oshirish buyrug'i):

// IR kodi

IRCodeInfo sourceButtonCI = yangi IRCodeInfo (); String volumeUp = "77e1d0f0"; // Manba tugmachasini sozlash sourceButtonCI.bitCount = 32; sourceButtonCI.encoding = IRCodeEncoding. SPACE; sourceButtonCI.gap = 108921; manbaButtonCI.trail = 549; sourceButtonCI.zero = newint [2]; manbaButtonCI.zero [0] = 549; manbaButtonCI.zero [1] = 627; sourceButtonCI.one = newint [2]; manbaButtonCI.one [0] = 549; manbaButtonCI.one [1] = 1755; sourceButtonCI.header = newint [2]; sourceButtonCI.header [0] = 9084; sourceButtonCI.header [1] = 4600; sourceButtonCI.repeat = newint [3]; sourceButtonCI.repeat [0] = 9084; sourceButtonCI.repeat [1] = 2308; sourceButtonCI.repeat [2] = 549; sourceButtonCI.length = IRCodeLength. CONSTANT;

Ushbu buyruq haqida ma'lumot olish uchun men faqat Phidget kutubxonalari bilan birga kelgan PhidgetIR misolidan foydalandim. Masofadan boshqarish pultini PhidgetIR tomon ko'rsatib, ovoz balandligini oshirish tugmachasini bosib ushlab turgandan so'ng, IR kodni "o'rganadi" va misolni to'ldiradi. Bu ma'lumotni kodga nusxalash mumkin.

12 -qadam: Dasturni ishga tushirish

Java faylini tashqi kompyuterda yozish va kompilyatsiya qilish mumkin. PhidgetRemote.java va phidget22.jar fayllarini bitta papkaga joylashtiring va quyidagi buyruqni bajaring:

Windowsjavac -klasspath.; Phidget22.jar PhidgetRemote.java

macOS/Linuxjavac -klasspath.: phidget22.jar PhidgetRemote.java

Tuzilganidan so'ng, yaratilgan sinf fayllarini PhidgetSBC4 -ga nusxalash va yuklashda ishga tushirish uchun sozlash.

13 -qadam: Natija

Men masofadan boshqarish pultini qiz do'stimning bobosiga berib, uni qanday ishlatishni ko'rsatganimda, u qanchalik sodda ekaniga hayron qoldi. Videoni amalda ko'rish uchun ko'ring!

Masofadan boshqarish tanlovi 2017
Masofadan boshqarish tanlovi 2017
Masofadan boshqarish tanlovi 2017
Masofadan boshqarish tanlovi 2017

2017 yil masofadan boshqarish pulti tanlovining uchinchi mukofoti

Tavsiya: