Gumawa ng Iyong Sariling Mga Pasadyang Pindutan ng Shortcut Sa Isang Arduino

Gumawa ng Iyong Sariling Mga Pasadyang Pindutan ng Shortcut Sa Isang Arduino

Ang mapagpakumbabang Arduino ay maaaring gumawa ng maraming mga bagay, ngunit alam mo ba na maaari itong tularan ang isang USB keyboard? Maaari mong pagsamahin ang mga mahirap alalahanin ang mga mahahabang keyboard sa isang solong pasadyang key ng shortcut, sa simpleng circuit na ito. Narito ang huling resulta:





Hindi pa nagamit ang isang Arduino dati? Suriin ang aming panimulang gabay una





Ang iyong kailangan

Narito kung ano ang kailangan mo upang magawa ang proyektong ito:





  • 1 x Arduino Pro Micro.
  • Mga sandali na sandali o mga pindutan ng keyboard.
  • 10K ohm resistors.
  • Iba't ibang mga wire ng hookup.
  • 1 x 220 ohm resistors.
  • 1 x 5mm (0.197 pulgada) LED.
  • 1 x 5mm na may hawak ng LED.

Kakailanganin mo ang isang napaka tukoy na Arduino para sa proyektong ito. Gumagamit ako ng a Pro Micro , dahil ang mga ito ay napakaliit at murang, kailangan mo ng isang Arduino na may naka-built na USB-Serial sa processor (Atmega32u4). Posibleng itayo ang proyektong ito sa iba pang mga Arduino, tulad ng isang UNO o Nano, subalit nangangailangan ito ng maraming pagsusumikap upang muling mai-flash ang mga bios at kumilos tungkol sa upang gumana ang mga bagay. Ang mga clone ng iba pang mga modelo ng Arduino ay hindi karaniwang gumagana sa lahat, ngunit ang isang Pro Micro clone ay mabuti rin.

OSOYOO Pro Micro ATmega32U4 5V / 16MHz Module Board na may 2 Row pin Header Palitan ng ATmega328 Pro Mini para sa Arduino BUMILI NA NGAYON SA AMAZON

Kakailanganin mo ang isang pansamantalang pindutan, isang 10K ohm risistor, at naaangkop na hookup wire para sa bawat pindutan na nais mong gamitin. Gumagamit ako ng mga switch ng mekanikal na keyboard ng Cherry MX para sa aktwal na mga pindutan ng shortcut, bagaman kahit ano gagawin ng switch, pansamantala at hindi pagdidikit.



Maaaring mangailangan ka ng ilang iba pang mga item depende sa kung paano mo ito binuo. Kung nais mong i-prototype ito, kakailanganin mo ng isang solderless breadboard . Ito ay nagkakahalaga ng paggastos ng pera sa isang mahusay - maaari silang minsan ay hindi masyadong maaasahan. Kung nais mong i-box up ito, gugustuhin mong bumili ng ilang stripboard.

Bumuo ng Plano

Narito kung paano ito gagana. Ang Arduino ay mai-program upang kumilos tulad ng isang USB keyboard - kung tungkol sa iyong computer ay nababahala, ito ay. Maraming mga pindutan na konektado sa Arduino ay magpapadala ng mga pangunahing utos sa iyong computer. Isang pindutan lang ang pipindutin mo, ngunit iisipin ng iyong computer na pinindot mo Lahat ng bagay > F4 , Halimbawa.





Pagpili ng isang Lumipat

Mayroong maraming mga pagkakaiba-iba ng mga switch ng serye ng MX. Ang website na ito nagbibigay ng isang mahusay na pagpapakilala, subalit mahalagang sila ay bumaba sa ingay at presyon. Ang ilang mga modelo ay nangangailangan ng mas maraming puwersa upang pindutin, at ang ilang mga modelo ay gumagawa ng tunog na mekanikal na 'pag-click' kapag pinindot. Gumamit ako ng Cherry MX Browns, na hindi gumagawa ng ingay kapag pinindot. Pareho silang magkakaparehong sukat, kaya pumili ng anumang modelo na gusto mo (o ihalo at itugma) nang walang pag-aalala.

Kakailanganin mo ring bumili ng ilang mga pangunahing takip, syempre, at mayroong mundo ng pasadyang mga disenyo labas doon upang pumili mula - bumili kami mula sa KeyboardCo sa U.K.





Ang kaso

Na-print ko ang 3D sa kasong ito, at maaari mong i-download ang .STL mga file mula sa Thingiverse . Huwag mag-alala kung wala kang pagmamay-ari ng isang 3D printer, maaari mo pa rin itong buuin. Maraming mga website ang nagbibigay ng mga serbisyo sa pag-print ng 3D, tulad ng 3D Hubs o Mga Shapeway . Bilang kahalili, ito ay isang napaka-simpleng kaso, maaari kang gumawa ng iyong sarili sa plasticard, perspex, kahoy, o kahit karton. Kung nais mong maging talagang matipid, nagbebenta ang Cherry MX ng naka-set na switch tester / sampler Amazon ( UK ). Kakailanganin mo ang 4 M5 x 35mm bolts at 4 M5 nut. Maaari mong syempre palitan ang mga ito para sa isang angkop na kahalili na mayroon ka.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 switch Pro Sampler Tester Kit) BUMILI NA NGAYON SA AMAZON

Kung gumagawa ka ng iyong sariling kaso, mayroong isang mahalagang detalye na kailangan mong malaman: Ang mga switch ng Cherry MX ay isang push-fit sa kanilang mga mounting hole. Nangangailangan ang mga ito ng 14 x 14mm (0.551 pulgada) square mounting hole, na ang plate ay hindi mas makapal kaysa sa 1.5mm (0.059 pulgada). Masyadong malayo sa paligid ng mga sukat na ito, at ang iyong mga switch ay maaaring hindi na ma-mount nang tama.

Ang naka-print na kaso ng 3D ay nasa dalawang bahagi, sa itaas at sa ibaba. Itulak ang mga switch ng Cherry MX sa mga square hole:

Tiyaking nai-mount mo ang tamang switch. Sa itaas ay may mga salitang 'CHERRY', at sa ibaba ay may isang maliit na bingaw. Ipasok ang isang 3mm LED sa maliit na puwang na ito:

Maaari mong makita na ang mga LEDs mukhang pinakamahusay na naka-mount 'baligtad'. Ito ang kaso para sa mga keycap na ginamit ko, at hindi ito nakakaapekto sa mga switch sa lahat.

Dapat ay mayroon ka ngayong siyam na switch na may 9 LEDS. Hindi na kailangang idikit ang alinman sa mga bahaging ito. Ang solder ay hahawak sa mga LED, at ang alitan ay hahawak sa mga switch.

Susunod, tornilyo sa LED mount (iwanan ang LED na tinanggal para sa ngayon). Tapusin mo ang pag-iipon ng kaso sa paglaon, sa sandaling binuo ang circuit.

Ang Circuit

Ang circuit na ito ay itinayo sa stripboard. Mahusay ito para sa pagbuo ng mga semi-permanenteng circuit, nang walang gastos ng isang print circuit board (PCB). Ito ay simpleng piraso ng fiberglass na may mga track ng tanso na tumatakbo sa parallel sa isang direksyon. Ang mga track na ito ay maaaring solder, pati na rin ang hiwa. Ang pagputol ng isang track ay maaaring gawin sa isang espesyal na tool o isang maliit na drill bit.

Hindi masyadong tiwala sa paghihinang? Tingnan muna ang mga simpleng proyekto na ito.

Narito ang layout ng stripboard (hindi kasama ang mga sumusunod na direksyon):

Tiyaking pinuputol mo ang mga bakas sa ilalim ng resistors at ang Arduino. Dahil napakahirap basahin ang isang stripboard circuit, narito ang isang bersyon ng breadboard:

Ito ay isang masikip na magkasya upang pisilin ang lahat ng mga bahagi sa tulad ng isang maliit na puwang. Gupitin ang mga sulok ng iyong stripboard tulad ng sumusunod:

Ito ay dapat magkasya nang maayos sa ilalim ng kaso:

Tiyaking tumatakbo nang patayo ang mga track.

Ikonekta ang anode ( mahabang binti, positibo ) ng LED sa 200 ohm risistor at pagkatapos ay sa +5 V. Ikonekta ang Cathode ( maikling paa, negatibo ) sa lupa. Takpan ang mga binti ng init ng pag-urong ng manggas at pagkatapos ay itulak sa may hawak ng LED. Walang pangangailangan para sa anumang pandikit, subalit ang iyong may hawak ng LED ay maaaring hindi isang push-fit, kaya maaaring kailanganin mong iakma ang mga tagubiling ito.

Maaari mong hilinging gumamit ng isang bi-color LED dito sa halip - papayagan kang mag-setup ng dalawa o higit pang mga bangko ng switch, na may iba't ibang LED na may kulay na katayuan para sa bawat bangko.

Ngayon ay oras na upang maghinang ng lahat ng mga LED para sa mga keycaps. Ginagamit lamang ang mga ito upang mag-glow ang mga susi, kaya maaari mong laktawan ang mga ito kung nais mo, at hindi nila kailangang ikonekta sa isang digital pin, tanging kapangyarihan. Ikonekta ang lahat ng mga anode nang magkasama, at lahat ng mga cathode magkasama. Alamin mula sa aking pagkakamali - mas madaling gawin ito bago mag-wire ang mga switch! Ikonekta ang mga anode sa +5 V bagaman isang resistor na 220 ohm, at ang mga cathode sa lupa. Ang mga LED na ito ay naka-wire nang kahanay. Narito ang circuit para lamang sa mga LEDS na ito:

Gumamit ng isang maliit na piraso ng pag-urong ng tubo ng init upang masakop ang koneksyon sa pagitan ng mga LED at ng Arduino:

Palakasin ang Arduino upang subukan ang lahat ng gawa ng LEDs. Hindi mo kailangang mag-upload ng anumang code. Kung ang anumang mga LED ay hindi gumagana, pumunta at i-double check ang iyong mga kable.

Ngayon i-wire ang mga switch. Ang mga ito ay dapat na konektado sa pamamagitan ng isang 10k risistor, kung hindi man mamamatay ang Arduino. Ito ay tinatawag na isang patay na maikli - +5 V ay direktang papunta sa lupa, at ang lahat ng natitira sa iyong Arduino ay magiging isang usok (tiwala sa akin, pinatay ko na ang isa upang hindi mo na kailangan). Narito ang circuit para sa isang switch:

Ang circuit na ito ay pareho para sa lahat ng siyam na switch. Ikonekta ang mga switch sa mga digital na pin na dalawa hanggang sampu, bawat isa ay may sariling 10K risistor sa lupa. Mag-ingat sa paghihinang ng mga switch ng Cherry MX, maaari silang maging isang maliit na marupok, maraming mga pin ang pinutol sa akin. Maaaring gusto mong solder ang mga ito nang direkta sa ilan pang stripboard, subalit ang pagsunod sa mga lead ay angkop pa rin.

Iyon lang para sa mga kable. Maaari mong hilinging i-mount ang isang USB type B na babaeng socket, subalit ang maliliit na mga pin sa kanila ay madalas na mahirap na maghinang. Kung hindi mo nais na gawin ito, huwag magalala. Ang konektor ng Micro USB sa Arduino ay maayos na umaangkop sa butas sa chassis. Kung medyo naguluhan ka tungkol sa iba't ibang mga uri ng USB, tiyaking ikaw maunawaan ang mga pagkakaiba .

Panghuli, i-double check na tama ang iyong circuit. Ang isang maikli ay madaling sirain ang isang Arduino, at madali itong gawin gamit ang stripboard.

Ang Code

Ngayon subukan ang circuit ay tama. Magandang ideya na gawin ito bago magpatuloy, upang maaari mong ayusin ang anumang mga isyu ngayon habang maaari mo. I-upload ang test code na ito (huwag kalimutang piliin ang tamang board at port mula sa Mga kasangkapan > Lupon at Mga kasangkapan > Port mga 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);
}
}
}
}

Maaaring kailanganin mong baguhin ang mga pin kung binago mo ang circuit.

Kapag na-upload, buksan ang serial monitor ( itaas sa kanan > Serial Monitor ). Isa-isa, pindutin ang bawat pindutan. Dapat mong makita ang serial monitor na ipakita ang bilang ng pindutan na iyong pinindot. Tulad ng sa LED, kung ang iyong computer ay nagreklamo tungkol sa pagguhit ng sobrang kasalukuyang, o ang mga LED ay namatay kapag pinindot mo ang isang pindutan, agad na idiskonekta! Mayroon kang isang maikling saanman sa circuit, i-double check ang circuit ay tama at walang mga shorts sa pagitan ng mga koneksyon.

Kung gumagana ang lahat, sige at ilagay ang circuit sa kahon. Maaaring gusto mong gumamit ng isang dab ng pandikit upang hawakan ang circuit sa lugar (kahit na ang mga wire ay pinanghahawakang mabuti ang minahan). I-bolt din ang talukap ng mata.

Upang ipakita ang Arduino na isang keyboard ay napaka-simple. Kung gumagamit ka ng isang Nano o UNO, i-program mo ulit ang iyong Arduino gamit Update sa Firmware ng Device (DFU). Karaniwan itong ginagamit upang mag-flash ng bagong firmware sa Arduino. Gagamitin mo ito upang i-flash ang Arduino gamit ang isang bagong firmware na gagawing ito tulad ng isang keyboard. Hindi ito masasakop dito, dahil ito ay isang kumplikadong gawain. Ang Website ng Arduino may magandang tutorial para dito.

Ginagawa ng Arduino Pro Micro ang hakbang na ito napakadali. Ang lohika na kinakailangan upang tularan ang isang USB keyboard ay naka-built na sa processor, kaya't kasing simple ng pagsusulat ng ilang code!

Una, i-set up ang mga key:

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

Ito ay isang array na naglalaman ng lahat ng mga pin na konektado ang mga pindutan. Kung nagamit mo ang higit pa o mas kaunti na mga pindutan o gumamit ng iba't ibang mga pin, baguhin ang mga halaga dito.

Ang isang array ay isang nakolektang mga bagay na magkatulad ng pag-iisip. Maaaring i-optimize ng mga computer ang iyong code upang ma-access ang mga ito nang mabilis, at pinapabilis nila ang proseso ng pagsulat ng code.

Simulan ngayon ang lahat ng mga pin bilang mga 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);
}
}

Sinasabi nito sa Arduino na ang lahat ng mga pin sa array ay mga input. Ginagamit ang isang loop upang gawin ito, kaya sa halip na magsulat pinMode (2, INPUT) siyam na beses, isang beses mo lamang isulat ito. Tumatawag din ito Keyboard. simula . Nagse-set up ito ng isang pagpapaandar na naka-built in sa Arduino library, partikular na idinisenyo para sa pagtulad sa isang keyboard.

Lumikha ng isang pamamaraan na tinawag basahin ang Pindutan :

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

Tumatagal ito ng isang pin, at susuriin kung na-press ito o hindi. Ito ay simpleng nagbabalik TOTOO o MALI . Naglalaman din ito ng ilan pag-debug ng software - isang simpleng pagkaantala at pagkatapos ay muling suriin ang switch ay tinitiyak na ang pindutan ay talagang pinindot.

Ngayon isa pang para sa loop ay tinatawag sa loob walang bisa loop () :

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

Muli, napupunta ito sa bawat elemento sa array at sinusuri kung na-press ito. Ginagawa ito sa pamamagitan ng pagtawag sa basahin ang Pindutan pamamaraan na nilikha mo kanina. Kung ang isang pindutan ay pinindot, ipinapasa nito ang numero ng pin sa ibang pamamaraan na tinatawag gawinAction :

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

Sinusuri nito ang numero ng pin gamit ang a lumipat pahayag. Lumipat ng mga pahayag (kung minsan ay tinatawag switch case ) ay katulad ng an kung pahayag, subalit ang mga ito ay kapaki-pakinabang para sa pagsuri na ang isang bagay (sa kasong ito ang numero ng pin) ay katumbas ng isa sa maraming magkakaibang kinalabasan. Mahalaga, ang mga ito ay mas mabilis upang makalkula.

Ang mga pangunahing bahagi ay nasa loob ng pahayag ng switch na ito. Keyboard.println nagsusulat ng teksto sa computer na para bang pisikal mong nai-type ang bawat key. Keyboard.press pinindot at hinahawakan ang isang susi. Huwag kalimutan na pakawalan ang mga ito gamit ang Keyboard.releaseAll pagkatapos ng isang maikling pagkaantala!

kung paano gumawa ng windows 10 bootable usb

Narito ang buong code:

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

Bilang karagdagan sa lahat ng mga key ng numero at titik, maaaring pindutin ng Arduino ang karamihan sa mga espesyal na key na tinawag Mga Modifier ng Keyboard . Partikular na kapaki-pakinabang ang mga ito para sa pagpindot sa mga keyboard shortcut. Ang website ng Arduino ay mayroong kapaki-pakinabang na listahan .

Ngayon ang natitira lamang ay upang lumikha ng ilang mga mga shortcut. Maaari mo itong mai-map sa mga mayroon nang mga shortcut, tulad ng Lahat ng bagay + F4 (isara ang programa sa Windows) o Cmd + Q (tumigil sa macOS ng programa). Bilang kahalili, tiyaking nabasa mo ang aming tunay na gabay sa shortcut sa keyboard , kung paano lumikha ng mga Windows shortcut, at bawat shortcut ng Chromebook upang makapagsimula sa paggawa ng iyong sariling mga shortcut.

Nakalikha ka ba ng iyong sariling shortcut box? Ipaalam sa akin sa mga komento, nais kong makita ang ilang mga larawan!

Inaasahan namin na gusto mo ang mga item na inirerekumenda namin at talakayin! Ang MUO ay may kaakibat at naka-sponsor na pakikipagsosyo, kaya nakakatanggap kami ng bahagi ng kita mula sa ilan sa iyong mga pagbili. Hindi ito makakaapekto sa presyo na babayaran mo at makakatulong sa amin na mag-alok ng pinakamahusay na mga rekomendasyon ng produkto.

Magbahagi Magbahagi Mag-tweet Email Narito Bakit Naglabas ang FBI ng Babala para sa Hive Ransomware

Nag-isyu ang FBI ng isang babala tungkol sa isang partikular na hindi magandang pagsasama ng ransomware. Narito kung bakit kailangan mong maging maingat lalo na sa Hive ransomware.

Basahin Susunod
Mga Kaugnay na Paksa
  • DIY
  • Keyboard
  • Mga Shortcut sa Keyboard
  • Arduino
Tungkol sa May-akda Joe Coburn(136 Mga Artikulo Na-publish)

Si Joe ay nagtapos sa Computer Science mula sa University of Lincoln, UK. Siya ay isang propesyonal na developer ng software, at kapag hindi siya lumilipad ng mga drone o sumusulat ng musika, madalas siyang matagpuan na kumukuha ng mga larawan o gumawa ng mga video.

Higit pa Mula kay Joe Coburn

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe
Kategorya Diy