Buat Tombol Pintasan Kustom Anda Sendiri Dengan Arduino

Buat Tombol Pintasan Kustom Anda Sendiri Dengan Arduino

Arduino yang sederhana dapat melakukan banyak hal, tetapi tahukah Anda bahwa Arduino dapat meniru keyboard USB? Anda dapat menggabungkan pintasan keyboard panjang yang sulit diingat menjadi satu tombol pintasan khusus, dengan rangkaian sederhana ini. Berikut hasil akhirnya:





Belum pernah menggunakan Arduino sebelumnya? Lihat kami panduan memulai pertama.





Apa yang kau butuhkan

Inilah yang Anda butuhkan untuk membuat proyek ini:





  • 1 x Arduino Pro Mikro.
  • Tombol sesaat atau tombol keyboard.
  • Resistor 10K ohm.
  • Berbagai macam kabel hookup.
  • 1x220 ohm resistor.
  • 1x5mm (0,197 inci) LED.
  • 1x5mm pemegang LED.

Anda akan membutuhkan Arduino yang sangat spesifik untuk proyek ini. Saya menggunakan Pro Mikro , karena ukurannya yang sangat kecil dan murah, Anda memerlukan Arduino yang memiliki USB-Serial yang terpasang di dalam prosesor (Atmega32u4). Dimungkinkan untuk membangun proyek ini dengan Arduino lain, seperti UNO atau Nano, namun membutuhkan banyak kerja keras untuk mem-flash ulang bios dan mengutak-atik agar semuanya berfungsi. 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 Baris pin Header Ganti dengan ATmega328 Pro Mini untuk Arduino BELI SEKARANG DI AMAZON

Anda memerlukan satu tombol sesaat, satu resistor 10K ohm, dan kabel penghubung yang sesuai untuk setiap tombol yang ingin Anda gunakan. Saya menggunakan sakelar keyboard mekanis Cherry MX untuk tombol pintasan yang sebenarnya, meskipun setiap sakelar akan berfungsi, asalkan itu sesaat dan tidak mengunci.



Anda mungkin memerlukan beberapa item lain tergantung pada bagaimana Anda membangun ini. Jika Anda ingin membuat prototipe, Anda memerlukan papan tempat memotong roti tanpa solder . It's worth menghabiskan uang yang baik - mereka kadang-kadang bisa sangat tidak dapat diandalkan. Jika Anda ingin mengemas ini, Anda akan ingin membeli beberapa stripboard.

Bangun Rencana

Inilah cara kerjanya. Arduino akan diprogram untuk bertindak seperti keyboard USB - sejauh menyangkut komputer Anda. Beberapa tombol yang terhubung ke Arduino akan mengirimkan perintah kunci ke komputer Anda. Anda hanya akan menekan satu tombol, tetapi komputer Anda akan mengira Anda telah menekan Semuanya > F4 , Misalnya.





Memilih Sakelar

Ada beberapa variasi sakelar seri MX. Situs ini memberikan pengantar yang sangat baik, namun pada dasarnya mereka bermuara pada kebisingan dan tekanan. Beberapa model memerlukan lebih banyak kekuatan untuk ditekan, dan beberapa model mengeluarkan suara 'klik' mekanis saat ditekan. Saya telah menggunakan Cherry MX Browns, yang tidak mengeluarkan suara saat ditekan. Semuanya memiliki dimensi yang sama, jadi pilih model apa pun yang Anda suka (atau padu-padankan) tanpa khawatir.

Anda juga perlu membeli beberapa tutup kunci, tentu saja, dan ada banyak desain khusus di luar sana untuk dipilih -- kami membeli dari KeyboardCo di Inggris





Kasus

Saya telah mencetak kasing ini 3D, dan Anda dapat mengunduhnya .STL file dari alam semesta . Jangan khawatir jika Anda tidak memiliki printer 3D, Anda masih dapat 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, perspex, kayu, atau bahkan karton. Kalau mau hemat banget, Cherry MX jual switch tester/sampler set on Amazon ( Inggris ). Anda membutuhkan 4 baut M5 x 35mm dan 4 mur M5. Anda tentu saja dapat mengganti ini dengan alternatif yang sesuai yang Anda miliki.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switch Pro Sampler Tester Kit) BELI SEKARANG DI AMAZON

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

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

Pastikan Anda memasang sakelar dengan cara yang benar. Di bagian atas ada tulisan 'CHERRY', dan di bagian bawah ada lekukan kecil. Masukkan LED 3mm ke dalam slot kecil ini:

Anda mungkin menemukan bahwa LED terlihat paling baik dipasang 'terbalik'. Ini adalah kasus untuk keycaps yang saya gunakan, dan itu tidak memengaruhi sakelar sama sekali.

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

Selanjutnya, pasang dudukan LED (biarkan LED dilepas untuk saat ini). Anda akan menyelesaikan perakitan kasing nanti, setelah sirkuit dibuat.

Sirkuit

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

Tidak terlalu percaya diri dalam menyolder? Lihatlah proyek-proyek sederhana ini terlebih dahulu.

Berikut tata letak stripboard (tidak termasuk trailing lead):

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

Sangat pas untuk memeras semua komponen ke dalam ruang yang begitu kecil. Potong sudut stripboard Anda sebagai berikut:

Ini harus pas dengan rapi ke bagian bawah kasing:

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 selongsong panas menyusut lalu dorong ke dudukan LED. Tidak perlu lem apa pun, namun dudukan LED Anda mungkin tidak pas, jadi Anda mungkin perlu menyesuaikan petunjuk ini.

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

Sekarang saatnya untuk menyolder semua LED untuk keycaps. Ini digunakan semata-mata untuk membuat tombol bersinar, sehingga Anda dapat melewatinya jika Anda mau, dan tombol tersebut tidak harus terhubung ke pin digital, hanya daya. Hubungkan semua anoda bersama-sama, dan semua katoda bersama-sama. Belajarlah dari kesalahan saya -- jauh lebih mudah untuk melakukan ini sebelum memasang kabel pada sakelar! Hubungkan anoda ke +5 V melalui resistor 220 ohm, dan katoda ke ground. LED ini disambungkan secara paralel. Berikut rangkaian hanya untuk LED ini:

Gunakan sepotong kecil tabung panas menyusut untuk menutupi koneksi antara LED dan Arduino:

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

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

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

Itu saja untuk kabelnya. Anda mungkin ingin memasang soket perempuan USB tipe B, namun pin kecil di atasnya seringkali cukup sulit untuk disolder. Jika Anda tidak ingin melakukan ini, jangan khawatir. Konektor Micro USB pada Arduino dengan rapi sesuai dengan lubang di sasis. Jika Anda agak bingung tentang jenis USB yang berbeda, pastikan Anda memahami perbedaan .

Akhirnya, periksa kembali sirkuit Anda sudah benar. Short dapat dengan mudah menghancurkan Arduino, dan dapat dengan mudah dilakukan dengan menggunakan stripboard.

Kode

Sekarang uji sirkuit sudah benar. Sebaiknya lakukan ini sebelum melanjutkan, sehingga Anda dapat memperbaiki masalah apa pun sekarang selagi bisa. Unggah kode tes ini (jangan lupa untuk memilih papan dan port yang benar dari Peralatan > Papan dan Peralatan > Pelabuhan menu):

const int buttons[] = {2,3,4,5,6,7,8,9,10}; // array of all button pins
void setup() {
// put your setup code here, to run once:
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() {
// put your main code here, to run repeatedly:
for(int i = 2; i <11; ++i) {
if(digitalRead(i) == HIGH) {
// software de-bounce improves accuracy
delay(10);
if(digitalRead(i) == HIGH) {
// check switches
Serial.print ('input');
Serial.println(i);
delay(250);
}
}
}
}

Anda mungkin perlu mengganti pin jika Anda telah memodifikasi sirkuit.

Setelah diunggah, buka serial monitor ( kanan atas > Pemantau Berseri ). Satu per satu, tekan setiap tombol. Anda akan melihat monitor serial menunjukkan nomor tombol yang Anda tekan. Sama seperti dengan LED, jika komputer Anda mengeluh tentang menggambar terlalu banyak arus, atau LED padam saat Anda menekan tombol, segera putuskan sambungan! Anda mengalami korsleting di suatu tempat di sirkuit, periksa kembali apakah sirkuit sudah benar dan tidak ada korslet di antara koneksi.

Jika semuanya berfungsi, lanjutkan dan masukkan sirkuit ke dalam kotak. Anda mungkin ingin menggunakan setetes lem untuk menahan sirkuit di tempatnya (walaupun kabelnya menahan tambang dengan baik). Pasang tutupnya juga.

Untuk membuat Arduino tampak seperti keyboard sangat sederhana. Jika Anda menggunakan Nano atau UNO, Anda akan memprogram ulang Arduino Anda menggunakan 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 rumit. NS 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 terpasang di dalam prosesor, jadi semudah menulis beberapa kode!

Pertama, atur kuncinya:

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

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

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

Sekarang inisialisasi semua pin sebagai input:

void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}

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

Buat metode yang disebut bacaTombol :

boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}

Ini mengambil pin, dan memeriksa apakah sudah ditekan atau tidak. Itu hanya kembali BENAR atau SALAH . Ini juga mengandung beberapa perangkat lunak memantul -- penundaan sederhana dan kemudian memeriksa kembali sakelar memastikan bahwa tombol benar-benar ditekan.

Sekarang loop for lainnya dipanggil di dalam lingkaran kosong() :

void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}

Sekali lagi, ini membahas setiap elemen dalam array dan memeriksa apakah telah ditekan. Ia melakukan ini dengan disebut bacaTombol metode yang Anda buat sebelumnya. Jika tombol telah ditekan, nomor pin itu akan diteruskan ke metode lain yang disebut lakukan tindakan :

void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

Ini memeriksa nomor pin menggunakan a mengalihkan penyataan. Ganti pernyataan (kadang-kadang 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-olah Anda mengetik setiap tombol secara fisik. Keyboard.tekan menekan dan menahan satu tombol. Jangan lupa untuk melepaskannya menggunakan Keyboard.releaseAll setelah penundaan singkat!

beberapa item di tempat sampah tidak dapat dihapus karena perlindungan integritas sistem.

Berikut kode lengkapnya:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}
boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}
void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

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 membantu .

Sekarang yang tersisa hanyalah membuat beberapa pintasan. Anda dapat memetakan ini ke pintasan yang ada, seperti Semuanya + F4 (tutup program di Windows) atau cmd + Q (keluar dari program macOS). Atau, pastikan Anda membaca kami panduan pintasan keyboard terbaik , cara membuat pintasan Windows , dan setiap pintasan Chromebook untuk mulai membuat pintasan Anda sendiri.

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

Kami harap Anda menyukai item yang kami rekomendasikan dan diskusikan! MUO memiliki kemitraan afiliasi dan sponsor, jadi kami menerima bagian dari pendapatan dari beberapa pembelian Anda. Ini tidak akan memengaruhi harga yang Anda bayar dan membantu kami menawarkan rekomendasi produk terbaik.

Membagikan Membagikan Menciak Surel Inilah Mengapa FBI Mengeluarkan Peringatan untuk Hive Ransomware

FBI mengeluarkan peringatan tentang jenis ransomware yang sangat jahat. Inilah mengapa Anda harus sangat waspada terhadap ransomware Hive.

Baca Selanjutnya
Topik-topik yang berkaitan
  • buatan sendiri
  • Papan ketik
  • Pintasan Keyboard
  • Arduino
Tentang Penulis Joe Coburn(136 Artikel Diterbitkan)

Joe adalah lulusan Ilmu Komputer dari University of Lincoln, Inggris. Dia adalah pengembang perangkat lunak profesional, dan ketika dia tidak menerbangkan drone atau menulis musik, dia sering terlihat sedang mengambil foto atau membuat video.

More From Joe Coburn

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Klik di sini untuk berlangganan