2010-11-18 14 views
5

I dispositivi Android diventano incredibilmente economici (specialmente quelli con Android v1.6). Sto considerando di usarne uno come cervello di robot autonomo. Purtroppo non ho trovato alcuna informazione su questo.android: api a dispositivi usb esterni per applicazioni robotiche

Vorrei collegare due USB-webcam esterne e un convertitore USB-ADC self-service USB ADC & per guidare le ruote e leggere sensori di distanza analogici. Se scelgo qualche netbook economico di solito hanno già 3 porte USB. Ma se sarò costretto a usare un tablet, allora richiederà anche un hub USB.

  1. I dispositivi Android supportano i hub USB?
  2. Esiste un API per afferrare ancora fotogrammi da webcam USB esterni (ad esempio, "VFA: // 0" & "VFA: // 1")
  3. C'è qualche API per leggere da un dispositivo USB personalizzato? Supponiamo che simulerà la porta seriale per semplicità.
  4. Ricevo tutto questo in Android 1.6 o in una versione più recente?

Come un aggiornamento per le informazioni: Sulla base delle risposte presumo che dispositivo Android sarà troppo costoso in confronto allo sforzo. Vado per netbook a basso costo con linux standard & dispositivo arduinio USB per i controlli dei sensori &. Al costo di mezzo chilogrammo (una libbra) dispositivo più pesante risparmierò mesi sull'apprendimento dello sviluppo &.

risposta

0

Per quanto ne so, non si otterrà nulla di tutto ciò con l'API Java predefinita. Un sacco di queste cose possono comunque essere ottenute se si costruisce un kernel personalizzato e si aggiungono moduli necessari. Fondamentalmente tutto si riduce all'hacking del kernel e non sarà realmente correlato ad Android.

Sono molto interessato a cose del genere, quindi tienimi aggiornato per favore.

+0

In realtà l'hacking del kernel è piuttosto superficiale: la maggior parte del vero hacking come la scrittura di driver in modalità host senza fogli dati appropriati, ecc. È già stato fatto da altri. Potrebbe comportare l'applicazione delle patch, la ricompilazione e l'installazione del kernel. –

+0

@Chris Stratton: fatto un punto lì, riformulato. –

+0

Mille grazie per le vostre risposte. La mia decisione è la seguente: 1.Il dispositivo Android con funzionalità richieste sarà troppo costoso (oltre $ 200); 2. Per un prezzo simile posso ottenere netbook atom; 3. Installerò Ubuntu standard su questo e otterrò ulteriori vantaggi: IDE standard per arduinio; 4. PC standard e standard arduinio mi faranno risparmiare mesi di apprendimento della nuova piattaforma. – Rafal

2

È necessario un dispositivo Android che supporti la modalità host USB fuori dalla confezione (apparentemente alcuni tablet economici) o un telefono che può farlo con un cablaggio di alimentazione USB personalizzato e forse un nuovo driver del kernel (come molti i telefoni possono).

Probabilmente avrete bisogno di root.

L'api sarebbe il normale stack USB linux, includendo quasi tutti i driver di periferica disponibili per codice sorgente C disponibili per un desktop Linux (eccetto quelli che utilizzano bit di driver Windows binari x86 eseguiti in un wrapper di compatibilità).

È possibile interagire con questo sia dal ndk utilizzando i metodi normali (file di dispositivo, lettura/scrittura/ioctl) o con un'accurata progettazione del driver, quindi le cose sembrano davvero file che probabilmente si possono ottenere da java o dal molto meno java con alcuni sottili wrapper ndk attorno alle operazioni sui file del dispositivo.

In sostanza, questa non è una domanda "Android", è una domanda sulle funzionalità di un particolare dispositivo Android, su come ottenere il root su quel dispositivo, e quindi diventa una domanda Linux standard incorporata.