2010-11-18 6 views
5

Android-Geräte werden unglaublich billig (vor allem diejenigen mit Android v1.6). Ich überlege, einen als ein Gehirn des autonomen Roboters zu verwenden. Leider habe ich dazu keine Informationen gefunden.android: api zu externen USB-Geräten für Roboteranwendungen

Ich möchte zwei externe USB-Webcams und einige DIY-selbstgemachte USB-ADC & Ausgangsports-Konverter verbinden, um die Räder zu steuern und analoge Abstandssensoren zu lesen. Wenn ich ein billiges Netbook wähle, haben sie normalerweise schon 3 USB-Ports. Aber wenn ich gezwungen werde, ein Tablet zu benutzen, dann benötigt es auch einen USB-Hub.

  1. Funktionieren Android-Geräte USB-Hubs?
  2. Gibt es eine API greifen noch den Rahmen von externen USB-Webcam (z.B. "VFA: // 0" & "VFA: // 1")
  3. Gibt es eine API von USB individuellem Gerät zu lesen? Nehmen wir an, dass es zur Vereinfachung den seriellen Port simulieren wird.
  4. Bekomme ich all das in android 1.6 oder einer neueren Version?

Als Update für Ihre Angaben: Aufgrund der Antworten, die ich davon aus, dass Android-Gerät im Vergleich zu Aufwand zu teuer sein wird. Ich werde für billige Atom Netbook mit Standard-Linux & arduinio USB-Gerät für die Steuerung & Sensoren gehen. Bei Kosten von einem halben Kilo (ein Pfund) schwereren Gerät werde ich Monate beim Lernen & Entwicklung sparen.

Antwort

0

Soweit ich weiß, werden Sie nichts davon mit der Standard-Java-API bekommen. Viele dieser Dinge können jedoch erreicht werden, wenn Sie einen benutzerdefinierten Kernel erstellen und benötigte Module hinzufügen. Im Grunde läuft alles auf Kernel-Hacking und wird nicht wirklich mit Android zusammenhängen.

Ich bin sehr interessiert an so etwas selbst, also halte mich bitte auf dem Laufenden.

+0

Eigentlich ziemlich seichte Kernel-Hacking - die meisten echten Hacking wie Schreiben Host-Modus Treiber ohne ordnungsgemäße Datenblätter, usw. wurde bereits von anderen getan. Dies kann bedeuten, dass sie ihre Patches anwenden und den Kernel neu kompilieren und installieren. –

+0

@Chris Stratton: machte einen Punkt, umformuliert es. –

+0

Vielen Dank für Ihre Antworten. Meine Entscheidung ist folgende: 1.Android-Gerät mit den erforderlichen Funktionen wird zu teuer sein (mehr als $ 200); 2. Für ähnlichen Preis kann ich Atomannetbook erhalten; 3. Ich werde Standard-Ubuntu darauf installieren, und ich werde zusätzlichen Nutzen erhalten: Standard-IDE für arduinio; 4. Standard PC & Standard Arduinio wird mir Monate des Lernens neuer Plattform sparen. – Rafal

2

Sie benötigen ein Android-Gerät, das entweder USB-Host-Modus out-of-the-box (ein paar der billigen Tabletten anscheinend tun) oder ein Telefon, das dies mit benutzerdefinierten usb-Stromverkabelung und vielleicht einen neuen Kernel-Treiber (wie viele Telefone können).

Sie werden wahrscheinlich root benötigen.

Die API wäre der normale Linux-USB-Stack, einschließlich fast aller C-codierten Source-verfügbaren Gerätetreiber für einen Desktop-Linux (außer diejenigen, die Bits von x86-Binär-Windows-Treibern in einem Kompatibilitäts-Wrapper verwenden).

Sie könnten damit entweder von der ndk mit normalen Methoden interagieren (Gerätedateien, lesen/schreiben/ioctl) oder mit sorgfältiger Treiber-Design, so dass die Dinge wirklich wie Dateien, die Sie wahrscheinlich bekommen von Java oder bei der sehr wenig Java mit einigen dünnen ndw Wrappers um Geräte Dateioperationen.

Im Wesentlichen ist dies keine "Android" -Frage, es ist eine Frage über die Fähigkeiten der Hardware eines bestimmten Android-Geräts, wie man auf diesem Gerät root, und dann wird es eine Standard-Embedded-Linux-Frage.