İçindekiler:
- Adım 1: Malzemeler
- 2. Adım: Planlama
- 3. Adım: 3D Baskı
- Adım 4: Montaj - LED'leri çıkarın
- Adım 5: Montaj - Delik Başlıkları Ekleme
- Adım 6: Montaj - LED'leri takın
- Adım 7: Montaj - PhidgetIR'i takın
- Adım 8: Montaj - Düğme Ekleme
- 9. Adım: Montaj - Her Şeyi Bir Araya Getirmek
- Adım 10: Yazılım - Kod
- Adım 11: Yazılım - CIR Komutları
- Adım 12: Programı Çalıştırma
- Adım 13: Sonuç
Video: Dedeniz İçin Teknoloji: 13 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
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ı
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
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
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
LED'leri muhafazanın yan tarafına yapıştırın.
Adım 7: Montaj - PhidgetIR'i takın
PhidgetIR'yi kasaya takın ve LED'leri bağlayın.
Adım 8: 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
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ı
İş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!
2017 Uzaktan Kumanda Yarışmasında Üçüncülük Ödülü
Önerilen:
Parkinson Hastalığı Giyilebilir Teknoloji: 4 Adım
Parkinson Hastalığı Giyilebilir Teknoloji: Dünya çapında 10 milyondan fazla insan Parkinson hastalığı (PD) ile yaşıyor. Sertliğe neden olan ve hastanın hareketini etkileyen ilerleyici bir sinir sistemi bozukluğu. Daha basit bir ifadeyle, birçok insan Parkinson hastalığından muzdaripti ama
MakeyMakey W/ Scratch Kullanarak Konuşma Güçlükleri İçin Yardımcı Teknoloji: 4 Adım
Konuşma Zorlukları için Yardımcı Teknoloji MakeyMakey W/ Scratch Kullanarak: Yardımcı teknoloji cihazım, konuşma engelleri ve/veya sınırlı konuşma konusunda yardımcı olmak için kullanılır. Bu. öğrenme sürecine yardımcı olmak için tasarlanmıştır
Çocuklar için Giyilebilir Teknoloji: Kahraman Kol Bandı: 4 Adım
Çocuklar için Giyilebilir Teknoloji: Kahraman Kol Bandı: Bu talimat, giyildiğinde yanan bir 'kahraman kol bandının' nasıl yapıldığını ele alacaktır. İletken kumaş bant, iletken iplik ve dikilebilir LED'lerin kullanıldığı bu etkinlik, okul öğrencilerinin devrelerin ve giyilebilir teknolojinin temellerini öğrenmeleri için harika bir aktivitedir.
Yüksek Teknoloji Ekipmanları Olmadan Yaban Hayatı Fotoğrafını Kapatın. Güncelleme.: 7 Adım (Resimlerle)
Yüksek Teknoloji Ekipmanları Olmadan Yaban Hayatı Fotoğrafını Kapatın. Güncelleme.: 60'larda & 70'lerde ben küçük bir çocukken, bugünlerde çoğu çocuğa farklı bir yaşam tarzı sürdük, dört yaşındayken Loughton Essex'teki işlek bir cadde olan Broadway'in yukarısındaki iki katlı dairemizden Hertfordshire'da yeni bir kasaba olan Stevenage'e taşındık
Giyilebilir Özel Işık Paneli (Teknoloji Keşif Kursu - TfCD - Tu Delft): 12 Adım (Resimlerle)
Giyilebilir Özel Işık Paneli (Teknoloji Keşif Kursu - TfCD - Tu Delft): Bu Eğitilebilir Kitapta, giyebileceğiniz kendi ışıklı görüntünüzü nasıl yapacağınızı öğreneceksiniz! Bu, vinil çıkartma ile kaplanmış EL teknolojisi kullanılarak ve kolunuzun etrafına takabilmeniz için bantlar takılarak yapılır. Bu sayfanın parçalarını da değiştirebilirsiniz