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
  Float über I2C zwischen 2 Arduinos UNO Marduino_UNO 23 9.196 18.08.2020 11:53
Letzter Beitrag: hotsystems
  Neo-Pixel über Mail-Inhalte steuern weserjunge 7 484 21.07.2020 19:24
Letzter Beitrag: Tommy56
  Auto mit Kamera über Bluetooth gnagfloW 4 618 19.06.2020 08:23
Letzter Beitrag: gnagfloW
  Steuerung über Infrarot und Bluetooth SimonTau 4 687 20.05.2020 07:37
Letzter Beitrag: Corvus
  Lauftext mit WS2812, der über Seriellen Monitor eingegeben wird Bastian 3 574 12.05.2020 16:47
Letzter Beitrag: Tommy56
  Fehler bei delay über 32767 Kleingärtner 5 597 07.05.2020 18:51
Letzter Beitrag: Kleingärtner
  Aktion bei Wert über- oder unterschreiten Kleingärtner 18 1.474 05.05.2020 20:19
Letzter Beitrag: hotsystems
  Betätigung d. Sensors soll Steuerung abschalten und nur über Taster einschalten Floydi 12 1.201 26.04.2020 07:47
Letzter Beitrag: MicroBahner
  Waage über RS 232 / Serial auswerten 425t 9 1.077 31.03.2020 06:44
Letzter Beitrag: 425t
  einen zweiten joystick einbauen ardutobias 1 455 15.03.2020 00:47
Letzter Beitrag: Bitklopfer

Gehe zu:


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