Arduino: remote control dan penerima inframerah

Ada banyak artikel di Internet tentang cara membuat remote control TV sendiri menggunakan Arduino, tetapi saya memerlukan remote control universal untuk mengontrol TV dan pemutar media saya. Keuntungan utama saya kendali jarak jauh universal Soalnya tombol-tombol di aplikasi hp android itu dual fungsi, tapi lihat videonya.



Remote control sangat nyaman karena tombol yang hampir sama di layar digunakan untuk mengontrol TV dan pemutar. Salah satu perbedaannya adalah " AV"dalam mode kontrol TV berubah menjadi tombol" " (berhenti) saat beralih ke mode kontrol pemutar. Gambar menunjukkan dua mode, di sebelah kiri adalah mode kontrol TV, di sebelah kanan adalah mode kontrol pemutar.

Nah, sekarang saya akan bercerita sedikit tentang cara membuat remote control tersebut. Untuk perangkatnya saya menggunakan remote control untuk ERGO TV dan remote control untuk media player DUNE HD TV101W.

Untuk menerima data dari remote control, saya menggunakan sensor infra merah TSOP1138 (analog dengan TSOP4838) pada frekuensi operasi 38 kHz dan menghubungkannya ke papan Arduino sesuai skema:

Sketsa ini tidak diperlukan untuk menentukan pengkodean transmisi data dan membaca kode tombol remote control.

Pada sketsa di baris int RECV_PIN = 11; tunjukkan pin kami nomor 4

Setelah mengunggah sketsa, buka "port monitor" dan, dengan menekan tombol remote control, lihat data yang diterima.

Gambar menunjukkan contoh pemindaian tombol power dari remote control TV dan remote control player. Sekarang kita membuat tabel untuk kode tombol.

Saya mendapatkannya seperti pada foto di atas. Di bawah tulisan itu televisi Kode tombol remote control TV; di bawah prasasti Pemain- kode dari remote control pemutar media.

Sekarang kita lepaskan penerima sinyal inframerah dari papan Arduino dan sambungkan ke sana Modul Bluetooth HC-05 dan cahaya inframerah dioda sesuai rangkaian di foto.

Setelah itu kita langsung lanjut ke sketsanya.

Sketsa

#termasuk aku mengirim aku tidak mengirim; ke dalam kamu = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // kode tombol untuk remote TV if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40 ); ) jika (x == 98) ( irsend.sendNEC(0x807FA857, 32); tunda(40); ) jika (x == 99) ( irsend.sendNEC(0x807F708F, 32); tunda(40); ) jika (x == 100) ( irsend.sendNEC(0x807FF00F, 32); tunda(40); ) jika (x == 101) ( irsend.sendNEC(0x807F30CF, 32); tunda(40); ) jika (x == 102) ( irsend.sendNEC(0x807FB04F, 32); delay(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); delay(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); penundaan(40); jika (x == 105) ( irsend.sendNEC(0x807F38C7); penundaan(40); , 32); ( irsend.sendNEC(0x807F48B7, 32); penundaan(40); ) jika (x == 108) ( irsend.sendNEC(0x807FB847, 32); penundaan(40); jika (x == 109) ( irsend.sendNEC( 0x807F6897, 32);


penundaan(40);

) ) if (y == 2) ( //kode tombol remote control pemutar media if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend.sendNEC(0xFDE01F, 32); penundaan(40); jika (x == 99) ( irsend.sendNEC(0xFD18E7, 32); penundaan(40); ) jika (x == 100) ( irsend.sendNEC( 0xFDE817, 32); penundaan(40); ) jika (x == 101) ( irsend.sendNEC(0xFDA857, 32); penundaan(40); ) jika (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; tunda (40); ) jika (x == 103) ( irsend.sendNEC(0xFDA857, 32); tunda(40); ) jika (x == 104) ( irsend.sendNEC(0xFD6897, 32); tunda(40 ); ) jika (x == 105) ( irsend.sendNEC(0xFDE817, 32); tunda(40); ) jika (x == 106) ( irsend.sendNEC(0xFD18E7, 32); tunda(40); ) jika (x == 107) ( irsend.sendNEC(0xFD9867, 32); tunda(40); ) jika (x == 108) ( irsend.sendNEC(0xFD28D7, 32); tunda(40); ) jika (x == 109) ( irsend.sendNEC(0xFD20DF, 32); penundaan(40); ) ) ) )
Pada sketsa Anda perlu mengedit kode tombol, yaitu pada baris:

Jika (x == 97) ( irsend.sendNEC(0x807F08F7, 32); penundaan(40);
Ubah nilai 807F08F7 menjadi:

If (y == 1) ( //kode tombol untuk remote control TV if (x == 97) ( irsend.sendNEC(0x12345678, 32); delay(40); ) Dimana 12345678 adalah kode tombol anda. Setelah mengedit sketsa menggunakan kode tombol Anda, unggah sketsa tersebut ke

papan Arduino Pult di telepon.

Saat startup kita akan memiliki layar dengan warna merah ikon bluetooth di pojok kanan bawah, yang menandakan bahwa kita tidak terhubung ke perangkat kita.

Setelah itu, klik ikon ini. Kita akan melihat jendela dengan daftar semua yang tersedia perangkat bluetooth, tempat kami memilih perangkat untuk dihubungkan.

Sekarang kami kembali lagi layar beranda dan kita sudah bisa mengontrol TV:

Untuk beralih ke mode kontrol kita perlu menekan tombol berlabel "Pemain". Seperti yang saya katakan sebelumnya, tombol kita yang berlabel "AV" akan berubah menjadi tombol " ":

Untuk memutuskan sambungan dari perangkat kami, cukup tahan tombol "Daya" selama beberapa detik.

Nah, beberapa foto perangkat saya yang sudah jadi.

Ternyata hasilnya cukup baik. Saya menunggu komentar pada artikel tersebut.

Saat membuat perangkat untuk bekerja dengan kendali jarak jauh IR, alat yang dapat digunakan untuk merekam dan menganalisis sinyal IR sangat diperlukan. Idealnya, alat seperti itu bisa menjadi osiloskop digital atau penganalisa logika, namun tidak semua orang memiliki perangkat ini, dan membelinya secara khusus membutuhkan biaya yang mahal. Bagaimana ini bisa terjadi? Ada solusi yang sangat sederhana - kartu suara komputer! Kami akan merekam sinyal menggunakannya.

Selain kartu suara (yang saya harap ada di komputer Anda), kita memerlukan penerima sinyal IR. Akan lebih tepat untuk merakit rangkaian receiver lengkap dengan TSOP, tetapi kami akan melakukannya sesederhana mungkin - kami akan menggunakan LED IR paling biasa (yang sama dengan yang ada di remote control Anda) sebagai penerima IR. Anda tentu saja dapat mengambil fotodioda IR, tetapi LED IR lebih mudah didapat. LED IR harus dihubungkan langsung ke input mikrofon kartu suara. Untuk melakukan ini, Anda memerlukan steker 3,5 mm dan sepotong kabel berpelindung (saya memotong kabel dengan konektor dari mikrofon lama yang tidak berfungsi).

LED terhubung sebagai berikut:

Hasilnya, kami mendapatkan perangkat berikut:

Masukkan steker ke input mikrofon (itu warna merah jambu). Dalam pengaturan kartu suara, pilih mikrofon sebagai perangkat input, putar kontrol penguatan ke maksimum dan centang kotak keuntungan tambahan. Untuk memeriksanya, arahkan remote control ke penerima LED (Anda harus mendekatkannya ke remote control), tekan tombol - bunyi klik akan terdengar di speaker.

Jika, karena alasan apa pun, Anda tidak punya masukan mikrofon(misalnya, di laptop) - sambungkan receiver ke masukan garis kartu suara - semuanya akan bekerja sama, hanya amplitudo sinyal yang direkam akan menjadi jauh lebih kecil.


Sekarang kita membutuhkan program untuk merekam suara.
Program apa pun yang Anda miliki akan cocok untuk tujuan ini. Jika Anda tidak memiliki program favorit untuk bekerja dengan suara, saya sarankan program kecil dan gratis - Wavosaur (http://www.wavosaur.com/). Program ini bekerja tanpa instalasi dan berukuran kecil - persis seperti saya suka itu :).

Sebuah program untuk bekerja dengan suara.

Setelah memulai program, nyalakan indikator level (penggaris di sisi kanan jendela) dan periksa respons terhadap sinyal kendali jarak jauh. Secara default, semuanya akan berfungsi - penggaris akan keluar skala dari sinyal yang diterima (jika tidak ada reaksi, buka pengaturan Konfigurasi audio/Audio masuk). Selanjutnya, tekan ikon rekam, dekatkan remote control ke LED penerima, tekan tombol remote control dan tahan selama beberapa detik. Matikan rekaman - Selesai! Di jendela kita akan melihat scan sinyal IR yang diterima. Yang menarik adalah sinyal tersebut sudah terdeteksi - kita tidak akan melihat frekuensi pembawa, tetapi hanya sinyal yang berguna. Hal ini terjadi karena kapasitansi masukan mikrofon tidak sempat diisi ulang.

Sinyal yang diterima dapat diskalakan berdasarkan waktu, amplitudo dan, yang sangat nyaman, dengan menyorot periode tertentu, Anda dapat langsung melihat durasinya. Sinyal yang diterima dapat disimpan (sebaiknya dalam format wav - tidak akan ada distorsi) atau diekspor ke MP3, teks, file biner(hal yang berguna!).

Misalnya, sinyal dari remote control TV saya (format NEC):

Semua interval waktu terlihat dari gambar, Anda bahkan dapat menghitung alamat kendali jarak jauh dan kode perintah tombol - semuanya jelas dan dapat dimengerti.

P.S.
Permintaan besar! Jika Anda merakit receiver seperti itu, simpan paket kendali jarak jauh Anda dan kirimkan kepada saya melalui email (di tab "tentang proyek") - ini akan sangat membantu dalam meningkatkan algoritma receiver universal. Dalam nama file, tunjukkan dari mana remote control itu berasal dan pabrikannya (misalnya: tv-sony.wav).


Lebih lanjut tentang bekerja dengan kendali jarak jauh IR!
Saya mengusulkan opsi paling sederhana untuk "merasakan" sinyal dari remote control IR, tetapi ada banyak solusi yang dapat melakukan lebih banyak hal! Menerima sinyal IR, menganalisis, menyimpan, memutar ulang, memprogram kendali jarak jauh, mengontrol komputer Anda... Bagian ini akan berisi tautan ke solusi tersebut.

1. Editor DvzRc
Programnya akan jalan dulu Editor DvzRc, yang saya buang ponsel. Program ini dibuat oleh seseorang Dvz 2010(sayangnya tidak ada koordinatnya, mungkin ada yang tahu?).


- Sebuah program untuk menganalisis dan mengulangi sinyal IR.
Program ini memungkinkan Anda merekam dan memutar pesan IR menggunakan input mikrofon dan output audio. Ada alat untuk menganalisis pesan IR dan membuat database pesan kendali jarak jauh (ada basis kecil pada remote kontrol yang berbeda). Solusi yang menarik adalah dukungan untuk remote control Anda sendiri yang dibuat pada ATtiny2313.


Remote control memiliki 7 tombol yang dapat digunakan untuk mengatur perintah apa pun dari perintah yang dianalisis, dan program itu sendiri dapat merekam sinyal untuk tombol-tombol ini ke mikrokontroler (asalkan Anda mem-flash bootloader di sana untuk pertama kalinya).

Semuanya sederhana dan jelas - saya menyukainya!


2. Kontrol Licik.
http://slydiman.narod.ru/scr/index.htm
Ini bahkan bukan sebuah program - ini adalah seluruh sumber daya Internet yang didedikasikan untuk kendali jarak jauh IR. Berisi banyak informasi yang berguna, perangkat keras dan solusi perangkat lunak untuk semua kesempatan. Inilah yang penulis tulis tentang SlyControl:
- Ini program universal untuk mengontrol apa pun menggunakan komputer.

Ini bisa digunakan untuk apa:
— kontrol program apa pun dari remote control apa pun kendali jarak jauh(remote control), dari keyboard multimedia dengan tombol atau joystick
— emulasi keyboard dan mouse dari remote control apa pun
— penjadwal (tidak hanya menjalankan program sesuai waktu, tetapi juga melakukan beberapa tindakan dengannya)
- mematikan komputer berdasarkan timer atau acara
— Anda juga dapat menyalakan lampu di apartemen dari remote control, Anda hanya perlu menambahkan plugin yang sesuai 😉

Ada juga program pada sumber daya RCExplorer 2.1— database kendali jarak jauh IR (database berisi lebih dari 200 entri).


Program ini memungkinkan Anda untuk:
— Menerima sinyal dari remote kontrol menggunakan kartu suara, Pelabuhan COM, IgorPlug-USB atau IgorPlug2
- Analisis sinyal secara detail - (modulasi, karakteristik waktu, fitur pengkodean, kode pengulangan, dll., semua yang saya ketahui didukung saat ini protokol, program ini juga dapat bekerja dengan protokol yang tidak diketahui.
— Menampilkan sinyal secara grafis secara real time dan sesuai dengan data dari database
— Cari remote control serupa di database
— Mereproduksi perintah kendali jarak jauh menggunakan data dari database melalui port COM

Secara umum, pastikan untuk mengunjungi sumbernya - itu akan menarik.

(Dikunjungi 20.417 kali, 9 kunjungan hari ini)

Ada banyak artikel di Internet tentang cara membuat remote control TV sendiri menggunakan Arduino, tetapi saya memerlukan remote control universal untuk mengontrol TV dan pemutar media saya. Kelebihan utama dari remote universal saya adalah tombol-tombol di aplikasi hp android berfungsi ganda, tapi lihat videonya.



Remote control sangat nyaman karena tombol yang hampir sama di layar digunakan untuk mengontrol TV dan pemutar. Salah satu perbedaannya adalah " AV"dalam mode kontrol TV berubah menjadi tombol" " (berhenti) saat beralih ke mode kontrol pemutar. Gambar menunjukkan dua mode, di sebelah kiri adalah mode kontrol TV, di sebelah kanan adalah mode kontrol pemutar.

Nah, sekarang saya akan bercerita sedikit tentang cara membuat remote control tersebut. Untuk perangkatnya saya menggunakan remote control untuk ERGO TV dan remote control untuk media player DUNE HD TV101W.

Untuk menerima data dari remote control, saya menggunakan sensor infra merah TSOP1138 (analog dengan TSOP4838) pada frekuensi operasi 38 kHz dan menghubungkannya ke papan Arduino sesuai skema:

Sketsa ini tidak diperlukan untuk menentukan pengkodean transmisi data dan membaca kode tombol remote control.

Pada sketsa di baris int RECV_PIN = 11; tunjukkan pin kami nomor 4

Setelah mengunggah sketsa, buka "port monitor" dan, dengan menekan tombol remote control, lihat data yang diterima.

Gambar menunjukkan contoh pemindaian tombol power dari remote control TV dan remote control player. Sekarang kita membuat tabel untuk kode tombol.

Saya mendapatkannya seperti pada foto di atas. Di bawah tulisan itu televisi Kode tombol remote control TV; di bawah prasasti Pemain- kode dari remote control pemutar media.

Sekarang kita lepaskan penerima sinyal inframerah dari papan Arduino dan sambungkan modul Bluetooth HC-05 dan LED inframerah sesuai dengan diagram di foto.

Setelah itu kita langsung lanjut ke sketsanya.

Sketsa

#termasuk aku mengirim aku tidak mengirim; ke dalam kamu = 1; void setup() ( Serial.begin(9600); ) void loop() ( if (Serial.available() > 0) ( int x = Serial.read(); if (x == 49) ( y = 1; ) if (x == 50) ( y = 2; ) if (y == 1) ( // kode tombol untuk remote TV if (x == 97) ( irsend.sendNEC(0x807F08F7, 32); delay(40 ); ) jika (x == 98) ( irsend.sendNEC(0x807FA857, 32); tunda(40); ) jika (x == 99) ( irsend.sendNEC(0x807F708F, 32); tunda(40); ) jika (x == 100) ( irsend.sendNEC(0x807FF00F, 32); tunda(40); ) jika (x == 101) ( irsend.sendNEC(0x807F30CF, 32); tunda(40); ) jika (x == 102) ( irsend.sendNEC(0x807FB04F, 32); delay(40); ) if (x == 103) ( irsend.sendNEC(0x807F9867, 32); delay(40); ) if (x == 104) ( irsend .sendNEC(0x807F58A7, 32); penundaan(40); jika (x == 105) ( irsend.sendNEC(0x807F38C7); penundaan(40); , 32); ( irsend.sendNEC(0x807F48B7, 32); penundaan(40); ) jika (x == 108) ( irsend.sendNEC(0x807FB847, 32); penundaan(40); jika (x == 109) ( irsend.sendNEC( 0x807F6897, 32);


penundaan(40);

) ) if (y == 2) ( //kode tombol remote control pemutar media if (x == 97) ( irsend.sendNEC(0xFDC23D, 32); delay(40); ) if (x == 98) ( irsend.sendNEC(0xFDE01F, 32); penundaan(40); jika (x == 99) ( irsend.sendNEC(0xFD18E7, 32); penundaan(40); ) jika (x == 100) ( irsend.sendNEC( 0xFDE817, 32); penundaan(40); ) jika (x == 101) ( irsend.sendNEC(0xFDA857, 32); penundaan(40); ) jika (x == 102) ( irsend.sendNEC(0xFD6897, 32) ; tunda (40); ) jika (x == 103) ( irsend.sendNEC(0xFDA857, 32); tunda(40); ) jika (x == 104) ( irsend.sendNEC(0xFD6897, 32); tunda(40 ); ) jika (x == 105) ( irsend.sendNEC(0xFDE817, 32); tunda(40); ) jika (x == 106) ( irsend.sendNEC(0xFD18E7, 32); tunda(40); ) jika (x == 107) ( irsend.sendNEC(0xFD9867, 32); tunda(40); ) jika (x == 108) ( irsend.sendNEC(0xFD28D7, 32); tunda(40); ) jika (x == 109) ( irsend.sendNEC(0xFD20DF, 32); penundaan(40); ) ) ) )
Pada sketsa Anda perlu mengedit kode tombol, yaitu pada baris:

Jika (x == 97) ( irsend.sendNEC(0x807F08F7, 32); penundaan(40);
Ubah nilai 807F08F7 menjadi:

Setelah mengedit sketsa menggunakan kode tombol Anda, unggah sketsa tersebut ke papan Arduino dan lanjutkan untuk menginstal aplikasi di ponsel Anda.

papan Arduino Pult di telepon.

Saat startup kita akan melihat layar dengan ikon bluetooth merah di pojok kanan bawah, yang menandakan bahwa kita tidak terhubung ke perangkat kita.

Setelah itu, klik ikon ini. Kita akan melihat jendela dengan daftar semua perangkat bluetooth yang tersedia, tempat kita memilih perangkat untuk dihubungkan.

Sekarang kita kembali ke layar utama dan sudah bisa mengontrol TV:

Untuk beralih ke mode kontrol kita perlu menekan tombol berlabel "Pemain". Seperti yang saya katakan sebelumnya, tombol kita yang berlabel "AV" akan berubah menjadi tombol " ":

Untuk memutuskan sambungan dari perangkat kami, cukup tahan tombol "Daya" selama beberapa detik.

Nah, beberapa foto perangkat saya yang sudah jadi.

Ternyata hasilnya cukup baik. Saya menunggu komentar pada artikel tersebut.

Penerima IR dan kendali jarak jauh inframerah kendali jarak jauh - metode kendali yang paling umum dan paling sederhana peralatan elektronik. Spektrum radiasi inframerah tidak terlihat oleh mata manusia, namun diterima dengan sempurna oleh penerima IR yang terpasang di dalamnya perangkat elektronik. Modul jarak jauh Arduino ir digunakan untuk kontrol berbagai teknik dalam garis pandang.

Penggunaan pemancar IR secara luas dimungkinkan karena biayanya yang rendah, kesederhanaan dan kemudahan penggunaannya. Radiasi IR terletak pada kisaran 750 hingga 1000 mikron - ini adalah bagian spektrum yang paling dekat dengan cahaya tampak. Di wilayah radiasi infra merah, sifat optik dapat berubah berbagai bahan. Beberapa kaca, misalnya, menjadi buram terhadap sinar IR, sedangkan parafin, sebaliknya, transparan dalam spektrum IR.

Radiasi direkam menggunakan bahan fotografi khusus, yang menjadi dasar pembuatan penerima. Selain benda yang dipanaskan (Matahari, lampu pijar, atau lilin), sumber radiasi infra merah dapat berupa perangkat solid-state - LED IR, laser. Radiasi dalam jangkauan inframerah memiliki sejumlah fitur yang membuatnya nyaman digunakan pada remote control:

  • Pemancar solid state (LED IR) murah dan kompak.
  • Sinar inframerah tidak dirasakan atau dideteksi oleh mata manusia.
  • Penerima IR juga murah dan berukuran kecil.
  • Interferensi rendah karena pemancar dan penerima disetel ke frekuensi yang sama.
  • Absen dampak negatif pada kesehatan manusia.
  • Reflektansi tinggi dari sebagian besar bahan.
  • Pemancar IR tidak mempengaruhi pengoperasian perangkat lain.

Remote control berfungsi sebagai berikut. Saat Anda menekan tombol, sinyal dikodekan dalam cahaya inframerah, penerima menerimanya dan melakukan tindakan yang diperlukan. Informasi dikodekan sebagai urutan logis dari paket pulsa dengan frekuensi tertentu. Penerima menerima urutan ini dan mendemodulasi data. Untuk menerima sinyal digunakan rangkaian mikro yang berisi fotodetektor (fotodioda), amplifier, filter lolos pita, demodulator (detektor yang memungkinkan Anda mengisolasi selubung sinyal) dan transistor keluaran. Ia juga memiliki filter – listrik dan optik. Perangkat tersebut beroperasi pada jarak hingga 40 meter. Metode transmisi data IR ada di banyak perangkat: in peralatan Rumah Tangga, dalam peralatan industri, komputer, jalur serat optik.

Penerima IR Arduino

Untuk membaca sinyal IR Anda memerlukan papan Arduino itu sendiri, papan tempat memotong roti, penerima sinyal IR, dan jumper. Ada berbagai macam receiver yang berbeda, tetapi lebih baik menggunakan TSOP312 atau receiver lain yang cocok untuk Arduino. Data dari remote control ke penerima dapat dikirim melalui protokol RC5 atau NEC.

Untuk menentukan kaki mana yang dimiliki, Anda perlu melihat sensor dari sisi penerima. Kemudian pada receiver kontak pusatnya adalah ground, di sebelah kiri adalah output ke mikrokontroler, di sebelah kanan adalah power.

Untuk kenyamanan, Anda bisa menggunakan modul yang sudah jadi Penerima IR.

Menghubungkan penerima IR ke Arduino

Output penerima IR terhubung ke Arduino ke port input GND, 5V dan digital. Diagram menghubungkan sensor ke pin digital ke-11 ditunjukkan di bawah ini.

Berikut tampilan rangkaian modul penerima infra merah:


Perpustakaan untuk bekerja dengan IR

Untuk bekerja dengan perangkat IR, Anda dapat menggunakan perpustakaan IRremote, yang menyederhanakan pembangunan sistem kontrol. Anda dapat mengunduh perpustakaan. Setelah diunduh, salin file ke folder \arduino\libraries. Untuk terhubung ke sketsa perpustakaan Anda, Anda perlu menambahkan file header #include .

Untuk membaca informasi, gunakan contoh IRrecvDumpV2 dari perpustakaan. Jika remote control sudah ada dalam daftar yang dikenali, maka pemindaian tidak diperlukan. Untuk membaca kodenya, Anda perlu meluncurkan ARduino IDE dan membuka contoh IRrecvDemo dari IRremote.

Ada perpustakaan kedua untuk bekerja dengan sinyal IR - ini adalah IRLib. Fungsinya mirip dengan yang sebelumnya. Dibandingkan IRremote, IRLib memiliki contoh untuk menentukan frekuensi sensor IR. Namun perpustakaan pertama lebih sederhana dan nyaman digunakan.

Setelah memuat perpustakaan, Anda dapat mulai membaca sinyal yang diterima. Kode berikut digunakan untuk ini.

Operator decode_results diperlukan untuk menetapkan hasil nama variabel ke sinyal yang diterima.

Dalam kode Anda perlu menulis ulang "HEX" menjadi "DEC".

Kemudian, setelah memuat program, Anda perlu membuka monitor serial dan menekan tombol pada remote control. akan muncul di layar berbagai kode. Anda perlu membuat catatan yang menunjukkan tombol mana yang sesuai dengan kode yang diterima. Lebih mudah untuk mencatat data yang diperoleh dalam sebuah tabel. Kode ini kemudian dapat ditulis ke dalam program agar perangkat dapat dikontrol. Kode-kode tersebut ditulis ke dalam memori papan Arduino EEPROM itu sendiri, yang sangat nyaman karena Anda tidak perlu memprogram tombol setiap kali Anda menghidupkan remote control.

Kebetulan saat memuat suatu program, kesalahan "TDK2 tidak dideklarasikan dalam cakupannya" ditampilkan. Untuk memperbaikinya, Anda harus pergi ke Explorer, buka folder tempat Anda menginstal aplikasi Arduino IDE dan hapus file IRremoteTools.cpp dan IRremoteTools.h. Setelah ini, Anda perlu memuat ulang program ke mikrokontroler.

Kesimpulan

Menggunakan Arduino ir remote membuat hidup lebih mudah bagi pengguna. Dapat bertindak sebagai pengendali jarak jauh telepon genggam, tablet atau komputer - yang Anda butuhkan hanyalah perangkat lunak khusus. Menggunakan Arduino Anda dapat memusatkan semua kontrol. Dengan satu tombol di remote control Anda dapat melakukan beberapa tindakan sekaligus - misalnya menyalakan TV dan Blu-Ray secara bersamaan.

Biasanya remote control TV, kotak kabel, Pemutar Blu-ray dan sistem stereo tidak hanya memakan ruang, tetapi juga mempersulit pengelolaan semua perangkat tersebut. Anda mungkin mempertimbangkan untuk membeli remote universal, tetapi biasanya harganya mahal dan terkadang tidak memberikan tingkat kontrol atau antarmuka yang Anda perlukan. Proyek ini menciptakan perangkat yang dapat mengirim dan menerima kode kendali jarak jauh dari halaman web standar. Anda dapat memprogram fungsionalitas yang diperlukan dari ponsel cerdas atau komputer mana pun!

Proyek ini menggunakan Modul Arduino Yún, yang dirancang khusus untuk mengelola perangkat yang mendukung koneksi jaringan. Yún memiliki dua prosesor, yang pertama berjalan sistem operasi Linux dan dapat terhubung ke kabel atau jaringan nirkabel. Prosesor kedua menjalankan fungsi yang sama seperti prosesor pada modul Arduino Leonardo. Oleh karena itu ia memberikan kompatibilitas yang baik perpustakaan Arduino dan perangkat keras.

Proyek ini menggunakan LED inframerah dan penerima untuk mengirim dan menerima sinyal kendali jarak jauh. Cahaya inframerah tidak terlihat oleh mata manusia, namun mudah dideteksi oleh sensor elektronik. Untuk transmisi sinyal yang lebih andal, perangkat menggunakan cahaya inframerah termodulasi, yang menghilangkan kemungkinan menerima sinyal palsu. Penerima inframerah- Ini perangkat kecil, yang menerima sinyal inframerah yang dimodulasi pada frekuensi tertentu, biasanya 38 kHz. Dengan menggunakan receiver ini, modul Arduino menentukan bit informasi yang dikirim dari panel kontrol.

Mengirim perintah ke Anda pusat multimedia akan dilakukan melalui antarmuka web sederhana yang berjalan secara lokal pada modul Yún dan dapat diakses oleh sebagian besar browser web modern. Situs web memudahkan pengelolaan perangkat inframerah dan bahkan memungkinkan Anda memproses beberapa perintah secara bersamaan. Misalnya, menekan tombol 'Tonton Film' dapat mengirimkan sinyal untuk menyalakan TV, pemutar Blu-ray dan menghubungkannya ke input TV.

Proyek ini memerlukan pengalaman menjalankan sketsa Arduino dan menggunakan alat baris perintah. Komponen elektronik proyek dapat diinstal pada papan tempat memotong roti.

Langkah #1: Menghubungkan Komponen

  • Hubungkan LED inframerah ke modul Yún dengan menjalankan kabel dari anoda LED (kabel panjang) ke keluaran digital 13 modul Yun.
  • Menggunakan resistor 100 ohm, sambungkan katoda LED (kabel lebih pendek) ke pin ground sensor inframerah ( keluaran rata-rata sensor).
  • Hubungkan pin pendeteksi sensor infra merah (pin paling kiri jika dilihat dari depan sensor) ke pin digital 11 modul Yún.
  • Hubungkan pin ground sensor inframerah (pin tengah) ke pin ground modul Yún.
  • Terakhir, sambungkan kabel daya sensor (pin paling kanan jika dilihat dari depan sensor) ke pin 5 volt modul Yún.

Langkah #2: Instal Ketergantungan Perangkat Lunak

  • Saat dimasukkan Kartu MicroSD ke dalam modul Yún, nyalakan Yún dengan menghubungkan USB Mikro Kabel B ke modul Yún dan adaptor USB nutrisi.
  • Pastikan Yún sudah diatur dan terhubung ke jaringan nirkabel Anda. Mengonfigurasi modul Yún ditunjukkan di halaman ini.
  • Hubungkan ke baris perintah Anda menggunakan SSH. Proses ini dijelaskan di halaman ini.
  • Setelah terhubung ke baris perintah, Anda akan melihat versi firmware. Proyek ini diuji dengan versi BusyBox v1.19.4 dari 10-04-2014 dan lebih tinggi. Jika Anda menggunakan lebih banyak versi lama, lalu ikuti petunjuk berikut.
  • Pada prompt perintah, jalankan perintah berikut untuk memperbarui manajer paket:
pembaruan opkg opkg install distribusikan && opkg install python-openssl && opkg install python-expat && easy_install pip

Proses ini memakan waktu beberapa menit. Anda mungkin melihat beberapa pesan peringatan, namun Anda dapat mengabaikannya.

  • Buat direktori di kartu SD Anda untuk menyimpan paket Python:
mkdir /mnt/sda1/python-packages
  • Instal kerangka Flask Python:
pip install --target /mnt/sda1/python-packages labu

Anda mungkin melihat beberapa pesan peringatan, namun Anda dapat mengabaikannya.

  • Perbarui jalur pencarian untuk file paket Python:
echo "ekspor PYTHONPATH=/mnt/sda1/python-packages" >> /etc/profile
  • Buat direktori tempat Arduino IDE akan mengunggah file server web:
mkdir /mnt/sda1/Arduino mkdir /mnt/sda1/arduino/www
  • Nyalakan ulang Arduino Yún Anda untuk memperbarui jalur pencarian file Python.

  • Unduh perpustakaan IR. (Arduino IRremote, perpustakaan yang dibuat oleh Ken Shirriff.)
    Buka zip arsip, ganti nama folder dengan Arduino_ IR jarak jauh- menguasai pada Arduino_ IR jarak jauh, dan impor folder Arduino_IRremote sebagai perpustakaan ke dalam Arduino IDE. Informasi rinci ditunjukkan
  • Unggah sketsa Cerdas Kendali Jarak Jauh Arduino dari arsip zip dari sini.
    Buka zip arsip dan seret foldernya Kontrol Jarak Jauh Cerdas ke folder dengan sketsa Arduino. Buka sketsa di Arduino IDE.
  • Kompilasi sketsa dan unggah ke modul Yún melalui WiFi dengan memilih opsi yang sesuai di daftar port Arduino Yún. Pastikan untuk mengunggah sketsa melalui WiFi sehingga skrip python yang diperlukan dapat disalin ke modul Yún! Setelah mendownload sketsa, buka Serial Monitor di lingkungan Arduino IDE (ini mungkin memakan waktu beberapa menit).
  • Arahkan remote control ke sensor infra merah dan tekan beberapa tombol pada remote control. Anda akan melihat kode di Serial Monitor. Jika kode tidak ditampilkan, maka periksa sambungan rangkaian sensor.

Langkah #4: Konfigurasikan Kode Remote Control

  • Anda sekarang dapat mengonfigurasi aktivitas dan kode kendali jarak jauh dengan mengaitkannya berkas XML konfigurasi. Menggunakan editor teks, buka filenya kegiatan. xml dalam subdirektori www folder sketsa di PC Anda. (Dari Arduino IDE, klik menu Sketsa dan pilih "Tampilkan Folder Sketsa").
  • Pertimbangkan format contoh operasi dalam file. Setiap blok operasi menentukan nama atribut yang akan muncul sebagai tombol di halaman web remote. Dalam setiap operasi, blok kode berisi urutan kode inframerah yang harus dijalankan. Pada contoh, perintah Sony A90 (power on/off) dijalankan terlebih dahulu untuk menghidupkan TV, kemudian perintah Panasonic (power on/off) untuk menghidupkan pemutar Blu-ray. Setiap kode memiliki parameter string yang merupakan keluaran data langsung dari kode jarak jauh yang terdeteksi dari sketsa Arduino.
  • Tambahkan perintah Anda ke file dengan menyalin contoh dan mengubah nama dan kode. Saat remote diarahkan ke sensor inframerah, tekan tombol dan tuliskan dengan hati-hati urutan kode inframerah tertentu. Salin urutannya ke dalam konfigurasi opcode.
  • Segera setelah Anda menerima berkas yang diperlukan konfigurasi, simpan file dan unggah ulang sketsa ke modul Yún melalui WiFi. Untuk memperbarui file konfigurasi, edit file dan unggah sketsa melalui WiFi menggunakan Arduino IDE.

Langkah #5: Memulai server dengan antarmuka web

  • Untuk memulai server, sambungkan modul Yún melalui SSH. Untuk memulai server, jalankan perintah berikut:
python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Ketika server berhasil dimulai, Anda akan melihat pesan:
* Berjalan di http://0.0.0.0:5000/ * Restart dengan reloader
  • Jika Anda melihat kesalahan, periksa semua dependensi yang diinstal pada langkah sebelumnya.
  • Di browser web Anda, masukkan http://arduino.local:5000/. Jika browser tidak mendukung URL mDNS (seperti Windows, Android, dan lainnya Distribusi Linux) masukkan http:// Arduino_ aku p_ alamat:5000/, dimana Arduino_ aku p_ alamat adalah alamat IP Arduino Yún Anda. Alamat IP terletak di bagian bawah Arduino IDE saat menghubungkan Yún (Gambar 2).
  • Setelah halaman dimuat, Anda akan melihat daftar tindakan tombol yang dikonfigurasi. Jika Anda melihat kesalahan, periksa apakah dependensi telah diinstal dengan benar, sketsa telah dimuat, dan server berjalan tanpa kesalahan.
  • Untuk menghentikan server, tekan Ctrl-C di jendela perintah tempat server dimulai.

Langkah #6: Menggunakan Antarmuka Web

  • Untuk digunakan kendali jarak jauh yang cerdas arahkan LED ke perangkat elektronik dan tekan salah satu tombol aktif. Jika perangkat yang diperlukan tidak menyala, coba dekatkan LED ke perangkat yang diperlukan. Kisaran LED kecil, sekitar 6 kaki. Perlu menambahkan transistor untuk meningkatkan jangkauan LED. Informasi rinci disediakan Di Sini.
  • Anda juga dapat menguji kode inframerah dengan membuka Yún Serial Monitor di Arduino IDE dan mengirimkan kode inframerah sebagai perintah. Misalnya mengirimkan kode “SONY:C A90” (tanpa tanda kutip) akan menyebabkan perangkat keras mengirimkan perintah ke menyalakan Sony A90. ("C" mewakili bit panjang perintah, 12, dikonversi ke heksadesimal).
  • Untuk mulai otomatis server saat memuat, edit file / dll./ rc. lokal di modul Yún (menggunakan editor nano atau vi) dan tambahkan baris berikut sebelum dengan baris "exit 0" di akhir:
PYTHONPATH=/mnt/sda1/paket python python /mnt/sda1/arduino/www/SmartRemoteControl/server.py
  • Untuk pengenalan suara, jalankan peramban Google krom. Klik tombol "Bicara" dan peramban Chrome akan meminta izin untuk menggunakan mikrofon. Kemudian ucapkan nama operasi yang aktif dan tunggu hingga dikenali. Misalnya, untuk menjalankan pengoperasian film "Film", tekan tombol "Bicara" dan ucapkan kata "Film" ke mikrofon. Frasa seperti "Putar Film" atau "Jalankan Film" tidak didukung - hanya nama jelas dari operasi aktif yang dikenali.
  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat