back to top

ESP32 ile Bluetooth Makro Klavye Yapımı

Bilgisayar başında çalışırken veya oyun oynarken bazı tuş kombinasyonlarını ve web sitelerini gün içinde defalarca kullanıyoruz. Bu rehberimizde, sürekli tekrarladığınız bu adımları tek bir tuşa indiren, kendi ihtiyaçlarınıza göre tamamen özelleştirebileceğiniz 3 Tuşlu Bluetooth Makro Klavye projesini adım adım hayata geçiriyoruz.

Projenin en güzel yanı, hem tamamen kablosuz çalışması hem de kod içerisindeki tuş kombinasyonlarını dilediğiniz gibi değiştirerek tamamen kendinize özel kısayollar atayabilmenizdir.

Projede Kullanılan Malzemeler

  • ESP32 DevKit V1 Geliştirme Kartı – 17720
  • 3 Adet Taktik Switch (Buton)
  • 3.7V 1S Li-Po Pil 450 mAh – 12539
  • Toggle Switch (Açma/Kapama Anahtarı)
  • Montaj Kabloları

Donanım ve Devre Bağlantısı

Projenin montaj aşamasında kablo karmaşasını önlemek ve kutu içerisine rahatça sığdırabilmek için ESP32 kartının sadece tek bir tarafında bulunan pinleri kullanıyoruz.

1)Buton Bağlantıları: 3 adet butonun birer bacağını birbirine köprüleyerek ortak bir hat oluşturuyor ve bu hattı ESP32’nin GND pinine bağlıyoruz. Butonların boşta kalan diğer bacaklarını ise sırasıyla D13, D12 ve D14 pinlerine yönlendiriyoruz. Kartın dahili pull-up dirençlerini kullanacağımız için devrede harici bir direnç kullanmamıza gerek kalmıyor.

2)Güç Bağlantısı: Taşınabilir bir kullanım için 3.7V Li-Po pilimizin eksi (-) ucunu doğrudan ESP32’nin GND hattına bağlıyoruz. Pilin artı (+) ucunu ise araya bir açma-kapama anahtarı (toggle switch) ekleyerek ESP32 üzerindeki VIN pinine bağlıyoruz. Böylece klavyeyi istediğimiz zaman tamamen kapatabiliyoruz.

ESP32 Kodlama Aşaması

Projemizde ESP32’yi bilgisayara Bluetooth tabanlı bir klavye (HID cihazı) olarak tanıtmak için BleKeyboard.h kütüphanesini kullanıyoruz.

Aşağıdaki kod yapısında butonlar sırasıyla Ctrl + Alt + J, Ctrl + Alt + K ve Ctrl + Alt + L komutlarını gönderecek şekilde ayarlanmıştır. Ancak siz kodun içerisindeki harfleri ve değiştirici tuşları (Ctrl, Alt, Shift vb.) değiştirerek dilediğiniz yazılım kısayolunu veya komut dizisini bu butonlara kolayca atayabilirsiniz.

#include <BleKeyboard.h>

// Bilgisayarın Bluetooth listesinde görünecek cihaz adı
BleKeyboard bleKeyboard("Robotistan Makro", "Maker", 100);

// Sadece tek taraftaki pinleri kullanan bağlantı düzeni:
const int button1Pin = 13; // 1. Buton (Ctrl + Alt + J)
const int button2Pin = 12; // 2. Buton (Ctrl + Alt + K)
const int button3Pin = 14; // 3. Buton (Ctrl + Alt + L)

void setup() {
  Serial.begin(115200);
  
  // Pinleri dahili pull-up dirençleriyle giriş olarak tanımlıyoruz
  pinMode(button1Pin, INPUT_PULLUP);
  pinMode(button2Pin, INPUT_PULLUP);
  pinMode(button3Pin, INPUT_PULLUP);
  
  bleKeyboard.begin();
  Serial.println("Makro Klavye Hazır. Bluetooth Bağlantısı Bekleniyor...");
}

void loop() {
  // ESP32 bilgisayara Bluetooth ile bağlıysa butonları kontrol et
  if (bleKeyboard.isConnected()) {

    // 1. BUTON (D13)
    if (digitalRead(button1Pin) == LOW) {
      Serial.println("Buton 1 basildi.");
      bleKeyboard.press(KEY_LEFT_CTRL); 
      bleKeyboard.press(KEY_LEFT_ALT);  
      bleKeyboard.press('j');           
      delay(100); 
      bleKeyboard.releaseAll(); // Basılan tuşları serbest bırak

      while (digitalRead(button1Pin) == LOW) { delay(10); } // Sinyal tekrarını önleme
    }

    // 2. BUTON (D12)
    if (digitalRead(button2Pin) == LOW) {
      Serial.println("Buton 2 basildi.");
      bleKeyboard.press(KEY_LEFT_CTRL);
      bleKeyboard.press(KEY_LEFT_ALT);
      bleKeyboard.press('k');          
      delay(100); 
      bleKeyboard.releaseAll();        

      while (digitalRead(button2Pin) == LOW) { delay(10); }
    }

    // 3. BUTON (D14)
    if (digitalRead(button3Pin) == LOW) {
      Serial.println("Buton 3 basildi.");
      bleKeyboard.press(KEY_LEFT_CTRL);
      bleKeyboard.press(KEY_LEFT_ALT);
      bleKeyboard.press('l');          
      delay(100); 
      bleKeyboard.releaseAll();        

      while (digitalRead(button3Pin) == LOW) { delay(10); }
    }
  }
}

Windows Kısayollarını Ayarlama

Kodumuzun gönderdiği bu tuş kombinasyonlarının bilgisayarda bir web sitesini veya programı çalıştırmasını sağlamak için Windows’un yerleşik kısayol özelliğinden faydalanıyoruz:

  1. Masaüstünde boş bir yere sağ tıklayıp Yeni -> Kısayol seçeneğine tıklayın.
  2. Açılan hedef kutusuna, doğrudan Chrome üzerinden açılmasını istediğiniz adresi şu formatta yazın: cmd /c start chrome https://www.robotistan.com
  3. Kısayolu oluşturduktan sonra üzerine sağ tıklayıp Özellikler menüsüne girin.
  4. “Kısayol tuşu” alanına tıklayıp klavyenizden J harfine basın. Windows burayı otomatik olarak Ctrl + Alt + J şeklinde dolduracaktır.

Aynı adımları takip ederek diğer butonlar için de farklı web siteleri veya bilgisayarınızda kurulu olan programların (Photoshop, VS Code, oyunlar vb.) dosya yollarını ekleyebilir; harf alanına da K ve L atamalarını yapabilirsiniz. Kısayol dosyalarınız masaüstünde durduğu sürece, makro klavyenizdeki butonlar bu görevleri şipşak tetikleyecektir.

.stl dosyasını linke tıklayarak indirebilirsiniz.

(.stl dosyasını indirmek için görsel tıklayınız)

Projeyi Geliştirme Önerileri

Bu temel altyapıyı kurduktan sonra projeyi tamamen kendi ihtiyaçlarınıza göre şekillendirebilirsiniz:

1)Yazılım ve Tasarım Odaklı: Kullandığınız video kurgu, grafik tasarım veya kodlama programlarındaki karmaşık çoklu tuş kombinasyonlarını koda gömerek iş akışınızı hızlandırabilirsiniz.

2)Oyun Odaklı: Sık oynadığınız oyunlarda zamanlama gerektiren ya da peş peşe basılması gereken tuş dizilimlerini tek bir butona atayarak kendinize pratik bir oyun makrosu hazırlayabilirsiniz.

Siz hazırladığınız bu 3 butonlu makro klavyeye hangi özel kısayolları atamayı planlıyorsunuz? Deneyimlerinizi ve fikirlerinizi yorumlar kısmında bizimle paylaşmayı unutmayın.

Bir sonraki projemizde görüşmek üzere, keyifli çalışmalar!

Son Çıkan Yazılar

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz