ESP32-S3 ile Makro Klavye ve Mouse Yapımı

👤 Yazar: ozcan 📅 Tarih: 27.06.2026 08:46 👁️ Görüntüleme: 47

ESP32-S3 ile Makro Klavye ve Mouse Yapımı: Sürücüsüz USB HID Rehberi


Bilgisayar başında çalışırken veya oyun oynarken sürekli aynı tuş kombinasyonlarını (örneğin kopyala-yapıştır, kod derleme kısayolları veya Photoshop araçları) kullanmaktan sıkılmadınız mı? ESP32-S3’ün yerleşik (native) USB çevre birimi sayesinde, bilgisayarın harici bir klavye veya fare gibi algılayacağı USB HID (Human Interface Device) cihazları tasarlamak artık çok kolay. Bu rehberde, ESP32-S3 kullanarak bilgisayara tek tıkla uzun metinler yazdıran veya fareyi otomatik hareket ettiren bir makro sistemi kuracağız!


USB HID Nedir ve Neden Sürücü Gerekmez?

HID (İnsan Arayüz Cihazı), klavye, fare, oyun konsolu gibi çevre birimlerinin bilgisayarla standart bir protokol üzerinden konuşmasını sağlar. Windows, Mac veya Linux işletim sistemleri, takılan cihazın bir HID sınıfı olduğunu anladığı anda ek bir sürücü (driver) yüklemeden cihazı doğrudan kabul eder. ESP32-S3'ü programlayıp native USB portundan bilgisayara bağladığımız an, işletim sistemi onu saniyeler içinde "Standart Klavye/Mouse" olarak tanıyacaktır.


Arduino IDE Gerekli Kütüphaneler

ESP32-S3 ile HID projeleri geliştirirken dışarıdan ek bir kütüphane indirmenize gerek yoktur. ESP32 kart kütüphanesinin (ESP32 core) içinde gömülü olarak gelen resmi kütüphaneleri kullanacağız:

  • USB.h : Genel USB yönetimini sağlar.
  • USBHIDKeyboard.h : Kartı klavye moduna alır ve tuş basma komutlarını yönetir.

Uygulama 1: Tek Butonla Otomatik Makro Klavye

Bu örnekte, ESP32-S3'ün GPIO 1 pinine bağlı harici bir butona basıldığında, bilgisayara tek seferde hazır bir metin yazdıracağız ve ardından otomatik olarak Enter tuşuna basacağız. (Eğer harici butonunuz yoksa pin numarasını kartın üzerindeki yerleşik BOOT butonu olan 0 olarak değiştirebilirsiniz).

#include "USB.h"
#include "USBHIDKeyboard.h"

USBHIDKeyboard Keyboard;

const int butonPin = 1; // Makro tetikleyici buton pini
int butonDurumu = HIGH;
int sonButonDurumu = HIGH;

void setup() {
  pinMode(butonPin, INPUT_PULLUP); // Dahili Pull-up direnci aktif
  
  Keyboard.begin();
  USB.begin();
}

void loop() {
  int okunan = digitalRead(butonPin);

  // Butona basıldığında (HIGH'dan LOW'a geçtiğinde)
  if (okunan == LOW && sonButonDurumu == HIGH) {
    delay(50); // Buton arkını (debounce) önlemek için kısa gecikme
    
    // Bilgisayara klavyeden metin gönderiyoruz
    Keyboard.println("Yenidir.com ile ESP32-S3 Makro Klavye Projesi Basarili!");
    
    // Örnek Çoklu Kombinasyon: Ctrl + S (Kaydetme Kısayolu)
    // Keyboard.press(KEY_LEFT_CTRL);
    // Keyboard.press('s');
    // delay(100);
    // Keyboard.releaseAll(); // Tuşları bırakmayı unutmayın!
  }
  
  sonButonDurumu = okunan;
}

Uygulama 2: Otomatik Mouse Hareketi ve Tıklama

Klavyenin yanı sıra ESP32-S3'ü bilgisayar imlecini hareket ettiren sanal bir fareye dönüştürebiliriz. Bu özellik, ekranın açık kalmasını sağlayan (Mouse Jiggler) cihazlarda ya da oyunlarda otomatik tıklama (Auto-Clicker) sistemlerinde sıkça kullanılır. Projenize USBHIDMouse.h kütüphanesini eklemeniz yeterlidir:

#include "USB.h"
#include "USBHIDMouse.h"

USBHIDMouse Mouse;

void setup() {
  Mouse.begin();
  USB.begin();
}

void loop() {
  // Fareyi X ekseninde +50 piksel sağa hareket ettirir
  Mouse.move(50, 0);
  delay(1000);

  // Sol tıklama yapar
  Mouse.click(MOUSE_LEFT);
  delay(1000);

  // Fareyi X ekseninde -50 piksel sola (eski yerine) hareket ettirir
  Mouse.move(-50, 0);
  delay(5000); // 5 saniye bekle
}

Geliştiriciler İçin Altın Kural: releaseAll() Fonksiyonu

HID klavye projelerinde yeni başlayanların en çok yaptığı hata, bir tuşa bastıktan sonra o tuşu bırakmayı unutmaktır. Kodunuzda Keyboard.press() fonksiyonunu çağırdığınızda, ESP32-S3 bilgisayara o tuşun hâlâ basılı tutulduğu sinyalini gönderir. Eğer hemen ardından Keyboard.releaseAll() komutunu vermezseniz, bilgisayarınız kilitlenebilir veya sürekli aynı harfi yazmaya başlar. Yazılımsal güvenliğiniz için kombinasyonların sonunda mutlaka tuşları serbest bırakın.


✔️ Sonuç

ESP32-S3'ün native USB gücü sayesinde ekstra hiçbir donanım eklemeden sadece birkaç satır kodla kendi özel oyuncu donanımlarınızı veya iş akışınızı hızlandıracak makro pad cihazlarınızı tasarlayabilirsiniz. Mekanik anahtarlar (Mechanical Switches) ve 3D yazıcıdan basılmış şık bir kutu ile bu projeyi ticari bir ürüne dönüştürmek tamamen sizin elinizde!

Fikir Alışverişi: Siz bu makro sistemini hangi programdaki kısayollarınızı otomatikleştirmek için kullanırdınız? Yorumlarda projelerinizi bizimle paylaşın!

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
Sayfa Başı
Yenidir CMS V0.1