Selamlar! Umarım Lazyboard projesi hoşunuza gitmiştir. Eğer beğenirseniz ve kendinize bir tane yapmak isterseniz diye size bu rehberi hazırladım. Bu yazı sürecin başından sonuna kadar size yol gösterecek ve temel konularda çeşitli kaynaklara yönlendirerek sadece Lazyboard’u inşa etmeye değil, bu kültüre bir giriş yapmanıza da olanak sağlamasını umuyorum. Eğer anlamadığınız yerler ya da sorularınız olursa lütfen yorumlar kısmında paylaşın. Bunları da yazıya eklerim. Buyurun başlayalım.

Digispark Kurulumu ve Arduino IDE eklenmesi

Lazyboard’un kalbinde ATtiny85 mikrodenetleyici bulunur. Bu arkadaş 8 bacağı ve küçük yapısı ile sizi aldatmasın bir hayli kuvvetlidir. Bu mikrodenetleyici günümüzde bu kadar popüler yapan proje ise Digispark’tır. Digispark ATtiny85 tabanlı bir mikrodenetleyici geliştirme kartıdır.


Digispark tamamen Arduino uyumludur ve üzerindeki ATtiny85 içerisinde micronucleus bootloader’ı bulunur. Bu bootloader sayesinde Attiny85, USB üzerinden kod yüklenmesi gibi çeşitli özellikler kazanır. Lazyboard da aynı mikrodenetleyici ve aynı bootloader’ı kullandığı için Arduino IDE üzerinden Digispark kartı gibi programlanabilir. Bu yüzden ilk olarak Arduino IDE üzerine Digispark kartını tanıtmalı ve bilgisayarınıza gerekli driver kurulumunu yapmalısınız. Bu süreci anlatan detaylı videomuzdan faydalanabilirsiniz.


Kurulumları yaptıktan sonra mümkünse bir Digispark temin ederek içine test kodlarını atmayı denemenizi şiddetle tavsiye ederim. Lazyboard’u programlamaya geçmeden önce bilgisayarınızdaki işleri doğru bir şekilde hallettiğinizden bu sayede emin olabilirsiniz.

Lazyboard’u ve Komponentleri Temin Etme

Lazyboard’u temin etmek için 2 seçeneğiniz var. Birincisi hazır satın almak, ikincisi ise ürettirmek.

Lazyboard tüm Lezzetli Robot Tarifleri projelerinde olduğu gibi açık kaynak kod kültürü benimsenerek ve bu kültürden faydalanarak geliştirilmiş bir projedir. Ticari olmayan faaliyetler doğrultusunda bireyler kendi istek ve arzularına göre kaynak dosyaları kullanabilir ve değişiklikler yapabilir. Bu bağlamda dilerseniz projenin gerber dosyalarını ücretsiz indirerek kendi tercih ettiğiniz pcb üretim servisinden sipariş geçebilirsiniz. Projenin eagle tasarım ve gerber dosyalarına aşağıdaki bağlantıdan ulaşabilirsiniz.


Eğer pcb üretimi konusunda tecrübesizseniz ya da basit ifadeyle bununla uğraşmak istemezseniz Robo90.com üzerinden de Lazyboard temin edebilirsiniz.

Lazyboard’u robo90.com üzerinden çeşitli şekillerde temin edebilirsiniz. Bunlar:

  • Sadece Boş PCB
  • Boş PCB + gerekli komponentler
  • Kullanıma Hazır Lazyboard


Her 3 seçenekte de Robo90 filamentleri ile üretilmiş rastgele renkte basit bir muhafaza hediyesi vardır.

Projeyi çalışır hale getirmek için gereken komponentler aşağıda listelenmiştir. robo90.com üzerinden demonte set ile aşağıdaki komponentlerin tamamı gönderilmektedir.

  • 1 Adet Lazyboard PCB
  • 6 Adet Outemu Mekanik Klavye Switchi
  • 1 Adet Tsop2238 Kızılötesi Alıcı
  • 1 Adet USB B Dişi Konnektör
  • 2 Adet 0.1uF mercimek kondansatör
  • 1 Adet 1.5kohm
  • 1 Adet 100ohm
  • 3 Adet 10kohm
  • 1 Adet 1kohm
  • 1 Adet 1n5819 Diyot
  • 1 Adet 2.2kohm
  • 6 Adet 220ohm
  • 1 Adet 3.3kohm
  • 2 Adet 3.6V 500mW Zener
  • 1 Adet 33kohm
  • 1 Adet 4.7kohm
  • 2 Adet 68ohm
  • 1 Adet Attiny85 MCU
  • 1 Adet 8’li entegre yatağı
  • 1 Adet 2n2222
  • 6 Adet 3mm Mavi led

Lehimleme

Lazyboard normalde olması gerekenden daha büyük komponent padleriyle tasarlanması ve tamamen dip komponentlerden oluşması sayesinde gelişmiş lehimleme ekipmanları ve lehimleme tekniklerine gerek duymadan rahatlıkla lehimlenebilir.

Elektronik konusunda tecrübesi olmayan kişiler bile basit bir eğitim ve temel ekipmanlar ile Lazyboard’u toparlayabilir. Hatta bende bu kartı kendi atölyemdeki profesyonel ekipmanlarım yerine robo90.com üzerinden sunduğumuz uygun fiyatlı bir lehimleme seti ile lehimledim. Bu lehimleme setini incelediğim ve temel seviyede lehimin nasıl yapıldığını anlattığım videoyu izlemek isterseniz aşağıdaki bağlantıyı kullanabilirsiniz.


Bu video içerisinde lehim teli alakalı özel bir bölüm bulunuyor. O kısmı özellikle izlemenizi ve mümkünse kaliteli bir lehim teli temin etmenizi şiddetle tavsiye ederim. Ayrıca ben de videoda kullandığım kendi Lazyboard’umu bu set ile lehimledim ve tüm süreci video olarak kaydettim. İşlemesi bittiğinde videoyu sizinle paylaşacağım.

Lehimleme Tablosu

Lazyboard’u lehimlemek için aşağıdaki tabloyu kullanabilirsiniz. Hangi komponentin nereye lehimleneceği aşağıdaki tabloda belirtilmiştir. Kişisel önerim lehimleme sırasında tabloyu referans alarak, tablodaki sırayla komponentleri lehimlerseniz daha kolay bir lehimleme süreci yaşarsınız.

Mekanik switchlerin ledlerini eklemek isterseniz önce switchleri sonra switchlerin üstüne ledleri lehimlemeniz gerektiğini unutmayın.

R10, R11, R12, R13, R14, R15220 ohm direnç ( kırmızı-kırmızı-kahve-altın)
R1, R3, R1810k ohm direnç ( kahve-siyah-turuncu-altın)
R171k ohm direnç ( kahve-siyah-kırmızı-altın)
R16100 ohm ( kahve-siyah-kahve-altın)
R91.5k ohm ( kahve-yeşil-kırmızı-altın )
R62.2k ohm ( kırmızı-kırmızı-kırmızı-altın)
R53.3k ohm ( turuncu-turuncu-kırmızı-altın)
R233k ohm ( turuncu-turuncu-turuncu-altın)
R44.7k ohm ( sarı-mor-kırmızı-altın)
R7, R868 ohm ( mavi-gri-siyah-altın)
J1( USB-B Dişi konnektör)
D11N5819 Diyot Komponent Yönüne Dikkat!! (görsel 1)*
D2, D33.6V 500mW Zener Diyot Komponent Yönüne Dikkat!! (görsel 1)*
U1Entegre Yatağı Komponent Yönüne Dikkat!! (görsel 2)**
U2Tsop2235 Kızılötesi Alıcı Nazik İşçilik Gerekiyor!! (görsel 3)**
Q12n2222 Transistör Komponent Yönüne Dikkat!! (görsel 4)**
S1, S2, S3, S4, S5, S6Outemu Mekanik Switch Açıklamayı Okuyunuz (görsel 5)**
C1, C20.1uF mercimek kondansatör ( 104 )
J22×3 Header Açıklamayı Okuyunuz (görsel 6)**
Ledler3mm Mantar Led Açıklamayı Okuyunuz (görsel 5)**

Görsel 1 – Diyotlar kutuplu komponentlerdir. Lehimlerken yönlerine dikkat etmek gerekir. Görseldeki gibi lehimlediğinizden emin olunuz.

Görsel 2 – Entegre yatağının üzerindeki çentik U1 yazısına denk gelecek şekilde görseldeki gibi lehimlenmelidir. İlerleyen aşamalarda Attiny85 yine bu entegre üzerine çentikler denk gelecek şekilde takılacaktır.

Görsel 3 – Tsop2238 kızılötesi alıcı şekildeki gibi deliğine takıldıktan sonra kendine ayrılan yere bacakları bükülerek yatırılmalıdır. İsteğe göre komponent daha yüksekte kalacak şekilde de lehimlenerek alıcının görüşü arttırılabilir.

Görsel 4 – Transistör yönlü bir komponenttir ve görseldeki gibi lehimlenmelidir. Bacaklarını yuvasına girecek şekilde nazikçe bükebilirsiniz. Hafif havada kalarak lehimlenecektir.

Görsel 5 – Lazyboard Outemu switchler ile tanıtılsa da çok sayıda mekanik switch destekleyecek şekilde tasarlanmıştır. Hem farklı switchleri desteklemesi hem de kolay lehimlenebilmesi için padleri büyük çizilmiştir. Komponenti lehimlerken switch pcb üzerinde kayabilir ve yamuk lehimlenebilir ve ledlerin girişi zorlanabilir. Switch’i düz bir şekilde lehimlemek için dikkat ediniz. Yukarıda bahsettiğim Lazyboard lehimleme videosunda bu durum ile alakalı bir tüyo verdim, bakmak isteyebilirsiniz.
Ledler switchlerin üzerine kendi yuvalarına oturtulduktan sonra lehimlenecektir. Tüm ledlerin uzun bacakları PCB üzerinde USB konnektörün olduğu tarafa bakacak şekilde lehimlenmelidir.

Görsel 6 – Bu header’i lehimlemenize gerek yok. İleri seviye kullanıcılar farklı ihtiyaçları için dışarıdan ATtiny85 pinlerine erişmek isterlerse diye bırakılmış bir kısım. Eagle dosyaları üzerinden pinlerin detayları incelenebilir.

Lehimleme işlemi bittikten sonra elektronikçi yan keskisi ile komponentlerin uzun bacaklarını kesmeyi unutmayın.

Micronucleus Bootloader Kurma

Lazyboard USB üzerinden doğrudan programlabilir şekilde geliştirilmiştir. Bunun için ATtiny85 mikrodenetleyici içerisine özel bir bootloader yani önyükleyici kurmak gerekiyor. Micronucleus adındaki bu özel bootlader sayesinde ATtiny85 USB üzerinden programlanabilir hale geliyor.

Eğer robo90.com üzerinden demonte ya da kullanıma hazır lehimlenmiş bir Lazyboard satın aldıysanız bu bootlader bizim tarafımızdan kurulmuş ve Lazyboard içerisine ledleri açıp kapatan örnek bir kod yüklenmiş halde size gelir. USB kabloyu bağladığınızda direkt ledler yanıp sönmeye başlar. Fakat kendinize ait ya da başka bir yerden satın aldığınız ATtiny85’ler için bu bootloader’ı sizin yüklemeniz gerekir. Merak etmeyin bu işlem içinde detaylı bir video hazırladık aşağıdaki video da işinizi görecektir.


ATtiny85 üzerine bootlader kurduktan sonra artık Lazyboard üzerine mikrodenetleyiciyi takabilirsiniz. Çip üzerindeki çentik, kart üzerindeki entegre yatağının çentiği ile aynı yönde olmalıdır. Yani U1 yazısına bakacak şekilde takmalısınız.

Lazyboard’u Kodlama

Lazyboard’u kodlamak aslında Digispark kodlamak ile aynı. Digispark ile alakalı temeller Lazyboard için de birebir geçerlidir. Aslında Lazyboard’u çeşitli çevre bileşenlerinin eklendiği bir Digispark kartı gibi görebilirsiniz ve bu üzerindeki donanımları asgari düzeyde çalıştırmak son derece basittir. Fakat onu macropad olarak kullanmak ve bilgisayar ortamında istediğiniz işleri yaptırmak kodlama bilginiz ile alakalıdır.

Bu kısımda Lazyboard üzerindeki donanımların nasıl kontrol edileceğini anlatıp sizlere bazı örnek kullanımlar göstereceğim. Sizler de kendi örneklerinizi yorumlar kısmında ya da info@lezzetlirobottarifleri.com üzerinden paylaşırsanız yazıya eklerim.


Hazırlamış olduğunuz kodları Lazyboard’a yüklemek için 2. kısımda verdiğim Digispark kurulumunu anlatılan videodaki metodu kullanmanız gerekiyor. Arduino IDE üzerindeki gerekli ayarlamalar yapıldıktan sonra yükleme tuşuna basınca editörün kartı tak uyarısı ile beraber takarak yükleme işlemi yapılabilir.

Lazyboard en temel manada 3 birimden oluşur. Bunlar mekanik switchler, kızılötesi alıcı ve led’lerdir. Devre şeması ve aşağıdaki örnek kodlardan faydalanarak bu donanımların nasıl kontrol edilebileceğini anlayabilirsiniz.

Önemli not: digispark üzerinde dijital işlemler direkt pin ismi ile yapılır. Analog işlemler için ise analog port numarasını kullanmanız gerekiyor. Lazyboard’da mekanik tuşlar PB2 pinine bağlıdır. Bu pin “input 1” portunu kullanır. Bu yüzden analog işlemlerde pin referansı için 1 kullanmamız gerekiyor. Daha detaylı bilgi için Digispark’ın ilgili wiki sayfasının linki bırakıyorum:
http://digistump.com/wiki/digispark/tutorials/basics

Önemli not 2: Lazyboard kartınızı aldıktan sonra aşağıda sizler için hazırlamış olduğumuz kodları doğrudan deneyebilirsiniz. Ancak küçük bir ihtimallede olsa tekrardan kalibre etmeniz gerekebilir. Bu durumda tek yapmanız gereken Analog Değer Okuma maddesindeki kodu kullanarak butonlarınızdan gelen verilere göre koddaki değerleri değiştirmeniz yeterli olacaktır.

Kütüphane Kurulumu

Lazyboard’ı kodlamadan önce Türkçe klavye desteği için kütüphane kurmamız gerekmekte. Kütüphaneyi buradan indirebilirsiniz github, kütüphane kurmayı bilmiyor iseniz buradaki içeriğimize göz atabilirsiniz.

Kütüphaneyi kullanırken türkçe klavye düzeni kullandığımızı belirtmemiz gerekiyor bunun içinde kodun başına aşağıdaki kodu yazmamız gerekmekte.

#define kbd_tr_tr
#include "DigiKeyboard.h"

Ledlerin Kontrolü

Ledler ATtiny85’in PB1 portuna bağlanmış bir transistör yardımı ile topluca kontrol edilebilir. Ledleri birbirinden bağımsız tek tek sürmek mümkün değil. Aşağıdaki örnek kod ile ledleri kontrol edebilirsiniz.

#define led 1

void setup() {
  pinMode(led, OUTPUT);
}

void loop() {
  digitalWrite(led, HIGH);   
  delay(500);                      
  digitalWrite(led, LOW);    
  delay(500);                      
}

Analog Değer Okuma

Lazyboard üzerindeki Attiny85 dahili bir uart birimi ya da usb uart dönüştürücüsü olmadığı için analog okuduğumuz değerleri doğrudan seri monitöre aktaramayız. Ancak bununda bir hilesi var. Lazyboard’u bir klavye olarak tanıtıp bilgisayara komut gönderir gibi değerleri yazdırabiliriz.

// Türkçe klavye desteği ve kütüphanemizi ayarlıyoruz
#define kbd_tr_tr
#include "DigiKeyboard.h"

void setup() {
  // Lazyboardın kendisini ayarlaması ve kaza ile rastgele tuş göndermemesi
  // için gerekli başlangıç kodları
  DigiKeyboard.delay(2500);
  DigiKeyboard.sendKeyStroke(0);
}

void loop() {
  
  // Mekanik switchlerden okunan değer data isimli değişkene kayıt edilir
  int data = analogRead(1);
  // Okunan değer 100den büyük ise
  if ( data > 100)
  {
    // Klavyeden "Okunan Deger" yazısı ve data verisinin yazdırılması
    // ÖNEMLİ: kütüphane oluşan hatalardan dolayı ğ harfini desteklememektedir
    DigiKeyboard.print("Okunan Deger:   ");
    DigiKeyboard.print(data);
    // Enter tuşuna basılması
    DigiKeyboard.sendKeyStroke(KEY_ENTER);
    while (analogRead(1) > 100);
  }
  // Analog okumadaki karasızlıkları engellemek için kısa bir bekleme
  DigiKeyboard.delay(50);
}

Mekanik Switch Kontrolü

ATtiny85 çok yetenekli bir mikrodenetleyici olsa da bacak sayılarının azlığı onu çoğu zaman kısıtlar. Lazyboard projesinde de butonlar birbirine dirençler ile seri bağlanmış buton mantığı ile okunur. Aslında bu durumu devre şeması üzerinden daha rahat gözlemleyebilirsiniz.


Şemadan da gözlemleyebileceğiniz üzere S6 tuşuna bastığınızda 2.2K bir direnç ile 10K üzerinden bir gerilim bölücü sayesinde değer okuması gerçekleşiyor. S5 tuşuna bastığınızda ise 3.3K + 2.2K = 5.5K üzerinden bir gerilim bölücü çalışıyor ve ona göre bir voltaj ATtiny85 tarafına iletiyor. İşte bu iletilen voltaj değerlerini tespit ederek hangi butona basıldığını anlamamız mümkün. Aşağıdaki kodu incelerseniz bu değerleri görebilir ve hangi butona ne yaptırmak istiyorsanız bunun için kodun neresini değiştirmeniz gerektiğini anlayabilirsiniz.

#define kbd_tr_tr
#include "DigiKeyboard.h"

void setup() {
  DigiKeyboard.delay(2500);
  DigiKeyboard.sendKeyStroke(0);
}

void loop() {

  int data = analogRead(1);
  if ( data > 100)
  {
   
    if (data > 933) {
      DigiKeyboard.print("buton 6 basıldı");
      //buton 6 basılınca yapılacak faaliyetler
    }
    else if (data > 747) {
      DigiKeyboard.print("buton 5 basıldı");
      //buton 5 basılınca yapılacak faaliyetler
    }
    else if (data > 577) {
      DigiKeyboard.print("buton 4 basıldı");
      //buton 4 basılınca yapılacak faaliyetler
    }
    else if (data > 421) {
      DigiKeyboard.print("buton 3 basıldı");
      //buton 3 basılınca yapılacak faaliyetler
    }
    else if (data > 249) {
      DigiKeyboard.print("buton 2 basıldı");
      //buton 2 basılınca yapılacak faaliyetler
    }
    else  {
      DigiKeyboard.print("buton 1 basıldı");
      //buton 1 basılınca yapılacak faaliyetler
    }

    DigiKeyboard.sendKeyStroke(KEY_ENTER); // enter tuşuna basar
    while (analogRead(1) > 100);
  }

}

Kumanda ile Kontrol

Kumanda Tuş Tanıtımı

Lazyboard üzerindeki kızılötesi alıcı sayesinde kumandadan gelen sinyalleri okuyabilir. Bu özelliğini kullanarak örneğin film veya dizi izlerken kumanda yardımı ile bilgisayarınızın sesini azaltıp arttırabilirsiniz. Ancak bu özelliği kullanmadan önce kumandamızın tuşlarının HEX kodlarını bulmalıyız. Bunun için aşağıdaki örnek kodu kullanabilirsiniz.

//Klavye özelliği için klavye kütüphanelerini ekliyoruz
#define kbd_tr_tr
#include "DigiKeyboard.h"

//IR okuyucumuzun bağlı olduğu pini yazıyoruz. Lazyboard için 0 pinidir
const byte IRpin = 0;  

//IR okuma fonksiyonunun doğru çalışması için gerekli değişkenleri tanımlıyoruz
volatile boolean remote = false;
volatile unsigned long irCode = 0;

void setup() {

  //IR okuyucumuzun bağlı olduğu pini giriş olarak ayarlıyoruz
  pinMode(IRpin, INPUT);

  // Lazyboardın kendisini ayarlaması ve kaza ile rastgele tuş göndermemesi
  // için gerekli başlangıç kodları
  DigiKeyboard.delay(2500);
  DigiKeyboard.sendKeyStroke(0);
}

void loop() {
  //IR okuyucumuz sinyal algılamadığında HIGH yani 1 verir 
  if (digitalRead(IRpin)) {
    remoting();
  } else {

    //Sinyal algılamaya başladığında okuduğu veriyi Klavye yardımı ile bilgisayarımıza yazdırıyoruz
    DigiKeyboard.println(irCode, HEX);
  }
  // Okuma fonksiyonunun doğru çalışması için bu kodu eklememiz gerekmekte
  remote = true;
}


//IR okuma fonksiyonu
void remoting()  
{
  if (remote) {
    remote = false;
    unsigned long T;
    for (byte n = 0; n < 32; n++) {
      do {
        T = pulseIn(IRpin, HIGH, 2200);
      } while (T < 64);
      bitWrite(irCode, n, T > 1120);
    }
  }
}

Kumanda ile Klavye Kontrolü

Lazyboard’a kumandamızın tuşlarını tanıttıktan sonra örnek kodumuzdaki gibi eklemeler yaparak istediğiniz tuşa bastırabilirsiniz.

Önemli Not: Fonksiyonları fazla uzatmamaya dikkat ediniz çünkü Attiny85 bazen sizin gönderdiğiniz verilere yetişemeyebilir.

//Klavye özelliği için klavye kütüphanelerini ekliyoruz
#define kbd_tr_tr
#include "DigiKeyboard.h"

//IR okuyucumuzun bağlı olduğu pini yazıyoruz. Lazyboard için 0 pinidir
const byte IRpin = 0;

//IR okuma fonksiyonunun doğru çalışması için gerekli değişkenleri tanımlıyoruz
volatile boolean remote = false;
volatile unsigned long irCode = 0;

void setup() {

  //IR okuyucumuzun bağlı olduğu pini giriş olarak ayarlıyoruz
  pinMode(IRpin, INPUT);

  // Lazyboardın kendisini ayarlaması ve kaza ile rastgele tuş göndermemesi
  // için gerekli başlangıç kodları
  DigiKeyboard.delay(2500);
  DigiKeyboard.sendKeyStroke(0);
}

void loop() {
  //IR okuyucumuz sinyal algılamadığında HIGH yani 1 verir
  if (digitalRead(IRpin)) {
    remoting();
  } else {
    // 1. Tuşa basıldı ise
    if (irCode == 0xE718FF00) {
      DigiKeyboard.println("Up");
      irCode = 0;
    }
    // 2. Tuşa basıldı ise
    else if(irCode == 0xAD52FF00)
    {
      DigiKeyboard.println("Down");
      irCode = 0;
    }
  }
  // Okuma fonksiyonunun doğru çalışması için bu kodu eklememiz gerekmekte
  remote = true;
}


//IR okuma fonksiyonu
void remoting() {
  if (remote) {
    remote = false;
    unsigned long T;
    for (byte n = 0; n < 32; n++) {
      do {
        T = pulseIn(IRpin, HIGH, 2200);
      } while (T < 64);
      bitWrite(irCode, n, T > 1120);
    }
  }
}

Lazyboard ile Tuş Kombinasyonu Yapma

Bazı durumlarda aynı anda birden fazla tuşa aynı anda basmamız gerekebilir bu durumlarda aşağıdaki kodu kullanıyoruz.

DigiKeyboard.sendKeyStroke()

Örneğin bir kopyala yapıştır işlemi yapmamız gerektiğinde

DigiKeyboard.sendKeyStroke(KEY_C , MOD_CONTROL_LEFT); 
// KEY_C C Harfini, MOD_CONTROL_LEFT ise Sol CTRL tuşunu karşılar
DigiKeyboard.sendKeyStroke(KEY_V , MOD_CONTROL_LEFT);
// KEY_V V Harfini, MOD_CONTROL_LEFT ise Sol CTRL tuşunu karşılar

Bazen de aynı anda 3 tuşa basmamız gerekir örneğin windowsta belirli bir alanın ekran görüntüsünü alırken bunun gibi 3 tuşlu kombinasyonlarda aşağıdakine benzer bir kod kullanmamız gerekir.

DigiKeyboard.sendKeyStroke(KEY_S, MOD_GUI_LEFT | MOD_SHIFT_LEFT);
//KEY_S S Harfini, MOD_GUI_LEFT Sol Windows tuşunu, MOD_SHIFT_LEFT Sol Shift tuşunu karşılar

Aşağıda işinize yarayabilecek tuş karşıkları bulunmaktadır.

MOD_CONTROL_LEFT   = Sol Control Tuşu
MOD_SHIFT_LEFT     = Sol Shift Tuşu
MOD_ALT_LEFT       = Sol Alt Tuşu
MOD_GUI_LEFT       = Sol Windows Tuşu

MOD_CONTROL_RIGHT  = Sağ Control Tuşu
MOD_SHIFT_RIGHT    = Sağ Shift Tuşu
MOD_ALT_RIGHT      = Sağ Alt Tuşu
MOD_GUI_RIGHT      = Sağ Windows Tuşu

İngilizce’de de olan harfler için KEY_ atamasını kullanabilirsiniz _’den sonra istediğiniz harfi yazabilirsiniz. Türkçe karakterler için .print() fonksiyonunu kullanmanız gerekmektedir bazı uygulamalar .print() fonksiyonu ile sorun çıkartabilirler o yüzden tuş atamalarınızı mümkün olduğunca İngilizce’de de olan harflerden yaparsanız sizin için daha kolay olur.

Lazyboard ile Uygulama Kısayolu Oluşturma

Lazyboard’u kullanarak sıklıkla kullandığınız uygulamaları tek tuşa atayarak onların çalıştırma dosyalarını bulmakla vakit kaybetmeden uygulamayı açabilirsiniz. Aşağıdaki örnekte biz aklımıza gelen en çok kullandığımız programları kaydettik sizde benzer yolla kendinize göre düzenleyebilirsiniz

//Klavye özelliği için klavye kütüphanelerini ekliyoruz
#define kbd_tr_tr
#include "DigiKeyboard.h"

void setup() {
  // Lazyboardın kendisini ayarlaması ve kaza ile rastgele tuş göndermemesi
  // için gerekli başlangıç kodları
  DigiKeyboard.delay(2500);
  DigiKeyboard.sendKeyStroke(0);
}

void loop() {
  int data = analogRead(1);
  if (data > 100) {
   if (data > 933) {
    // Windows Çalıştır uygulamasının açılması
    DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
    DigiKeyboard.delay(500);
    // CMD uygulamasını açma
    DigiKeyboard.print("cmd");
    DigiKeyboard.sendKeyStroke(KEY_ENTER);
    DigiKeyboard.delay(600);

    // Eagle Uygulamasının kurulu olduğu dosyaya gitme
    DigiKeyboard.print("cd C:\/");
    DigiKeyboard.print("EAGLE 9.6.2/");
    DigiKeyboard.delay(500);
    DigiKeyboard.sendKeyStroke(KEY_ENTER);

    // Eagle uygulamasını açma
    DigiKeyboard.print("eagle.exe");
    DigiKeyboard.sendKeyStroke(KEY_ENTER);
    DigiKeyboard.delay(500);

    // CMD uygulamasını kapatmak
    DigiKeyboard.sendKeyStroke(KEY_F4, MOD_ALT_LEFT);
  } else if (data > 747) {
    // Windows Çalıştır uygulamasının açılması
    DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
    DigiKeyboard.delay(500);

    // CMD uygulamasını açma
    DigiKeyboard.print("cmd");
    DigiKeyboard.sendKeyStroke(KEY_ENTER);
    DigiKeyboard.delay(600);
    // Arduino Uygulamasının kurulu olduğu dosyaya gitme
    DigiKeyboard.print("cd C:\/");
    DigiKeyboard.print("Program Files\/");
    DigiKeyboard.print("Arduino IDE/");
    DigiKeyboard.delay(500);
    DigiKeyboard.sendKeyStroke(KEY_ENTER);
    DigiKeyboard.delay(500);

    // Arduino uygulamasını açma
    // DigiKeyboard.sendKeyStroke(0x35); fonksiyonunu kullanma sebebimiz kodun altındaki notta yazmaktadır
    DigiKeyboard.sendKeyStroke(0x35);
    DigiKeyboard.print("Arduino IDE.exe");
    DigiKeyboard.sendKeyStroke(0x35);
    DigiKeyboard.sendKeyStroke(KEY_ENTER);

    // Arduino IDE'de cmd yi kapatmıyoruz çünkü onu kapattığımızda arduinoda kapanıyor
    DigiKeyboard.delay(500);
  } else if (data > 577) {
    //buton 4 basılınca yapılacak faaliyetler
  } else if (data > 421) {
    //buton 3 basılınca yapılacak faaliyetler
  } else if (data > 249) {
    //buton 2 basılınca yapılacak faaliyetler
  } else {
    //buton 1 basılınca yapılacak faaliyetler
  }

  DigiKeyboard.sendKeyStroke(KEY_ENTER);  // enter tuşuna basar
  while (analogRead(1) > 100);
 }
}

Önemli not: Bazı uygulamaların isimlerinde boşluk olduğu için onları çalıştırmak normalden farklı. Örneğin eagle uygulamasını direk eagle.exe yazarak çalıştırabiliyoruz. Ancak Arduino idenin dosyası için “Arduino IDE.exe” yazmamız gerekiyor ” işareti boşluklu uygulama ve dosyalarda gerekmektedir. ” İşaretini koymak içinde 0x35 tuşunu göndermemiz gerekmektedir.

Zaman içersinde daha fazla örnek uygulama ekleeyerek içeriğimizi canlı tutmaya devam edeceğiz. Gelişmeleri kaçırmamak için discordumuza katılabilirsiniz.