INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Maus über Joystick emulieren
10.01.2020, 14:00
Beitrag #1
Maus über Joystick emulieren
Hallo zusammen.

Ich habe einmal eine kurze Frage.

Ich möchte gerne einen Joystick an einen Arduino Micro Pro anschließen, um damit im Euro Truck Simulator nach rechts und links schauen zu können. Bei einem klick auf den Joystick soll dann die Taste 1 gedrückt werden, welche meine Sicht wieder zentriert.

Ich habe hierfür aus einem Video einen Sketch herausgezogen nur leider bekomme ich immer eine Fehlermeldung.

Es kommt der Fehler:

a function-definition is not allowed here before '{' token

Ich sende mal den Sketch hier rein. Es wäre super toll, wenn mir einer helfen könnte. Vorab bedanke ich mich herzlich.

Code:
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                              LIBRARY
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <Mouse.h>


//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                             VARIABLES
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
int horzPin = A1;                                                                                 // Analog output of horizontal joystick pin
int vertPin = A0;                                                                                 // Analog output of vertical joystick pin
int selPin = 9;                                                                                   // select button pin of joystick

int vertZero, horzZero;                                                                           // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;                                                                         // Stores current analog output of each axis
const int sensitivity = 200;                                                                      // Higher sensitivity value = slower mouse, should be <= about 500
int mouseClickFlag = 0;


//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                              SETUP
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void setup()
{
  Serial.begin(9600);
  pinMode(horzPin, INPUT);                                                                        // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(selPin, INPUT);                                                                         // set button select pin as input
  digitalWrite(selPin, HIGH);                                                                     // Pull button select pin high
  delay(1000);                                                                                    // short delay to let outputs settle
  vertZero = analogRead(vertPin);                                                                 // get the initial values
  horzZero = analogRead(horzPin);                                                                 // Joystick should be in neutral position when reading these

}


//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//                                                                            MAIN LOOP
//--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
void loop()
{
  vertValue = analogRead(vertPin) - vertZero;                                                     // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;                                                     // read horizontal offset

/*
  Serial.print("x ");
  Serial.println(horzValue);
  Serial.print("y ");
  Serial.println(vertValue);
*/


                                                                                                  // Mouse.move(xpos,ypos,wheel)
                                                                                                  // Mouse.move is always relative to the last position of the mouse cursor

  if (vertValue != 0)
    Mouse.move(0, vertValue/sensitivity, 0);                                                      // move mouse on y axis
  if (horzValue != 0)
    Mouse.move((horzValue/sensitivity)*-1, 0, 0);                                                 // move mouse on x axis

    
  int buttonPin = 9;  // Set a button to any pin

void setup()
{
  pinMode(buttonPin, INPUT);  // Set the button as an input
  digitalWrite(buttonPin, HIGH);  // Pull the button high
}

void loop()
{
  if (digitalRead(buttonPin) == 0)  // if the button goes low

  {
    Keyboard.write('1');  // send a '1' to the computer via Keyboard HID
    delay(1000);  // delay so there aren't a kajillion z's
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 14:04
Beitrag #2
RE: Maus über Joystick emulieren
Dann schaue Dir das Video nochmal an. Da sind mindestens 20 Fehler drin. Die wird Dir keiner raus prügeln.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 14:06
Beitrag #3
RE: Maus über Joystick emulieren
(10.01.2020 14:04)Tommy56 schrieb:  Dann schaue Dir das Video nochmal an. Da sind mindestens 20 Fehler drin. Die wird Dir keiner raus prügeln.

Gruß Tommy

Vielen lieben Dank, aber das ist die Kopie aus dem Video und bei Ihm klappte das Ganze leider. Aber gut, dann werde ich mich da komplett selber dran machen müssen.

Ich bedanke mich vielmals für deine Hilfe.

Liebe Grüße.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 14:08
Beitrag #4
RE: Maus über Joystick emulieren
(10.01.2020 14:06)Reap0x schrieb:  Vielen lieben Dank, aber das ist die Kopie aus dem Video und bei Ihm klappte das Ganze leider.
Das stimmt garantiert nicht.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 14:13
Beitrag #5
RE: Maus über Joystick emulieren
Also man kann mir ja vieles in dieser Hinsicht unterstellen, wie das ich absolut null Ahnung davon habe was ich hier tue ect. das würde ich nie anzweifeln aber lügen tue ich nicht.

Wie dem auch sei. Ich frickel mich da mal durch
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 14:18 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2020 14:19 von Tommy56.)
Beitrag #6
RE: Maus über Joystick emulieren
Das habe ich nicht behauptet. Aber der Code, den Du ins Forum gestellt hast, kann so nicht funktionieren.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 14:19
Beitrag #7
RE: Maus über Joystick emulieren
Ja, das habe ich ja auch verstanden und merke es ja selber. von daher werde ich nun einfach versuchen bei null anzufangen und da was eigenes zu schreiben
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.01.2020, 14:34 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2020 14:40 von Reap0x.)
Beitrag #8
RE: Maus über Joystick emulieren
Nun geht es so weit, nur drückt der Arduino nun ununterbrochen die Taste 1.

Könnte mir eventuell hier jmd kurz sagen, wie ich den Stopbefehl richtig schreibe?


Code:
#include <Mouse.h>
int horzPin = A1;  // Analog output of horizontal joystick pin
int vertPin = A0;  // Analog output of vertical joystick pin
#include <Keyboard.h>
int buttonPin = 9;  // select button pin of joystick

int vertZero, horzZero;  // Stores the initial value of each axis, usually around 512
int vertValue, horzValue;  // Stores current analog output of each axis
const int sensitivity = 200;  // Higher sensitivity value = slower mouse, should be <= about 500
int mouseClickFlag = 0;

void setup()
{
  pinMode(horzPin, INPUT);  // Set both analog pins as inputs
  pinMode(vertPin, INPUT);
  pinMode(buttonPin, INPUT);  // set button select pin as input
  digitalWrite(buttonPin, HIGH);  // Pull button select pin high
  delay(1000);  // short delay to let outputs settle
  vertZero = analogRead(vertPin);  // get the initial values
  horzZero = analogRead(horzPin);  // Joystick should be in neutral position when reading these

}


void loop()
{
  vertValue = analogRead(vertPin) - vertZero;  // read vertical offset
  horzValue = analogRead(horzPin) - horzZero;  // read horizontal offset

  if (vertValue != 0)
    Mouse.move(0, vertValue/sensitivity, 0);  // move mouse on y axis
  if (horzValue != 0)
    Mouse.move(horzValue/sensitivity, 0, 0);  // move mouse on x axis

  if (digitalRead(buttonPin) == 0)  // if the button goes low
  {
    Keyboard.write('1');  // send a '1' to the computer via Keyboard HID
    delay(1000);  // delay so there aren't a kajillion 1's
  }
  
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Steuerprogramm aus Matlab und Daten von Joystick miteinander verbinden Vithushan 2 409 27.09.2019 16:28
Letzter Beitrag: ardu_arne
  Float array über NRF24L01 senden und empfangen Flo3107 6 624 04.09.2019 21:55
Letzter Beitrag: Tommy56
  Fern-Programmierung über Ethernet passra 14 1.435 09.04.2019 20:01
Letzter Beitrag: amithlon
  Blynk app über eduroam laufen lassen? WLAN Hanno 6 744 06.04.2019 22:03
Letzter Beitrag: Hilgi
  Steuerung Lüftungsanlage über Temperatursensoren roller64 7 982 06.04.2019 10:26
Letzter Beitrag: rkuehle
  Variablen über Eingabe im Setup beschreiben heini320 3 780 30.12.2018 11:37
Letzter Beitrag: Tommy56
  2 Pt1000 über externen AD wandler auslesen Noob63 16 2.762 15.11.2018 20:10
Letzter Beitrag: ardu_arne
  PHP WINDOWS XAMPP ARDUINO UNO SERVO steuern über Serielle Verbindung tr3 1 939 21.08.2018 21:59
Letzter Beitrag: georg01
  UDP Paket über UART senden (nicht SPI) Wampo 9 4.788 04.03.2018 18:49
Letzter Beitrag: Tommy56
  Variablenname über Schleife deklarieren golden_eagle 9 2.774 12.02.2018 22:36
Letzter Beitrag: golden_eagle

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste