Hirdetés
A szerény Arduino sok mindent megtehet, de tudta, hogy emulálhatja az USB billentyűzetet? Ezzel az egyszerű áramkörrel egyesítheti azokat a nehezen megjegyezhető hosszú billentyűparancsokat egyetlen egyedi gyorsbillentyűvé. Íme a végeredmény:
Soha nem használtam Arduino-t korábban? Nézd meg kezdő útmutató Az Arduino használatának első lépése: Útmutató kezdőknekAz Arduino egy nyílt forráskódú elektronikai prototípus-felépítés, amely rugalmas, könnyen használható hardveren és szoftveren alapul. A művészek, a tervezők, a hobbisták és az interaktív tárgyak vagy környezetek létrehozása iránt érdeklődők számára készült. Olvass tovább első.
Amire szükséged van
A következőkre van szüksége, hogy ezt a projektet elkészítse:
- 1 x Arduino Pro Micro.
- Pillanatnyi gombok vagy billentyűzet gombjai.
- 10K ohm ellenállások.
- Válogatott csatlakozóhuzalok.
- 1 x 220 ohm ellenállások.
- 1 x 5 mm (0,197 hüvelyk) LED.
- 1 x 5 mm-es LED tartó.
Szüksége lesz egy nagyon konkrét Arduinóra ehhez a projekthez. Én egy Pro Micro
, mivel annyira kicsik és olcsók, szükség van egy Arduino-ra, amelynek USB-soros be van építve a processzorba (Atmega32u4). Lehetséges, hogy ezt a projektet más Arduino-kkal, például az UNO-val vagy a Nano-val is felépítsük, azonban sok kemény munkára van szükség a bioszámlák újbóli villogásához és a dolgok működésének előidézéséhez. Más Arduino modellek klónjai általában egyáltalán nem működnek, de a Pro Micro klón is jó.OSOYOO Pro Micro ATmega32U4 5V / 16MHz modullap 2 soros tűs fejléccel az arduino Leonardo-hoz Cserélje ki az ATmega328 Pro Mini-tOSOYOO Pro Micro ATmega32U4 5V / 16MHz modullap 2 soros tűs fejléccel az arduino Leonardo-hoz Cserélje ki az ATmega328 Pro Mini-t Vásároljon most az Amazonon $10.99
Szüksége lesz egy pillanatnyi gombra, egy 10K ohmos ellenállásra és megfelelő csatlakozókábelre minden egyes használni kívánt gombhoz. A tényleges gyorsbillentyűkhez azonban Cherry MX mechanikus billentyűzetkapcsolatokat használom Bármi A kapcsoló megteszi, feltéve, hogy pillanatnyi, és nem reteszelődik.
Szüksége lehet néhány további elemre, attól függően, hogy miként építed ezt. Ha prototípust szeretne készíteni, akkor szüksége lesz egy forrasztás nélküli kenyérlemez. Érdemes pénzt költeni egy jóra - néha nagyon megbízhatatlanok lehetnek. Ha ezt be akarja jelölni, akkor vásárolhat egy darab deszkát.
Építési terv
Így működik ez. Az Arduino-t úgy programozzák, hogy úgy viselkedjen, 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épére. Csak egy gombot fog megnyomni, de a számítógép úgy gondolja, hogy megnyomta Alt > F4, például.
Kapcsoló kiválasztása

Az MX sorozatú kapcsolóknak több változata létezik. Ez a weboldal kiváló bevezetést nyújt, ám ezek alapvetően a zajhoz és a nyomáshoz vezetnek. Egyes modellek nagyobb erőt igényelnek a sajtoláshoz, és egyes modellek mechanikus „kattintási” hangot adnak, amikor megnyomják. A Cherry MX böngészőket használtam, amelyek megnyomásakor nem okoz zajt. Mindkettő megegyezik a mérettel, tehát aggodalom nélkül válasszon bármilyen tetszőleges modellt (vagy keverhessen össze).
Természetesen meg kell vásárolnia néhány kulcssapkát is, és létezik világ egyedi minták odakint lehet választani - től vásároltunk KeyboardCo az Egyesült Királyságban
Az ügy
3D-ben kinyomtattam ezt az esetet, és letöltheti a .stl fájlok Thingiverse. Ne aggódjon, ha nem rendelkezik 3D nyomtatóval, ezt még mindig építheti. Számos webhely nyújt 3D nyomtatási szolgáltatásokat, például 3D-s hubok vagy Shapeways. Alternatív megoldásként ez egy nagyon egyszerű eset, amelyet saját műanyagból, perspexből, fából vagy akár kartonból is készíthet. Ha igazán takarékos akar lenni, a Cherry MX eladja a bekapcsolt kapcsoló tesztert / mintavételt amazon (UK). Szüksége lesz 4 M5 x 35 mm csavarra és 4 M5 anyára. Természetesen ezeket helyettesítheti egy megfelelő alternatívával.
Max Keyboard Keycap, Cherry MX kapcsoló, tesztelő készlet (9 kapcsoló Pro Sampler teszter készlet)Max Keyboard Keycap, Cherry MX kapcsoló, tesztelő készlet (9 kapcsoló Pro Sampler teszter készlet) Vásároljon most az Amazonon $14.99
Ha saját ügyét állítja elő, van egy fontos részlet, amelyet tudnia kell: A Cherry MX kapcsolói nyomógombok a rögzítő lyukakba. Szükségük van egy 14 x 14 mm (0,551 inch) négyzet alakú rögzítőfuratra, a lemez nem lehet vastagabb, mint 1,5 mm (0,059 inch). Haladjon túl messze ettől a mérettől, és előfordulhat, hogy a kapcsolói már nem szerepelnek megfelelően.
A 3D-s nyomtatott tok két részből áll: a felső és az alsó. Tolja a Cherry MX kapcsolókat a négyzet alakú lyukakba:

Ügyeljen arra, hogy a kapcsolókat a helyes irányba szerelje be. A tetején a „CHERRY” felirat szerepel, az alján egy kis bevágás szerepel. Helyezzen be egy 3 mm-es LED-et ebbe a kis nyílásba:

Előfordulhat, hogy a LED-ek a legjobban „fejjel lefelé” vannak felszerelve. Ez volt a helyzet a használt kulcsbilincsekkel, és ez egyáltalán nem befolyásolja a kapcsolókat.
Most kilenc kapcsolóval kell rendelkeznie, 9 LED-del. Ezen részek egyikét sem kell ragasztani. A forrasztás a LED-eket, a súrlódás a kapcsolókat fogja tartani.

Ezután csavarja be a LED tartót (hagyja a LED-et egyelőre eltávolítva). Később befejezi az ügy összeszerelését, miután az áramkör felépült.
Az áramkör
Ez az áramkör deszkára é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égei nélkül. Ez egyszerűen egy üvegszál darab, rézvezetékekkel egy irányban párhuzamosan futva. Ezek a sávok forraszthatók és vághatók. A vágány vágása speciális szerszámmal vagy egy kis fúróval történhet.
Nem túl magabiztos a forrasztásnál? Nézd meg ezek az egyszerű projektek Megtanulja, hogyan kell forrasztani ezekkel az egyszerű tippekkel és projektekkelKicsit megfélemlített egy forró vas és olvadt fém gondolata? Ha el akar kezdeni dolgozni az elektronikával, meg kell tanulnia forrasztani. Segítsünk. Olvass tovább első.
Itt van a szendvicslap elrendezése (nem tartalmazza a hátsó vezetékeket):

Feltétlenül vágja le a nyomokat az ellenállások és az Arduino alatt. Mivel nagyon nehéz lehet a szalagos áramkört olvasni, itt van egy kenyérvágány verzió:

Szorosan illeszthető az összes alkatrész ilyen kis helyre történő kinyomására. Vágja le a deszkából a sarkokat a következők szerint:

Ennek jól illeszkednie kell a tok aljához:

Győződjön meg arról, hogy a sínek függőlegesen futnak.
Csatlakoztassa az anódot (hosszú lábú, pozitív) a LED-et a 200 ohmos ellenállásra, majd +5 V-ra. Csatlakoztassa a katódot (rövid láb, negatív) a földre. Fedje le a lábakat hőre zsugorodó hüvelygel, majd nyomja be a LED-tartóba. Nincs szükség ragasztóra, azonban a LED-tartó nem feltétlenül illeszkedik, ezért előfordulhat, hogy ezeket az utasításokat módosítania kell.

Érdemes ehelyett kétszínű LED-et használni - ez lehetővé teszi két vagy több kapcsolótálca beállítását, az egyes bankokhoz különféle színű állapotjelző LED-ekkel.
Itt az ideje, hogy feloldja az összes LED-et a billentyűzethez. Ezeket kizárólag arra használják, hogy a kulcsok világossá váljanak, tehát kihagyhatja őket, ha szeretné, és nem kell őket digitális tűhöz csatlakoztatni, csak tápfeszültséggel. Csatlakoztassa az összes anódot és az összes katódot egymáshoz. Tanulj meg a hibámból - ezt sokkal könnyebb megtenni a kapcsolók huzalozása előtt! Csatlakoztassa az anódokat +5 V-ra egy 220 ohmos ellenálláson keresztül, és a katódokat a testhez. Ezek a LED-ek párhuzamosan vannak huzalozva. Itt van az áramkör csak ezekre a LED-ekre:

Használjon egy kis darab hőre zsugorodó csövet a LED-ek és az Arduino közötti kapcsolat fedezésére:

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

Most csatlakoztassa a kapcsolókat. Ezeket 10 k-os ellenálláson keresztül kell csatlakoztatni, különben az Arduino meghal. Ezt úgy hívják, mint egy halott rövid - +5 V közvetlenül a földbe kerül, és minden, ami Arduino-ban marad, füstcsomó lesz (bízz bennem, én már megöltem egyet, így nem kell). Íme egy kapcsoló áramköre:

Ez az áramkör azonos mind a kilenc kapcsolóval. Csatlakoztassa a kapcsolókat a kettő-tíz közötti digitális csapokhoz, mindegyik saját 10K-os ellenállással a testhez. Vigyázzon, ha forrasztja a Cherry MX kapcsolóit, kissé törékenyek lehetnek, több csaptam is törött rajtam. Előfordulhat, hogy ezeket közvetlenül forrasztja még egy forgácslemezre, de a hátsó vezetékek továbbra is megfelelőek.
Ez a vezetékezéshez. Érdemes felszerelni egy B típusú USB-aljzatot, ám a rajtuk található apró csapokhoz gyakran nehéz megmunkálni. Ha nem akarja ezt megtenni, ne aggódjon. Az Arduino Micro USB-csatlakozója jól illeszkedik a ház lyukába. Ha kissé zavarodott a különféle USB-típusok miatt, akkor ellenőrizze megértsék a különbségeket Ismerje meg az USB-kábel típusait és azt, melyiket használjaMiért van olyan sok különféle USB-kábel? Ismerje meg az USB-csatlakozótípusok közötti különbségeket és a legjobb kábel megvásárlásának módját. Olvass tovább .
Végül ismételje meg az áramkör helyességét. A rövidnadrág könnyen elpusztíthatja az Arduino-t, és könnyű megtenni a deszkából.
A kód
Most ellenőrizze, hogy az áramkör megfelelő-e. Jó ötlet ezt megtenni a továbblépés előtt, így bármilyen problémát kijavíthat, amikor csak teheti. Töltse fel ezt a tesztkódot (ne felejtse el kiválasztani a megfelelő panelt és portot a Eszközök > Tábla és Eszközök > Kikötő menük):
const int gombok [] = {2,3,4,5,6,7,8,9,10}; // az összes gombcsap tömbje void setup () {// tedd ide a beállítási kódot, hogy egyszer futtasson: 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 () {// tedd ide a fő kódot, hogy ismételten futtass: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// a szoftver lepattanása javítja a pontosság késleltetését (10); if (digitalRead (i) == HIGH) {// check kapcsolja a Serial.print ("input"); Serial.println (i); késleltetés (250); } } } }
Lehet, hogy módosítania 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). Egyenként nyomja meg mindegyik gombot. Látnia kell, hogy a soros monitor megjeleníti a megnyomott gomb számát. Csakúgy, mint a LED-nél, ha a számítógép panaszkodik, hogy túl sok áramot vesz igénybe, vagy ha a LED-ek kialsznak, amikor egy gombot megnyomnak, azonnal húzza ki a kapcsolatot! Rövid van valahol az áramkörben, ellenőrizze még egyszer, hogy az áramkör megfelelő-e, és nincs-e rövidzárlat a csatlakozások között.
Ha minden működik, folytassa és tegye az áramkört a dobozba. Érdemes lehet ragasztót használni, hogy az áramkört a helyén tartsa (bár a huzalok jól tartották az enyém). Csavarja fel a fedelet is.
Ahhoz, hogy az Arduino billentyűzetnek tűnjön, nagyon egyszerű. Ha Nano-t vagy UNO-t használ, akkor újraprogramozza Arduino-ját Eszköz firmware frissítése (DFU). Ezt általában az új firmware villogására használják az Arduino-ra. Akkor fogja használni, hogy az Arduino-t egy új firmware-sel villogja, amely úgy fog működni, mint egy billentyűzet. Erre itt nem foglalkozunk, mivel ez elég összetett feladat. Az Arduino weboldal van egy jó bemutató ehhez.
Az Arduino Pro Micro nagyon könnyűvé teszi ezt a lépést. Az USB-billentyűzet emulációjához szükséges logika már be van építve a processzorba, tehát olyan egyszerű, mint valamilyen kód írása!
Először állítsa be a billentyűket:
int gombok [] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
Ez egy tömb, amely tartalmazza az összes csapot, amelyhez a gombok csatlakoznak. Ha több vagy kevesebb gombot használt, vagy különböző csapokat használt, itt változtassa meg az értékeket.
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ájussanak hozzájuk, és felgyorsítják a kódírás folyamatát.
Inicializálja az összes csapot bemenetként:
void setup () {// tedd ide a beállítási kódot, hogy egyszer futtasd: Keyboard.begin (); // beállító billentyűzet (int i = 2; i <11; ++ i) {// pinMode (i, INPUT) csapok iniciálása; } }
Ez azt mondja az Arduino-nak, hogy a tömb összes csapja bemenet. Ehhez hurkot használnak, tehát írás helyett pinMode (2, INPUT) kilenc alkalommal, csak egyszer kell írnia. Ez is felhívja Keyboard.begin. Ez beállítja az Arduino könyvtárba beépített funkciót, amelyet kifejezetten a billentyűzet emulálására terveztek.
Hozzon létre egy úgynevezett módszert readButton:
logikai readButton (int pin) {// ellenőrző és deboun gombok, ha (digitalRead (pin) == HIGH) {késleltetés (10); if (digitalRead (pin) == HIGH) {true true; }} hamis visszaadást; }
Ez megfog egy csapot, és ellenőrzi, hogy megnyomta-e vagy sem. Egyszerűen visszatér IGAZ vagy HAMIS. Ez is tartalmaz néhányat szoftver debouncing - 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 hurokot hívunk benne üres hurok ():
void loop () {// tedd ide a fő kódot, hogy ismételten futtass: for (int i = 2; i <11; ++ i) {// ellenőrző gombok, ha (readButton (i)) {doAction (i); } } }
Ez megismétli a tömb minden elemét és ellenőrzi, hogy megnyomták-e. Ezt úgynevezett readButton a korábban létrehozott módszer. Ha egy gombot megnyomtak, ez továbbítja ezt a PIN-kódot egy másik, úgynevezett módszerhez doAction:
void doAction (int pin) {// feladatok végrehajtása kapcsoló (pin) {2. eset: Keyboard.println ("drive.google.com"); szünet; 3. eset: Keyboard.println ("makeuseof.com"); szünet; 4. eset: // CMD + T (új lap, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); késleltetés (100); Keyboard.releaseAll (); szünet; 5. eset: // az itt levő feladat szünet; 6. eset: // az itt levő feladat szünet; 7. eset: // az itt levő feladat szünet; 8. eset: // az itt levő feladat szünet; 9. eset: // az itt levő feladat szünet; } }
Ez ellenőrzi a PIN-kódot a gombbal kapcsoló nyilatkozat. Nyilatkozatok váltása (néha kapcsolószekrény) hasonlóak egy ha állítás, ám ezek hasznosak annak ellenőrzéséhez, hogy egy dolog (ebben az esetben a PIN-kód) megegyezik-e a több különböző eredmény egyikével. Alapvetően sokkal gyorsabb kiszámításra.
A fő összetevők ezen a kapcsolót tartalmazzák. Keyboard.println szöveget ír a számítógépre, mintha minden billentyűt fizikailag beírt volna. Keyboard.press megnyom és tart egy gombot. Ne felejtsd el engedni őket a használatával Keyboard.releaseAll rövid késleltetés után!
Íme a teljes kód:
int gombok [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// tedd ide a beállítási kódot, hogy egyszer futtasd: Keyboard.begin (); // beállító billentyűzet (int i = 2; i <11; ++ i) {// pinMode (i, INPUT) csapok iniciálása; } } void loop () {// tedd ide a fő kódot, hogy ismételten futtass: for (int i = 2; i <11; ++ i) {// ellenőrző gombok, ha (readButton (i)) {doAction (i); } } } logikai readButton (int pin) {// ellenőrző és deboun gombok, ha (digitalRead (pin) == HIGH) {késleltetés (10); if (digitalRead (pin) == HIGH) {true true; }} hamis visszaadást; } void doAction (int pin) {// feladatok végrehajtása kapcsoló (pin) {2. eset: Keyboard.println ("drive.google.com"); szünet; 3. eset: Keyboard.println ("makeuseof.com"); szünet; 4. eset: // CMD + T (új lap, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ( 't'); késleltetés (100); Keyboard.releaseAll (); szünet; 5. eset: // az itt levő feladat szünet; 6. eset: // az itt levő feladat szünet; 7. eset: // az itt levő feladat szünet; 8. eset: // az itt levő feladat szünet; 9. eset: // az itt levő feladat szünet; } }
Az összes szám- és betűgomb mellett az Arduino megnyomhatja a hívott speciális billentyűk nagy részét is Billentyűzet-módosítók. Ezek különösen hasznosak a billentyűparancsok megnyomásához. Az Arduino weboldal rendelkezik egy hasznos lista.
Most már csak néhány hivatkozás létrehozása maradt. Lehet hozzárendelni ezt a meglévő hivatkozásokhoz, például Alt + F4 (bezárja a programot a Windows alatt) vagy cmd + Q (lépjen ki a macOS programból). Alternatív megoldásként feltétlenül olvassa el a tökéletes billentyűparancs útmutató Windows gyorsbillentyűk 101: A végső útmutatóA billentyűparancsok órákat takaríthatnak meg időben. Messze elsajátíthatja az univerzális Windows gyorsbillentyűket, az egyes programokhoz tartozó billentyűzet trükköket és néhány további tippet a munka felgyorsításához. Olvass tovább , hogyan lehet létrehozni a Windows parancsikonjait A Windows Desktop parancsikonjainak egyszerű létrehozásaAz intelligens asztali hivatkozások megtakaríthatják a menük és mappák közötti szétválasztást. Megmutatjuk neked gyors és egyszerű módszereket a létrehozáshoz. Olvass tovább és minden Chromebook parancsikont Minden olyan Chromebook billentyűparancs, amelyre szükséged leszMessze a Chrome OS-t ezzel a minden fontos Chromebook-parancsikont tartalmazó listával. Olvass tovább hogy elindítsa a saját hivatkozásokat.
Készítette a saját parancsikonját? Tudassa velünk a megjegyzésekben, szeretnék néhány képet látni!
Joe számítógépes ismeretek diplomáját szerezte az Egyesült Királyság Lincolni Egyetemen. Professzionális szoftverfejlesztő, és amikor nem repül drónokkal és nem ír zenét, gyakran találkozhat fényképezéssel vagy videó készítésével.