Eğitimler
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
}