Daftar Isi:

Pengendali Jarak Jauh IR Komputer: 4 Langkah
Pengendali Jarak Jauh IR Komputer: 4 Langkah

Video: Pengendali Jarak Jauh IR Komputer: 4 Langkah

Video: Pengendali Jarak Jauh IR Komputer: 4 Langkah
Video: MANTAP! Cara Mengendalikan Komputer Atau Laptop Jarak Jauh Dengan HP 2024, November
Anonim
Pengendali Jarak Jauh IR Komputer
Pengendali Jarak Jauh IR Komputer

Selain banyak tujuan lain saya menggunakan PC saya sebagai pusat multimedia. Ada kalanya saya bersantai di sofa mendengarkan musik atau menonton film atau TV dan tidak ingin bangun untuk mengatur volume atau mengganti saluran TV setiap kali iklan bodoh muncul atau saya tertidur dan berharap untuk itu. kesunyian. Jadi saya telah memutuskan untuk membuat PC saya dikendalikan dari jarak jauh dengan kendali jarak jauh IR standar sehingga saya bisa langsung menekan tombol alih-alih menyambar mouse atau tombol mute pada keyboard.

Proyek ini terdiri dari beberapa bagian:

  1. Pengendali jarak jauh
  2. perangkat lunak komputer
  3. modul penerima IR

Langkah 1: Pengendali Jarak Jauh

Pengendali Jarak Jauh
Pengendali Jarak Jauh

Item pertama - remote control - sepele untuk diselesaikan. Cukup gunakan kontrol IR apa pun yang Anda suka. Saya menggunakan yang dijual sebagai satu set bersama dengan penerima IR - lihat gambar. Satu-satunya alasan saya memutuskan untuk jenis ini adalah karena saya sudah memilikinya di rumah.

Langkah 2: Perangkat Lunak

Saya telah membuat program untuk GNU/Linux OS yang berjalan di terminal. Kode sumbernya gratis untuk diunduh/digunakan/dibagikan/dimodifikasi. Untuk mengkompilasi kode cukup jalankan perintah seperti gcc -o remotePC remotePC.c di terminal. Untuk menjalankan program ketik./remotePC.

Informasi berikut dalam langkah ini ditujukan kepada mereka yang tertarik dengan cara kerjanya.

Deskripsi program

Program pertama-tama memeriksa apakah file /dev/ttyACM0 atau ttyACM1 ada. Jika demikian, ID grup file dicentang agar berbeda dari nol. Ini berarti bahwa port serial dapat dibaca dan ditulis oleh pengguna biasa. Dua byte dengan nilai 0xAA 0x55 kemudian ditulis ke port untuk memberi sinyal bahwa program siap menerima data. Data yang masuk dibandingkan dengan nilai yang disimpan. Jika kecocokan ditemukan, tindakan yang telah ditentukan akan dieksekusi.

Kontrol volume

Program ini dapat menghidupkan/mematikan suara, menaikkan/menurunkan level volume pada level sistem. Ini dicapai dengan menggunakan program pactl. Perintah kemudian terlihat seperti ini:

pactl set-sink-mute 0 toggle

pactl set-sink-volume 0 +10%

pactl set-sink-volume 0 -10%

Jika perlu instal paket yang diminta.

Kontrol VLC Media Player

Program juga dapat memulai/menjeda audio/video dan mengubah trek ke sebelumnya/berikutnya dalam daftar putar VLC Media Player. Bus Desktop digunakan dalam kasus ini. Perintah:

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. Next

dbus-send --type=method_call --dest=org.mpris. MediaPlayer2.vlc

/org/mpris/MediaPlayer2 org.mpris. MediaPlayer2. Player. Previous

Langkah 3: Modul Penerima IR

Modul Penerima IR
Modul Penerima IR
Modul Penerima IR
Modul Penerima IR
Modul Penerima IR
Modul Penerima IR

Bagian ketiga dari proyek ini adalah yang paling kompleks namun masih cukup sederhana. Idenya adalah penerima IR akan mengeluarkan sinyal ke MCU yang akan mengubahnya menjadi nomor unik. Nomor ini kemudian akan dikirimkan ke PC melalui USB.

Modul ini dimaksudkan untuk dipasang di dalam casing PC dan dihubungkan ke slot USB pada motherboard dengan kabel. Jika Anda lebih suka koneksi eksternal ke USB, Anda harus melakukan sedikit penyesuaian.

MCU

Saya telah membangun modul pada mikrokontroler PIC16F1829. Pilihan MCU tidak kritis, Anda dapat menggunakan MCU lain jika Anda dapat menyesuaikan kode sumber. Saya telah memilih PIC ini karena dua alasan. Pertama saya memilikinya dan kedua pinnya sebagian rusak oleh penggunaan intensif dalam proyek pengujian yang berbeda. Jadi saya ingin menggunakannya dalam proyek permanen sebelum benar-benar tidak dapat digunakan.:-)

penerima inframerah

Bagian kedua yang menjadi dasar modul ini adalah penerima IR VS1838B - yang disebutkan di langkah pertama.

Konverter UART/USB

Bagian ketiga adalah MCP2221 yang merupakan konverter UART/I2C/USB.

Tugasnya adalah menggabungkan 3 bagian ini untuk membangun modul yang dapat menerima sinyal dari remote control IR dan menyerahkannya ke PC.

Pengkabelan

Pada gambar pertama ada rangkaian pengujian pada papan tempat memotong roti. Yang kedua ada skema pengkabelan.

Daftar bagian

1 pc PIC16F1829 (atau MCU lainnya)

1 pc VS1838B (atau penerima IR lainnya)

1 pc MCP2221 (atau konverter UART/USB lainnya)

2 pcs 4-pin header

1 pc 6-pin header

1 buah resistor 100R

2 buah resistor 10K

2 buah resistor 330R

1 pc kapasitor 470 nF

2 pcs kapasitor elektrolit 4.7 uF

1 buah sakelar (opsional)

perakitan PCB

Kumpulkan modul dengan menggunakan skema. Anda dapat menggunakan papan universal atau membuat PCB khusus. Jika yang terakhir ini, saya telah menyediakan file KiCad dalam arsip di bawah ini.

Firmwarenya

Kode sumber untuk PIC yang ditulis dengan menggunakan MPLAB X IDE dan compiler XC8 tersedia untuk diunduh di bawah ini.

Catatan kode sumber

Bagi mereka yang ingin tahu apa sebenarnya program ini lakukan adalah baris berikut.

Setelah semua pengaturan selesai, LED merah menyala dan MCU menunggu data 0x55AA. Setelah itu LED berubah menjadi hijau dan MCU mulai mendeteksi sinyal dari penerima IR dengan menggunakan interupsi. Ini mengukur dan mencatat interval waktu sinyal di level Tinggi dan Rendah. Kali ini kemudian diubah menjadi nomor 32-bit yang dikirim ke PC.

Hubungan antara waktu dan angka akhir diberikan oleh protokol NEC.

Langkah 4: Cara Menggunakan Perangkat

Cara Menggunakan Perangkat
Cara Menggunakan Perangkat
Cara Menggunakan Perangkat
Cara Menggunakan Perangkat
Cara Menggunakan Perangkat
Cara Menggunakan Perangkat

Firmware

Unggah firmware ke PIC. Saya menggunakan pemrogram PICkit 3.

Perangkat keras

Pasang modul penerima IR seperti terlihat pada gambar:

  1. Hubungkan header USB baik ke slot USB internal pada motherboard di dalam casing PC dengan kabel 4-kawat yang sesuai atau secara eksternal ke slot USB dengan kabel USB standar. Dalam kasus kedua, Anda harus membantu diri sendiri dalam beberapa cara, mis. seperti yang terlihat pada gambar ke-3 untuk inspirasi.
  2. Pasang kabel daya 5 V dari sumber daya di dalam casing PC ke header 4-pin. Atau nyalakan modul dengan cara lain untuk penggunaan eksternal.

Cari deskripsi pin soket USB motherboard. Saya tidak yakin apakah kabel mengikuti semacam standar sehingga lebih baik untuk memastikan. Dalam kasus saya ada dua baris pin dengan 5 pin di baris atas dan 4 pin di bawah. Dari kiri ke kanan pinnya adalah + 5 V, D-, D+, Gnd. Pin ke-5 di baris pertama tidak terhubung. Saya memasang kabel seperti yang terlihat pada gambar kedua.

Perangkat lunak

Jalankan program di terminal. Jika semuanya berjalan dengan benar, pesan terakhir dari program ini adalah "menunggu data…". Sekarang ketika Anda menekan tombol pada remote control, kode yang diterima akan muncul di terminal. Dengan cara ini Anda akan tahu tombol mana yang mengeluarkan kode mana.

Sekarang beberapa hal pemrograman menunggu Anda tetapi jangan khawatir. Hanya beberapa hal yang harus diubah dalam kode sumber program sehingga program merespons kendali jarak jauh Anda. Buka file remotePC.c di editor teks atau di beberapa IDE jika Anda suka dan ganti kode saya dengan kode Anda. Cukup tekan tombol yang ingin Anda gunakan untuk setiap tindakan satu per satu. Cukup salin kode yang muncul di terminal dan tempel ke kode sumber ke tempat dengan tindakan yang sesuai.

Ketika Anda selesai mengakhiri program dan mengkompilasi ulang kode dengan perintah gcc -o remotePC remotePC.c. Jalankan program lagi dan mulai sekarang akan merespons remote control Anda.

Saya menggunakan cara ini dengan tindakan hardcoded dalam program karena saya merasa tidak ada artinya membuang waktu saya dengan pengembangan proyek lebih lanjut ke keadaan ketika mungkin untuk menambah/mengubah kode/tindakan di lingkungan grafis yang ramah pengguna misalnya. Tetapi jika Anda ingin melakukan ini atau bahkan lebih, Anda bisa.

Direkomendasikan: