Isotronic MacroPad – Pro Micro 6 Tuş Programlanabilir Makro Klavye

isotronic-store-minik-klavye-urun

Model: Pro Micro (ATmega32U4) tabanlı • Tuş sayısı: 6 • Sürüm: v1.0 • Tarih: 22.09.2025
Varsayılan Tuş Atamaları (Windows):

2 =Ses +, 3 =Ses −, 4= Oynat/Duraklat, 5= Hesap Makinesi, 6= Ekran Görüntüsü (Win+Shift+S), 7=Tarayıcı Aç (google.com)


1) Güvenlik ve Uyarılar

  • Ürünü yalnızca USB üzerinden bilgisayara bağlayın. Aşırı akım veren USB hub’lardan kaçının.
  • Sıvı, nem, toz ve statik elektrikten koruyun. ESD (statik) boşalması elektronik bileşenlere zarar verebilir.
  • Makro komutları oturum açma ekranı veya yönetici (UAC) pencereleri üzerinde çalışmayabilir. Bu durum işletim sistemi güvenlik kısıtları ile ilgilidir.
  • Makrolar otomatik yazı/tuş basışı içerdiği için kritik alanlarda (şifre alanları vb.) dikkatli kullanın.

2) Kutu İçeriği

  • 1× Isotronic MacroPad (6 tuş)

3) Sistem Gereksinimleri

  • Windows 10/11, macOS 11+ veya modern bir Linux dağıtımı
  • Boş USB‑A portu
  • Yazılım güncelleme ve programlama için Arduino IDE 2.x

4) Hızlı Başlangıç (Tak‑Çalıştır)

  1. Cihazı USB’ye takın. İşletim sistemi klavye olarak görür.
  2. Aşağıdaki varsayılan atamalar aktif gelir:
    • D2: Ses Aç
    • D3: Ses Kıs
    • D4: Oynat/Duraklat
    • D5: Hesap Makinesi (Win+R → calc)
    • D6: Ekran Görüntüsü aracı (Win+Shift+S)
    • D7: Tarayıcı Aç (varsayılan tarayıcıda https://google.com)
  3. Tuşa basarak hemen kullanmaya başlayın.

Not: macOS ve Linux’ta ekran görüntüsü/uygulama çağırma kısayolları farklıdır (bkz. Bölüm 8: Platforma Özel Kısayollar).


5) Donanım Özeti

  • Mikrodenetleyici: ATmega32U4 (doğal USB HID)
  • Tuşlar: 6 adet (pinler: D2, D3, D4, D5, D6, D7)
  • Bağlantı: USB HID (Klavye + Consumer Control)
  • Kütüphane: HID‑Project (NicoHood)


6) Tek Dosya – Kopyala/Yapıştır

Kullanıcılar için tek dosya hâline getirildi. Aşağıdaki skeci aynen kopyalayıp Arduino IDE’ye yapıştırın ve karta yükleyin.


#include <HID-Project.h>
#include <HID-Settings.h>

// 6 buton pini: 2=Ses+, 3=Ses-, 4=Play/Pause, 5=Hesap Makinesi,
// 6=Ekran Görüntüsü (Win+Shift+S), 7=Tarayıcı Aç (Edge→Google)
const uint8_t BTN_PINS[6] = {2, 3, 4, 5, 6, 7};
uint8_t prevState[6];
const unsigned long debounceMs = 25;

// Tarayıcı seçimi: Edge varsayılan. Chrome için alttaki satırı aç.
#define USE_EDGE   1
// #define USE_CHROME 1

// Tarayıcının açılıp odaklanması için bekleme (ms)
const unsigned long BROWSER_LAUNCH_DELAY_MS = 800; // 400–1200 deneyin

// --- Yardımcılar ---
void pressWinR() {
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press('r');
  delay(60);
  Keyboard.releaseAll();
}

void typeAndEnter(const char* s) {
  Keyboard.print(s);
  delay(60);
  Keyboard.write(KEY_RETURN);
}

// --- Aksiyonlar ---
void actionVolumeUp()    { Consumer.write(MEDIA_VOLUME_UP); }
void actionVolumeDown()  { Consumer.write(MEDIA_VOLUME_DOWN); }
void actionPlayPause()   { Consumer.write(MEDIA_PLAY_PAUSE); }

void actionCalculator() {            // Win+R → calc → Enter
  pressWinR();
  delay(120);
  typeAndEnter("calc");
}

void actionScreenshot() {            // Win+Shift+S
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press(KEY_LEFT_SHIFT);
  Keyboard.press('s');
  delay(60);
  Keyboard.releaseAll();
}

void actionOpenBrowser() {
  // 1) Win+R ile tarayıcıyı adıyla başlat (noktalama yok)
  pressWinR();
  delay(140);
#if defined(USE_CHROME)
  Keyboard.print("chrome");
#else
  Keyboard.print("msedge");
#endif
  delay(80);
  Keyboard.write(KEY_RETURN);

  // 2) Açıldıktan sonra adres çubuğu (Ctrl+L)
  delay(BROWSER_LAUNCH_DELAY_MS);
  Keyboard.press(KEY_LEFT_CTRL);
  Keyboard.press('l');
  delay(50);
  Keyboard.releaseAll();
  delay(80);

  // 3) "google" yaz ve Ctrl+Enter → www.google.com
  Keyboard.print("google");
  delay(60);
  Keyboard.press(KEY_LEFT_CTRL);
  Keyboard.press(KEY_RETURN);
  delay(50);
  Keyboard.releaseAll();
}

void setup() {
  for (int i = 0; i < 6; i++) {
    pinMode(BTN_PINS[i], INPUT_PULLUP); // buton: pin—GND
    prevState[i] = HIGH;
  }
  Consumer.begin();
  Keyboard.begin(); // HID‑Project'in Keyboard'ı
}

void loop() {
  for (int i = 0; i < 6; i++) {
    uint8_t cur = digitalRead(BTN_PINS[i]);
    if (prevState[i] == HIGH && cur == LOW) {
      delay(debounceMs);
      if (digitalRead(BTN_PINS[i]) == LOW) {
        switch (i) {
          case 0: actionVolumeUp();     break; // pin 2
          case 1: actionVolumeDown();   break; // pin 3
          case 2: actionPlayPause();    break; // pin 4
          case 3: actionCalculator();   break; // pin 5
          case 4: actionScreenshot();   break; // pin 6
          case 5: actionOpenBrowser();  break; // pin 7
        }
        while (digitalRead(BTN_PINS[i]) == LOW) { delay(5); } // bırakılana kadar bekle
        delay(10);
      }
    }
    prevState[i] = cur;
  }
}

Özet: Tek dosya, tek kütüphane (HID‑Project). Keyboard.h eklemeyin. TR klavyede URL bozulmasını önlemek için google + Ctrl+Enter yöntemi kullanılır.


7) Arduino IDE ile Yükleme

  1. Arduino IDE 2.x kurulu olsun.
  2. Kart: SparkFun Pro Micro (5V/16MHz) — alternatifi Arduino Leonardo.
  3. Kütüphane: Library Manager’dan HID‑Project by NicoHood’u kurun.
  4. Bu sayfadaki tek dosya skeci IDE’ye yapıştırın → Upload.
  5. Port görünmüyorsa Pro Micro’yu çift tık reset ile bootloader moduna alın, ardından tekrar Upload.
    (Windows/macOS/Linux)
  6. Arduino IDE 2.x indirin ve kurun.
  7. Kart tanımı:
    • Tercih edilen:SparkFun AVR Boards paketini ekleyip kartı SparkFun Pro Micro (ATmega32U4) seçin.
      • File → Preferences → Additional Boards Manager URLs alanına:
        https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json ekleyin.
      • Tools → Board → Boards Manager… içinde SparkFun AVR Boards’u kurun.
      • Tools → Board menüsünden SparkFun Pro Micro’yu seçin (5V/16MHz genelde uygundur).
    • Alternatif: Kartı Arduino Leonardo olarak seçmek çoğu durumda çalışır (aynı MCU).
  8. Kütüphane: Sketch → Include Library → Manage Libraries… açın, HID‑Project by NicoHood kütüphanesini kurun.
  9. Port: Tools → Port menüsünden cihaza atanan COM/tty portunu seçin.
  10. Projeyi (main.ino + config.h) açın.
  11. Verify (✔) ile derleyin, ardından Upload (→) ile karta yükleyin.

Yükleme Sorunlarında (Bootloader/Reset)

  • Pro Micro’da çift tık reset: RST pinine hızlıca 2 kez dokundurun (veya dahili butona çift tıklayın); kart bootloader modunda yeni bir COM port olarak görünür. 8–10 sn içinde Upload’a basın.
  • Port kaybolursa: Kabloyu değiştirin (data destekli), farklı USB port deneyin.
  • Windows’ta sürücü ihtiyacı genellikle yoktur (ATmega32U4 doğal HID). Gerekirse Aygıt Yöneticisi’nden tekrar takıp çıkarın.

8) Platforma Özel Kısayollar (Örnekler)

  • Windows:
    • Ekran görüntüsü: Win+Shift+S (kesim aracı)
    • Hesap makinesi: Win+R → calc → Enter
    • URL açma: Win+R → https://... → Enter
  • macOS:
    • Ekran görüntüsü: Cmd+Shift+4 (seçim), Cmd+Shift+3 (tam ekran)
    • Uygulama: Cmd+Space (Spotlight) → uygulama adı → Enter
  • Linux (GNOME):
    • Ekran görüntüsü: PrintScreen (tam ekran) / Shift+PrintScreen (bölge)
    • Uygulama: gnome-calculator, firefox gibi komutlar; gerekirse kısayola atayın.

9) Özelleştirme Fikirleri

  • Çift/uzun tıklama: Tek tuşa iki farklı eylem.
  • Profil sistemi: Farklı kullanım profilleri (oyun, üretkenlik) için tuş eşlemeleri; profil değiştirme tuşu.
  • Aydınlatma/LED: Tuşa basıldığında LED yanması (ör. WS2812B/Neopixel).
  • Uygulama‑özel makrolar: Photoshop, DaVinci Resolve, VS Code gibi yazılımlara özgü kısayollar.

10) Sık Sorulan Sorular (SSS)

S: Tuşa basıyorum, bazen bir şey olmuyor.
C: Aktif pencere odakta olmayabilir. Ekran görüntüsü/hızlı çalıştır pencereleri kısmi gecikme isteyebilir; delay değerlerini (60–150 ms) artırmayı deneyin.

S: Yükleme başarısız (avrdude timeout).
C: Çift tıklayıp bootloader moduna alın, yeni görünen COM portu seçin ve 8–10 sn içinde yükleyin. Kabloyu değiştirin.

S: macOS’ta medya tuşları çalışmıyor.
C: Consumer Control desteği sınırlı olabilir. Alternatif olarak Keyboard kütüphanesi ile kısayol göndererek aynı işlevi taklit edin.

S: Linux’ta komut çalışmıyor.
C: Dağıtımdaki uygulama adını kontrol edin (gnome-calculator, kcalc vb.). Gerekirse sistem klavye kısayollarına özel atama yapın.

S: Tek tuşa birden fazla komut gönderebilir miyim?
C: Evet. doAction içinde ardışık Keyboard.press/print/write çağrılarıyla bir senaryo oluşturabilirsiniz.


11) Bakım ve Garanti

  • Toz ve kirden uzak tutun; tuşlara aşırı kuvvet uygulamayın.
  • Yazılım değişiklikleri kullanıcı sorumluluğundadır. Hatalı yazılımdan doğacak veri kaybı veya davranışlardan üretici sorumlu değildir.
  • Donanım için standart 6 ay sınırlı garanti (fiziksel hasar, sıvı teması, yanlış lehimleme hariç). Satın alma belgesini saklayın.

12) Hızlı Referans

Pin → Eylem (varsayılan):

  • D2: Ses +
  • D3: Ses −
  • D4: Oynat/Duraklat
  • D5: Hesap Makinesi
  • D6: Ekran Görüntüsü
  • D7: Tarayıcı Aç

Derleme/Yükleme:

  1. Kart: SparkFun Pro Micro (veya Arduino Leonardo)
  2. Kütüphane: HID‑Project
  3. Dosyalar: main.ino + config.h
  4. Gerekli ise bootloader modunda yükleyin (çift tık reset).

13) Destek

Sorularınız için:
E‑posta: [email protected]
Web: https://isotronic.tr
Whatsapp: +90 542 598 42 54

Bu kılavuz, kullanıcıların cihazı hızlıca özelleştirebilmesi için hazırlanmıştır. Güncellemeler ve yeni örnekler için web sitemizi takip edin.


14) v1.1 Güncellemesi – 22.09.2025

Değişiklik Özeti

  • Tarayıcı açma yöntemi TR klavye ile uyumlu hale getirildi: Win+R → msedge/chrome → Enter → Ctrl+L → "google" → Ctrl+Enter (noktalama yok, URL otomatik tamamlanır).
  • Keyboard.h bağımlılığı kaldırıldı; yalnızca HID‑Project kullanılır (çift Keyboard_ tanımı hatası önlendi).
  • Varsayılan “Tarayıcı Aç” tuşu Edge ile açıp Google’a gitmek üzere güncellendi. Chrome tercih edenler için derleme zamanı seçeneği eklendi.

Kod (v1.1 – Windows)

Aşağıdaki tek dosyayı yükleyin (örnek kart: Pro Micro 5V/16MHz). Gerekli kütüphane: HID‑Project by NicoHood.

#include <HID-Project.h>
#include <HID-Settings.h>

// 6 buton pini: 2=Ses+, 3=Ses-, 4=Play/Pause, 5=Hesap Makinesi,
// 6=Ekran Görüntüsü (Win+Shift+S), 7=Tarayıcı Aç (Edge→Google)
const uint8_t BTN_PINS[6] = {2, 3, 4, 5, 6, 7};
uint8_t prevState[6];
const unsigned long debounceMs = 25;

// Tarayıcı seçimi: Edge varsayılan. Chrome için alttaki satırı açın.
#define USE_EDGE   1
// #define USE_CHROME 1

// Tarayıcının açılıp odaklanması için bekleme (ms)
const unsigned long BROWSER_LAUNCH_DELAY_MS = 800; // sisteminize göre 400–1200 deneyin

// --- Yardımcılar ---
void pressWinR() {
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press('r');
  delay(60);
  Keyboard.releaseAll();
}

void typeAndEnter(const char* s) {
  Keyboard.print(s);
  delay(60);
  Keyboard.write(KEY_RETURN);
}

// --- Aksiyonlar ---
void actionVolumeUp()    { Consumer.write(MEDIA_VOLUME_UP); }
void actionVolumeDown()  { Consumer.write(MEDIA_VOLUME_DOWN); }
void actionPlayPause()   { Consumer.write(MEDIA_PLAY_PAUSE); }

void actionCalculator() {
  // Win+R → calc → Enter
  pressWinR();
  delay(120);
  typeAndEnter("calc");
}

void actionScreenshot() {
  // Windows kesim aracı: Win+Shift+S
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press(KEY_LEFT_SHIFT);
  Keyboard.press('s');
  delay(60);
  Keyboard.releaseAll();
}

void actionOpenBrowser() {
  // 1) Win+R ile tarayıcıyı adıyla başlat (noktalama yok)
  pressWinR();
  delay(140);
  #if defined(USE_CHROME)
    Keyboard.print("chrome");
  #else
    Keyboard.print("msedge");
  #endif
  delay(80);
  Keyboard.write(KEY_RETURN);

  // 2) Tarayıcı açılınca adres çubuğuna git (Ctrl+L)
  delay(BROWSER_LAUNCH_DELAY_MS);
  Keyboard.press(KEY_LEFT_CTRL);
  Keyboard.press('l');
  delay(50);
  Keyboard.releaseAll();
  delay(80);

  // 3) "google" yaz ve Ctrl+Enter → www.google.com
  Keyboard.print("google");
  delay(60);
  Keyboard.press(KEY_LEFT_CTRL);
  Keyboard.press(KEY_RETURN); // Ctrl+Enter = www.+.com
  delay(50);
  Keyboard.releaseAll();
}

void setup() {
  for (int i = 0; i < 6; i++) {
    pinMode(BTN_PINS[i], INPUT_PULLUP); // buton: pin—GND
    prevState[i] = HIGH;
  }
  Consumer.begin();
  Keyboard.begin(); // HID‑Project'in Keyboard'ı
}

void loop() {
  for (int i = 0; i < 6; i++) {
    uint8_t cur = digitalRead(BTN_PINS[i]);

    if (prevState[i] == HIGH && cur == LOW) {
      delay(debounceMs);
      if (digitalRead(BTN_PINS[i]) == LOW) {
        switch (i) {
          case 0: actionVolumeUp();     break; // pin 2
          case 1: actionVolumeDown();   break; // pin 3
          case 2: actionPlayPause();    break; // pin 4
          case 3: actionCalculator();   break; // pin 5
          case 4: actionScreenshot();   break; // pin 6
          case 5: actionOpenBrowser();  break; // pin 7
        }
        while (digitalRead(BTN_PINS[i]) == LOW) { delay(5); } // bırakılana kadar bekle
        delay(10);
      }
    }
    prevState[i] = cur;
  }
}

Notlar:

  • TR klavye düzeninde noktalama içeren URL yazdırma (örn. https://…) ASCII düzen farkları nedeniyle bozulabilir. Bu sürüm, yalnızca harflerle çalışır.
  • Sadece HID‑Project kullanılır; #include <Keyboard.h> eklemeyin.
  • BROWSER_LAUNCH_DELAY_MS değeri sistem hızına göre ayarlanabilir.

Gerekli Uygulama ve Dosyaları İndirmek İçin Tıklayınız

Yazıyı Paylaş :