Iklan

Arduino yang rendah hati dapat melakukan banyak hal, tetapi apakah Anda tahu itu bisa meniru keyboard USB? Anda dapat menggabungkan pintasan keyboard panjang yang sulit diingat menjadi satu tombol pintas khusus, dengan rangkaian sederhana ini. Inilah hasil akhirnya:

Belum pernah menggunakan Arduino sebelumnya? Lihat kami panduan memulai Memulai Dengan Arduino: A Beginner's GuideArduino adalah platform prototipe elektronik sumber terbuka yang didasarkan pada perangkat keras dan lunak yang fleksibel dan mudah digunakan. Ini ditujukan untuk seniman, perancang, penggemar, dan siapa pun yang tertarik untuk menciptakan objek atau lingkungan interaktif. Baca lebih lajut pertama.

Apa yang kau butuhkan

Bagian Shortcut Arduino
Inilah yang Anda butuhkan untuk membuat proyek ini:

  • 1 x Arduino Pro Micro.
  • Tombol sesaat atau tombol keyboard.
  • 10K ohm resistor.
  • Berbagai macam kabel hookup.
  • 1 x 220 ohm resistor.
  • 1 x 5mm (0,197 inci) LED.
  • 1 x 5mm dudukan LED.

Anda akan membutuhkan Arduino yang sangat spesifik untuk proyek ini. Saya menggunakan a

instagram viewer
Mikro Pro, karena sangat kecil dan murah, Anda memerlukan Arduino yang memiliki USB-Serial terintegrasi ke prosesor (Atmega32u4). Dimungkinkan untuk membangun proyek ini dengan Arduino lain, seperti UNO atau Nano, namun itu membutuhkan banyak kerja keras untuk mem-flash ulang bios dan mengutak-atik agar semuanya dapat bekerja. Klon model Arduino lain biasanya tidak berfungsi sama sekali, tetapi klon Pro Micro juga baik-baik saja.

OSOYOO Pro Micro ATmega32U4 5 V / 16 MHz Modul Papan dengan 2 Row pin Header untuk arduino Leonardo Ganti ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 5 V / 16 MHz Modul Papan dengan 2 Row pin Header untuk arduino Leonardo Ganti ATmega328 Pro Mini Beli Sekarang Di Amazon $10.99

Anda akan membutuhkan satu tombol sesaat, satu resistor 10K ohm, dan kawat kait yang sesuai untuk setiap tombol yang ingin Anda gunakan. Namun, saya menggunakan sakelar keyboard mekanis Cherry MX untuk tombol pintasan yang sebenarnya apa saja saklar akan dilakukan, asalkan itu sesaat dan tidak menempel.

Anda mungkin memerlukan beberapa item lain tergantung pada bagaimana Anda membangun ini. Jika Anda ingin membuat prototipe, Anda memerlukan papan tempat memotong roti solderless. Sebaiknya belanjakan uang untuk yang baik - mereka terkadang sangat tidak bisa diandalkan. Jika Anda ingin mengemas ini, Anda akan ingin membeli beberapa stripboard.

Bangun Rencana

Begini cara kerjanya. Arduino akan diprogram untuk bertindak seperti keyboard USB - sejauh menyangkut komputer Anda. Beberapa tombol yang terhubung ke Arduino akan mengirimkan perintah utama ke komputer Anda. Anda hanya akan menekan satu tombol, tetapi komputer Anda akan berpikir bahwa Anda telah menekan Alt > F4, sebagai contoh.

Memilih Sakelar

Arduino Cherry MX

Ada beberapa variasi sakelar seri MX. Situs ini memberikan pengantar yang sangat baik, namun mereka pada dasarnya turun ke kebisingan dan tekanan. Beberapa model memerlukan lebih banyak kekuatan untuk menekan, dan beberapa model membuat bunyi “klik” mekanis saat ditekan. Saya telah menggunakan Cherry MX Brown, yang tidak membuat suara saat ditekan. Semuanya memiliki dimensi yang sama, jadi pilih model yang Anda suka (atau padu-padankan) tanpa khawatir.

Anda juga perlu membeli beberapa tutup kunci, dan ada dunia desain khusus di luar sana untuk memilih dari - kami membeli dari KeyboardCo di UK

Kasus

Saya sudah 3D mencetak kasus ini, dan Anda dapat mengunduh .STL file dari Hal yang sama. Jangan khawatir jika Anda tidak memiliki printer 3D, Anda masih bisa membuatnya. Banyak situs web yang menyediakan layanan pencetakan 3D, seperti Hub 3D atau Shapeways. Atau, ini adalah kasus yang sangat sederhana, Anda bisa membuat sendiri dari plastik, kayu lapis, kayu, atau bahkan kardus. Jika Anda ingin benar-benar berhemat, Cherry MX menjual sakelar tester / sampler aktif Amazon (UK). Anda membutuhkan 4 baut M5 x 35mm dan mur 4 M5. Anda tentu saja dapat menggantikan ini untuk alternatif yang sesuai yang Anda miliki.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switch Pro Sampler Tester Kit)Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switch Pro Sampler Tester Kit) Beli Sekarang Di Amazon $14.99

Jika Anda membuat kasing sendiri, ada satu detail penting yang perlu Anda ketahui: sakelar Cherry MX adalah push-fit ke lubang pemasangannya. Mereka membutuhkan lubang pemasangan persegi 14 x 14mm (0,551 inci), dengan pelat tidak lebih tebal dari 1,5mm (0,059 inci). Menyimpang terlalu jauh dari dimensi ini, dan sakelar Anda mungkin tidak lagi terpasang dengan benar.

Wadah Pintas
Kasing cetak 3D ada dua bagian, atas dan bawah. Dorong sakelar Cherry MX ke dalam lubang persegi:

Pintas Cherry MX Mount

Pastikan Anda memasang sakelar dengan cara yang benar. Bagian atas memiliki kata "CHERRY", dan bagian bawah memiliki sedikit takik. Masukkan 3mm LED ke slot kecil ini:

Pintasan Cherry MX LED

Anda mungkin menemukan bahwa LED terlihat paling baik dipasang “terbalik”. Ini adalah kasus untuk keycaps yang saya gunakan, dan itu tidak mempengaruhi switch sama sekali.

Anda sekarang harus memiliki sembilan sakelar dengan 9 LED. Tidak perlu merekatkan bagian-bagian ini ke dalam. Solder akan menahan LED, dan gesekan akan menahan sakelar.

Pintas Cherry MX All

Selanjutnya, pasang sekrup pada dudukan LED (biarkan LED dilepas sekarang). Anda akan selesai merakit case nanti, setelah sirkuit dibangun.

Sirkuit

Sirkuit ini dibangun di atas papan strip. Ini sangat baik untuk membangun sirkuit semi permanen, tanpa biaya papan sirkuit cetak (PCB). Ini hanya sepotong fiberglass dengan trek tembaga yang berjalan paralel dalam satu arah. Lagu-lagu ini dapat disolder, serta dipotong. Memotong trek dapat dilakukan dengan alat khusus atau mata bor kecil.

Tidak terlalu percaya diri dalam menyolder? Lihatlah proyek-proyek sederhana ini Pelajari Cara Menyolder, dengan Tip dan Proyek Sederhana IniApakah Anda sedikit terintimidasi oleh pemikiran besi panas dan logam cair? Jika Anda ingin mulai bekerja dengan elektronik, Anda harus belajar menyolder. Biarkan kami membantu. Baca lebih lajut pertama.

Berikut tata letak stripboard (tidak termasuk trailing lead):

Arduino Shortcut Stripboard

Pastikan Anda memotong jejak di bawah resistor dan Arduino. Karena sangat sulit untuk membaca sirkuit papan strip, inilah versi papan tempat memotong roti:

Breadboard Shortcut Arduino

Sangat pas untuk memeras semua komponen ke dalam ruang sekecil itu. Potong sudut-sudut papan tulis Anda sebagai berikut:

Stripboard Pintas

Ini harus pas dengan bagian bawah kasing:

Stripboard Pintas dalam Kotak

Pastikan trek berjalan secara vertikal.

Hubungkan anoda (kaki panjang, positif) dari LED ke resistor 200 ohm dan kemudian ke +5 V. Hubungkan Katoda (kaki pendek, negatif) ke tanah. Tutupi kaki dengan panas menyusut sleeving dan kemudian dorong ke dudukan LED. Tidak perlu lem apa pun, namun dudukan LED Anda mungkin bukan push-fit, jadi Anda mungkin perlu menyesuaikan instruksi ini.

LED Status Pintas

Anda mungkin ingin menggunakan LED dua warna di sini - ini akan memungkinkan Anda untuk mengatur dua atau lebih bank switch, dengan LED status berwarna berbeda untuk masing-masing bank.

Sekarang saatnya untuk menyolder semua LED untuk kartu kunci. Ini digunakan semata-mata untuk membuat kunci menyala, sehingga Anda dapat melewati mereka jika Anda ingin, dan mereka tidak harus terhubung ke pin digital, hanya kekuatan. Hubungkan semua anoda bersama-sama, dan semua katoda bersama. Belajarlah dari kesalahan saya - jauh lebih mudah untuk melakukan ini sebelum memasang sakelar! Hubungkan anoda ke +5 V melalui resistor 220 ohm, dan katoda ke ground. LED ini dihubungkan secara paralel. Inilah sirkuit hanya untuk LED ini:

Sirkuit LED Tombol Pintas

Gunakan sepotong kecil tabung heat shrink untuk menutup koneksi antara LED dan Arduino:

Heatshrink LED pintasan

Nyalakan Arduino untuk menguji semua pekerjaan LED. Anda tidak perlu mengunggah kode apa pun. Jika ada LED yang tidak berfungsi, buka dan periksa ulang kabel Anda.

Pengujian LED Shortcut

Sekarang pasang sakelar. Ini harus dihubungkan melalui resistor 10k, jika tidak Arduino akan mati. Ini disebut mati pendek - +5 V langsung menuju ke tanah, dan semua yang tersisa dari Arduino Anda akan menjadi kepulan asap (percayalah, saya sudah membunuh satu sehingga Anda tidak perlu melakukannya). Inilah sirkuit untuk satu sakelar:

Sirkuit Jalan Pintas Arduino

Sirkuit ini sama untuk semua sembilan sakelar. Sambungkan sakelar ke pin digital dua hingga sepuluh, masing-masing dengan resistor 10K sendiri ke ground. Hati-hati menyolder sakelar Cherry MX, mereka bisa sedikit rapuh, saya punya beberapa pin pada saya. Anda mungkin ingin menyolder ini secara langsung ke beberapa stripboard lagi, namun trailing lead masih cocok.

Itu saja untuk kabel. Anda mungkin ingin memasang soket betina tipe B USB, namun pin kecil pada pin tersebut seringkali sulit disolder. Jika Anda tidak ingin melakukan ini, jangan khawatir. Konektor Micro USB pada Arduino dengan rapi sesuai dengan lubang pada sasis. Jika Anda agak bingung tentang berbagai jenis USB, pastikan Anda mengerti perbedaannya Memahami Jenis Kabel USB dan Yang DigunakanMengapa ada begitu banyak jenis kabel USB? Pelajari perbedaan antara tipe konektor USB dan cara membeli kabel terbaik. Baca lebih lajut .

Akhirnya, periksa kembali sirkuit Anda sudah benar. Pendek dapat dengan mudah menghancurkan Arduino, dan itu bisa mudah dilakukan dengan menggunakan papan tulis.

Kode

Sekarang tes rangkaian sudah benar. Sebaiknya lakukan ini sebelum melanjutkan, jadi Anda dapat memperbaiki masalah apa pun saat Anda bisa. Unggah kode tes ini (jangan lupa untuk memilih board dan port yang benar dari Alat > Naik dan Alat > Pelabuhan menu):

tombol const int [] = {2,3,4,5,6,7,8,9,10}; // array semua pin tombol batal setup () {// masukkan kode setup Anda di sini, untuk dijalankan sekali: Serial.begin (9600); pinMode (2, INPUT); pinMode (3, INPUT); pinMode (4, INPUT); pinMode (5, INPUT); pinMode (6, INPUT); pinMode (7, INPUT); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); } void loop () {// masukkan kode utama Anda di sini, untuk dijalankan berulang kali: for (int i = 2; saya <11; ++ i) {if (digitalRead (i) == HIGH) {// software de-bounce meningkatkan delay akurasi (10); if (digitalRead (i) == HIGH) {// centang sakelar Serial.print ("input"); Serial.println (i); keterlambatan (250); } } } }

Anda mungkin perlu mengganti pin jika telah memodifikasi sirkuit.

Setelah diunggah, buka monitor serial (kanan atas > Monitor Seri). Satu per satu, tekan setiap tombol. Anda akan melihat monitor serial menunjukkan jumlah tombol yang Anda tekan. Sama seperti dengan LED, jika komputer Anda mengeluh tentang menggambar arus terlalu banyak, atau LED padam ketika Anda menekan tombol, lepaskan segera! Anda memiliki hubungan pendek di suatu tempat di sirkuit, periksa apakah sirkuitnya benar dan tidak ada hubungan pendek di antara keduanya.

Jika semuanya berfungsi, silakan dan letakkan sirkuit di dalam kotak. Anda mungkin ingin menggunakan setetes lem untuk menahan sirkuit di tempatnya (meskipun kabel menahan tambang dengan baik). Baut tutupnya juga.

Untuk membuat Arduino tampak seperti keyboard sangat sederhana. Jika Anda menggunakan Nano atau UNO, Anda akan memprogram ulang penggunaan Arduino Anda Pembaruan Firmware Perangkat (DFU). Ini biasanya digunakan untuk mem-flash firmware baru ke Arduino. Anda akan menggunakannya untuk mem-flash Arduino dengan firmware baru yang akan membuatnya berfungsi seperti keyboard. Ini tidak akan dibahas di sini, karena ini adalah tugas yang cukup kompleks. Itu Situs web Arduino memiliki tutorial yang bagus untuk ini.

Arduino Pro Micro membuat langkah ini sangat mudah. Logika yang diperlukan untuk mengemulasi keyboard USB sudah ada di prosesor, jadi semudah menulis beberapa kode!

Pertama, atur kunci:

kunci int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

Ini adalah array yang berisi semua pin yang terhubung dengan tombol. Jika Anda menggunakan tombol lebih banyak atau lebih sedikit atau menggunakan pin berbeda, ubah nilainya di sini.

Array adalah kumpulan dari hal-hal yang berpikiran sama. Komputer dapat mengoptimalkan kode Anda untuk mengaksesnya dengan cepat, dan mereka mempercepat proses penulisan kode.

Sekarang inisialisasi semua pin sebagai input:

membatalkan pengaturan () {// masukkan kode pengaturan Anda di sini, untuk dijalankan sekali: Keyboard.begin (); // atur keyboard untuk (int i = 2; saya <11; ++ i) {// initilize pin pinMode (i, INPUT); } }

Ini memberitahu Arduino bahwa semua pin dalam array adalah input. Loop digunakan untuk melakukan ini, jadi daripada menulis pinMode (2, INPUT) sembilan kali, Anda hanya perlu menulisnya sekali. Ini juga panggilan Keyboard.begin. Ini mengatur fungsi yang tertanam di perpustakaan Arduino, yang dirancang khusus untuk meniru keyboard.

Buat metode yang disebut baca Tombol:

boolean readButton (int pin) {// periksa dan lepaskan tombol jika (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} return false; }

Ini membutuhkan pin, dan memeriksa apakah pin sudah ditekan atau belum. Itu hanya kembali BENAR atau SALAH. Ini juga mengandung beberapa perangkat lunak melonggarkan - penundaan sederhana dan kemudian memeriksa kembali saklar memastikan bahwa tombol benar-benar ditekan.

Sekarang satu lagi untuk loop disebut di dalam membatalkan loop ():

void loop () {// masukkan kode utama Anda di sini, untuk dijalankan berulang kali: for (int i = 2; saya <11; ++ i) {// periksa tombol if (readButton (i)) {doAction (i); } } }

Sekali lagi, ini membahas setiap elemen dalam array dan memeriksa apakah elemen tersebut telah ditekan. Ini melakukan ini dengan disebut baca Tombol metode yang Anda buat sebelumnya. Jika tombol telah ditekan, maka nomor pin itu diteruskan ke metode lain yang disebut doAction:

membatalkan doAction (pin int) {// melakukan tugas beralih (pin) {case 2: Keyboard.println ("drive.google.com"); istirahat; kasus 3: Keyboard.println ("makeuseof.com"); istirahat; kasus 4: // CMD + T (tab baru, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); keterlambatan (100); Keyboard.releaseAll (); istirahat; kasus 5: // tugas Anda di sini putus; kasus 6: // tugas Anda di sini putus; kasus 7: // tugas Anda di sini putus; kasus 8: // tugas Anda di sini putus; kasus 9: // tugas Anda di sini putus; } }

Ini memeriksa nomor pin menggunakan a beralih pernyataan. Ganti pernyataan (terkadang disebut beralih kasus) mirip dengan jika pernyataan, namun mereka berguna untuk memeriksa bahwa satu hal (dalam hal ini nomor pin) sama dengan salah satu dari beberapa hasil yang berbeda. Pada dasarnya, mereka jauh lebih cepat untuk dihitung.

Komponen utama ada di dalam pernyataan switch ini. Keyboard.println menulis teks ke komputer seolah Anda secara fisik mengetik setiap kunci. Keyboard.press menekan dan menahan satu tombol. Jangan lupa untuk melepaskannya menggunakan Keyboard.releaseAll setelah penundaan singkat!

Ini kode lengkapnya:

kunci int [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; membatalkan pengaturan () {// masukkan kode pengaturan Anda di sini, untuk dijalankan sekali: Keyboard.begin (); // atur keyboard untuk (int i = 2; saya <11; ++ i) {// initilize pin pinMode (i, INPUT); } } void loop () {// masukkan kode utama Anda di sini, untuk dijalankan berulang kali: for (int i = 2; saya <11; ++ i) {// periksa tombol if (readButton (i)) {doAction (i); } } } boolean readButton (int pin) {// periksa dan lepaskan tombol jika (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; }} return false; } membatalkan doAction (pin int) {// melakukan tugas beralih (pin) {case 2: Keyboard.println ("drive.google.com"); istirahat; kasus 3: Keyboard.println ("makeuseof.com"); istirahat; kasus 4: // CMD + T (tab baru, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); keterlambatan (100); Keyboard.releaseAll (); istirahat; kasus 5: // tugas Anda di sini putus; kasus 6: // tugas Anda di sini putus; kasus 7: // tugas Anda di sini putus; kasus 8: // tugas Anda di sini putus; kasus 9: // tugas Anda di sini putus; } }

Selain semua tombol angka dan huruf, Arduino dapat menekan sebagian besar tombol khusus yang disebut Pengubah Keyboard. Ini sangat berguna untuk menekan pintasan keyboard. Situs web Arduino memiliki daftar bermanfaat.

Sekarang yang tersisa adalah membuat beberapa pintasan. Anda bisa memetakan ini ke cara pintas yang ada, seperti Alt + F4 (tutup program di Windows) atau Cmd + Q (keluar dari program macOS). Atau, pastikan Anda membaca kami panduan cara pintas keyboard utama Windows Keyboard Shortcuts 101: The Ultimate GuidePintasan keyboard dapat menghemat waktu Anda. Kuasai pintasan keyboard Windows universal, trik keyboard untuk program tertentu, dan beberapa tips lainnya untuk mempercepat pekerjaan Anda. Baca lebih lajut , cara membuat cara pintas Windows Cara Membuat Pintasan Desktop Windows dengan Cara MudahPintasan desktop pintar dapat menghemat pengelompokan menu dan folder yang tidak ada artinya. Kami menunjukkan kepada Anda cara cepat & mudah untuk membuatnya. Baca lebih lajut , dan setiap pintasan Chromebook Setiap Pintasan Keyboard Chromebook yang Pernah Anda ButuhkanKuasai Chrome OS dengan daftar ini setiap pintasan keyboard Chromebook penting yang Anda perlukan. Baca lebih lajut untuk mulai membuat pintasan Anda sendiri.

Sudahkah Anda membuat kotak pintas sendiri? Beri tahu saya di komentar, saya ingin melihat beberapa gambar!

Joe adalah lulusan Ilmu Komputer dari University of Lincoln, UK. Dia adalah pengembang perangkat lunak profesional, dan ketika dia tidak terbang drone atau menulis musik, dia sering ditemukan mengambil foto atau memproduksi video.