Isi kandungan:
- Bekalan
- Langkah 1: Litar Elektrik
- Langkah 2: Perhimpunan
- Langkah 3: Pengaturcaraan
- Langkah 4: Mengkonfigurasi Pintasan
- Langkah 5: Penambahbaikan
Video: Pad Kekunci Yang Dapat Diprogramkan: 5 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:08
Dalam projek ini saya akan menunjukkan cara membuat papan kekunci yang boleh diprogramkan secara relatif mudah dan murah untuk memetakan pintasan papan kekunci, aplikasi dan banyak lagi yang paling kerap anda gunakan.
Pad kekunci ini dikesan sebagai papan kekunci di semua OS utama, tidak diperlukan pemacu tambahan.
Bekalan
- Pengekod putar.
- Banyak butang tekan (bergantung pada keperluan anda).
- Arduino Pro Micro, Arduino Leonardo atau papan pemuka lain dengan Atmega32U4 MCU.
- Kawat, solder, solder, dll.
- (Pilihan) Beberapa asas yang kuat untuk memastikan papan kekunci tidak tergelincir, saya menggunakan HDD 3.5 "lama
Langkah 1: Litar Elektrik
Saya memilih untuk menggunakan papan Arduino Pro Micro dev dengan Atmega32U4 MCU yang mempunyai 18 pin digital yang boleh digunakan.
Pin untuk menyambungkan butang tekan dan pengekod putar dipilih tanpa urutan tertentu, tetapi beberapa perkara harus diperhatikan:
- Semua pin mampu membaca digital mempunyai pull-up dalaman yang memungkinkan untuk mengurangkan perintang pull-down luaran. Sudah tentu kod harus dikemas kini dengan sewajarnya, kerana mengharapkan keadaan pin berubah dari rendah ke tinggi ketika butang tekan ditekan.
- Dalam pustaka encoder.h contoh menunjukkan bahawa prestasi terbaik pengekod dicapai apabila kedua-dua pin yang disambungkan ke MCU mengganggu pin yang mampu. Sebilangan besar pin analog Atmega32U4 tidak mempunyai keupayaan mengganggu.
- Nilai perintang pull-down yang tepat tidak penting, apa-apa dari 1 kΩ hingga 100 kΩ akan berfungsi dengan baik. Nilai rintangan yang lebih besar membolehkan pelesapan daya yang lebih kecil tetapi menghasilkan tindak balas pin yang lebih perlahan terhadap perubahan voltan. Cukup pilih perintang nilai apa sahaja yang paling anda miliki.
- Pengekod mekanikal bukanlah perkara yang paling dipercayai kerana kehausan hubungan dan melantun. Itulah sebabnya mengapa penyelesaian penyahpinjam yang baik diperlukan. Nilai kapasitor pilihan saya dan masa kelewatan dalam kod mungkin tidak akan memberikan hasil terbaik untuk anda. Oleh itu, sedikit percubaan diperlukan. Atau beralih ke sesuatu seperti pengekod optik, tetapi harganya jauh lebih tinggi.
Langkah 2: Perhimpunan
Saya mahu menjadikan pad kekunci kelihatan bersih, jadi saya menyolder semua komponen di bahagian belakang papan prototaip. Saya menyangka bahawa papan kekunci akan lebih ergonomik jika digunakan dengan ketinggian pada sudut kecil. Itulah sebabnya saya memasangkan Arduino Pro Micro pada papan berasingan dan menghubungkan semua pin digital dengan wayar ke butang tekan. Lebih senang menyambungkan kabel USB dengan cara itu.
Saya menjumpai HDD 3.5 yang lama untuk digunakan sebagai alas keypad, ia cukup berat dan menghalang bentuk papan meluncur di atas meja semasa beroperasi (bantalan anti-slip juga membantu). Ia juga mempunyai lubang skru 3 mm yang sesuai di mana saya mengacaukan penutup kuningan dan membetulkan papan pada sedikit sudut.
Langkah 3: Pengaturcaraan
Kod ditulis dengan Arduino IDE. Anda perlu memasang 2 perpustakaan:
- Pengekod oleh Paul Stoffregen
- Papan kekunci oleh Arduino
Untuk menyusun Atmega32U4, anda juga perlu memasang fail papan Arduino Pro Micro, Sparkfun mempunyai tutorial hebat bagaimana melakukannya.
Satu perkara yang perlu diperhatikan terlebih dahulu adalah berhati-hati agar tidak membiarkan "kekunci ditekan" dalam kod anda. Ini berlaku kepada saya dan MCU sentiasa menghantar beberapa kombinasi tekan utama. Satu-satunya cara saya menyedari cara memperbaikinya adalah dengan membakar semula boot-loader ke MCU. Sekiranya anda akan seperti saya, anda boleh mengikuti panduan ini untuk membakar boot-loader, anda memerlukan papan arduino lain untuk digunakan sebagai pengaturcara.
Dalam gelung utama MCU membaca terlebih dahulu setiap keadaan butang tekan, jika keadaan berubah dari RENDAH ke TINGGI dikesan, fungsi papan kekunci_pendek (i) dijalankan. Pembolehubah i adalah id butang yang ditekan, jumlah butang tekan ditentukan oleh ALL_BUTTONS (dalam kes saya 15). Semasa dieksekusi, keyboard_shortcut (i) menghantar CTRL + SHIFT dan kemudian huruf yang dipetakan ke butang id: 1-> A, 2-> B, 3-> C dll. Beberapa kombinasi seperti CTRL + SHIFT + N dihilangkan kerana sudah digunakan pada Windows10 secara lalai (dalam kes ini untuk membuat folder baru). Berikut adalah senarai semua pintasan Windows lalai. Setelah seketika, MCU menghantar isyarat untuk melepaskan semua kekunci dan fungsi keluar kembali ke gelung utama.
Setelah semua butang diperiksa, MCU memeriksa apakah kedudukan pengekod putar berubah dan jika tidak, jalan pintas papan kekunci (i) dijalankan dengan id unik.
Tekan butang encoder membalikkan pemboleh ubah boolean encoderButtonFlag. Apabila encoder diputar jalan pintas yang berbeza dihantar ke PC, bergantung pada arah putaran dan nilai encoderButtonFlag.
Sekiranya debugFlag ditetapkan ke 1 mesej debug dihantar melalui UART ke monitor bersiri.
Langkah 4: Mengkonfigurasi Pintasan
Apa yang dilakukan setiap jalan pintas juga anda, kita semua mempunyai pilihan yang berbeza. Saya akan memberikan jalan pintas yang saya konfigurasikan sebagai contoh. Saya menggunakan Linux Mint 19.3 dengan pengurus desktop xfce4, jadi contoh saya terutamanya melibatkan skrip bash, tetapi saya akan menunjukkan beberapa contoh asas untuk Windows10 juga.
Pada gambar pertama anda dapat melihat skrip mana yang saya petak ke jalan pintas mana. Ia dilakukan dari menu tetapan xfce, proses untuk ini adalah lurus ke depan. Anda boleh mendapatkan skrip ini di repositori GitHub saya
Butang tekan 6 yang lebih kecil di bahagian bawah adalah untuk memulakan aplikasi seperti penyemak imbas web atau pengurus fail, beberapa aplikasi ini dipanggil dari skrip start_only_one_app.sh, yang mendapat semua nama aplikasi yang dimulakan dan mencari aplikasi yang ingin anda mulakan. Sekiranya tetingkap aplikasi sudah ada, ia akan terfokus, contoh aplikasi baru akan dimulakan.
Skrip lain:
- 2nd_display_control.sh - menghidupkan / mematikan monitor kedua.
- moon_lamp.sh - menghidupkan / mematikan Lampu Bulan saya.
- pc_load.sh - membuat gelembung pemberitahuan dengan penggunaan dan suhu CPU dan GPU semasa.
- shutdown.sh - menginisialisasi penutupan PC dengan kelewatan 1 minit dan membuat gelembung pemberitahuan di mana baki masa ditunjukkan.
- spec_vpn.sh - menyambung ke pelayan OpenVPN tertentu atau jika sambungan sudah ada, putuskan sambungan dari pelayan.
- shortcut_controll.sh - mengambil perintah (tambah, tolak, tab, tutup) sebagai argumen, mengesan tetingkap apa yang sekarang difokuskan dan jika aplikasi tertentu didapati aktif menjalankan tindakan kawalan. Sebagai contoh untuk membuka tab baru di jalan pintas editor teks luhur adalah "CTRL + N" dan di terminal xfce - "CTRL + T", jadi skrip ini memungkinkan untuk membuka tab baru di luhur dan terminal dengan butang tekan yang sama.
Fungsi pertama pengekod putar adalah untuk mengawal kelantangan, fungsi kedua adalah untuk mengawal zoom tetingkap aktif melalui shortcut_controll.sh.
Untuk OS Windows, anda dapat memetakan jalan pintas ke aplikasi melalui tetingkap sifat program seperti yang ditunjukkan pada gambar kedua. Untuk perkara lain, anda pasti mahu menggunakan AutoHotkey. Ini adalah bahasa skrip automasi untuk Windows.
Beberapa contoh ringkas sintaks AHK:
; Kawalan kelantangan
^ + t:: Kirim {Volume_Up}
kembali
^ + v:: Kirim {Volume_Down}
kembali
Tutup tetingkap aktif
^ + h:: WinGetTitle, Tajuk, A
PostMessage, 0x112, 0xF060,,,% Tajuk%
kembali
; Shutdown PC
^ + b:: Jalankan shutdown / s
Langkah 5: Penambahbaikan
Beberapa kemungkinan peningkatan:
- Butang tekan berkualiti lebih baik.
- Prototaip PCB melenturkan cukup banyak apabila butang ditekan.
- Pencahayaan RGB untuk menukar warna bergantung pada fungsi pengekod putar yang ditetapkan.
- Lebih banyak butang (gunakan IC ekspander IO).
- Pengekod putar yang lebih baik (atau penyelesaian penyahtinjaan yang lebih baik).
Disyorkan:
DoReMiQuencer - Sequencer MIDI yang Dapat Diprogramkan Dengan Papan Kekunci: 7 Langkah
DoReMiQuencer - Sequencer MIDI yang Dapat Diprogram Dengan Papan Kekunci: Peranti ini diciptakan untuk digunakan dengan VCVRack, sebuah synthesizer modular maya yang dibuat oleh VCV, tetapi dapat berfungsi sebagai pengawal MIDI tujuan umum. Ia berfungsi sebagai penjujukan atau papan kekunci MIDI, bergantung pada mod yang dipilih. Nota MIDI dipetakan ke
Seni 2D Dengan LED yang Dapat Diprogramkan dan Pangkalan dan Logo yang Dapat Disesuaikan: 5 Langkah (dengan Gambar)
Seni 2D Dengan LED yang Dapat Diprogramkan dan Pangkalan dan Logo yang Dapat Disesuaikan: Selamat datang di instruksional! Hari ini, saya akan menunjukkan cara membuat Projek Seni 2D dengan logo dan reka bentuk keseluruhan pilihan anda. Saya membuat projek ini kerana dapat mengajar orang tentang banyak kemahiran seperti pengaturcaraan, pendawaian, pemodelan 3D, dan lain-lain. Ini
Pad kekunci yang boleh diprogramkan dengan kadbod: 8 Langkah (dengan Gambar)
Pad Kekunci Boleh Diprogram Cardboard: Semasa teknologi berkembang, orang menginginkan perkara menjadi lebih maya tetapi kadang-kadang lebih praktikal dan senang untuk mempunyai sesuatu yang fizikal yang sebenarnya dapat anda sentuh dan berinteraksi dengan tangan anda sendiri. Salah satu contoh
Pengumpan Ikan Akuarium yang Dapat Diprogramkan - Makanan Bergred yang Direka: 7 Langkah (dengan Gambar)
Pengumpan Ikan Akuarium yang Dapat Diprogramkan - Makanan Beraneka yang Direka: Pengumpan Ikan - makanan berbutir yang direka untuk ikan akuarium. Reka bentuknya sangat sederhana untuk penyuap ikan sepenuhnya automatik. Ia beroperasi dengan servo mikro SG90 9g kecil dan Arduino Nano. Anda menghidupkan seluruh feeder dengan kabel USB (dari pengecas USB atau port USB dari
Jam Tangan yang Dapat Diprogramkan Dengan Paparan Empat Karakter: 5 Langkah (dengan Gambar)
Jam Tangan yang Dapat Diprogramkan Dengan Paparan Empat Karakter: Anda akan menjadi perbincangan di bandar apabila anda memakai jam tangan menjengkelkan, besar, dan tidak praktikal ini. Paparkan bahasa kotor kegemaran anda, lirik lagu, nombor perdana, dan lain-lain. Diilhamkan oleh kit Microreader, saya memutuskan untuk membuat jam tangan raksasa menggunakan