Ciao a tutti
mi piacerebbe premendo un pulsante posizionato sulla mia breadboard che il puntatore del mouse del pc al quale è collegato arduino (leonardo) si trova in un determinato punto dello schermo e non si muova più finché non glielo dico io con un altro pulsante o finché arduino non viene scollegato o spento!
Per poter iniziare a fare una cosa del genere ho pensato che bisognerebbe fare in modo che arduino diventasse un mouse e quindi l'uso della libreria mouse.h .... ecc .... ecc ...
.... procedendo per le vie brevi ... ho trovato e preso da youtube il codice in cui arduino con un joestik viene usato come mouse, ho pensato che modificando (semplificando!) tale codice sia possibile fare in modo che il puntatore si posizioni sempre e solo in un punto!
con questo codice:
Code: [Select]
int x = analogRead(A0);
int y = analogRead(A1);
String str = "x: " + String(x) + " y: " + String(y);
x = map(x, 0,1024, -10, 10);
y = map(y, 0,1024, -10, 10);
Mouse.move(x, y, 0);
Serial.println(str);
delay(100);
è possibile spostare il puntatore del mouse con un joestick in qualsiasi punto dello schermo, quindi ho pensato che se invece di passare a "x" e "y" i valori analogici letti da A0 e A1, gli passo dei valori fissi (ad esempio 40 , 40)
Code: [Select]
/* int x = analogRead(A0);
int y = analogRead(A1);
String str = "x: " + String(x) + " y: " + String(y);
x = map(x, 0,1024, -10, 10);
y = map(y, 0,1024, -10, 10); */
Mouse.move(40, 40, 0);
// Serial.println(str);
delay(100);
il puntatore non dovrebbe più spostarsi guidato del joestick ma dovrebbe posizionarsi in un solo punto! invece così non avviene!!
come faccio a conoscere la posizione di un determinato punto dello schermo?
la posizione che viene passata con x e y al mouse.move () è relativa!? quindi dipenda da una posizione di riferimento! potrebbe essere cosi? o sono fuoristrada? qualcuno può dirmi come fare facendomelo capire?
grazie
il codice per intero è il segunete:
Code: [Select]
#include <Mouse.h>
#define BUTTON 7
void setup() {
pinMode(BUTTON, INPUT);
Serial.begin(9600);
}