Buat Butang Pintasan Tersuai Anda Sendiri Dengan Arduino

Buat Butang Pintasan Tersuai Anda Sendiri Dengan Arduino

Arduino yang rendah hati dapat melakukan banyak perkara, tetapi tahukah anda ia dapat meniru papan kekunci USB? Anda boleh menggabungkan pintasan papan kekunci panjang yang sukar diingat menjadi satu kekunci pintas tersuai, dengan litar ringkas ini. Inilah hasil akhirnya:





Tidak pernah menggunakan Arduino sebelum ini? Lihat kami panduan memulakan pertama.





Apa yang kamu perlu

Inilah yang anda perlukan untuk membuat projek ini:





  • 1 x Arduino Pro Mikro.
  • Butang sesaat atau butang papan kekunci.
  • Perintang 10K ohm.
  • Kabel penyambung pelbagai.
  • Perintang 1 x 220 ohm.
  • LED 1 x 5mm (0.197 inci).
  • Pemegang LED 1 x 5mm.

Anda memerlukan Arduino yang sangat spesifik untuk projek ini. Saya menggunakan Pro Mikro , kerana ia sangat kecil dan murah, anda memerlukan Arduino yang mempunyai USB-Serial yang terpasang pada pemproses (Atmega32u4). Adalah mungkin untuk membina projek ini dengan Arduino lain, seperti UNO atau Nano, namun ia memerlukan banyak kerja keras untuk mengembalikan semula bios dan bermain-main untuk menyelesaikan sesuatu. Klon model Arduino lain biasanya tidak berfungsi sama sekali, tetapi klon Pro Micro juga baik.

Papan Modul OSOYOO Pro Micro ATmega32U4 5V / 16MHz dengan Header 2 Row pin Ganti dengan ATmega328 Pro Mini untuk Arduino BELI SEKARANG DI AMAZON

Anda memerlukan satu butang sesaat, satu perintang 10K ohm, dan wayar penyambung yang sesuai untuk setiap butang yang ingin anda gunakan. Saya menggunakan suis papan kekunci mekanikal Cherry MX untuk butang pintasan sebenar ada suis akan berlaku, dengan syarat tidak sesaat dan tidak mengikat.



Anda mungkin memerlukan beberapa item lain bergantung pada bagaimana anda membuatnya. Sekiranya anda ingin membuat prototaip, anda memerlukan papan roti tanpa pateri . Perlu menghabiskan wang dengan baik - kadangkala mereka sangat tidak boleh dipercayai. Sekiranya anda ingin memasukkannya ke atas, anda boleh membeli sebilangan papan pelekat.

Pelan Binaan

Begini cara ini berfungsi. Arduino akan diprogramkan untuk bertindak seperti papan kekunci USB - sejauh mana komputer anda berada. Beberapa butang yang disambungkan ke Arduino akan menghantar arahan utama ke komputer anda. Anda hanya akan menekan satu butang, tetapi komputer anda akan menganggap anda telah menekan Semuanya > F4 , sebagai contoh.





Memilih Suis

Terdapat beberapa variasi suis siri MX. Laman web ini memberikan pengenalan yang sangat baik, namun pada dasarnya mereka mengalami kebisingan dan tekanan. Beberapa model memerlukan kekuatan yang lebih kuat untuk menekan, dan beberapa model mengeluarkan bunyi 'klik' mekanikal ketika ditekan. Saya telah menggunakan Cherry MX Browns, yang tidak membuat bising semasa ditekan. Semuanya mempunyai dimensi yang sama, jadi pilihlah model yang anda suka (atau campurkan dan padankan) tanpa perlu risau.

Anda juga perlu membeli beberapa topi kunci, tentu saja, dan ada banyak dunia reka bentuk tersuai di luar sana untuk dipilih - kami membeli dari KeyboardCo di U.K.





Kes itu

Saya telah mencetak 3D kes ini, dan anda boleh memuat turunnya .STL fail dari Thingiverse . Jangan risau jika anda tidak memiliki pencetak 3D, anda masih boleh membuatnya. Banyak laman web menyediakan perkhidmatan percetakan 3D, seperti Hab 3D atau Shapeways . Sebagai alternatif, ini adalah kes yang sangat mudah, anda boleh membuat sendiri dari plasticard, perspex, kayu, atau kadbod. Sekiranya anda ingin benar-benar berjimat cermat, Cherry MX menjual alat penguji suis / sampler yang dihidupkan Amazon ( UK ). Anda memerlukan baut 4 M5 x 35mm dan mur 4 M5. Anda tentu saja boleh menggantikannya dengan alternatif yang sesuai yang anda ada.

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

Sekiranya anda membuat kes anda sendiri, ada satu perincian penting yang perlu anda ketahui: Suis Cherry MX adalah tekanan masuk ke lubang pemasangannya. Mereka memerlukan lubang pemasangan persegi 14 x 14mm (0,551 inci), dengan plat tidak lebih tebal daripada 1,5mm (0,059 inci). Jauh terlalu jauh dari dimensi ini, dan suis anda mungkin tidak lagi dipasang dengan betul.

Sarung bercetak 3D terdapat dalam dua bahagian, bahagian atas dan bawah. Tekan suis Cherry MX ke lubang persegi:

Pastikan anda memasang suis dengan cara yang betul. Bahagian atas mempunyai perkataan 'CHERRY', dan bahagian bawah mempunyai sedikit kedudukan. Masukkan LED 3mm ke dalam slot kecil ini:

Anda mungkin mendapati bahawa LED kelihatan paling baik dipasang 'terbalik'. Ini berlaku untuk papan kekunci yang saya gunakan, dan sama sekali tidak mempengaruhi suis.

Anda kini harus mempunyai sembilan suis dengan 9 LED. Tidak perlu merekatkan komponen ini. Solder akan menahan LED, dan geseran akan menahan suis.

Seterusnya, masukkan skru LED (biarkan LED dilepaskan buat masa ini). Anda akan selesai memasang casing di kemudian hari, setelah litar dibina.

Litar

Litar ini dibina di atas papan jalur. Ini sangat baik untuk membina litar separa kekal, tanpa kos papan litar cetak (PCB). Ia hanyalah sekeping kaca gentian dengan jalur tembaga yang berjalan selari dalam satu arah. Trek ini dapat disolder ke, dan juga dipotong. Memotong trek boleh dilakukan dengan alat khas atau gerudi kecil.

Tidak terlalu yakin dengan pematerian? Lihat projek mudah ini terlebih dahulu.

Berikut adalah susun atur papan tulis (tidak termasuk petunjuk arah belakang):

Pastikan anda memotong jejak di bawah perintang dan Arduino. Kerana sangat sukar untuk membaca litar papan jalur, berikut adalah versi papan roti:

Sangat sesuai untuk memasukkan semua komponen ke dalam ruang yang kecil. Potong sudut papan lalat anda seperti berikut:

Ini harus dipasang dengan kemas ke bahagian bawah casing:

Pastikan trek berjalan secara menegak.

Sambungkan anod ( kaki panjang, positif ) LED ke perintang 200 ohm dan kemudian ke +5 V. Sambungkan Kod ( kaki pendek, negatif ) ke tanah. Tutup kaki dengan lengan penyusut panas dan kemudian tekan ke dalam pemegang LED. Tidak perlu ada lem, namun pemegang LED anda mungkin tidak sesuai, jadi anda mungkin perlu menyesuaikan arahan ini.

Anda mungkin ingin menggunakan LED dua warna di sini - ini akan membolehkan anda menyediakan dua atau lebih bank suis, dengan LED status berwarna yang berbeza untuk setiap bank.

Kini tiba masanya untuk menyolder semua LED untuk papan kekunci. Ini digunakan semata-mata untuk membuat kunci menyala, jadi anda boleh melewatkannya jika anda mahu, dan mereka tidak perlu disambungkan ke pin digital, hanya dengan kuasa. Sambungkan semua anod bersama-sama, dan semua katod bersama-sama. Belajar dari kesilapan saya - jauh lebih mudah untuk melakukan ini sebelum memasang suis! Sambungkan anod ke +5 V walaupun perintang 220 ohm, dan katod ke tanah. LED ini dikabelkan secara selari. Inilah litar hanya untuk LED ini:

Gunakan sekeping kecil tiub pengecutan panas untuk menutup hubungan antara LED dan Arduino:

Nyalakan Arduino untuk menguji semua LED berfungsi. Anda tidak perlu memuat naik kod apa pun. Sekiranya LED tidak berfungsi, pergi dan periksa semula pendawaian anda.

Sekarang pasangkan suis. Ini mesti disambungkan melalui perintang 10k, jika tidak, Arduino akan mati. Ini disebut jalan pintas - +5 V langsung masuk ke tanah, dan semua sisa Arduino anda akan menjadi kepulan asap (percayalah, saya sudah membunuh satu sehingga anda tidak perlu). Inilah litar untuk satu suis:

Litar ini sama untuk semua sembilan suis. Sambungkan suis ke pin digital dua hingga sepuluh, masing-masing dengan perintang 10K mereka sendiri ke tanah. Berhati-hati dengan menyisipkan suis Cherry MX, ia boleh menjadi rapuh, saya telah mematahkan beberapa pin. Anda mungkin mahu memasangkannya terus ke papan lorong yang lebih banyak, namun petunjuk akhir masih sesuai.

Itu sahaja untuk pendawaian. Anda mungkin ingin memasang soket wanita jenis B USB, namun pin kecil pada mereka sering sukar disolder. Sekiranya anda tidak mahu melakukan ini, jangan risau. Penyambung Mikro USB di Arduino dengan kemas memasang lubang di casis. Sekiranya anda agak keliru dengan pelbagai jenis USB, pastikan anda memahami perbezaannya .

Akhirnya, periksa litar anda betul. Pendek dengan mudah boleh menghancurkan Arduino, dan mudah dilakukan dengan menggunakan papan jalur.

Kod tersebut

Sekarang uji litar betul. Sebaiknya lakukan ini sebelum meneruskannya, jadi anda boleh menyelesaikan sebarang masalah sekarang selagi boleh. Muat naik kod ujian ini (jangan lupa untuk memilih papan dan port yang betul dari Alat > Papan dan Alat > 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 menukar pin sekiranya anda telah mengubah suai litar.

Setelah dimuat naik, buka monitor bersiri ( kanan atas > Monitor Bersiri ). Satu persatu, tekan setiap butang. Anda harus melihat monitor bersiri menunjukkan jumlah butang yang anda tekan. Sama seperti LED, jika komputer anda mengeluh terlalu banyak arus, atau LED padam semasa anda menekan butang, putuskan segera! Anda mempunyai jalan pintas di suatu tempat di litar, periksa litar yang betul dan tidak ada jarak pendek antara sambungan.

Sekiranya semuanya berfungsi, teruskan dan masukkan litar ke dalam kotak. Anda mungkin mahu menggunakan sebatan gam untuk menahan litar di tempatnya (walaupun wayar menahan tambang dengan baik). Tutup penutup juga.

Untuk menjadikan Arduino menjadi papan kekunci sangat mudah. Sekiranya anda menggunakan Nano atau UNO, anda akan memprogramkan semula penggunaan Arduino anda Kemas kini Firmware Peranti (DFU). Ini biasanya digunakan untuk memancarkan firmware baru ke Arduino. Anda akan menggunakannya untuk memancarkan Arduino dengan firmware baru yang akan menjadikannya berfungsi seperti papan kekunci. Ini tidak akan dibahas di sini, kerana ini adalah tugas yang cukup rumit. The Laman web Arduino mempunyai tutorial yang baik untuk ini.

Arduino Pro Micro menjadikan langkah ini sangat mudah. Logik yang diperlukan untuk meniru papan kekunci USB sudah terpasang pada pemproses, jadi semudah menulis beberapa kod!

Pertama, sediakan kunci:

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

Ini adalah tatasusunan yang mengandungi semua pin yang disambungkan oleh butang. Sekiranya anda telah menggunakan butang lebih kurang atau menggunakan pin yang berbeza, ubah nilainya di sini.

Susunan adalah kumpulan perkara yang serupa. Komputer dapat mengoptimumkan kod anda untuk mengaksesnya dengan cepat, dan mereka mempercepat proses penulisan kod.

Sekarang mulakan 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 bahawa semua pin dalam array adalah input. Gelung digunakan untuk melakukan ini, jadi bukannya menulis pinMode (2, INPUT) sembilan kali, anda hanya perlu menulisnya sekali. Ini juga memanggil Papan kekunci. Mulakan . Ini menyiapkan fungsi yang terpasang di perpustakaan Arduino, yang dirancang khusus untuk meniru papan kekunci.

Buat kaedah yang dipanggil butang baca :

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

Ini memerlukan pin, dan memeriksa apakah sudah ditekan atau tidak. Ia hanya kembali BENAR atau SALAH . Ia juga mengandungi beberapa perisian melengkapkan - kelewatan sederhana dan kemudian memeriksa semula suis memastikan bahawa butang benar-benar ditekan.

Sekarang satu lagi gelung dipanggil ke dalam gelung 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 mengatasi setiap elemen dalam array dan memeriksa apakah ia telah ditekan. Ia melakukan ini dengan dipanggil butang baca kaedah yang anda buat sebelumnya. Sekiranya butang telah ditekan, ia akan memasukkan nombor pin itu ke kaedah lain yang dipanggil doAction :

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 nombor pin menggunakan a beralih penyataan. Tukar pernyataan (kadang-kadang dipanggil sarung suis ) serupa dengan sekiranya pernyataan, namun ia berguna untuk memeriksa bahawa satu perkara (dalam kes ini nombor pin) sama dengan salah satu daripada beberapa hasil yang berbeza. Pada asasnya, mereka lebih cepat dikira.

Komponen utama ada di dalam pernyataan suis ini. Papan kekunci.println menulis teks ke komputer seolah-olah anda secara fizikal menaip setiap kekunci. Papan kekunci.press menekan dan menahan satu kekunci. Jangan lupa melepaskannya menggunakan Papan Kekunci.ReleaseAll selepas kelewatan yang singkat!

cara mendapatkan semula mesej yang dipadam dari messenger

Inilah kod penuh:

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;
}
}

Sebagai tambahan kepada semua nombor dan kekunci huruf, Arduino dapat menekan sebahagian besar kekunci khas yang dipanggil Pengubah Papan Kekunci . Ini sangat berguna untuk menekan pintasan papan kekunci. Laman web Arduino mempunyai senarai berguna .

Sekarang yang tinggal hanyalah membuat beberapa jalan pintas. Anda dapat memetakan ini ke jalan pintas yang ada, seperti Semuanya + F4 (tutup program di Windows) atau Cmd + Q (berhenti program macOS). Sebagai alternatif, pastikan anda membaca kami panduan pintasan papan kekunci utama , cara membuat pintasan Windows, dan setiap pintasan Chromebook untuk mula membuat jalan pintas anda sendiri.

Adakah anda telah membuat kotak pintasan anda sendiri? Beritahu saya dalam komen, saya ingin melihat beberapa gambar!

Kami harap anda menyukai item yang kami cadangkan dan bincangkan! MUO mempunyai perkongsian afiliasi dan tajaan, jadi kami menerima bahagian hasil dari beberapa pembelian anda. Ini tidak akan mempengaruhi harga yang anda bayar dan membantu kami menawarkan cadangan produk terbaik.

Berkongsi Berkongsi Tweet E-mel Inilah Sebabnya FBI Mengeluarkan Amaran untuk Hive Ransomware

FBI mengeluarkan amaran mengenai jenis ransomware yang sangat jahat. Inilah sebabnya mengapa anda perlu berhati-hati terhadap Hive ransomware.

Baca Seterusnya
Topik-topik yang berkaitan
  • DIY
  • Papan Kekunci
  • Pintasan Papan Kekunci
  • Arduino
Mengenai Pengarang Joe Coburn(136 Artikel Diterbitkan)

Joe adalah lulusan Sains Komputer dari University of Lincoln, UK. Dia seorang pembangun perisian profesional, dan ketika dia tidak terbang drone atau menulis muzik, dia sering didapati mengambil gambar atau menghasilkan video.

Lagi Dari Joe Coburn

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan