Herkese merhaba!
Oyun oynarken küfür eden sevdiğiniz birisi mi var? (ya da sevmediğiniz) ona cezaların en güzelini kesmeye hazır olun. O çıldırırken siz eğlenin. Kim bilir belki hatasını da fark eder biraz kendine çeki düzen verir 🙂 Bu videoda kardeşime yaptığım şakayı izleyeceksiniz. İyi seyirler 🙂

Eğer siz de aynı projeyi yapmak isterseniz bu içeriği okumaya devam edebilirsiniz. Kolay gelsin 🙂


Bu projeyi yapmak için ilk önce Arduino Pro Micro ve IR Uzaktan Kumanda – Alıcı Kit’e ihtiyacımız var.

Satın almak için:
Arduino Pro Micro Klon
IR Uzaktan Kumanda ve Alıcı Kit

Not: Arduino Pro Micro, headerları ile lehimli gelmediği için videoda da gösterdiğimiz üzere sizin lehimlemeniz gerekiyor.


Projenin anlatımına geçmeden şunu belirtmek istiyorum, Arduino’ya kod yükleyebilecek seviyede Arduino bildiğinizi düşünerek devam edeceğim.

Eğer henüz o seviyede değilseniz, Arduino Nasıl İndirilir? Nasıl Yüklenir? Kod Yükleme? konusuna göz atabilirsiniz. Arduino’muz Pro Micro olduğu için Araçlar -> Kart ekranından Arduino Pro Micro’yi seçmelisiniz.

KÜTÜPHANE

Bu projede ihtiyacınız olacak diğer bir konu ise kütüphane kurulumu. Ona da Arduino’da Kütüphane Kurulumu konusundan göz atabilirsiniz.

IRremote Kütüphanesi

MALZEMELER

Bu içerik için gerekli olan tüm malzemeleri www.robo90.com üzerinden güvenle satın alabilirsiniz.

  1. Arduino Pro Micro Klon 5V 16 Mhz
  2. IR Alıcı Verici Kumanda Seti – Arduino Uyumlu
  3. Elektronik Breadboard – Büyük Boy – 830 Pin
  4. Jumper Kablo

DEVRE ŞEMASI

Televizyon Kumandası ile Bilgisayar Oyunu Trolleme devre şeması

KOD

İlk önce kendi kumandanızın tuş kodlarını kalibre etmek için aşağıdaki kodu çalıştırmalısınız. Kumandanızın tuşlarının hex kodlarını belirledikten sonra ise her defasında hex kodlarıyla uğraşmamak için sabit bir isme define edebilirsiniz.
Aşağıdaki kodun buton defineları bizim kumandamıza göre yapıldı, karşılarındaki hex kodlarını kendi kumandanıza göre güncellemelisiniz.

#include <IRremote.h>
IRrecv irrecv(6);

decode_results results;

#define BUTON1 0xFF6897
#define BUTON2 0xFF9867
#define BUTON3 0xFFB04F
#define BUTON4 0xFF30CF
#define BUTON5 0xFF18E7
#define BUTON6 0xFF7A85
#define BUTON7 0xFF10EF
#define BUTON8 0xFF38C7
#define BUTON9 0xFF5AA5
#define YILDIZ 0xFF42BD
#define BUTON0 0xFF4AB5
#define KARE 0xFF52AD
#define YUKARI 0xFF629D
#define SOL 0xFF22DD
#define OK 0xFF02FD
#define SAG 0xFFC23D
#define ASAGI 0xFFA857

#include <Keyboard.h>
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); //Receiver'i baslatir
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);

  Keyboard.begin();
}
void loop()
{
  if (irrecv.decode(&results))
  {
    Serial.println(results.value, HEX); 
    irrecv.resume();
  }
}

Aşağıdaki ekran görüntüsünde de görebileceğiniz gibi, ben kodu yükledikten sonra, Seri monitörü açıp, kumanda üzerindeki tuşlara bastıkça ekrana bastığım tuşun hex kodu geliyor. Sizin kumandanız buradan farklı değerler verebilir. Daha kısa ya da daha uzun kodlar gelebilir sorun yok. Yapmanız gereken o tuşun karşılığı olan kodu, Arduino içine yükleyeceğimiz yazılımdaki #define ile belirtilmiş kısma koymak.

ir hex define

Kendi amacınıza göre kodu düzenlemek için; hangi butona basıldığında ne yapmasını/hangi karakteri göndermesini istediğinizi (yapacağınız troll düzeyine göre :D) yazmanız yeterli olacaktır. Örnek vermek gerekirse;

if (results.value == BUTON1)
{
Keyboard.write("g");
}

şekilde BUTON1 olarak define ettiğiniz tuşa basıldığında g karakterini yollayacak. Eğer CS:GO’da maç esnasında basarsanız silahı yere atmakla sonuçlanacak 😀
Ya da aşağıdaki if bloğu gibi düzenleyerek League of Legends oynarken ulti veya sıçra attırmak için kullanabilirsiniz.

if (results.value == BUTON1)
{
Keyboard.write("r");
}
else if (results.value == BUTON2)
{
Keyboard.write("f"); //Bu arada flash f'de kullanılır :D
}

Key isimleri, Hex değerleri ve Decimal değerlerini içeren tablo için: https://www.arduino.cc/en/Reference/KeyboardModifiers


Bir tuşa basıp elinizi çekmezseniz, ilk önce butonun değerini yazıp ardından da FFFFFFFF çıktısını verecektir.

Kumandadan tuşa bastığımızda gönderilecek değer için write, print ve press olmak üzere üç seçeneğimiz var. Aslında print ve write’ı aynı işlem için sayabiliriz. Keyboard.press fonksiyonuna, “alt+f4” veya “ctrl+alt+delete” gibi tuş kombinasyonlarında ihtiyacımız var.

Örnek vermek gerekirse, Keyboard.press(KEY_LEFT_ALT) ile parametre olarak yolladığımız “KEY_LEFT_ALT” karakterine basılı tutmuş oluyoruz. Ta ki, Keyboard.Release(KEY_LEFT_ALT) fonksiyonu ile KEY_LEFT_ALT karakterini bırakarak veya Keyboard.ReleaseAll() ile bütün Keyboard.press() fonksiyonlarını bırakarak.

Keyboard.print(“Hello”) fonksiyonuna parametre olarak, gördüğümüz gibi karakter veya karakterler; bir başka deyişle okunabilir ASCII metin yazabiliyoruz.

Keyboard.write() fonksiyonuna parametre olarak;
Keyboard.write(65) karakterlerin ASCII değerlerini,
Keyboard.write(‘A’) karakterleri,
Keyboard.write(0x41) başında 0x olmak kaydıyla hex kodlarını veya
Keyboard.write(0b01000001) başında 0b olmak kaydıyla binary değer yazabiliyoruz.

Aşağıdaki kod bloğundaki gibi Switch – Case kullanarak da yapabilirsiniz.
*Eğer Arduino’da Switch Case yapısının anlatıldığı videoyu izlemek isterseniz. Arduino Tarifleri #14 – Switch Case Yapısı

    switch (results.value){
      case 0xFF6897: //button 1'e basıldığında
        Keyboard.write("g");
        break;   
      case 0xFF9867: //button 2'ye basıldığında
        Keyboard.write("d");   
        break;
       case 0xFFB04F: //button 3'e basıldığında
        Keyboard.write("f");
        break;           
    }
    irrecv.resume(); // Receives the next value from the button you press
  }

Paylaştığımız diğer içeriklere göz atmak için:
https://lezzetlirobottarifleri.com/yazilar/

Arduino Projeleri:
https://lezzetlirobottarifleri.com/kategori/arduino-projeleri/

Canlı Yayın’da Sıfırdan PCB Yapmak:
https://lezzetlirobottarifleri.com/kategori/canli-yayin/