Arduino ile Kendi Özel Kısayol Düğmelerinizi Yapın

Arduino ile Kendi Özel Kısayol Düğmelerinizi Yapın

Mütevazı Arduino birçok şey yapabilir, ancak bir USB klavyeyi taklit edebileceğini biliyor muydunuz? Bu basit devre ile, hatırlaması zor olan uzun klavye kısayollarını tek bir özel kısayol tuşunda birleştirebilirsiniz. İşte sonuç:





Daha önce hiç Arduino kullanmadın mı? göz atın başlangıç ​​kılavuzu ilk.





Neye ihtiyacın var

Bu projeyi yapmak için gerekenler:





  • 1 x Arduino Pro Mikro.
  • Anlık düğmeler veya klavye düğmeleri.
  • 10K ohm dirençler.
  • Çeşitli bağlantı telleri.
  • 1 x 220 ohm dirençler.
  • 1 x 5 mm (0,197 inç) LED.
  • 1 x 5mm LED tutucu.

Bu proje için çok özel bir Arduino'ya ihtiyacınız olacak. kullanıyorum Profesyonel Mikro , çok küçük ve ucuz oldukları için, işlemcide yerleşik USB-Serisi olan bir Arduino'ya ihtiyacınız var (Atmega32u4). Bu projeyi UNO veya Nano gibi diğer Arduino'larla inşa etmek mümkündür, ancak bios'u yeniden flaş etmek ve işlerin işe yaraması için uğraşmak için çok çalışmak gerekir. Diğer Arduino modellerinin klonları genellikle hiç çalışmaz, ancak Pro Micro klonu da iyidir.

OSOYOO Pro Mikro ATmega32U4 5V/16MHz Modül Kartı, 2 Sıra pinli Başlıklı Arduino için ATmega328 Pro Mini ile Değiştirin ŞİMDİ AMAZON'DAN SATIN AL

Kullanmak istediğiniz her düğme için bir anlık düğmeye, bir 10K ohm rezistöre ve uygun bağlantı kablosuna ihtiyacınız olacak. Gerçek kısayol düğmeleri için Cherry MX mekanik klavye anahtarları kullanıyorum, ancak herhangi anahtar, anlık olması ve kilitlenmemesi koşuluyla yapacaktır.



Bunu nasıl inşa ettiğinize bağlı olarak birkaç başka öğeye ihtiyacınız olabilir. Prototip yapmak istiyorsanız, bir lehimsiz devre tahtası . Parayı iyi birine harcamaya değer - bazen çok güvenilmez olabilirler. Bunu kutulamak istiyorsanız, biraz şerit tahtası satın almak isteyeceksiniz.

Yapı Planı

İşte bu nasıl çalışacak. Arduino, bir USB klavye gibi davranacak şekilde programlanacak - bilgisayarınız söz konusu olduğunda, öyle. Arduino'ya bağlı birkaç düğme, bilgisayarınıza anahtar komutlar gönderecektir. Sadece bir düğmeye basacaksınız, ancak bilgisayarınız bastığınızı düşünecek Her şey > F4 , Örneğin.





Anahtar Seçme

MX serisi anahtarların çeşitli varyasyonları vardır. Bu web sitesi mükemmel bir giriş sağlar, ancak esas olarak gürültü ve basınca gelirler. Bazı modeller basmak için daha fazla güç gerektirir ve bazı modeller basıldığında mekanik bir 'klik' sesi çıkarır. Basıldığında ses çıkarmayan Cherry MX Browns kullandım. Hepsi aynı boyuttadır, bu yüzden istediğiniz herhangi bir modeli seçin (veya karıştırıp eşleştirin) endişelenmeden.

Tabii ki bazı anahtar kapaklar da satın almanız gerekecek ve bir dünya var. özel tasarımlar seçim için orada -- biz satın aldık Birleşik Krallık'ta KeyboardCo.





Dosya

Bu davayı 3D yazdırdım ve indirebilirsiniz. .STL gelen dosyalar Thingiverse . Bir 3D yazıcınız yoksa endişelenmeyin, yine de bunu yapabilirsiniz. Birçok web sitesi, aşağıdakiler gibi 3D baskı hizmetleri sağlar: 3D Hub'lar veya şekiller . Alternatif olarak, bu çok basit bir durum, plastik karton, perspeks, ahşap ve hatta kartondan kendiniz yapabilirsiniz. Gerçekten tutumlu olmak istiyorsanız, Cherry MX, bir anahtar test cihazı/örnekleyici seti satar. Amazon ( Birleşik Krallık ). 4 M5 x 35mm cıvataya ve 4 M5 somuna ihtiyacınız olacak. Elbette bunları, sahip olduğunuz uygun bir alternatifle değiştirebilirsiniz.

Max Klavye Tuş Kapağı, Cherry MX Anahtarı, Test Kiti (9 anahtar Pro Sampler Tester Kit) ŞİMDİ AMAZON'DAN SATIN AL

Kendi kasanızı yapıyorsanız, bilmeniz gereken önemli bir ayrıntı var: Cherry MX anahtarları, montaj deliklerine kolayca takılır. Plakanın 1,5 mm'den (0,059 inç) daha kalın olmadığı 14 x 14 mm (0,551 inç) kare montaj deliği gerektirirler. Bu boyutlardan çok uzaklaşırsanız, anahtarlarınız artık doğru şekilde monte edilmeyebilir.

3D baskılı kasa, üst ve alt olmak üzere iki parçadır. Cherry MX anahtarlarını kare deliklere itin:

Anahtarları doğru şekilde monte ettiğinizden emin olun. Üst kısımda 'KİRAZ' yazıyor ve alt kısımda küçük bir çentik var. Bu küçük yuvaya 3 mm'lik bir LED yerleştirin:

LED'lerin en iyi 'baş aşağı' monte edilmiş göründüğünü görebilirsiniz. Bu, kullandığım tuş başlıkları için geçerliydi ve anahtarları hiç etkilemiyor.

Artık 9 LED'li dokuz anahtarınız olmalıdır. Bu parçaların hiçbirini yapıştırmaya gerek yoktur. Lehim LED'leri tutar ve sürtünme anahtarları tutar.

Ardından, LED montaj parçasını vidalayın (şimdilik LED'i çıkarılmış halde bırakın). Devre kurulduktan sonra kasanın montajını daha sonra bitireceksiniz.

Devre

Bu devre stripboard üzerine inşa edilmiştir. Bu, baskı devre kartı (PCB) maliyeti olmadan yarı kalıcı devreler oluşturmak için mükemmeldir. Sadece bir yönde paralel giden bakır raylara sahip bir cam elyaf parçasıdır. Bu parçalar lehimlenebilir ve kesilebilir. Parça kesmek, özel bir alet veya küçük bir matkap ucu ile yapılabilir.

Lehimleme konusunda çok emin değil misiniz? Önce bu basit projelere bir göz atın.

İşte stripboard düzeni (sondaki kablolar hariç):

Dirençlerin ve Arduino'nun altındaki izleri kestiğinizden emin olun. Bir stripboard devresini okumak çok zor olabileceğinden, işte bir breadboard versiyonu:

Tüm bileşenleri bu kadar küçük bir alana sıkıştırmak için sıkı bir uyum. Stripboard'unuzun köşelerini aşağıdaki gibi kesin:

Bu, kasanın altına düzgün bir şekilde sığmalıdır:

Rayların dikey olarak çalıştığından emin olun.

anodu bağlayın ( uzun bacak, pozitif ) LED'in 200 ohm rezistöre ve ardından +5 V'a. Katodu ( kısa bacak, negatif ) toprağa. Bacakları ısıyla daralan makaronla örtün ve ardından LED tutucuya doğru itin. Herhangi bir yapıştırıcıya gerek yoktur, ancak LED tutucunuz iterek oturmayabilir, bu nedenle bu talimatları uyarlamanız gerekebilir.

Bunun yerine burada iki renkli bir LED kullanmak isteyebilirsiniz - bu, her sıra için farklı renkli bir durum LED'i ile iki veya daha fazla anahtar kümesi kurmanıza olanak tanır.

Şimdi klavye tuşları için tüm LED'leri lehimleme zamanı. Bunlar yalnızca tuşların parlamasını sağlamak için kullanılır, böylece isterseniz bunları atlayabilirsiniz ve dijital bir pime bağlı olmaları gerekmez, yalnızca güce bağlanmaları gerekir. Tüm anotları ve tüm katotları birbirine bağlayın. Hatamdan ders çıkarın -- bunu anahtarları bağlamadan önce yapmak çok daha kolay! Anotları 220 ohm'luk bir dirençle +5 V'a ve katotları toprağa bağlayın. Bu LED'ler paralel olarak kablolanmıştır. İşte sadece bu LED'ler için devre:

LED'ler ve Arduino arasındaki bağlantıyı kapatmak için küçük bir ısıyla daralan makaron parçası kullanın:

Tüm LED'lerin çalıştığını test etmek için Arduino'yu çalıştırın. Herhangi bir kod yüklemenize gerek yoktur. Herhangi bir LED çalışmıyorsa, gidin ve kablolamanızı iki kez kontrol edin.

Şimdi anahtarları bağlayın. Bunlar 10k'lık bir dirençle bağlanmalıdır, aksi takdirde Arduino ölür. Buna kısa devre denir - +5 V doğrudan toprağa gider ve Arduino'nuzdan geriye kalan tek şey bir duman bulutu olacaktır (inan bana, zaten bir tane öldürdüm, böylece zorunda değilsin). İşte bir anahtar için devre:

Bu devre dokuz anahtarın tümü için aynıdır. Anahtarları, her biri toprağa kendi 10K direncine sahip iki ile on arasındaki dijital pimlere bağlayın. Cherry MX anahtarlarını lehimlerken dikkatli olun, biraz kırılgan olabilirler, bende birkaç pin kırıldı. Bunları doğrudan biraz daha şerit tahtasına lehimlemek isteyebilirsiniz, ancak sondaki kablolar yine de uygundur.

Kablolama için bu kadar. Bir USB B tipi dişi soket takmak isteyebilirsiniz, ancak üzerlerindeki küçük pimleri lehimlemek genellikle oldukça zor olabilir. Bunu yapmak istemiyorsanız, endişelenmeyin. Arduino üzerindeki Mikro USB konektörü kasadaki deliğe düzgün bir şekilde oturur. Farklı USB türleri konusunda biraz kafanız karıştıysa, farklılıkları anlamak .

Son olarak, devrenizin doğru olduğunu iki kez kontrol edin. Kısa bir Arduino'yu kolayca yok edebilir ve stripboard kullanarak yapmak kolay olabilir.

kod

Şimdi devrenin doğru olduğunu test edin. Devam etmeden önce bunu yapmak iyi bir fikirdir, böylece elinizden geldiğince sorunları çözebilirsiniz. Bu test kodunu yükleyin (doğru kartı ve bağlantı noktasını seçmeyi unutmayın) Aletler > Pano ve Aletler > Liman menüler):

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

Devreyi değiştirdiyseniz pinleri değiştirmeniz gerekebilir.

Yüklendikten sonra seri monitörü açın ( sağ üst > Seri Monitör ). Tek tek, her düğmeye basın. Seri monitörün bastığınız düğmenin numarasını gösterdiğini görmelisiniz. Tıpkı LED'de olduğu gibi, bilgisayarınız çok fazla akım çekmekten şikayet ederse veya bir tuşa bastığınızda LED'ler sönerse, hemen bağlantıyı kesin! Devrede bir yerde kısa devre var, devrenin doğru olduğunu ve bağlantılar arasında kısa devre olmadığını iki kez kontrol edin.

Her şey çalışıyorsa, devam edin ve devreyi kutuya koyun. Devreyi yerinde tutmak için bir miktar yapıştırıcı kullanmak isteyebilirsiniz (kablolar benimkini iyi tutmasına rağmen). Kapağı da vidalayın.

Arduino'yu klavye gibi göstermek çok basittir. Bir Nano veya UNO kullanıyorsanız, Arduino'nuzu kullanarak yeniden programlayacaksınız. Cihaz Firmware Güncellemesi (DFU). Bu genellikle Arduino'ya yeni bellenimi flaş etmek için kullanılır. Arduino'yu klavye gibi çalışmasını sağlayacak yeni bir ürün yazılımı ile flaş etmek için kullanacaksınız. Bu oldukça karmaşık bir görev olduğu için burada ele alınmayacaktır. NS Arduino web sitesi bunun için iyi bir öğretici var.

Arduino Pro Micro bu adımı çok kolaylaştırıyor. Bir USB klavyeyi taklit etmek için gereken mantık işlemcide zaten yerleşiktir, bu nedenle bir kod yazmak kadar basittir!

İlk önce, anahtarları ayarlayın:

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

Bu, düğmelerin bağlı olduğu tüm pinleri içeren bir dizidir. Daha fazla veya daha az buton kullandıysanız veya farklı pinler kullandıysanız, buradaki değerleri değiştirin.

Bir dizi, benzer düşünen şeylerden oluşan bir koleksiyondur. Bilgisayarlar, onlara hızlı bir şekilde erişmek için kodunuzu optimize edebilir ve kod yazma sürecini hızlandırır.

Şimdi tüm pinleri giriş olarak başlatın:

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

Bu, Arduino'ya dizideki tüm pinlerin giriş olduğunu söyler. Bunu yapmak için bir döngü kullanılır, bu yüzden yazmak yerine pinMode(2, GİRİŞ) dokuz kez, sadece bir kez yazmanız gerekiyor. Bu da çağırır klavye.başla . Bu, özellikle bir klavyeyi taklit etmek için tasarlanmış Arduino kitaplığında yerleşik bir işlev kurar.

adlı bir yöntem oluşturun. okuDüğmesi :

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

Bu bir pin alır ve basılıp basılmadığını kontrol eder. Sadece geri döner NS veya YANLIŞ . Ayrıca bazı içerir yazılım geri dönüşü -- basit bir gecikme ve ardından anahtarın yeniden kontrol edilmesi, düğmeye gerçekten basıldığından emin olur.

Şimdi içeride başka bir for döngüsü çağrılır boşluk döngüsü() :

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

Yine, bu, dizideki her öğenin üzerinden geçer ve basılıp basılmadığını kontrol eder. Bunu denilerek yapar okuDüğmesi Daha önce oluşturduğunuz yöntem. Bir düğmeye basılmışsa, o pin numarasını başka bir metoda iletir. 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;
}
}

Bu, pin numarasını bir kullanarak kontrol eder. değiştirmek Beyan. İfadeleri değiştir (bazen yer değiştir ) benzer bir Eğer ancak bir şeyin (bu durumda pin numarasının) birkaç farklı sonuçtan birine eşit olduğunu kontrol etmek için kullanışlıdırlar. Esasen, hesaplamak çok daha hızlıdır.

Ana bileşenler bu switch ifadesinin içindedir. klavye.println her tuşu fiziksel olarak yazmışsınız gibi bilgisayara metin yazar. klavye.basın bir tuşa basar ve basılı tutar. kullanarak serbest bırakmayı unutmayın. Keyboard.releaseTümü kısa bir gecikmeden sonra!

bir şeyi nereden yazdırabilirim

İşte tam kod:

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

Tüm sayı ve harf tuşlarına ek olarak, Arduino adı verilen özel tuşların çoğuna basabilir. Klavye Değiştiriciler . Bunlar özellikle klavye kısayollarına basmak için kullanışlıdır. Arduino web sitesinde bir yardımcı liste .

Şimdi geriye kalan tek şey bazı kısayollar oluşturmak. Bunu, aşağıdakiler gibi mevcut kısayollarla eşleyebilirsiniz: Her şey + F4 (Windows'ta programı kapatın) veya cmd + Q (macOS programından çıkın). Alternatif olarak, yazımızı okuduğunuzdan emin olun. nihai klavye kısayolu kılavuzu , Windows kısayolları nasıl oluşturulur ve her Chromebook kısayolu kendi kısayollarınızı oluşturmaya başlamak için.

Kendi kısayol kutunuzu oluşturdunuz mu? Yorumlarda bana bildirin, bazı resimler görmeyi çok isterim!

Önerdiğimiz ve tartıştığımız öğeleri beğeneceğinizi umuyoruz! MUO'nun bağlı kuruluş ve sponsorlu ortaklıkları vardır, bu nedenle bazı satın alımlarınızdan elde edilen gelirden pay alırız. Bu, ödediğiniz fiyatı etkilemez ve en iyi ürün önerilerini sunmamıza yardımcı olur.

Paylaş Paylaş Cıvıldamak E-posta İşte FBI'ın Hive Ransomware için Uyarı Verme Nedeni

FBI, özellikle kötü bir fidye yazılımı türü hakkında bir uyarı yayınladı. İşte bu yüzden özellikle Hive fidye yazılımına karşı dikkatli olmanız gerekiyor.

Sonrakini Oku
İlgili konular
  • kendin yap
  • Tuş takımı
  • Klavye kısayolları
  • Arduino
Yazar hakkında Joe Coburn(136 Makale Yayınlandı)

Joe, İngiltere'deki Lincoln Üniversitesi'nden Bilgisayar Bilimleri mezunudur. Profesyonel bir yazılım geliştiricisi ve drone uçurmadığı veya müzik yazmadığı zamanlarda, genellikle fotoğraf çekerken veya video çekerken bulunabilir.

Joe Coburn'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Abone olmak için buraya tıklayın