İçindekiler:
Video: Bilgisayar IR Uzaktan Kumanda: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Diğer birçok amacın yanı sıra bilgisayarımı multimedya merkezi olarak kullanıyorum. Kanepede dinlendiğim, müzik dinleyerek, film ya da televizyon izlediğim ve aptal reklamlar her göründüğünde ya da her seferinde ses seviyesini ayarlamak ya da TV kanalını değiştirmek istemediğim zamanlar oluyor ya da uyuya kalıyorum. sessizlik. Bu yüzden, bilgisayarımı standart bir IR uzaktan kumanda ile kontrol etmeye karar verdim, böylece öfkeyle fareyi veya klavyedeki sessiz tuşunu almak yerine anında düğmeye basabildim.
Proje birkaç bölümden oluşmaktadır:
- Uzaktan kumanda
- bilgisayar yazılımı
- IR alıcı modülü
Adım 1: Uzaktan Kumanda
İlk öğe - uzaktan kumanda - yapılması önemsizdir. İstediğiniz herhangi bir IR kontrolünü kullanın. IR alıcısı ile birlikte set olarak satılık olanı kullandım - resme bakın. Bu türe karar vermemin tek nedeni, zaten evde olmasıydı.
2. Adım: Yazılım
Bir terminalde çalışan GNU/Linux OS için programı oluşturdum. Kaynak kodu indirmek/kullanmak/paylaşmak/değiştirmek ücretsizdir. Kodu derlemek için terminalde gcc -o remotePC remotePC.c gibi bir komut vermeniz yeterlidir. Program türünü çalıştırmak için./remotePC.
Bu adımda aşağıdaki bilgiler, işlerin nasıl yürüdüğüyle ilgilenenlere yöneliktir.
program açıklaması
Program önce /dev/ttyACM0 veya ttyACM1 dosyasının var olup olmadığını kontrol eder. Bu durumda, dosyanın grup kimliğinin sıfırdan farklı olup olmadığı kontrol edilir. Bu, seri bağlantı noktasının ortak kullanıcı tarafından okunabileceği ve yazılabileceği anlamına gelir. 0xAA 0x55 değerlerine sahip iki bayt daha sonra programın verileri almaya hazır olduğunu belirtmek için bağlantı noktasına yazılır. Gelen veriler saklanan değerlerle karşılaştırılır. Eşleşme bulunursa, önceden tanımlanmış eylem yürütülür.
ses kontrolü
Program sistem seviyesinde sesi açıp kapatabilir, ses seviyesini arttırabilir/azaltabilir. Bu, pactl programı kullanılarak elde edilir. Komutlar daha sonra şöyle görünür:
pactl set-sink-sessiz 0 geçişi
pactl set-sink-volume 0 +%10
pactl set-sink-volume 0 -10%
Gerekirse istenen paketleri kurun.
VLC Medya Oynatıcı kontrolü
Program ayrıca sesi/videoyu başlatabilir/duraklatabilir ve parçayı VLC Media Player'ın çalma listesinde önceki/sonraki olarak değiştirebilir. Bu durumda Desktop Bus kullanılır. Komutlar:
dbus-send --type=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. Sonraki
dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc
/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Önceki
Adım 3: IR Alıcı Modülü
Projenin üçüncü kısmı en karmaşık ama yine de oldukça basit. Buradaki fikir, IR alıcısının, sinyali benzersiz sayıya dönüştürecek olan MCU'ya çıkış vermesidir. Bu numara daha sonra USB üzerinden PC'ye iletilecektir.
Modül, PC kasasının içine monte edilmek ve kablo ile anakart üzerindeki USB yuvasına bağlanmak için tasarlanmıştır. USB'ye harici bağlantıyı tercih etmeniz durumunda, küçük ayarlamalar yapmanız gerekecektir.
MCU
Modülü PIC16F1829 mikrodenetleyici üzerine kurdum. MCU seçimi kritik değildir, kaynak kodunu ayarlayabiliyorsanız başka herhangi bir MCU kullanabilirsiniz. Bu PIC'i iki nedenden dolayı seçtim. İlk önce elimde bulundurdum ve ikincisi, farklı test projelerinde yoğun kullanım nedeniyle pimleri kısmen hasar gördü. Bu yüzden tamamen kullanılamaz hale gelmeden kalıcı projede kullanmak istedim.:-)
kızılötesi alıcı
Modülün dayandığı ikinci kısım, 1. adımda bahsedilen IR alıcısı VS1838B'dir.
UART/USB dönüştürücü
Üçüncü kısım, UART/I2C/USB dönüştürücüsü olan MCP2221'dir.
Görev, IR uzaktan kumandadan sinyalleri alabilecek ve PC'ye teslim edebilecek modülü oluşturmak için bu 3 parçayı birleştirmektir.
kablolama
İlk resimde breadboard üzerinde test devresi bulunmaktadır. İkincisinde kablolama şeması var.
Parça listesi
1 adet PIC16F1829 (veya başka bir MCU)
1 adet VS1838B (veya başka bir IR alıcısı)
1 adet MCP2221 (veya başka bir UART/USB dönüştürücü)
2 adet 4-pin başlık
1 adet 6 pinli başlık
1 adet direnç 100R
2 adet direnç 10K
2 adet direnç 330R
1 adet kapasitör 470 nF
2 adet elektrolitik kondansatör 4.7 uF
1 adet anahtar (isteğe bağlı)
PCB Montajı
Modülü şematik kullanarak bir araya getirin. Evrensel kartı kullanabilir veya özel PCB'yi oluşturabilirsiniz. Eğer durum buysa, aşağıdaki arşivde KiCad dosyalarını sağladım.
bellenim
MPLAB X IDE ve XC8 derleyicisi kullanılarak yazılan PIC için kaynak kodu aşağıdan indirilebilir.
Kaynak kodu notları
Programın tam olarak ne yaptığını bilmek isteyenler için aşağıdaki satırlar.
Tüm ayarlar yapıldıktan sonra kırmızı LED yanar ve MCU 0x55AA verilerini beklemektedir. Bundan sonra LED yeşile döner ve MCU, kesintileri kullanarak IR alıcısından gelen sinyali algılamaya başlar. Sinyalin Yüksek ve Düşük seviyelerde olduğu zaman aralıklarını ölçer ve kaydeder. Bu zamanlar daha sonra PC'ye gönderilen 32 bitlik sayıya dönüştürülür.
Zamanlar ve son sayı arasındaki ilişki NEC protokolü tarafından verilir.
Adım 4: Cihaz Nasıl Kullanılır
bellenim
Firmware'i PIC'e yükleyin. PICkit 3 programlayıcı kullanıyorum.
Donanım
IR alıcı modülünü resimlerde görüldüğü gibi kurun:
- USB başlığını uygun 4 telli kablo ile PC kasasının içindeki ana kart üzerindeki dahili USB yuvasına veya standart USB kablosuyla harici olarak USB yuvasına bağlayın. İkinci durumda, kendinize bir şekilde yardım etmelisiniz, örn. bir ilham için 3. resimde görüldüğü gibi.
- Bilgisayar kasasının içindeki güç kaynağından gelen 5 V güç kablosunu 4 pimli başlığa takın. Veya harici kullanım durumunda modüle başka bir şekilde güç verin.
Anakartın USB soket pimleri açıklamasına bakın. Kablolamanın bir tür standarda uyup uymadığından emin değilim, bu yüzden emin olmak daha iyi. Benim durumumda, üst sırada 5 pimli ve alt sırada 4 pimli iki pim sırası var. Soldan sağa pinler + 5 V, D-, D+, Gnd'dir. İlk sıradaki 5. pin bağlı değil. İkinci resimde görüldüğü gibi kabloyu taktım.
Yazılım
Programı terminalde çalıştırın. Her şey yolunda giderse, programın son mesajı "veri bekleniyor…" olur. Artık uzaktan kumandadaki düğmeye bastığınızda, alınan kod terminalde görünecektir. Bu şekilde hangi düğmenin hangi kodu verdiğini bileceksiniz.
Şimdi bazı programlama işleri sizi bekliyor ama merak etmeyin. Programın uzaktan kumandanıza yanıt vermesi için programın kaynak kodunda yalnızca birkaç şeyin değiştirilmesi gerekir. RemotePC.c dosyasını metin düzenleyicide veya isterseniz bazı IDE'de açın ve kodlarımı sizinkilerle değiştirin. Her eylem için kullanmayı düşündüğünüz düğmelere tek tek basmanız yeterlidir. Sadece terminalde görünen kodları kopyalayın ve kaynak koduna karşılık gelen eylemin olduğu yere yapıştırın.
Bitirdiğinizde programı sonlandırın ve kodu gcc -o remotePC remotePC.c komutuyla yeniden derleyin. Programı tekrar çalıştırın, bundan sonra uzaktan kumandanıza cevap verecektir.
Örneğin, kullanıcı dostu grafik ortamında kodlar/eylemler eklemek/değiştirmek mümkün olduğunda, projenin daha da geliştirilmesi ile zamanımı boşa harcamayı anlamsız bulduğum için programdaki sabit kodlanmış eylemlerle bu yolu kullanıyorum. Ama bunu ya da daha fazlasını yapmak isterseniz yapabilirsiniz.
Önerilen:
Ayak Pedalı Deklanşör Uzaktan Kumanda + Tetik: 6 Adım (Resimlerle)
Ayak Pedalı Deklanşör Uzaktan Kumandası + Tetik: Bu pedallı uzaktan kumanda, durma animatörleri, fotoğraf arşivcileri, blog yazarları ve kameralarının deklanşör düğmesine her zaman ulaşamayan veya bir kamera takılıyken bir masa üstünde hızlı bir şekilde çalışması gereken profesyoneller için mükemmeldir. yüksek gider. Aralık 2020 güncellemesi:E
Arduino Tarayıcı Tabanlı Uzaktan Kumanda (linux): 9 Adım (Resimli)
Arduino Tarayıcı Tabanlı Uzaktan Kumanda (linux): Çocuklarımız var. Ben onları çok seviyorum ama çocuk kanallarını açtıklarında uydu ve TV için uzaktan kumandayı saklıyorlar. Bunun birkaç yıl boyunca her gün gerçekleşmesinden sonra ve sevgili eşimin bana bir
Dragonboard 410c Usando IDE Eclipse Para Bir Dragonboard ile Desenvolvendo Uygulamaları Uzaktan Kumanda: 17 Adım
Desenvolvendo Uygulamaları Remotamente Para a Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é HostPC (Bilgisayar / Dizüstü Bilgisayar) için ortam yapılandırması için gerekli olan en uygun koşullar, HostPC (Bilgisayar / Defter), Alvo (Sürükle
IRduino: Arduino Uzaktan Kumanda - Kayıp Bir Uzaktan Kumandayı Taklit Etme: 6 Adım
IRduino: Arduino Uzaktan Kumanda - Kayıp Bir Uzaktan Kumandayı Taklit Edin: TV veya DVD oynatıcınızın uzaktan kumandasını kaybettiyseniz, cihazın üzerindeki düğmeleri yürümek, bulmak ve kullanmak zorunda olmanın ne kadar sinir bozucu olduğunu bilirsiniz. Bazen bu düğmeler, uzaktan kumandayla aynı işlevi bile sunmaz.
Dört Kanallı RC Oyuncak Uzaktan Kumandaya Dönüştürülen Sıradan Uzaktan Kumanda Kiti: 4 Adım
Dört Kanallı RC Oyuncak Uzaktan Kumandaya Dönüştürülen Sıradan Uzaktan Kumanda Kiti: 如何将通用遥控器套件转换为玩具模型中使用的四通道遥控器。遥控器套件非常便宜。它采用2262和2272芯片和433个模块构建。改造方法非常简单。只需准备一些瓦楞纸板,然后按照视频教程完成这个电子项目并为您服务。玩具车船提供远程无线控制。