Készítse el saját egyéni parancsikonjait egy Arduino segítségével

Készítse el saját egyéni parancsikonjait egy Arduino segítségével

A szerény Arduino sok mindenre képes, de tudtad, hogy képes USB billentyűzetet emulálni? Ezzel az egyszerű áramkörrel egyesítheti a nehezen megjegyezhető hosszú billentyűparancsokat egyetlen egyéni gyorsbillentyűvé. Íme a végeredmény:





Soha nem használt Arduino -t? Nézze meg a mi kezdő útmutató első.





Amire szükséged van

A projekt megvalósításához a következőkre van szüksége:





  • 1 db Arduino Pro Micro.
  • Pillanatnyi gombok vagy billentyűzet gombok.
  • 10K ohmos ellenállások.
  • Vegyes összekötő vezetékek.
  • 1 x 220 ohmos ellenállás.
  • 1 x 5 mm (0,197 hüvelyk) LED.
  • 1 x 5 mm -es LED tartó.

Ehhez a projekthez nagyon specifikus Arduino -ra lesz szüksége. Én a Pro Micro , mivel olyan kicsik és olcsók, szüksége van egy Arduino-ra, amely USB-soros beépített processzorral rendelkezik (Atmega32u4). Lehetőség van arra, hogy ezt a projektet más Arduino-kkal, például UNO-val vagy Nano-val építsük fel, azonban sok kemény munkát igényel a bios újra villanása és a hegedülés, hogy működjön. Más Arduino modellek klónjai általában egyáltalán nem működnek, de a Pro Micro klón is megfelelő.

OSOYOO Pro Micro ATmega32U4 5V/16MHz modullap 2 soros fejléccel Vásároljon most az AMAZON -on

Szüksége lesz egy pillanatnyi nyomógombra, egy 10K ohmos ellenállásra és a megfelelő csatlakoztató vezetékre minden egyes használni kívánt gombhoz. Bár a Cherry MX mechanikus billentyűzet -kapcsolókat használom a tényleges gyorsgombokhoz Bármi a kapcsoló megteszi, feltéve, hogy pillanatnyi és nem reteszelődik.



Ennek felépítésétől függően szükség lehet néhány más elemre. Ha prototípálni szeretné, szüksége lesz egy forrasztás nélküli kenyeretábla . Érdemes jó pénzre költeni a pénzt - néha nagyon megbízhatatlanok lehetnek. Ha ezt be szeretné dobni, akkor vásároljon szalaglemezt.

Építési terv

Ez így fog működni. Az Arduino programozva úgy fog működni, mint egy USB billentyűzet - ami a számítógépet illeti, az. Az Arduino -hoz csatlakoztatott számos gomb kulcsparancsokat küld a számítógépnek. Csak egy gombot kell megnyomnia, de a számítógép úgy gondolja, hogy megnyomta Minden > F4 , például.





Kapcsoló kiválasztása

Az MX sorozatú kapcsolóknak számos változata létezik. Ez a weboldal kiváló bevezetést nyújt, azonban lényegében zajra és nyomásra vezethetők vissza. Egyes modellek nagyobb erőt igényelnek a préseléshez, egyes modellek pedig mechanikus kattanást adnak ki, amikor megnyomják. Cherry MX Browns -t használtam, amelyek nem nyomnak zajt. Mindegyik mérete megegyezik, ezért gond nélkül válassza ki a kívánt modellt (vagy keverje össze).

Természetesen néhány kulcssapkát is meg kell vásárolnia, és van egy világ egyedi tervek ahol választhat - innen vásároltunk KeyboardCo az Egyesült Királyságban





Az ügy

Ezt a tokot 3D -ben kinyomtattam, és letöltheti .STL fájlok innen Thingiverse . Ne aggódjon, ha nem rendelkezik 3D nyomtatóval, akkor is elkészítheti ezt. Sok weboldal nyújt 3D nyomtatási szolgáltatásokat, mint pl 3D hubok vagy Alakzatok . Alternatív megoldásként ez egy nagyon egyszerű eset: készíthet sajátot műanyagból, perspexből, fából vagy akár kartonból. Ha igazán takarékos szeretne lenni, a Cherry MX eladja a kapcsoló tesztelőjét/mintavevőjét amazon ( Egyesült Királyság ). Szüksége lesz 4 M5 x 35 mm -es csavarra és 4 M5 -ös anyára. Ezeket természetesen helyettesítheti egy megfelelő alternatívával.

Max billentyűzet billentyűzet, Cherry MX kapcsoló, tesztelő készlet (9 kapcsoló Pro Sampler Tester Kit) Vásároljon most az AMAZON -on

Ha saját tokját készíti, akkor egy fontos részletet kell tudnia: A Cherry MX kapcsolók a rögzítőfurataikba tolhatók. 14 x 14 mm -es (0,551 hüvelyk) négyzet alakú rögzítő lyukat igényelnek, a lemez vastagsága nem lehet 1,5 mm -nél (0,059 hüvelyk). Távolodjon el túlságosan ezeken a méreteken, és előfordulhat, hogy a kapcsolók már nem fognak megfelelően felszerelni.

A 3D nyomtatott tok két részből áll, felső és alsó. Nyomja be a Cherry MX kapcsolókat a négyzet alakú lyukakba:

Ügyeljen arra, hogy a kapcsolókat a megfelelő irányba szerelje fel. A tetején a „CHERRY” felirat, az alsó részen pedig egy kis bemetszés látható. Helyezzen be egy 3 mm -es LED -et ebbe a kis nyílásba:

Előfordulhat, hogy a LED -ek legjobban fejjel lefelé helyezkednek el. Ez volt a helyzet az általam használt billentyűsapkákkal, és egyáltalán nem befolyásolja a kapcsolókat.

Most kilenc kapcsolóval kell rendelkeznie 9 LED -del. Nincs szükség ezen alkatrészek ragasztására. A forraszanyag megtartja a LED -eket, a súrlódás pedig a kapcsolókat.

Ezután csavarja be a LED -tartót (a LED -et egyelőre távolítsa el). A tok összeállítását később, az áramkör felépítése után fejezi be.

Az áramkör

Ez az áramkör szalaglemezre épül. Ez kiválóan alkalmas félig állandó áramkörök építésére, nyomtatott áramköri kártya (PCB) költsége nélkül. Ez egyszerűen egy üvegszálas darab, réz vágányokkal, amelyek párhuzamosan futnak egy irányban. Ezek a vágányok forraszthatók és vághatók. A vágás elvégezhető egy speciális szerszámmal vagy egy kis fúróval.

Nem vagy túl magabiztos a forrasztásban? Először nézze meg ezeket az egyszerű projekteket.

Íme a szalagpanel elrendezése (a záróvezetékek kivételével):

Ügyeljen arra, hogy vágja le a nyomokat az ellenállások és az Arduino alatt. Mivel nagyon nehéz lehet a szalagáramköri áramkör olvasása, íme egy kenyeretábla verzió:

Szorosan illeszkedik, ha minden alkatrészt ilyen kis helyre présel. Vágja le a szalaglemez sarkát az alábbiak szerint:

Ennek szépen bele kell illeszkednie a tok aljába:

Győződjön meg arról, hogy a sávok függőlegesen futnak.

Csatlakoztassa az anódot ( hosszú láb, pozitív ) a LED -et a 200 ohmos ellenálláshoz, majd a +5 V -hoz. Csatlakoztassa a katódot ( rövid láb, negatív ) földelni. Fedje le a lábakat hőre zsugorodó hüvellyel, majd nyomja be a LED tartóba. Nincs szükség ragasztóra, de előfordulhat, hogy a LED-tartó nem push-fit, ezért módosítani kell ezeket az utasításokat.

Lehet, hogy itt inkább kétszínű LED-et szeretne használni-ez lehetővé teszi két vagy több kapcsolócsoport beállítását, mindegyik bankhoz eltérő színű állapotjelző LED-del.

Most itt az ideje, hogy forrasztja az összes LED -et a kulcstartókhoz. Ezeket kizárólag a gombok izzására használják, így ha szeretné, kihagyhatja őket, és nem kell digitális tűhöz csatlakoztatni, csak tápellátáshoz. Csatlakoztassa az összes anódot és az összes katódot. Tanuljon a hibámból - sokkal könnyebb ezt megtenni a kapcsolók bekötése előtt! Csatlakoztassa az anódokat +5 V feszültségre 220 ohmos ellenálláson keresztül, a katódokat pedig a földre. Ezek a LED -ek párhuzamosan vannak kötve. Íme az áramkör csak ezekhez a LED -ekhez:

Használjon egy kis darab zsugorcsövet a LED -ek és az Arduino közötti kapcsolat lefedéséhez:

Kapcsolja be az Arduino -t, hogy tesztelje az összes LED működését. Nem kell semmilyen kódot feltöltenie. Ha bármelyik LED nem működik, menjen, és ellenőrizze a vezetékeket.

Most kösse be a kapcsolókat. Ezeket 10k -os ellenálláson keresztül kell csatlakoztatni, különben az Arduino meghal. Ezt halott rövidzárlatnak hívják - a +5 V közvetlenül a földbe kerül, és az Arduino -ból csak egy füst lesz (hidd el, én már megöltem egyet, hogy ne kelljen). Íme az egyik kapcsoló áramköre:

Ez az áramkör mind a kilenc kapcsolónál ugyanaz. Csatlakoztassa a kapcsolókat a digitális tüskékhez kettőtől tízig, mindegyik saját 10K ellenállással a földhöz. Legyen óvatos a Cherry MX kapcsolók forrasztásával, kissé törékenyek lehetnek, több csap letörött rajtam. Érdemes ezeket közvetlenül forrasztani egy másik szalaglapra, de a húzóvezetékek még mindig megfelelőek.

Ennyi a vezetékhez. Érdemes csatlakoztatni egy B típusú USB csatlakozóaljzatot, azonban a rajtuk lévő apró tűket gyakran elég nehéz forrasztani. Ha nem kívánja ezt megtenni, ne aggódjon. Az Arduino Micro USB csatlakozója szépen illeszkedik az alváz lyukába. Ha kissé zavart a különböző USB -típusok, győződjön meg róla megérteni a különbségeket .

Végül ellenőrizze még egyszer az áramkör helyességét. A rövidzár könnyen elpusztíthatja az Arduino -t, és könnyen elvégezhető szalaglemez használatával.

A kód

Most ellenőrizze, hogy az áramkör helyes -e. Célszerű ezt megtenni, mielőtt folytatná, így a lehető leghamarabb kijavíthatja a problémákat. Töltse fel ezt a tesztkódot (ne felejtse el kiválasztani a megfelelő kártyát és portot a Eszközök > Tábla és Eszközök > Kikötő menük):

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

Előfordulhat, hogy cserélnie kell a csapokat, ha módosította az áramkört.

A feltöltés után nyissa meg a soros monitort ( jobb felső > Soros monitor ). Nyomja meg egyenként az egyes gombokat. Látnia kell, hogy a soros monitor mutatja a megnyomott gomb számát. A LED -hez hasonlóan, ha számítógépe túl nagy áramfelvételre panaszkodik, vagy a LED -ek kialszanak, amikor megnyom egy gombot, azonnal húzza ki a kapcsolatot! Rövidzárlat van valahol az áramkörben, kétszer ellenőrizze, hogy az áramkör helyes -e, és nincs -e rövidzárlat a csatlakozások között.

Ha minden működik, menjen előre, és tegye az áramkört a dobozba. Érdemes egy ragasztóanyaggal tartani az áramkört a helyén (bár a vezetékek jól tartották az enyémet). Csavarja rá a fedelet is.

Nagyon egyszerű, hogy az Arduino billentyűzetnek tűnjön. Ha Nano-t vagy UNO-t használ, akkor újra programozni fogja az Arduino-t Eszköz firmware frissítése (DFU). Ezt általában az új firmware frissítésére használják az Arduino számára. Arra fogja használni, hogy az Arduino -t új firmware -rel villanja fel, amely billentyűzetként működik. Erre itt nem térünk ki, mivel meglehetősen összetett feladatról van szó. Az Arduino weboldal van egy jó oktatóanyag erre.

Az Arduino Pro Micro nagyon megkönnyíti ezt a lépést. Az USB billentyűzet emulálásához szükséges logika már beépítve van a processzorba, tehát olyan egyszerű, mint egy kód írása!

Először állítsa be a kulcsokat:

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

Ez egy tömb, amely tartalmazza az összes gombot, amelyhez a gombok kapcsolódnak. Ha több vagy kevesebb gombot használt vagy különböző csapokat használt, módosítsa az értékeket itt.

A tömb hasonló gondolkodású dolgok gyűjteménye. A számítógépek optimalizálhatják a kódot, hogy gyorsan hozzáférjenek hozzájuk, és felgyorsítják a kódírási folyamatot.

Most inicializálja az összes csapot bemenetként:

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

Ez azt mondja az Arduino -nak, hogy a tömb összes csapja bemenet. Ehhez hurkot használnak, nem pedig írást pinMode (2, BEMENET) kilencszer, csak egyszer kell megírni. Ez is hív Billentyűzet.kezd . Ez beállítja az Arduino könyvtárba épített funkciót, amelyet kifejezetten a billentyűzet emulálására terveztek.

Hozzon létre egy ún readButton :

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

Ez egy tűt igényel, és ellenőrzi, hogy megnyomták -e vagy sem. Egyszerűen visszatér IGAZ vagy HAMIS . Ez is tartalmaz néhányat szoftver kikapcsolása -Egy egyszerű késleltetés, majd a kapcsoló újbóli ellenőrzése biztosítja, hogy a gombot valóban megnyomták.

Most egy másik hurkot hívnak be üres hurok () :

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

Ez megint átmegy a tömb minden elemén, és ellenőrzi, hogy megnyomták -e. Ezt úgy teszi, hogy az úgynevezett readButton korábban létrehozott módszer. Ha megnyomtak egy gombot, az átadja ezt a PIN -kódot egy másik, ún 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;
}
}

Ez ellenőrzi a PIN -kódot a segítségével kapcsoló nyilatkozat. Állítások váltása (néha hívják kapcsolószekrény ) hasonlóak az an ha kijelentés, azonban hasznosak annak ellenőrzésére, hogy egy dolog (ebben az esetben a pin szám) megegyezik -e több különböző eredmény egyikével. Lényegében sokkal gyorsabban kiszámíthatók.

A fő összetevők ebben a kapcsoló utasításban találhatók. Billentyűzet.println szöveget ír a számítógépre, mintha fizikailag beírt volna minden kulcsot. Keyboard.press lenyomja és lenyomva tartja az egyik gombot. Ne felejtse el kiadni őket a használatával Billentyűzet.releaseAll rövid késés után!

miért nem kapcsol be a telefonom

Itt a teljes kód:

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

Az összes szám- és betűgomb mellett az Arduino megnyomhatja a legtöbb speciális billentyűt Billentyűzet módosítók . Ezek különösen hasznosak a billentyűparancsok megnyomásakor. Az Arduino webhelyen van egy hasznos lista .

Most már csak néhány parancsikon létrehozása van hátra. Ezt leképezheti a meglévő parancsikonokra, mint pl Minden + F4 (a program bezárása Windows rendszerben) vagy Cmd + Q (lépjen ki a macOS programból). Alternatív megoldásként feltétlenül olvassa el a mi oldalunkat végső billentyűparancs -útmutató , hogyan hozhat létre Windows parancsikonokat, és minden Chromebook parancsikon hogy elkezdjen saját hivatkozásokat készíteni.

Létrehozta saját gyorsbillentyűjét? Írd meg kommentben, szívesen megnéznék pár képet!

Reméljük tetszeni fognak az általunk ajánlott és megbeszélt elemek! A MUO társult és szponzorált partnerkapcsolatokkal rendelkezik, így egyes vásárlásaiból származó bevétel egy részét kapjuk. Ez nem befolyásolja az Ön által fizetett árat, és segít nekünk a legjobb termékajánlásokat nyújtani.

Részvény Részvény Csipog Email Ezért adott ki figyelmeztetést az FBI a Hive Ransomware -re

Az FBI figyelmeztetést adott ki egy különösen csúnya ransomware -törzs miatt. Ezért kell különösen óvatosnak lennie a Hive ransomware -el szemben.

Olvassa tovább
Kapcsolódó témák
  • DIY
  • Billentyűzet
  • Gyorsbillentyűket
  • Arduino
A szerzőről Joe Coburn(136 megjelent cikk)

Joe az Egyesült Királyságban, a Lincoln Egyetemen végzett informatikából. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran előfordul, hogy fényképeket készít vagy videókat készít.

Joe Coburn további alkotásai

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide
Kategória Diy