Herkese merhabalar! Bu proje yazısında joystick modülünü bir mouse olarak nasıl kullanabileceğimizi göreceğiz. Bu işlemi gerçekleştirebilmek için USB haberleşme özelliğine sahip bir Arduino modeli kullanmamız gerekiyor. Biz bu projeyi Arduino Leonardo kullanarak yapacağız. Dilerseniz aynı özelliğe sahip başka bir model olan Arduino Micro ile de bu projeyi hayata geçirebilirsiniz.

Peki Leonardo ve Uno modelleri arasındaki fark nedir? Bu proje için neden Arduino Leonardo kullanacağız? Arduino Leonardo ATmega32u4 tabanlı bir karttır, Uno modeli ise ATmega328 mikrodenetleyicisine sahiptir. Tabanlarında kullanılan mikrodenetleyiciye bağlı olarak Arduino Leonardo ve Micro, Uno’dan farklı olarak yapısında USB-seri çeviri görevini yerine getirecek ekstra bir entegre bulundurmuyor. Bu özelliği sayesinde Arduino Leonardo ve Micro’yu bağladığımız bilgisayara klavye ve mouse olarak tanıtabiliyoruz. Bu projede bu özellikten yararlanıyor olacağız. Ayrıca Arduino Leonardo yapısında 20 adet dijital giriş/çıkış pini barındırıyor. Bu pinlerden 12’si analog giriş olarak kullanılabilir, UNO’da ise bu sayı 6’dır. Leonardo’da PWM çıkışı olarak kullanılabilen pin sayısı 7’dir. Yine Uno modelinden farklı olarak USB bağlantısı mikro-b tipi bir USB kablo ile yapılır. 

Gerekli Malzemeler

Bağlantı Şeması

Proje Kodu

Kodumuzu çalıştırabilmek için Arduino’nun Mouse kütüphanesini indirip kodumuza dahil etmemiz gerekiyor. Kütüphaneyi buraya tıklayarak indirebilirsiniz. Kütüphaneyi ekledikten sonra kodumuzu çalıştırmaya hazırız. 

//maker.robotistan.com

#include <Mouse.h>//Mouse kütüphanemizi dahil ediyoruz
int xPin = A0; //Joystick x ekseni, y ekseni ve üzerindeki buton için pin tanımlaması
int yPin = A1;
int buton_pin = 2 ;
int buton_durum;

int x_degeri, y_degeri; //Joystick üzerinden alınan koordinat bilgisi
int xZero, yZero; //Joystick kullanılmadıgında gelen degerler
const int hassasiyet = 300; //Mouse hassasiyeti, bu deger yükseltildiğinde mouse hızı düşecektir


void setup()
{
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
pinMode(buton_pin, INPUT);
digitalWrite(buton_pin, HIGH);
delay(2000);
xZero = analogRead(xPin); //0 pozisyonundaki değerler, bu degerlerin okunması sırasında joystick kullanılmamalı
yZero = analogRead(yPin);

}
void loop()
{
x_degeri = analogRead(xPin) - xZero; //x eksenindeki konum
y_degeri = analogRead(yPin) - yZero; //y eksenindeki konum

if (x_degeri != 0 || y_degeri != 0)
Mouse.move(x_degeri / hassasiyet, y_degeri / hassasiyet, 0); //x ekseni ve y ekseni üzerinde hareket

if (!digitalRead(buton_pin) && (!buton_durum)) //butona basıldıgında
{
buton_durum = 1;
Mouse.press(MOUSE_LEFT); //sol tık
}
else if (digitalRead(buton_pin) && (buton_durum)) //butona basılmadıgında
{
buton_durum = 0;
Mouse.release(MOUSE_LEFT); //sol tık kaldır
}
}

Kodumuzu da yükleyerek projemizi tamamlamış olduk. Sorularınızı ve fikirlerinizi paylaşmaktan çekinmeyin. Başka bir projede görüşmek dileğiyle, hoşça kalın!

24 Yorumlar

    • Maalesef, Uno’yu doğrudan klavye ve mouse olarak tanımlayamıyoruz, kullandığımız kütüphane de Uno modelini desteklemiyor zaten. Bu projede neden Arduino Leonardo kullanmamız gerektiğinden 2. paragrafta bahsettim, o kısma da göz atabilirsiniz.

  1. Bir sorum olacak:şimdi bizim mouse yı bilgisayara bağlamak için usb ye ihtiyacımız var bunu nasıl sağlayacağız? Hangi pimlere takılacak

    • Hiç denemedim fakat mouse destekleyen bir televizyonda kullanmıştım. Android bir telefonda da yüksek ihtimalle çalışır.

  2. kolay gelsin abi. bu projenin yapımınnda ki malzemelerden ilki olan ardino leanardo yu twek alsak olmuyormu microyuda almazsak proje olmazmı öğrenciyiz hem ardino leanardo hem micro çok pahalı geliyor.

  3. Öncellikle yapmış olduğunuz projelerden dolayı sizi tebrik ediyorum. Sorum bu uygulamayı android telefona nasıl uygulayabiliriz. HC05 Bluetooth-Serial Modül Kartında başka hangi araçlara ihtiyacımız var ve telefona bağlamak için hangi uygulamayı veya programı kullanmalıyız.

  4. Öncelikle kolay gelsin ben bu projeyi android telefonda çalıştırmak istiyorum aklımda iki yol var 1. bluetooth modülü ile çalıştırmak 2. otg kablo ile çalıştırmak. Sizde bu projeyi android telefonlarda bluetooth modülü ile nasıl yapabiliriz.

    • Merhabalar, bluetooth ve Arduino arasındaki bağlantıyı yaptıktan sonra telefonunuza bir Arduino Bluetooth Controller indirmeniz gerekiyor. İndirdiğiniz uygulama üzerindeki komutları bizim joystick için yaptığımız işlemdeki gibi mouse hareketlerine atamanız gerekiyor. Hazır uygulama yerine App Invertor yardımıyla bu projeye özel bir uygulama da geliştirebilirsiniz.
      Bluetooth kullanımı için ->> maker.robotistan.com/arduino-dersleri-17-hc-05-bluetooth-modulu-kullanimi/
      App Invertor kullanımı ->> maker.robotistan.com/app-inventor-dersleri-1-tanitim-ilk-uygulama/

CEVAP VER

Please enter your comment!
Please enter your name here