EsploraJoystickMouse

Bu çizim size Esplora'nın joystick'inden nasıl bilgi okunacağını ve imlecin bilgisayarınızdaki hareketini kontrol etmek için nasıl kullanılacağını gösterir. Esplora'nızı fareye dönüştürüyorsunuz!

Bu çizim bilgisayarınızın fare hareketini devralacaktır. İmlecinizin kontrolünü kaybederseniz aşağıdakileri yapın:

  • Esplora'yı fişten çekin
  • Arduino yazılımında EsploraBlink çizimini açma
  • Esplora'nın bilgisayarınıza geri takarken sıfırlama düğmesini basılı tutun
  • sıfırlama düğmesini basılı tutarken Arduino yazılımında "Yükle" yi tıklayın
  • Arduino IDE'de "Derleme tamamlandı" mesajını gördüğünüzde, sıfırlama düğmesini bırakın

Bu, farenin kontrolünü almayan bir çizim yüklerken Esplora'nızın imlecinizi kontrol etmesini engelleyecektir.

Gerekli Donanım

  • Arduino Esplora

Devre

Bu örnek için yalnızca Arduino Esplora'nız gereklidir. Esplora'yı bir USB kablosuyla bilgisayarınıza bağlayın ve Arduino'nun Seri Monitörünü açın.

Esplora üzerinde Joystick

Kod

Bilgisayarınıza veri göndermek için bir seri bağlantı açmanız gerekir. Esplora'daki 9600 baud'da seri bağlantı noktası açmak için Serial.begin () kullanın.

İletişimi fare olarak başlatmak için Mouse.begin () öğesini arayın. Bu, Esplora'nın bilgisayarınıza bir fare gibi görünmesini sağlar.

Kumanda kolunun konumunu okumak için, değerleri değişkenlere kaydederek Esplora.readJoystickX () ve Esplora.readJoystickY () ' yi arayın. Bu size her eksen için -512 ile 512 arasında değerler verir. Kumanda kolu ortalandığında, X ve Y eksenleri 0 bildirir.

Kumanda kolu ayrıca basıldığında bir anahtar görevi görür. Düğmeyi okumak için Esplora.readJoystickSwitch () öğesini arayın. Bu, basıldığında 1 ve basılmadığında 0 değerini verecektir.

Değerleri Seri Monitöre göndermek için Seri.print () öğesini çağırırsınız . Esplora bağlandığında ve Seri Monitör açıkken, şu şekilde bildirilen değerleri görmeye başlamalısınız:
Joystick X: 0 Joystick Y: 0 Button: 0

Fareyi hareket ettirmeye uygun sayılar elde etmek için, joystick değerlerini ölçeklendirerek map () işlevini kullanarak bu sayıları yeni değişkenlere kaydedin.

İmleci gerçekten hareket ettirmek için Mouse.move () öğesini çağırın. Üç argüman alır, sayılar x ekseni, y ekseni ve fare tekerleğindeki hareket miktarını temsil eder. Bu örnek yalnızca fareyi x ve y eksenlerinde hareket ettirir, imleci hareket ettirmek için yeni eşlenen sayıları kullanır.

Esplora'yı bağladığınızda, seri monitörü açmak için Arduino yazılımında Shift-Komut-M tuşlarına basın. Joystick'i hareket ettirdikçe, imleç ekranın etrafında hareket ettikçe seri monitördeki değerleri göreceksiniz.

/*
  Esplora Joystick Mouse

 This  sketch shows you how to read the joystick and use it to control the movement
 of the cursor on your computer.  You're making your Esplora into a mouse!

 WARNING: this sketch will take over your mouse movement. If you lose control
 of your mouse do the following:
 1) unplug the Esplora.
 2) open the EsploraBlink sketch
 3) hold the reset button down while plugging your Esplora back in
 4) while holding reset, click "Upload"
 5) when you see the message "Done compiling", release the reset button.

 This will stop your Esplora from controlling your mouse while you upload a sketch
 that doesn't take control of the mouse.

 Created on 22 Dec 2012
 by Tom Igoe
 Updated 8 March 2014
 by Scott Fitzgerald

 http://www.arduino.cc/en/Reference/EsploraReadJoystickSwitch

 This example is in the public domain.
 */


#include <Esplora.h>

void setup() {
  Serial.begin(9600);       // initialize serial communication with your computer
  Mouse.begin();            // take control of the mouse
}

void loop() {
  int xValue = Esplora.readJoystickX();        // read the joystick's X position
  int yValue = Esplora.readJoystickY();        // read the joystick's Y position
  int button = Esplora.readJoystickSwitch();   // read the joystick pushbutton
  Serial.print("Joystick X: ");                // print a label for the X value
  Serial.print(xValue);                        // print the X value
  Serial.print("\tY: ");                       // print a tab character and a label for the Y value
  Serial.print(yValue);                        // print the Y value
  Serial.print("\tButton: ");                  // print a tab character and a label for the button
  Serial.print(button);                        // print the button value

  int mouseX = map(xValue, -512, 512, 10, -10);  // map the X value to a range of movement for the mouse X
  int mouseY = map(yValue, -512, 512, -10, 10);  // map the Y value to a range of movement for the mouse Y
  Mouse.move(mouseX, mouseY, 0);                 // move the mouse

  if (button == 0) {                           // if the joystick button is pressed
    Mouse.press();                             // send a mouse click
  } else {
    Mouse.release();                           // if it's not pressed, release the mouse button
  }

  delay(10);                                  // a short delay before moving again
}
[Kodu Al]

See Also