Anbieter zum Thema
Einsatz des Open Accessory Mode
Damit eine Peripherie mit der Android-Plattform im Android-Open-Accessory-Modus verbunden werden kann (Bild 1), muss die Plattform zuerst diesen Modus unterstützen können. Dies gilt aber der Version 3.1 des OS, kann aber auch für frühere Versionen bis hinab auf 2.3.4 funktionieren, falls der Hersteller diese Funktion auf diese Version zurückportiert hat. Wird eine Open-Accessory-Peripherie an ein Android-Produkt angeschlossen, sendet es eine Anfrage an das Produkt (Vendor Request).
Dabei handelt es sich um den „Get_Protocol“-Befehl, der abfragt, ob das Android-Produkt den Open-Accessory-Modus unterstützt. Ist die Antwort „Nein“ stoppt die Kommunikation. Ist die Antwort jedoch „Ja“, sendet die Peripherie ihre eigenen Deskriptoren-Strings, um sich selbst zu identifizieren. Dann erfolgt eine weitere USB-Vendor-Anfrage, um den Open Accessory Mode zu aktivieren und das Android-Produkt in dieser Konfiguration zu re-enummerieren (Bild 2).
Sobald das Produkt als Open-Accessory-Mode-Gerät enummeriert ist, wird es einen USB-Bulk-in-Endpunkt, einen USB-Bulk-out-Endpunkt sowie einen Kontroll-Endpunkt geben. Diese Schnittstelle wird Full-Speed-USB-fähig sein (12 MBit/s) und ermöglicht einen Datentransfer in beide Richtungen.
Die Software-Anwendung mit der Hardware verbinden
In der Regel wird eine Anwendung über Treiber mit der Hardware verbunden. Der Android Open Accessory Mode erübrigt jedoch die Installation zusätzlicher Treiber. Jeder Open Accessory Mode USB Host verfügt über eine Reihe von String-Deskriptoren, die das Android OS lesen kann. Diese Strings passen eine Applikation an das Android OS an. Die Anwendung nutzt dann diese Strings, um automatisch zu starten sobald die Hardware angeschlossen ist.
Die zu sendenden Strings sind folgende:
- Manufacturer – zur Benennung des Peripherie-Herstellers
- Model – zur Benennung des spezifischen Hardware-Modells
- Version – zur Bereitstellung einer Versionsnummer für die Peripherie
Zusätzliche Identifier Strings können ebenfalls gesendet werden:
- Description – bietet einen aussagekräftigen Namen für die Peripherie
- URL – stellt einen Uniform Resource Locator (URL) Website Link für mehr Informationen bereit. Wenn keine der installierten Anwendungen den bereitgestellten Strings entspricht, zeigt das OS eine Nachricht mit einem Link zur im URL String spezifizierten Webseite.
- Serial – stellt die Seriennummer der Peripherie bereit
Dual Host/Device Controller-IC "Vinculum II"
Bild 3 zeigt, wie der Open Accessory Mode eingesetzt wird, um die Steuerung eines Roboterarms über eine Android-Plattform zu ermöglichen. Das Android OS kann somit sogar in industriellen Anwendungen zum Einsatz kommen. Ein FTDI Vinco Board stellt die USB-Anbindung über einen Vinculum II Dual Host/Device Controller-IC zur Verfügung. Der USB Host Port des Vinco-Boards ist so konfiguriert, dass er ein Android Tablet hostet (in diesem Fall ein Motorola Xoom; auch andere Tablets sind möglich) – und zwar über die eigens entwickelten Treiber und die Vinculum II IDE.
Die Anbindung des Roboterarms erfolgt über die PWM-Schnittstelle des Vinculum II. Das Vinco-Board bietet acht PWM-Kanäle. In dieser Anwendung sind aber nur vier davon erforderlich. Der erste Kanal steuert einen Servomotor, der den Arm nach rechts und links rotieren lässt; der zweite Kanal sorgt für das Heben und Senken des Arms. Der dritte Kanal hebt und senkt das Frontgelenk des Arms, und der vierte Kanal öffnet und schließt die Zangen am Ende des Roboterarms.
Beim Anschluss des Vinco an den Roboterarm und an das Android-Tablet startet auf dem Tablet automatisch eine Anwendung zur Steuerung des Arms (Treiber sind nicht erforderlich). Beim Kippen des Tablets wird über dessen Beschleunigungssensor ein Signal zur Steuerung des Roboterarms ausgegeben. Wird das Tablet nach links gekippt, bewegt sich der Arm nach links. Beim Kippen des Tablets nach hinten, bewegt sich der Arm nach oben.
(ID:31572480)