Daftar Isi:
- Langkah 1: Idenya
- Langkah 2: Membuat Pengontrol
- Langkah 3: Menyesuaikan Pengontrol
- Langkah 4: Alat untuk Menyederhanakan Penjahitan
Video: Jatuh di Stm32: Remote Control untuk Home Media Center: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
Ini adalah prototipe lengkap untuk remote control pusat media rumahan berdasarkan pengontrol mikro smt32, stm32f103c8t6 yang dikenal sebagai papan 'bluepill'. Misalkan, Anda menggunakan PC untuk media center rumah. Ini adalah solusi yang sangat fleksibel, yang memungkinkan Anda untuk menempatkan perpustakaan video besar ke dalam hard drive internal, atau Anda dapat memutar video dari jaringan, misalnya youtube atau lebih, Anda tidak memiliki masalah dengan codec atau pemutaran video sama sekali, karena sangat mudah untuk memperbarui pemutar perangkat lunak setiap saat. Kerugian utama dari solusi ini adalah Anda harus menggunakan mouse dan keyboard untuk mengontrol pemutaran Anda. Remote control IR adalah mode yang nyaman untuk ini.
Pada artikel ini saya akan menunjukkan cara membuat remote control sendiri menggunakan chip bluepill board.
Langkah 1: Idenya
Ide utamanya sangat sederhana: papan bluepill telah tertanam port usb dan dapat bertindak sebagai keyboard USB HID. Jika kita memasang penerima IR ke papan, itu bisa menerjemahkan perintah dari remote control IR Anda ke 'tekan tombol' dari keyboard virtual. Tidak diperlukan driver tambahan!
Ada banyak protokol IR di dunia di sekitar kita. Setiap TV vendor VCS memiliki protokol IR sendiri. Tetapi semua protokol ini memiliki kesamaan: mereka menggunakan modulasi pulsa untuk mengkodekan sinyal. Biasanya, ada beberapa pembukaan: impuls panjang sebelum bit pertama dalam paket. Kemudian kontrol IR mentransmisikan seluruh paket dengan 0 dan 1 dan menyelesaikan transmisi dengan pulsa panjang akhir. Untuk memecahkan kode bit kita perlu mengukur panjang pulsa dan panjang puncak. Biasanya panjang puncak logika 0 dan logika 1 sama, yang membedakan adalah panjang pulsa lengkapnya.
Kontroler mikro stm32 memiliki fitur yang disematkan untuk menangkap sinyal PWM. Di dekat setiap pengatur waktu pengontrol mikro dapat dimasukkan ke dalam 'penangkapan sinyal PWM lebih banyak' ketika variabel saluran pengatur waktu menyimpan panjang total pulsa dan panjang puncaknya. Di sini saya harus menyoroti detail kecil: ketika penerima IR menangkap sinyal, tegangan pada pin kerjanya menjadi 0 dan dalam keadaan idle tegangan pada pin kerja adalah 5 atau 3,3 volt tergantung pada tegangan suplai penerima IR. Yaitu, penerima 'membalikkan' sinyal.
Dengan mode pengambilan PWM, pengontrol mikro stm32 dapat dengan mudah diubah menjadi penerjemah jarak jauh IR dari jarak jauh IR ke kode keyboard. Kemudian Anda dapat memulai perangkat lunak visualisasi favorit Anda, misalnya Kodi dari VLC untuk memutar film favorit Anda di pusat media.
Langkah 2: Membuat Pengontrol
Untuk memprogram pengontrol mikro stm32 saya ingin merekomendasikan perangkat lunak gratis dari STM: meja kerja sistem (alias ac6) dan alat konfigurasi papan cubeMX. Untuk mengunggah perangkat lunak ke pengontrol mikro, klon chip adaptor ST-Link V2 dapat digunakan. File proyek meja kerja sistem yang dilampirkan pada langkah ini, file F1-IR_remote.zip.
Alat konfigurasi papan menyederhanakan proses konfigurasi perangkat keras awal pengontrol mikro kami.
Jika Anda menggunakan alat meja kerja sistem, Anda bisa menggunakan proyek yang diunduh. Tetapi jika Anda ingin menyelidiki proyek lebih detail, Anda dapat membuat konfigurasi papan di cubeMX:
- Buat proyek baru dan pilih papan stm32f103c8
- Pilih 'Crystal/Ceramic Resonator' untuk item 'High Speed Clock (HSE)' di menu RCC.
- Pilih 'Serial Wire' untuk item 'Debug' di menu SYS.
-
Konfigurasikan timer #2 (menu TIM2) dalam mode capture PWM seperti terlihat pada gambar:
- Mode Budak -> Atur Ulang Mode
- Sumber Pemicu -> TI1FP1
- Sumber Jam -> Jam Internal
- Channel1 -> Input Mode Tangkap langsung
- Setel kotak centang 'Perangkat (FS) di menu USB
- Pilih elemen menu pull-down 'Human Interface Device Class (HID)' di item 'Class of FS IP' di menu USB_DEVICE
- Di panel konfigurasi jam, pastikan untuk memberikan 72 MHz ke timer #2 karena kita membutuhkan hitungan timer pada setiap 1 mks.
- Di panel konfigurasi, konfigurasikan perangkat USB seperti yang ditunjukkan pada gambar
-
Di panel konfigurasi konfigurasikan timer #2 sebagai berikut:
- Prescaller - 71 (dari 0 hingga 71) - 1 detik mikro!
- Mode Penghitung - Naik
- Counter Period - 39999 (kita harus bisa mengukur panjang pulsa)
- Saluran pengambilan input1 - Falling Edge (ingat bahwa sinyal dari penerima IR terbalik)
Dalam mode pengambilan PWM, timer #2 akan berfungsi sebagai berikut:
Ketika front jatuh terdeteksi, penghitung waktu akan disimpan di register saluran1 dan penghitung waktu akan direset dengan 0. Kemudian pengatur waktu akan terus menghitung arah. Jadi kita dapat dengan mudah mengukur panjang pulsa dalam mikro detik.
Secara default, kelas HID USB STM32 mensimulasikan mouse USB. Di sini Anda dapat menemukan instruksi untuk mengubah pengontrol menjadi keyboard.
Langkah 3: Menyesuaikan Pengontrol
Proyek ini bekerja dengan remote control Panasonic dan pusat media Kodi. Untuk menyesuaikan proyek untuk pengontrol Anda sendiri, Anda harus menambahkan susunan kode untuk kendali jarak jauh Anda seperti yang saya lakukan untuk kendali jarak jauh panasonic (panasonicCode) ke header Inc/code.h. Seperti yang Anda lihat, setiap perintah memiliki ID unik (di IRcommmand enum). Ada 24 perintah (0-23) yang dikenali oleh proyek. Perintah diurutkan berdasarkan relevansinya.
typedef enum {IR_play = 0, IR_stop, IR_pause, IR_forward, IR_rewind, IR_last_channel, IR_OSD, IR_prevous_menu, IR_left, IR_right, IR_up, IR_down, IR_enter, IR_chapter_next, IR_chapter_previous, IR_info, IR_subtitle, IR_nxt_subtitle, IR_pos_subtitle, IR_teletext, IR_zoom, IR_mark_watched, IR_playlist, IR_power, IR_unknown } IRcommand;
const uint16_t kbrd_kodi = {HID_KEY_P, HID_KEY_X, HID_KEY_SPACE, HID_KEY_F, HID_KEY_R, HID_KEY_0, HID_KEY_M, HID_KEY_BACKSPACE, HID_KEY_LEFT, HID_KEY_RIGHT, HID_KEY_UP, HID_KEY_DOWN, HID_KEY_ENTER, HID_KEY_DOT, HID_KEY_COMMA, HID_KEY_S, HID_KEY_I, HID_KEY_T, HID_KEY_L, (uint16_t (HID_LEFT_CTRL) << 8)| HID_KEY_T, HID_KEY_V, HID_KEY_Z, HID_KEY_W, HID_KEY_C };
const uint32_t panasonicCode = {0xd00505d, 0xd00000d, 0xd00606d, 0xd00525f, 0xd00929f, 0x100eced, 0xd00101d, 0x1002b2a, 0x1007273, 0x100f2f3, 0x1005253, 0x100d2d3, 0x1009293, 0x1002c2d, 0x100acad, 0x1009c9d, 0x1008e8f, 0x1004e4f, 0x100cecf, 0x1000e0f, 0x180c041, 0x1801091, 0x180a021, 0xd00bcb1 };
Kemudian Anda harus menambahkan remote control Anda sendiri dalam metode init() di IR.cpp dengan fungsi addRemote(). Argumen fungsi adalah:
- Jumlah bit dalam paket
- Panjang header paket
- Panjang bit 'nol'
- 'Satu' bit panjang
- Pointer ke array kode
- Jumlah elemen array
void IRcmd::init(void) { addRemote(48, 5252, 902, 1755, panasonicCode, sizeof(panasonicCode)/sizeof(uint32_t));
}
Juga file tersebut berisi tabel lain untuk mengubah perintah menjadi kode keyboard. Array kbdr_kodi berisi kode kunci untuk pusat media Kodi. Anda dapat menambahkan array lain untuk program pusat media Anda sendiri, misalnya, vlc player. Jika Anda ingin menambahkan tabel aplikasi pusat media lain, Anda akan membuat objek KBD lain, dan menginisialisasinya di main.cpp.
Langkah 4: Alat untuk Menyederhanakan Penjahitan
Ada dua proyek lain di repositori
- IR menyelidiki - memungkinkan untuk mengukur parameter waktu sinyal remote Anda.
- IR_capture - memungkinkan untuk menangkap kode HEX dari remote control Anda.
Cukup muat proyek penyelidikan IR dan sambungkan port USB papan bluepill ke komputer Anda. Kemudian luncurkan program terminal apa pun pada perangkat port serial virtual, yang sesuai dengan papan stm32. Saat Anda menekan tombol pada remote Anda, program akan mengukur pulsa yang diterima dan mencetak waktu rata-rata untuk pulsa yang berbeda. Ini harus menyederhanakan untuk mendeteksi panjang pulsa untuk header paket, nol dan satu bit.
Dalam proyek penyelidikan IR, timer #2 bekerja dalam mode pengambilan PWM dengan dua saluran: saluran satu menangkap seluruh panjang pulsa dan saluran2 menangkap panjang puncak. Ketika tepi sinyal turun terdeteksi, nilai timer disimpan ke register saluran satu dan timer diatur ulang dengan 0. Saat tepi naik sinyal terdeteksi, penghitung timer disimpan ke register saluran 2.
Untuk menangkap kode tombol remote control Anda sendiri, proyek IR_capture dapat digunakan. Di file main.c Anda harus menambahkan definisi jarak jauh seperti ini:
IRcode panasonic = {.hdr = 5252,.bits = 48,.zero = 902,.one = 1755,.dev = 60 };
- .hdr - panjang header dalam mks
- .bit - jumlah bit dalam paket
- .zero - panjang bit nol
- .satu - panjang satu bit
- .dev - deviasi (perbedaan waktu yang dapat diterima). Biasanya 1/10 dari panjang terkecil.
Kemudian tambahkan remote Anda ke daftar remote yang didukung:
const IRcode* remote[2] = {&panasonic, &pioneer};
Direkomendasikan:
Kit Saklar Remote Control DIY oleh 2262/2272 M4 Papan Roti & Relay untuk Pembuat: 4 Langkah (dengan Gambar)
Kit Saklar Remote Control DIY oleh 2262/2272 M4 Bread Board & Relay untuk Pembuat: rumah pintar akan hadir dalam hidup kita. jika kita ingin rumah pintar menjadi kenyataan, kita membutuhkan banyak sakelar kendali jarak jauh. hari ini kita akan melakukan tes, melakukan rangkaian mudah untuk mempelajari teori saklar remote control. kit ini dirancang oleh ROBOT SINONING
Membuat Remote Control Terlihat Profesional untuk Proyek Arduino Anda di Rumah: 9 Langkah (dengan Gambar)
Membuat Remote Control yang Terlihat Profesional untuk Proyek Arduino Anda di Rumah: Saya membuat proyek yang menggunakan arduino dan perpustakaan jarak jauh IR untuk mengontrol beberapa hal. Jadi dalam instruksi ini saya akan menunjukkan kepada Anda bagaimana Anda dapat menggunakan kembali remote control menjadi menggunakan proyek Anda berikutnya. Dan Anda tidak perlu sesuatu yang mewah untuk membuat toilet yang bagus
Kit Remote Control Biasa Diubah Menjadi Remote Control Mainan RC Empat Saluran: 4 Langkah
Kit Remote Control Biasa Diubah Menjadi Remote Control Mainan RC Empat Saluran: 2262和2272芯片和433个模块构建。 kan
1981 Portable VCR Raspberry PI Media Center: 12 Langkah (dengan Gambar)
1981 Portable VCR Raspberry PI Media Center: Ini adalah VCR portabel Sharp VC-2300H awal tahun 80-an yang telah saya konversi - sekarang memiliki Raspberry Pi di jantungnya, menjalankan perangkat lunak pusat media Raspbmc yang sangat baik. Peningkatan lainnya termasuk jam berbasis arduino yang keren dan kabel EL "tape"
Remote Control Berbasis Arduino untuk Eskate atau Hydrofoil: 5 Langkah (dengan Gambar)
Remote Control Berbasis Arduino untuk Eskate atau Hydrofoil: Instruksi ini akan menunjukkan kepada Anda cara membuat remote fisik untuk digunakan dengan eskate atau hidrofoil listrik termasuk semua kode dan perangkat keras yang Anda butuhkan. Ada banyak penyolderan yang terlibat, tetapi juga menyenangkan untuk dibuat. Apa yang bisa dilakukan remote? Bersama