Ciao ragazzi, vorrei costruire una specie di joystick per pc, praticamente mi servono 2 pulsanti (switch) ed 1 potenziometro che venga riconosciuto dal pc, in pratica un plug N play,
potete aiutarmi?
grazie
Ciao ragazzi, vorrei costruire una specie di joystick per pc, praticamente mi servono 2 pulsanti (switch) ed 1 potenziometro che venga riconosciuto dal pc, in pratica un plug N play,
potete aiutarmi?
grazie
Da quanto ne so io non é possibile, perche il chip della seriale é programmato per essere riconosciti cobe arduino e non come joystick
Il MC atmega16u2 che gestisce la usb è programmato come COM Virtuale, tale programma è copiato dal sito LUFA, sempre da questo sito è possibile scaricare del firmware per far vedere la UNO o la mega2560 o la leonardo come HID e quindi fare quello che chiedi
Puoi farlo molto facilmente usando una Leonardo o una Micro. O, uscendo un po' dall'Arduino "classico", con una Teensy.
io ho un arduino uno r3 ad una Micro, la micro la riconosce in teoria subito come HID giusto?
Subito subito no, ma se ci lavori un po'... PluggableUSB and PluggableHID howto · arduino/Arduino Wiki · GitHub
ah ma devo creare anche le librerie? io ho scritto questo pensando funzionasse:
int xPin = A1;
int yPin = A0;
int buttonPin = 7;
int xPosition = 0;
int yPosition = 0;
int buttonState = 0;
int pushButton1 = 1;
int pushButton2 = 2;
int pushButton3 = 3;
int pushButton4 = 4;
void setup() {
Serial.begin(9600);
pinMode(pushButton1, INPUT);
pinMode(pushButton2, INPUT);
pinMode(pushButton3, INPUT);
pinMode(pushButton4, INPUT);
pinMode(xPin, INPUT);
pinMode(yPin, INPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
int buttonState1 = digitalRead(pushButton1);
int buttonState2 = digitalRead(pushButton2);
int buttonState3 = digitalRead(pushButton3);
int buttonState4 = digitalRead(pushButton4);
Serial.println(buttonState1);
delay(1);
Serial.println(buttonState2);
delay(1);
Serial.println(buttonState3);
delay(1);
Serial.println(buttonState4);
delay(1);
xPosition = analogRead(xPin);
xPosition = analogRead(yPin);
int buttonState5 = digitalRead(buttonPin);
Serial.print("X: ");
Serial.print(xPosition);
Serial.print(" | Y: ");
Serial.print(yPosition);
Serial.print(" | Button: ");
Serial.println(buttonState);
delay(100); // add some delay between reads
}
pero' niente, viene riconosciuto da mac e windows pero' non funge...
@Rockettarofigo: in conformità al regolamento, punto 7, edita (in basso a destra del post, bottone More -> Modify) il tuo post e racchiudi il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra). Grazie.
Guglielmo
Quello ti fa vedere quel che fai sul monitor seriale, ma di certo non appare come un HID al computer.
ok allora provo a seguire quella guida che mi hai dato prima