Mündəricat:

Babanız üçün Texnologiya: 13 Adım (Şəkillərlə birlikdə)
Babanız üçün Texnologiya: 13 Adım (Şəkillərlə birlikdə)

Video: Babanız üçün Texnologiya: 13 Adım (Şəkillərlə birlikdə)

Video: Babanız üçün Texnologiya: 13 Adım (Şəkillərlə birlikdə)
Video: Ən çətin məntiq testi.😉 Kim tapsa 1-ci yer. Yalnız 1 nəfər.❗❗ 2024, Noyabr
Anonim
Image
Image

Qoşulmamış bir elektrik kabeli, ölü uzaq bir batareya və ya televizorda mənbəyi dəyişə bilməməyinizlə nəticələnən "texnologiya problemi" nə kömək etmək üçün neçə dəfə nənə və babanızın evinə getmisiniz? Bilirəm ki, mənim üçün bu çox tez -tez olur. Bir çox yeni AA üçün mağazaya qaçaraq problemlərinin əksəriyyəti həll oluna bilsə də, bəzən daha xüsusi bir həlldən faydalana bilərlər.

Məsələn, rəfiqəmin babasının yeni bir televizoru var və biz ona DVD və TV arasında keçid etməsi üçün mənbəyi necə dəyişdirməyi öyrətməyə çalışdıq - ancaq başa düşə bilmədi. Görmə qabiliyyətinin itirilməsi ilə də məşğuldur və mürəkkəb prosesləri xatırlamaqla o qədər də maraqlanmır, sadəcə istədiyi vaxt verilişlərinə baxmaq istəyir. Son səfərimizdəki addımları çox uğur qazanmadan sakitcə izah etməyə çalışdıqdan sonra qərara gəldim ki, onu yalnız özünün iki düyməli uzaqdan idarə etməsinə qərar verim. Bu, televizorundakı giriş mənbəyini ağrısız bir şəkildə dəyişdirməsinə, sevdiyi Matlock DVD -ləri ilə Qiyməti Doğru olaraq asanlıqla dəyişdirməsinə imkan verəcəkdir.

Addım 1: Materiallar

  • PhidgetIR
  • PhidgetSBC4 (və ya Raspberry Pi kimi hər hansı bir lövhəli kompüter)
  • Lehimleme dəmir
  • Yan kəsicilər
  • Tel çıxarıcılar
  • Jumper telləri
  • USB Kabel
  • Phidget Kabeli
  • Mühafizə
  • Çuxur başlıqları
  • İstiliyi azaldan borular

Addım 2: Planlaşdırma

3D çap
3D çap

Uzaqdan idarəetmə qurmaq üçün televizora istehlakçı infraqırmızı (CIR) əmrləri göndərmə qabiliyyətinə ehtiyacım var idi. Bu iş üçün PhigetIR istifadə etmək qərarına gəldim. PhidgetIR, CIR əmrlərini həm göndərmək, həm də qəbul etmək qabiliyyətinə malik USB idarə olunan bir cihazdır. Bunu bir neçə səbəbdən seçdim:

  • Bu layihəni ən qısa müddətdə bitirmək və istifadə etmək istədim, buna görə də osiloskopumu və çörək taxtamı sındırmaq fikri cazibədar olmadı. Ayrıca, əllə lehimlənmiş sxemlərimin bir-iki ildən sonra da işləyəcəyi ehtimalı nə qədərdir?
  • PhidgetIR, CIR əmrlərini inkişaf etdirməyi son dərəcə asanlaşdıran "öyrənmək" qabiliyyətinə malikdir.
  • PhidgetIR ilə demək olar ki, hər hansı bir əsas proqramlaşdırma dilindən istifadə edə bilərsiniz. Bu, Java -dan istifadə edə biləcəyimi və işləri tez bir zamanda başa çatdıra biləcəyimi ifadə etdi.
  • Nəhayət, Phidgets üçün işləyirəm, buna görə API ilə rahatam və ətrafda həmişə ehtiyat qurğular var.

PhidgetIR istifadə etməyi seçdiyim üçün onu söndürmək üçün bir kompüterə ehtiyacım var idi. Bu layihənin adi bir uzaqdan idarəetmə kimi müstəqil bir tətbiq olmasını istəyirdim, buna görə bir masa üstü və ya dizüstü kompüter çıxdı. PhidgetSBC4 (Debian Linux ilə işləyən bir lövhəli kompüter) istifadə etməyi seçdim, çünki hər hansı bir əlavə avadanlıq olmadan hər iki düymə ilə əlaqə qurmağa imkan verdi. Sadəcə birbaşa VINT Hub-a qoşula bilərlər. Qeyd: bu layihə üçün bir Raspberry Pi də istifadə edə bilərsiniz. Nəhayət, funksional cəhətdən sağlam olmağımla yanaşı, bu layihənin əla görünməsini istədim, buna görə də 3D çaplı bir korpusun lazım olacağına qərar verdim.

Addım 3: 3D çap

3D çap
3D çap
3D çap
3D çap

Bu layihə üçün Geomagic korpusun modelləşdirilməsində istifadə edilmişdir. Həm PhidgetIR, həm də PhidgetSBC4 üçün prosesi asanlaşdıran 3D addım faylları mövcuddur. Bu addımda korpusun ölçüsü və funksionallığı ilə bağlı bəzi qərarlar verildi:

  • PhidgetIR -da əmrləri göndərmək üçün TV -yə yönəldilməsi lazım olan iki IR LED var. PhidgetIR lövhəsinin ətrafını dizayn etmək əvəzinə, İQ LED -lərinin sökülüb korpusun yan tərəfindəki deliklərə yapışdırıla bilər. PhidgetIR lövhəsi daha sonra boş yerdən istifadə edərək LED -lərdən uzaqda quraşdırıla bilər.
  • PhidgetSBC4 üzərindəki VINT Hub konnektorları yuxarıya doğru bükülə bilər ki, bu da düyməli bağlantılara giriş imkanı verəcək və eyni zamanda daha böyük bir korpus yaratmağın qarşısını alacaq.

Düymələr üçün bir etiket və İQ LED -lərinin düzgün istiqamətdə göstərilməsi üçün üzləşməli olduğu istiqaməti göstərən bir etiket əlavə etmək qərarına gəldim. Mən korpusu qara ABS plastikdən çap etdim.

Addım 4: Montaj - LEDləri çıxarın

Montaj - LEDləri çıxarın
Montaj - LEDləri çıxarın
Montaj - LEDləri çıxarın
Montaj - LEDləri çıxarın
Montaj - LEDləri çıxarın
Montaj - LEDləri çıxarın

IR LEDləri, nəticədə, korpusun yan tərəfindəki deliklərə yapışdırılacaq. Bu o deməkdir ki, əvvəlcə onların soyulması lazımdır.

Addım 5: Quraşdırma - Delik başlıqlarından əlavə edin

Montaj - Delik başlıqları vasitəsilə əlavə edin
Montaj - Delik başlıqları vasitəsilə əlavə edin
Montaj - Delik başlıqları vasitəsilə əlavə edin
Montaj - Delik başlıqları vasitəsilə əlavə edin

Daha sonra, LED-lərin olduğu yerlərdə delikli başlıqlar əlavə edildi ki, bu da 4 pinli tullanan tel istifadə edərək bağlanmağı asanlaşdırdı. Təsadüfən təmasın qarşısını almaq üçün istilik büzücü borulardan istifadə edin.

Addım 6: Montaj - LEDləri bağlayın

Montaj - LEDləri bağlayın
Montaj - LEDləri bağlayın
Montaj - LEDləri bağlayın
Montaj - LEDləri bağlayın

LEDləri korpusun kənarına yapışdırın.

Addım 7: Quraşdırma - PhidgetIR -ı qoşun

Quraşdırma - PhidgetIR -ı qoşun
Quraşdırma - PhidgetIR -ı qoşun
Quraşdırma - PhidgetIR -ı qoşun
Quraşdırma - PhidgetIR -ı qoşun
Quraşdırma - PhidgetIR -ı qoşun
Quraşdırma - PhidgetIR -ı qoşun

PhidgetIR -ı korpusa qoşun və LED -ləri bağlayın.

Addım 8: Montaj - Düymələr əlavə etmək

Montaj - Düymələrin əlavə edilməsi
Montaj - Düymələrin əlavə edilməsi
Montaj - Düymələrin əlavə edilməsi
Montaj - Düymələrin əlavə edilməsi
Montaj - Düymələrin əlavə edilməsi
Montaj - Düymələrin əlavə edilməsi

Düymələri PhidgetSBC-də quraşdırılmış VINT Hub-a bağlamaq lazımdır, buna görə bir Phidget Kabelini yarıya endirdim və uclarını düymələrə lehimlədim. Qeyd edək ki, yalnız ağ tel (siqnal) və qara (torpaq) tələb olunur.

Addım 9: Montaj - Hər şeyi bir yerə yığın

Quraşdırma - Hər şeyi bir araya gətirmək
Quraşdırma - Hər şeyi bir araya gətirmək
Quraşdırma - Hər şeyi bir araya gətirmək
Quraşdırma - Hər şeyi bir araya gətirmək

Hər şeyi bir araya gətirmək üçün bəzi kabel idarəçiliyinə ehtiyac var idi, lakin korpus yaxşı işləyirdi.

Addım 10: Proqram təminatı - Kod

Burada tapa biləcəyiniz bu layihə üçün yalnız bir Java faylı lazımdır. Proqram bir PhidgetIR obyektindən və iki DigitalInput obyektindən istifadə edir. Bu obyektləri belə yarada bilərsiniz:

PhidgetIR ir = yeni PhidgetIR ();

DigitalInput tvButton = yeni DigitalInput (); DigitalInput otherButton = yeni DigitalInput ();

Rəqəmsal Giriş obyektləri VINT Hub üzərindəki fiziki bir düyməyə bənzəyir. Qoşma, ayırma, səhv və vəziyyət dəyişikliyi hadisələrinə də abunə olurlar:

tv.setIsHubPortDevice (doğru);

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

Yuxarıda istinad edilən dövlət dəyişikliyi dinləyicisi belə görünür:

özəl statik DigitalInputStateChangeListener onStateChangeListener = yeni DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); cəhd edin {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == doğru) {otherButtonActivated = doğru;}} tutmaq (PhidgetException ex) {System.out.println ("Hata:"+ ex.getDescription ());}}};

Bir düymə aktiv edildikdə, hadisə kodu icra ediləcək və bir bayraq qoyacaq. Bu bayraqlar əsas döngədə istinad ediləcək və sıfırlanacaq. Əsas döngə sadəcə düymə vəziyyətində bir dəyişiklik gözləyir və sonra PhidgetIR API -də mövcud olan ötürmə funksiyasından istifadə edərək IR əmrləri göndərir.

while (true) {if (tvButtonActivated) {

tvButtonActivated = yalan; Log.log (LogLevel. INFO, "CHANGING SOURCE - 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, "CHANGING SOURCE - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.sleep (500); ir.transmit (leftButtonString, codeInfo); Thread.sleep (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

Addım 11: Proqram təminatı - CIR əmrləri

Proqram təminatı - CIR əmrləri
Proqram təminatı - CIR əmrləri

Bir əmrin necə yaradılacağına bir nümunə (bu vəziyyətdə həcmi artırma əmri):

// IR kodu

IRCodeInfo sourceButtonCI = yeni IRCodeInfo (); String volumeUp = "77e1d0f0"; // Mənbə düyməsini qurun sourceButtonCI.bitCount = 32; sourceButtonCI.encoding = IRCodeEncoding. SPACE; sourceButtonCI.gap = 108921; sourceButtonCI.trail = 549; sourceButtonCI.zero = newint [2]; sourceButtonCI.zero [0] = 549; sourceButtonCI.zero [1] = 627; sourceButtonCI.one = newint [2]; sourceButtonCI.one [0] = 549; sourceButtonCI.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;

Bu əmr haqqında məlumat əldə etmək üçün sadəcə Phidget kitabxanaları ilə birlikdə gələn PhidgetIR nümunəsini istifadə etdim. Uzaqdan idarəetmə vasitəsini PhidgetIR -ə göstərdikdən və səs artırma düyməsini basıb saxladıqdan sonra IR kodu öyrənir və nümunəni doldurur. Bu məlumatlar sadəcə koda kopyalana bilər.

Addım 12: Proqramı işə salın

Java faylı xarici bir kompüterdə yazıla və tərtib edilə bilər. PhidgetRemote.java və phidget22.jar fayllarını eyni qovluğa yerləşdirin və aşağıdakı əmri işlədin:

Windowsjavac -sınıf yolu.; Phidget22.jar PhidgetRemote.java

macOS/Linuxjavac -sınıf yolu.: phidget22.jar PhidgetRemote.java

Tərtib etdikdən sonra, yaradılan sinif fayllarını PhidgetSBC4 -ə kopyalayın və açılışda işləməsi üçün konfiqurasiya edin.

Addım 13: Nəticə

Pultu rəfiqəmin babasına verəndə və onu necə istifadə edəcəyini göstərəndə, onun nə qədər sadə olduğuna heyran qaldı. Videoya baxaraq, hərəkətdədir!

Uzaqdan idarəetmə yarışması 2017
Uzaqdan idarəetmə yarışması 2017
Uzaqdan idarəetmə yarışması 2017
Uzaqdan idarəetmə yarışması 2017

2017 Uzaqdan İdarəetmə Müsabiqəsində Üçüncü Mükafat

Tövsiyə: