Forum: Mikrocontroller und Digitale Elektronik Ascii Code Xbox Controller


von Ben E. (wickedvibes)


Lesenswert?

Hallo Zusammen,
Ich habe  mal eine Frage. Undzwar weiss irgendjemand die Ascii Zeichen 
(Hex) der Controller der Xbox und der Xbox 360?? Oder weis wo ich so 
etwas finden kann?? Also ich meine das Ascii Hex Zeichen für zb. Die 
Taste A;B;X;Y, usw.?? Über eure Hilfe wäre ich sehr Dankbar da ich in 
google nichts brauchbares gefunden habe. Vielen Dank jetzt schonmal.

Viele Grüße Ben

von Andreas B. (Gast)


Lesenswert?

Was haben die Controller mit ASCII-Zeichen zu tun? Die sind doch über 
USB angeschlossen und nicht über irgendeinen UART.

von Ben E. (wickedvibes)


Lesenswert?

Also, ich habe so einen Controller umgebaut auf usb. Jetzt möchte ich 4 
Servos über diesen Controller ansteueren. Dazu habe ich ein Protokoll 
für die Serielle Schnitstelle geschrieben. (Komunikation PC und 
µController). Damit das einwandfrei Funktioniert brauche ich die Assci 
Zeichen der einzelnen Tasten aus der Windows Systemsteuerung!!

von ftuezrj (Gast)


Lesenswert?

Hä?
Kennt sich mit diesem durcheinander irgend jemand aus? Oder geht es nur 
mir so???

von Rene K. (draconix)


Lesenswert?

Ben Ehrle schrieb:
> Also, ich habe so einen Controller umgebaut auf usb.

Was den XBoX Controller oder einen µC?!

Ben Ehrle schrieb:
> Jetzt möchte ich 4 Servos über diesen Controller ansteueren.
> Dazu habe ich ein Protokoll
> für die Serielle Schnitstelle geschrieben.

Um was zu erreichen PC -> Servosteuerung oder wie ist das zu verstehen? 
Das Protokoll ist für was gedacht?

Ben Ehrle schrieb:
> (Komunikation PC und µController).

Welcher µC?

Ben Ehrle schrieb:
> Damit das einwandfrei Funktioniert brauche ich die Assci
> Zeichen der einzelnen Tasten aus der Windows Systemsteuerung!!

Jetzt wirds völlig wirr :D Für was brauchst du bitte ein ASCII Zeichen?! 
Benötigst du den gesendeten Hex des XBOX Controllers?! Das hat doch aber 
mit ASCII Zeichen rein garnichts zu tun?! Als WAS meldet sich der XBoX 
Controller am System an?! Als Joystick? Als Tastatur ja eher nicht?!

von Rene K. (draconix)


Lesenswert?

ftuezrj schrieb:
> Hä?
> Kennt sich mit diesem durcheinander irgend jemand aus? Oder geht es nur
> mir so???

Nein, du bist nicht alleine ;)

von Ben E. (wickedvibes)


Lesenswert?

Hallo Zusammen,

also erstma sorry für dieses verwirende gerede und die falsche 
ausdrucksweise!! Ich wusste nicht wirklich wie ich mich da ausdrücken 
sollte... naja trotzdem danke für euer feedback.

Also ich habe folgendes vor: Ich habe "ein U-boot"(ROV) mit meinem 
Kollegen gebaut. Wir möchten 4 Servos bzw. die Regler dazu mit einem µ 
Controller 8051 über ein Notebook steuern. Die Befehle die das ROV 
letztendlich ausführen soll, wollten wir nicht über die herkömliche 
Tastertur realisieren sondern über ein Xbox Gamepad das ich auf einen 
USB anschluss umgebaut habe. Dazu habe ich ein Protokoll für die 
Serielle Schnittstelle geschrieben. Damit das diese Programm richtig 
funktioniert benötige ich die gesendeten Hex des XBOX Controllers. Der 
Controller wird als Joystick im Prinzip angezeigt.

Anbei dewr quellcode den ich für die Steuerung über die Tastertur 
geschrieben habe:



void main(void)
{
unsigned char Zeichen;      // Empfangenes Zeichen          // 
Initialisierung mit Baudradengenerator



init_Servo8();
//init_Demo();

  PCON | = 0x80;  // SMOD1=1
  BDRCON = 0x1F;  // interner Baudraten-Generator
  BRL    = 243;  // Reloadwert Baudratengenerator
  SCON   = 0x52;  // 8-Bit Empfangzulassen
  ES     = 0;  // kein ser. Interrupt





  while(1)            // Endlosschleife
  {
    if (RI == 1)
    {

    Zeichen = getchar();        // Zeichen senden & empfangen
    Zeichen = SBUF;          // Zeichen auswerten, Kanal schalten
    RI = 0;            // Flag löschen

    if (Zeichen == 0x6B) Set_Kanal(0, 100);    // servo0 Vorwärts 
Zeichen k Tastertur
    if (Zeichen == 0x6C) Set_Kanal(0, -100);  // servo0 Rückwärts 
Zeichen l Tastertur
    if (Zeichen == 0x72) Set_Kanal(1, 100);    // servo1 Vorwärts 
Zeichen r Tastertur
    if (Zeichen == 0x74) Set_Kanal(1, -100);  // servo1 Rückwärts 
Zeichen t Tastertur
    if (Zeichen == 0x79) Set_Kanal(2, 100);    // servo2 Vorwärts 
Zeichen y Tastertur
    if (Zeichen == 0x78) Set_Kanal(2, -100);  // servo2 Rückwärts

    if (Zeichen == 0x31) P2_0 = 1;           // LED Beleuchtung 1 ein 
Zeichen 1 Tastertur
    if (Zeichen == 0x32) P2_0 = 0;      // LED Beleuchtung 1 aus Zeichen 
2 Tastertur
    if (Zeichen == 0x33) P2_1 = 1;           // LED Beleuchtung 2 ein 
Zeichen 3 Tastertur
    if (Zeichen == 0x34) P2_1 = 0;      // LED Beleuchtung 2 aus Zeichen 
4 Tastertur
    Rechne_Puls_Pause();
    }

    //{printf()}





  }

}
. Sorry kommt etwas unübersichtlich wegen der Kommentare un 100 Przentig 
rein ist er noch nicht. Ich bräuchte die Hex des Controllers!! Oder geht 
das auch anders??

Ich hoffe meine Frage ist jetzt etwas verständlicher geworden.

von Andreas B. (Gast)


Lesenswert?

Ben Ehrle schrieb:
> Die Befehle die das ROV
> letztendlich ausführen soll, wollten wir nicht über die herkömliche
> Tastertur realisieren sondern über ein Xbox Gamepad das ich auf einen
> USB anschluss umgebaut habe.

Xbox Gamepads kenne ich nicht direkt, aber so weit ich weiß sind die 
sowieso USB. Das soll wohl heißen, der Stecker wurde von 
Xbox-was-auch-immer auf Standard USB umgebaut?

> Dazu habe ich ein Protokoll für die
> Serielle Schnittstelle geschrieben. Damit das diese Programm richtig
> funktioniert benötige ich die gesendeten Hex des XBOX Controllers. Der
> Controller wird als Joystick im Prinzip angezeigt.

Ein USB Joystick ist generell mal über ein Protokoll angebunden, das 
etwas komplexer als ein Datenstrom irgendwelcher Hex-Werte ist. Das ist 
aber erstmal uninteressant, da das Betriebssystem einen Treiber dafür 
haben sollte.

Wenn es als Joystick angezeigt wird, hat es das auch. Wenn es sich um 
Windows handelt, ist das DirectInput. In der DirectX Dokumentation 
sollte das drinstehen, was du suchst.

von Frank (Gast)


Lesenswert?

Ist jetzt nicht bös gemeint, aber hast du irgendeine Ahnung von dem was 
du da machst?

von Ben Ehrle (Gast)


Lesenswert?

@ Frank
Ich bin dabei Ahnung davon zu bekommen, es ist halt für mich Neuland. 
Aber hier im Forum sind wohl fast nur Spezialisten unterwegs die meinen 
Sie wären Gott, aber wissen trotzdem nix. Und dem entsprechend kommen 
wohl so unnötige Kommentare die man sich echt schenken kann...den 
Hilfreich ist sowas nicht gerade.

@Andreas B.

Danke für deine Antworten und das du dir die Zeit genommen hast, da muss 
ich mal nachschauen. Ich hoffe ich komme so etwas weiter.

von Verwirrter Anfänger (Gast)


Lesenswert?

Wenn man nicht gerade aufwendige Grafiken darstellen will nehm ich auch 
ganz gerne SDL für sowas http://www.libsdl.org/ .
Dass unterstützt verschiedene Eingabegeräte, Sprachen und 
Betriebssysteme. In Kombination mit Python finde ich das ganz nett um 
schnell mal was zusammen zu basteln.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.