Isi kandungan:

Alat Kawalan Jauh IR Komputer: 4 Langkah
Alat Kawalan Jauh IR Komputer: 4 Langkah

Video: Alat Kawalan Jauh IR Komputer: 4 Langkah

Video: Alat Kawalan Jauh IR Komputer: 4 Langkah
Video: Sensor Ultrasonic HCSR04 Pengukur Jarak - Tutorial Arduino Bahasa Indonesia 2024, November
Anonim
Alat Kawalan Jauh IR Komputer
Alat Kawalan Jauh IR Komputer

Di samping banyak tujuan lain, saya menggunakan PC saya sebagai pusat multimedia. Ada kalanya saya bersantai di sofa mendengar muzik atau menonton filem atau TV dan tidak merasa seperti bangun untuk menyesuaikan kelantangan atau menukar saluran TV setiap kali iklan bodoh muncul atau saya tertidur dan berharap kesunyian. Oleh itu, saya telah memutuskan untuk membuat kawalan jauh PC saya dengan alat kawalan jauh IR standard, jadi saya boleh menekan butang itu dengan serta-merta dan bukannya dengan cepat mengambil tetikus atau kekunci bisu pada papan kekunci.

Projek ini terdiri daripada beberapa bahagian:

  1. Alat kawalan jauh
  2. Perisian PC
  3. Modul penerima IR

Langkah 1: Alat Kawalan Jauh

Alat kawalan jauh
Alat kawalan jauh

Item pertama - alat kawalan jauh - sepele untuk diselesaikan. Cukup gunakan kawalan IR yang anda suka. Saya menggunakan yang dijual sebagai set bersama dengan penerima IR - lihat gambar. Satu-satunya sebab saya memutuskan untuk jenis ini adalah kerana saya sudah memilikinya di rumah.

Langkah 2: Perisian

Saya telah membuat program untuk OS GNU / Linux yang berjalan di terminal. Kod sumber percuma dimuat turun / digunakan / dikongsi / diubah suai. Untuk menyusun kod hanya mengeluarkan perintah seperti gcc -o remotePC remotePC.c di terminal. Untuk menjalankan jenis program./remotePC.

Maklumat berikut dalam langkah ini ditujukan kepada mereka yang berminat bagaimana semuanya berfungsi.

Penerangan program

Program ini terlebih dahulu memeriksa sama ada fail / dev / ttyACM0 atau ttyACM1 ada. Sekiranya demikian, ID kumpulan fail diperiksa untuk berbeza dari sifar. Ini bermaksud bahawa port bersiri dapat dibaca dan ditulis oleh pengguna biasa. Dua bait dengan nilai 0xAA 0x55 kemudian ditulis ke port untuk memberi isyarat bahawa program siap menerima data. Data yang masuk dibandingkan dengan nilai yang disimpan. Sekiranya perlawanan dijumpai tindakan yang telah ditentukan akan dijalankan.

Kawalan kelantangan

Program ini dapat menghidupkan / mematikan suara, meningkatkan / menurunkan tahap kelantangan pada tingkat sistem. Ini dicapai dengan penggunaan program pactl. Perintah kemudian kelihatan seperti ini:

pactl set-sink-mute 0 togol

pactl set-sink-volume 0 + 10%

pactl set-sink-volume 0 -10%

Sekiranya perlu, pasangkan pakej yang diminta.

Kawalan Pemain Media VLC

Program ini juga dapat memulakan / menjeda audio / video dan menukar trek ke yang sebelumnya / seterusnya dalam senarai main Pemain Media VLC. Bas Desktop digunakan dalam kes 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. Seterusnya

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

/ org / mpris / MediaPlayer2 org.mpris. MediaPlayer2. Player. Terdahulu

Langkah 3: Modul Penerima IR

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

Bahagian ketiga projek ini adalah yang paling rumit namun masih cukup sederhana. Ideanya adalah bahawa penerima IR akan mengeluarkan isyarat ke MCU yang akan mengubahnya menjadi nombor unik. Nombor ini kemudian akan dihantar ke PC melalui USB.

Modul ini dimaksudkan untuk dipasang di dalam casing PC dan disambungkan ke slot USB pada papan induk dengan kabel. Sekiranya anda lebih suka sambungan luaran ke USB, anda perlu membuat sedikit penyesuaian.

MCU

Saya telah membina modul pada mikrokontroler PIC16F1829. Pilihan MCU tidak kritikal, anda boleh menggunakan MCU lain sekiranya anda dapat menyesuaikan kod sumber. Saya telah memilih PIC ini kerana dua sebab. Pertama saya menyediakannya dan kedua pinnya rosak sebahagiannya oleh penggunaan intensif dalam pelbagai projek pengujian. Oleh itu, saya mahu menggunakannya dalam projek tetap sebelum ia tidak dapat digunakan sepenuhnya.:-)

Penerima IR

Bahagian kedua modul berdasarkan adalah penerima IR VS1838B - yang disebut dalam langkah pertama.

Penukar UART / USB

Bahagian ketiga adalah MCP2221 iaitu penukar UART / I2C / USB.

Tugasnya adalah untuk menggabungkan 3 bahagian ini untuk membina modul yang akan dapat menerima isyarat dari alat kawalan jauh IR dan menyerahkannya ke PC.

Pendawaian

Pada gambar pertama terdapat litar ujian di papan roti. Pada yang kedua terdapat skema pendawaian.

Senarai bahagian

1 pc PIC16F1829 (atau MCU lain)

1 pc VS1838B (atau penerima IR lain)

1 pc MCP2221 (atau penukar UART / USB lain)

Header 4-pin 2 pcs

Header 6-pin 1 pc

Perintang 1 pc 100R

2 pcs perintang 10K

Perintang 2 pcs 330R

Kapasitor 1 pc 470 nF

Kapasitor elektrolitik 2 pcs 4.7 uF

Suis 1 pc (pilihan)

Pemasangan PCB

Gabungkan modul dengan penggunaan skema. Anda boleh menggunakan papan universal atau membuat PCB khusus. Sekiranya yang terakhir berlaku, saya telah memberikan fail KiCad dalam arkib di bawah.

Firmware

Kod sumber untuk PIC ditulis dengan penggunaan MPLAB X IDE dan penyusun XC8 tersedia untuk muat turun di bawah.

Nota kod sumber

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

Setelah semua tetapan selesai, LED merah menyala dan MCU sedang menunggu data 0x55AA. Selepas itu LED bertukar hijau dan MCU mula mengesan isyarat dari penerima IR dengan penggunaan gangguan. Ia mengukur dan mencatat selang waktu isyarat berada di tahap Tinggi dan Rendah. Masa-masa ini kemudian diubah menjadi nombor 32-bit yang dihantar ke PC.

Hubungan antara masa dan nombor akhir diberikan oleh protokol NEC.

Langkah 4: Cara Menggunakan Peranti

Cara Menggunakan Peranti
Cara Menggunakan Peranti
Cara Menggunakan Peranti
Cara Menggunakan Peranti
Cara Menggunakan Peranti
Cara Menggunakan Peranti

Firmware

Muat naik firmware ke PIC. Saya menggunakan programmer PICkit 3.

Perkakasan

Pasang modul penerima IR seperti yang dilihat dalam gambar:

  1. Sambungkan header USB sama ada ke slot USB dalaman pada motherboard di dalam casing PC dengan kabel 4-wayar yang sesuai atau secara luaran ke slot USB dengan kabel USB standard. Dalam kes kedua, anda harus menolong diri sendiri dalam beberapa cara, mis. seperti yang dilihat dalam gambar ke-3 untuk mendapatkan inspirasi.
  2. Pasang kabel kuasa 5 V membentuk sumber kuasa di dalam casing PC ke header 4-pin. Atau aktifkan modul dengan cara lain sekiranya penggunaan luaran.

Cari keterangan pin soket USB motherboard. Saya tidak pasti sama ada pendawaian mengikut piawai, jadi lebih baik memastikannya. Dalam kes saya terdapat dua baris pin dengan 5 pin di baris atas dan 4 pin di bahagian bawah. Dari kiri ke kanan pin adalah + 5 V, D-, D +, Gnd. Pin ke-5 di baris pertama tidak bersambung. Saya memasang kabel seperti yang dilihat pada gambar kedua.

Perisian

Jalankan program di terminal. Sekiranya semuanya berjalan dengan betul, mesej terakhir program adalah "menunggu data …". Sekarang apabila anda menekan butang pada alat kawalan jauh, kod yang diterima akan muncul di terminal. Dengan cara ini anda akan mengetahui butang mana yang mengeluarkan kod mana.

Sekarang beberapa perkara pengaturcaraan sedang menanti anda tetapi jangan risau. Hanya beberapa perkara yang perlu diubah dalam kod sumber program supaya program bertindak balas pada alat kawalan jauh anda. Buka fail remotePC.c di editor teks atau di beberapa IDE jika anda mahu dan ganti kod saya dengan kod anda. Cukup tekan butang yang ingin anda gunakan untuk setiap tindakan satu persatu. Cukup salin kod yang muncul di terminal dan tampalkannya ke kod sumber ke tempat dengan tindakan yang sesuai.

Apabila anda selesai, hentikan program dan kumpulkan semula kodnya dengan perintah gcc -o remotePC remotePC.c. Jalankan program sekali lagi dan ia akan bertindak balas terhadap alat kawalan jauh anda mulai sekarang.

Saya menggunakan cara ini dengan tindakan keras dalam program kerana saya merasa tidak ada gunanya membuang masa saya dengan pengembangan lebih lanjut projek ke negeri apabila mungkin untuk menambah / menukar kod / tindakan di persekitaran grafik yang mesra pengguna misalnya. Tetapi jika anda mahu melakukan ini atau lebih banyak lagi, anda boleh.

Disyorkan: