Isi kandungan:
- Langkah 1: Idea
- Langkah 2: Membuat Pengawal
- Langkah 3: Menyesuaikan Pengawal
- Langkah 4: Alat untuk Memudahkan Penyesuaian
Video: Jatuh di Stm32: Alat Kawalan Jauh untuk Pusat Media Rumah: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
Ini adalah prototaip lengkap untuk alat kawalan jauh pusat media rumah berdasarkan pengawal mikro smt32, stm32f103c8t6 yang dikenali sebagai papan bluepill. Katakan, anda menggunakan PC untuk pusat media rumah. Ini adalah penyelesaian yang sangat fleksibel, yang membolehkan anda meletakkan pustaka video yang besar ke dalam cakera keras dalaman, atau anda boleh memainkan video dari rangkaian, misalnya youtube atau lebih, anda tidak menghadapi masalah sama sekali dengan codec atau video yang dimainkan, kerana sangat mudah untuk mengemas kini pemain perisian pada bila-bila masa. Kelemahan utama penyelesaian ini ialah anda harus menggunakan tetikus dan papan kekunci untuk mengawal main balik anda. Alat kawalan jauh IR adalah mod yang sesuai untuk ini.
Dalam artikel ini saya akan menunjukkan cara membuat alat kawalan jauh sendiri menggunakan papan bluepill cip.
Langkah 1: Idea
Idea utamanya sangat mudah: papan bluepill telah menyertakan port usb dan boleh berfungsi sebagai papan kekunci USB HID. Sekiranya kita melampirkan penerima IR ke papan, ia boleh menerjemahkan perintah dari alat kawalan jauh IR anda ke 'tekan kekunci' papan kekunci maya. Pemandu tambahan tidak diperlukan!
Terdapat banyak protokol IR di dunia di sekitar kita. Setiap vendor TV VCS mempunyai protokol IR tersendiri. Tetapi semua protokol ini mempunyai beberapa perkara yang sama: mereka menggunakan modulasi nadi untuk menyandikan isyarat. Biasanya, terdapat beberapa mukadimah: dorongan panjang sebelum bit pertama dalam paket. Kemudian kawalan IR menghantar seluruh paket dengan 0 dan 1 dan menyelesaikan penghantaran dengan nadi panjang selesai. Untuk menyahkod bit, kita perlu mengukur panjang nadi dan panjang puncak. Biasanya, panjang puncak logik 0 dan logik 1 adalah sama, perbezaannya adalah pada panjang nadi lengkap.
Pengawal mikro stm32 mempunyai ciri tertanam untuk menangkap isyarat PWM. Hampir setiap pemasa mikro pengawal dapat dimasukkan ke dalam 'PWM signal capture more' apabila pemboleh ubah saluran pemasa menyimpan jumlah panjang nadi dan panjang puncaknya. Di sini saya mesti mengetengahkan sedikit perinciannya: apabila penerima IR menangkap isyarat, voltan pada pin kerjanya menjadi 0 dan dalam keadaan siaga voltan pada pin kerja adalah 5 atau 3.3 volt bergantung pada voltan bekalan penerima IR. Yaitu, penerima 'membalikkan' isyarat.
Dengan mod tangkapan PWM, pengawal mikro stm32 dapat dengan mudah diubah menjadi penterjemah jarak jauh IR dari jarak jauh IR ke kod papan kekunci. Kemudian anda boleh memulakan perisian visualisasi kegemaran anda, misalnya Kodi dari VLC untuk memainkan filem kegemaran anda di pusat media.
Langkah 2: Membuat Pengawal
Untuk memprogram pengawal mikro stm32 saya ingin mengesyorkan perisian percuma dari STM: sistem kerja (alias ac6) dan alat konfigurasi papan cubeMX. Untuk memuat naik perisian ke pengawal mikro, klon cip penyesuai ST-Link V2 dapat digunakan. Fail projek meja kerja sistem dilampirkan pada langkah ini, fail F1-IR_remote.zip.
Alat konfigurasi papan memudahkan proses konfigurasi perkakasan awal pengawal mikro kami.
Sekiranya anda menggunakan alat meja kerja sistem, anda boleh menggunakan projek yang dimuat turun. Tetapi jika anda ingin menyiasat projek dengan lebih terperinci, anda boleh membuat konfigurasi papan di cubeMX:
- Buat projek baru dan pilih papan stm32f103c8
- Pilih 'Crystal / Ceramic Resonator' untuk item 'High Speed Clock (HSE)' dalam menu RCC.
- Pilih 'Serial Wire' untuk item 'Debug' di menu SYS.
-
Konfigurasikan pemasa # 2 (menu TIM2) dalam mod tangkapan PWM seperti yang ditunjukkan pada gambar:
- Mod Slave -> Mod Reset
- Sumber Pencetus -> TI1FP1
- Sumber Jam -> Jam Dalaman
- Channel1 -> Mod langsung Tangkap Input
- Tetapkan kotak semak 'Device (FS) dalam menu USB
- Pilih elemen menu pull-down 'Human Interface Device Class (HID)' dalam item 'Class of FS IP' dalam menu USB_DEVICE
- Pada panel konfigurasi jam, pastikan memberikan 72 MHz ke pemasa # 2 kerana kita memerlukan kiraan pemasa pada setiap 1 mks.
- Pada panel konfigurasi, konfigurasikan peranti USB seperti yang ditunjukkan dalam gambar
-
Di panel konfigurasi, konfigurasikan pemasa # 2 seperti berikut:
- Prescaller - 71 (dari 0 hingga 71) - 1 kutu detik mikro!
- Mod Kaunter - Naik
- Tempoh Pembilang - 39999 (kita seharusnya dapat mengukur nadi panjang)
- Saluran tangkapan input1 - Falling Edge (ingat bahawa isyarat dari penerima IR terbalik)
Dalam mod tangkapan PWM, pemasa # 2 berfungsi seperti berikut:
Apabila bahagian depan jatuh dikesan, penghitung pemasa akan disimpan dalam daftar saluran1 dan penghitung pemasa akan diset semula dengan 0. Kemudian pemasa akan terus menghitung arah. Oleh itu, kita dapat mengukur panjang nadi dengan mudah dalam beberapa saat mikro.
Secara lalai kelas STM32 USB HID mensimulasikan tetikus USB. Di sini anda boleh mendapatkan arahan untuk menukar pengawal menjadi papan kekunci.
Langkah 3: Menyesuaikan Pengawal
Projek ini berfungsi dengan alat kawalan jauh Panasonic dan pusat media Kodi. Untuk menyesuaikan projek untuk pengawal anda sendiri, anda harus menambahkan susunan kod untuk alat kawalan jauh anda seperti yang saya lakukan untuk alat kawalan jauh panasonic (panasonicCode) ke tajuk Inc / code.h. Seperti yang anda lihat, setiap arahan mempunyai ID unik (di IRcommmand enum). Terdapat 24 perintah (0-23) yang dikenali oleh projek. Perintah disusun mengikut kesesuaian.
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 alat kawalan jauh anda sendiri dalam kaedah init () dalam IR.cpp dengan fungsi addRemote (). Argumen fungsi adalah:
- Bilangan bit dalam paket
- Panjang Header paket
- Panjang bit 'sifar'
- Panjang bit 'satu'
- Penunjuk ke tatasusunan kod
- Bilangan unsur larik
void IRcmd:: init (void) {addRemote (48, 5252, 902, 1755, panasonicCode, sizeof (panasonicCode) / sizeof (uint32_t));
}
Fail juga mengandungi jadual lain untuk menukar perintah menjadi kod papan kekunci. Susunan kbdr_kodi mengandungi kod utama untuk pusat media Kodi. Anda boleh menambah array lain untuk program pusat media anda sendiri, misalnya, pemain vlc. Sekiranya anda menambah jadual aplikasi pusat media yang lain, anda akan membuat objek KBD yang lain, dan memulakannya di main.cpp.
Langkah 4: Alat untuk Memudahkan Penyesuaian
Terdapat dua projek lain di repositori
- IR menyiasat - memungkinkan untuk mengukur parameter masa isyarat dari alat kawalan jauh anda.
- IR_capture - memungkinkan untuk menangkap kod HEX alat kawalan jauh anda.
Muatkan projek IR IR dan sambungkan port USB papan bluepill ke komputer anda. Kemudian lancarkan sebarang program terminal pada peranti port bersiri maya, sesuai dengan papan stm32. Semasa anda menekan butang pada jarak jauh, program akan mengukur denyut nadi yang diterima dan mencetak rata-rata masa untuk nadi yang berbeza. Ia harus memudahkan untuk mengesan panjang nadi untuk tajuk paket, sifar dan satu bit.
Dalam projek penyiasatan IR, pemasa # 2 berfungsi dalam mod tangkapan PWM dengan dua saluran: saluran satu menangkap panjang keseluruhan nadi dan saluran 2 menangkap panjang puncak. Apabila tepi isyarat jatuh dikesan, nilai pemasa disimpan ke saluran satu daftar dan pemasa diset semula dengan 0. Apabila tepi isyarat meningkat, pengawal timer disimpan ke saluran 2 mendaftar.
Untuk menangkap kod butang alat kawalan jauh anda sendiri, projek IR_capture dapat digunakan. Dalam fail main.c anda harus menambahkan definisi jarak jauh seperti ini:
Panasonic kod IR = {.hdr = 5252,.bits = 48,.zero = 902,.one = 1755,.dev = 60};
- .hdr - panjang pengepala dalam mks
- .bits - bilangan bit dalam paket
- .zero - panjang bit sifar
- .satu - panjangnya satu-satu
- .dev - penyimpangan (perbezaan masa yang boleh diterima). Biasanya ia adalah 1/10 dari panjang terkecil.
Kemudian tambahkan alat kawalan jauh anda ke senarai alat kawalan jauh yang disokong:
const IRcode * remote [2] = {& panasonic, & pioneer};
Disyorkan:
Membuat Alat Kawalan Jauh Profesional untuk Projek Arduino Anda di Rumah: 9 Langkah (dengan Gambar)
Membuat Alat Kawalan Jauh Profesional untuk Projek Arduino Anda di Rumah: Saya membuat projek yang menggunakan perpustakaan jauh arduino dan IR untuk mengawal beberapa perkara. Oleh itu, dalam arahan ini saya akan menunjukkan kepada anda bagaimana anda boleh menggunakan alat kawalan jauh menggunakan projek anda yang seterusnya. Dan anda tidak memerlukan sesuatu yang mewah untuk membuat tandas yang baik
IRduino: Alat kawalan jauh Arduino - Meniru Jauh yang Hilang: 6 Langkah
IRduino: Alat Kawalan Jauh Arduino - Meniru Alat Jauh yang Hilang: Sekiranya anda pernah kehilangan alat kawalan jauh untuk pemain TV atau DVD anda, anda tahu betapa mengecewakannya untuk berjalan kaki, mencari, dan menggunakan butang pada peranti itu sendiri. Kadang-kadang, butang ini bahkan tidak menawarkan fungsi yang sama seperti alat kawalan jauh. Terima
Kawal Peralatan Rumah Tangga Melalui LoRa - LoRa dalam Automasi Rumah - Alat kawalan jauh LoRa: 8 Langkah
Kawal Peralatan Rumah Tangga Melalui LoRa | LoRa dalam Automasi Rumah | Alat Kawalan Jauh LoRa: Kawal dan automasikan peralatan elektrik anda dari jarak jauh (Kilometer) tanpa kehadiran internet. Ini boleh dilakukan melalui LoRa! Hei, ada apa? Akarsh di sini dari CETech. PCB ini juga mempunyai paparan OLED dan 3 relay yang
Kit Alat Kawalan Jauh Biasa Diubah menjadi Alat Kawalan Jauh Mainan RC Empat saluran: 4 Langkah
Kit Alat Kawalan Jauh Biasa Diubah menjadi Alat Kawalan Jauh Mainan RC Empat saluran: 如何 将 通用 遥控 器 套件 转换 为 玩具 模型 中 使用 的 四 通道 遥控 器。 遥控 器 套件 非常 便宜。 采用 62 2262 和 2272 芯片 和 433 个 模块 构建 构建。改造 方法 非常 简单。 只需 准备 一些 瓦楞纸 板 , 然后 按照 视频 教程 完成 这个 电子 项目 并 为 您 服务。 玩具 车船 提供 远程 无线 控制。
Alat kawalan jauh berasaskan Arduino untuk Eskate atau Hydrofoil: 5 Langkah (dengan Gambar)
Alat Kawalan Jauh Berasaskan Arduino untuk Eskate atau Hydrofoil: Instruksional ini akan menunjukkan kepada anda bagaimana membina alat kawalan jauh fizikal untuk digunakan dengan eskate atau hidrofil elektrik termasuk semua kod dan perkakasan yang anda perlukan. Terdapat banyak pematerian yang terlibat, tetapi juga senang dibuat. Apa yang boleh dilakukan oleh alat kawalan jauh? Bersama