USB Datenstrom lesen.

Ein Hallo an alle,

ich versuche schon seit ein paar Stunden mehr Infos aus meinem Arduino ADK zu erhalten. Punkt ist, ich möchte einen USB Datenstrom abgreifen (PS3 auf Logitech G27) um Daten auszulesen.

Auf dem ADK sind ja zwei USB Schnittstellen drauf. Eine auf dem Schema beschriftet mit Phone. Kann ich diese Schnittstelle nur für ein Smartphone brauchen (Android SDK) oder kann ich diesen USB auch sonst brauchen? Wenn ja, wie kann ich die Daten daraus lesen?

Ich habe auch versucht D+ und D- auf einen Datenkanal (D2 und D3) zu legen und die Daten direkt so ein zu lesen und auf einem Display an zu zeigen. Irgend wie aber werden keine Daten gezeigt.

#include <LiquidCrystal.h>

  LiquidCrystal lcd1(32, 31, 30, 22, 23, 24, 25, 26, 27, 28, 29);
  int D_P = 2;
  int D_M = 3;

  void setup()
    {
    analogWrite(13, 255); // set background brightnes
    lcd1.begin(20, 4);  // set LCD to 4 lines and 40 characters
    
    pinMode(D_P, INPUT); 
    pinMode(D_M, INPUT);    
    }

  void loop()
    {
    digitalRead(D_P);
    digitalRead(D_M);

    lcd1.setCursor(0, 0);
    lcd1.print(D_P);
 
    lcd1.setCursor(0, 2);
    lcd1.print(D_M);
      
    }

ich hätte jetzt erwartet das ich irgend was auf das LCD bekomme, bekomme aber nur die Zahlen 2 und 3.

Mir stellt sich jetzt die Frage wie ich grundsätzlich das ADK benutzen kann um einen USB Datenstrom zu erhalten, um diesen dann später weiter zu verarbeiten.

Vielen Dank für eure Hinweise.

Gruss

Mal abgesehen davon, dass das Vorhaben sowieso zum Scheitern verurteilt ist, weil du die Daten gar nicht auswerten kannst, solltest du dir mal die Benutzung von digitalRead() ansehen: http://arduino.cc/en/Reference/DigitalRead
Du musst den Zustand in einer Varaiblen abspeichern (im Link ist das die Variable val) und diese dann darstellen. Du gibst nur die Pinnummern aus.

Vielen dank erstmal für diesen hinweis. Soweit funktioniert nun die Ausgabe.
Warum meinst du dass ich die Daten nicht auslesen kann?

USB Low Speed sind 1,5 MBit je Sekunde, du müsstest also innerhalb von 11 Taktzyklen die Bits einlesen und auswerten. Wie willst du das schaffen?

hmm ok, dann muss ich mir eine andere Hardware suchen.
Danke für deinen Hinweis.

Nicht gleich die Flinte ins Korn schmeissen.
Schau dir mal den USBAsp an. (USBasp - USB programmer for Atmel AVR controllers - fischl.de)
Das ist ein USB AVR Programmer, der per USB angesprochen wird. Auf der Programmerseite arbeitet auch nur ein normaler MEGA8 (oder 88). Es alles nur eine Frage des Datenstromes. Die 1,5MBit sind ja nur der maximale Datenstrom.
Die Frage ist eher, was für ein Gerät sendet die Daten? Host oder Slave? Wenn das auch ein Slave ist, geht's nicht, da USB grundsätzlich einen Host (Master) braucht. Und den gibt es eher selten im Microcontroller Bereich.

Danke Willie für deine Antwort.

Die Daten kommen aus der PS3 (Host).

Danke für den Link, ich werde mir das mal genau anschauen. Die Software ist ja auch gerade dabei. Mal schauen was ich da alles auslesen kann.

Mit etwas Suche mit den richtigen Stichworten bin ich dann noch auf folgende Seite gestossen


Ich werde mich auch da mal umsehen.