İçindekiler:

Dedeniz İçin Teknoloji: 13 Adım (Resimlerle)
Dedeniz İçin Teknoloji: 13 Adım (Resimlerle)

Video: Dedeniz İçin Teknoloji: 13 Adım (Resimlerle)

Video: Dedeniz İçin Teknoloji: 13 Adım (Resimlerle)
Video: DOLAR EURO TÜRK LİRASI 2024, Kasım
Anonim
Image
Image

Kaç kez büyükanne ve büyükbabanızın evine, fişi çekilmiş bir güç kablosu, bitmiş bir uzaktan kumanda pili veya TV'deki kaynağı değiştirememekle sonuçlanan bir “teknoloji sorununa” yardım etmek için gittiniz? Benim için bunun oldukça sık olduğunu biliyorum. Sorunlarının çoğu, bazı yeni AA'lar için mağazaya koşarak çözülebilirken, bazen daha özelleştirilmiş bir çözümden yararlanabilirler.

Örneğin, kız arkadaşımın büyükbabası yeni bir televizyon aldı ve ona DVD ile TV arasında geçiş yapabilmesi için kaynağın nasıl değiştirileceğini öğretmeye çalıştık - ama bir türlü çözemedi. Ayrıca görme bozukluğuyla da uğraşıyor ve karmaşık süreçleri hatırlamaya çalışmakla pek ilgilenmiyor, sadece istediği zaman şovlarını izlemek istiyor. Son ziyaretimiz sırasında pek başarılı olamadığımız adımları sakince açıklamaya çalıştıktan sonra, ona kendi basit iki düğmeli uzaktan kumandasını yapmaya karar verdim. Bu, onun televizyonundaki giriş kaynağını acısız bir şekilde değiştirmesine, sevgili Matlock DVD'leri ile Price is Right arasında kolaylıkla geçiş yapmasına olanak sağlayacaktı.

Adım 1: Malzemeler

  • PhidgetIR
  • PhidgetSBC4 (veya Raspberry Pi gibi herhangi bir tek kartlı bilgisayar)
  • Havya
  • Yan Kesiciler
  • Tel Sıyırıcılar
  • Jumper Telleri
  • USB kablosu
  • Phidget Kablosu
  • muhafaza
  • Açık delik başlıkları
  • Isıyla daralan makaron

2. Adım: Planlama

3D Baskı
3D Baskı

Uzaktan kumandayı oluşturmak için televizyona tüketici kızılötesi (CIR) komutları gönderme yeteneğine ihtiyacım vardı. Bu görev için PhigetIR kullanmaya karar verdim. PhidgetIR, CIR komutlarını hem gönderme hem de alma yeteneğine sahip USB kontrollü bir cihazdır. Bunu birkaç nedenden dolayı seçtim:

  • Bu projeyi bir an önce bitirmek ve kullanmak istedim, bu yüzden osiloskopumu ve breadboard'umu kırma düşüncesi çekici gelmedi. Ayrıca, elle lehimlenmiş devrelerimin bir veya iki yıl içinde hala çalışıyor olması ne kadar olasıdır?
  • PhidgetIR, geliştirmeyi son derece basit hale getiren CIR komutlarını "öğrenme" yeteneğine sahiptir.
  • PhidgetIR ile hemen hemen her ana akım programlama dilini kullanabilirsiniz. Bu, Java'yı kullanabileceğim ve işleri çabucak bitirebileceğim anlamına geliyordu.
  • Son olarak, Phidgets için çalışıyorum, bu yüzden API konusunda rahatım ve etrafta her zaman yedek cihazlar var.

PhidgetIR'i kullanmayı seçtiğim için, onu çalıştırmak için bir bilgisayara ihtiyacım vardı. Bu projenin normal bir uzaktan kumanda gibi bağımsız bir uygulama olmasını istedim, bu yüzden bir masaüstü veya dizüstü bilgisayar çıktı. Bir PhidgetSBC4 (Debian Linux çalıştıran tek kartlı bir bilgisayar) kullanmayı seçtim, çünkü herhangi bir ek donanım olmadan her iki basma düğmesiyle arayüz kurmama izin verdi. Doğrudan yerleşik VINT Hub'a kolayca bağlanabilirler. Not: Bu proje için bir Raspberry Pi de kullanabilirsiniz. Son olarak, işlevsel olarak sağlam olmasının yanı sıra, bu projenin harika görünmesini istedim, bu yüzden 3D baskılı bir muhafazanın gerekli olacağına karar verdim.

3. Adım: 3D Baskı

3D Baskı
3D Baskı
3D Baskı
3D Baskı

Bu proje için, muhafazayı modellemek için Geomagic kullanıldı. Hem PhidgetIR hem de PhidgetSBC4 için süreci basitleştiren 3B adım dosyaları mevcuttur. Bu adımda, muhafazanın boyutu ve işlevselliği ile ilgili bazı kararlar alındı:

  • PhidgetIR, komut göndermek için TV'ye doğru işaret etmesi gereken iki IR LED'e sahiptir. Muhafazayı PhidgetIR kartının etrafında tasarlamak yerine, IR LED'lerin lehimi sökülüp muhafazanın yan tarafındaki deliklere yapıştırılabilir. PhidgetIR kartı daha sonra boş alan kullanılarak LED'lerden uzağa monte edilebilir.
  • PhidgetSBC4 üzerindeki VINT Hub konektörleri yukarı doğru bükülebilir, bu da basmalı düğme bağlantılarına erişime izin verir ve ayrıca daha büyük bir muhafaza oluşturma zorunluluğunu ortadan kaldırır.

Ayrıca butonlar için bir etiket ve IR LED'lerin doğru yöne bakması için bakması gereken yönü gösteren bir etiket eklemeye karar verdim. Muhafazayı yerel olarak siyah ABS plastikten yazdırdım.

Adım 4: Montaj - LED'leri çıkarın

Montaj - LED'leri çıkarın
Montaj - LED'leri çıkarın
Montaj - LED'leri çıkarın
Montaj - LED'leri çıkarın
Montaj - LED'leri çıkarın
Montaj - LED'leri çıkarın

IR LED'ler sonunda muhafazanın yan tarafındaki deliklere yapıştırılacaktır. Bu, önce sökülmeleri gerektiği anlamına gelir.

Adım 5: Montaj - Delik Başlıkları Ekleme

Montaj - Delik Başlıklarından Ekleme
Montaj - Delik Başlıklarından Ekleme
Montaj - Delik Başlıklarından Ekleme
Montaj - Delik Başlıklarından Ekleme

Daha sonra, LED'lerin eskiden olduğu yere delikli başlıklar eklendi, bu da 4 pimli bir atlama kablosu kullanarak bağlanmalarını kolaylaştırdı. Kazara teması önlemek için ısıyla daralan makaron kullanın.

Adım 6: Montaj - LED'leri takın

Montaj - LED'leri takın
Montaj - LED'leri takın
Montaj - LED'leri takın
Montaj - LED'leri takın

LED'leri muhafazanın yan tarafına yapıştırın.

Adım 7: Montaj - PhidgetIR'i takın

Montaj - PhidgetIR'yi takın
Montaj - PhidgetIR'yi takın
Montaj - PhidgetIR'yi takın
Montaj - PhidgetIR'yi takın
Montaj - PhidgetIR'yi takın
Montaj - PhidgetIR'yi takın

PhidgetIR'yi kasaya takın ve LED'leri bağlayın.

Adım 8: Montaj - Düğme Ekleme

Montaj - Düğme Ekleme
Montaj - Düğme Ekleme
Montaj - Düğme Ekleme
Montaj - Düğme Ekleme
Montaj - Düğme Ekleme
Montaj - Düğme Ekleme

Basmalı düğmelerin PhidgetSBC'deki yerleşik VINT Hub'a bağlanması gerekiyor, bu yüzden bir Phidget Kablosunu ikiye böldüm ve uçlarını düğmelere lehimledim. Yalnızca beyaz kablonun (sinyal) ve siyahın (toprak) gerekli olduğunu unutmayın.

9. Adım: Montaj - Her Şeyi Bir Araya Getirmek

Montaj - Her Şeyi Bir Araya Getirmek
Montaj - Her Şeyi Bir Araya Getirmek
Montaj - Her Şeyi Bir Araya Getirmek
Montaj - Her Şeyi Bir Araya Getirmek

Her şeyi bir araya getirmek için biraz kablo yönetimi gerekliydi, ancak kasa iyi çalıştı.

Adım 10: Yazılım - Kod

Bu proje için burada bulabileceğiniz tek bir Java dosyası gerekiyor. Program bir PhidgetIR nesnesi ve iki DigitalInput nesnesi kullanır. Bu nesneleri şu şekilde oluşturabilirsiniz:

PhidgetIR ir =yeni PhidgetIR();

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

Dijital Giriş nesneleri, VINT Hub'daki fiziksel bir butonla eşlenir. Ekleme, ayırma, hata ve durum değişikliği olayları ayrıca şunlara da abone olunur:

tv.setIsHubPortDevice(doğru);

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

Yukarıda atıfta bulunulan durum değişikliği dinleyicisi şöyle görünür:

privatestatic DigitalInputStateChangeListener onStateChangeListener =new DigitalInputStateChangeListener(){@OverridepublicvoidonStateChange(DigitalInputStateChangeEvent disk){

DigitalInput ch =(DigitalInput) disce.getSource();try{if(ch.getHubPort()==4&& disce.getState()==true){ tvButtonActivated =true;}if(ch.getHubPort()==5&& disce.getState()==true){ otherButtonActivated =true;}}catch(PhidgetException ex){ System.out.println("Hata: "+ ex.getDescription());}}};

Bir düğme etkinleştirildiğinde, olay kodu yürütülecek ve bir bayrak ayarlayacaktır. Bu bayraklara referans verilecek ve ana döngüde sıfırlanacaktır. Ana döngü, düğme durumundaki bir değişikliği bekler ve ardından PhidgetIR API'sinde bulunan iletim işlevini kullanarak IR komutları gönderir.

while(true){if(tvButtonActivated){

tvButtonActivated =false; Log.log(LogLevel. INFO, "KAYNAK DEĞİŞTİRME - 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, "KAYNAK DEĞİŞTİRME - DVD"); ir.transmit(sourceButtonString, codeInfo); thread.sleep(500); ir.transmit(leftButtonString, codeInfo); thread.sleep(500); ir.transmit(enterButtonString, codeInfo);} Thread.sleep(250);}

Adım 11: Yazılım - CIR Komutları

Yazılım - CIR Komutları
Yazılım - CIR Komutları

İşte bir komutun nasıl oluşturulacağına dair bir örnek (bu durumda bir ses açma komutu):

//IR Kodu

IRCodeInfo sourceButtonCI =yeni IRCodeInfo(); String volumeUp ="77e1d0f0";//Kaynak düğmesini ayarla 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 komutun bilgisini almak için sadece Phidget kütüphaneleriyle birlikte gelen PhidgetIR örneğini kullandım. Uzaktan kumandayı PhidgetIR'ye doğrulttuktan ve ses açma düğmesini basılı tuttuktan sonra, IR kodu "öğrenir" ve örneği doldurur. Bu bilgi daha sonra koda kopyalanabilir.

Adım 12: Programı Çalıştırma

Java dosyası harici bir bilgisayarda yazılabilir ve derlenebilir. PhidgetRemote.java ve phidget22.jar'ı aynı klasöre yerleştirin ve aşağıdaki komutu çalıştırın:

Windowsjavac -classpath.;phidget22.jar PhidgetRemote.java

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

Derlemeden sonra, oluşturulan sınıf dosyalarını PhidgetSBC4'e kopyalayın ve önyüklemede çalışacak şekilde yapılandırın.

Adım 13: Sonuç

Uzaktan kumandayı kız arkadaşımın büyükbabasına verdiğimde ve ona nasıl kullanılacağını gösterdiğimde, ne kadar basit olduğuna şaşırdı. Eylemde görmek için videoyu izleyin!

Uzaktan Kumanda Yarışması 2017
Uzaktan Kumanda Yarışması 2017
Uzaktan Kumanda Yarışması 2017
Uzaktan Kumanda Yarışması 2017

2017 Uzaktan Kumanda Yarışmasında Üçüncülük Ödülü

Önerilen: