Pagina 1 di 3

PIC18F4550 + USB + App Android

MessaggioInviato: 1 nov 2013, 13:47
da MarcRider
Salve a tutti,
torno con un progetto megalomane.
L'idea è quella di un'App gestita da andorid, che pilota un hardware. Come da titolo comunica attraverso la USB e trasmette ad un pic18f4550.

Ci sono miriadi di problemi nello sviluppo.

1- che tipo di canale scelgo?
Guardando il framework a disposizione dato dalla uChips, ho sia CDC che custom HID

2- Ambiente di sviluppo app?
Basic4Android: ci si programma in un miscuglio tra basic e vb.net, all'inizio molto intuitivo, ma sembra tutto un mega wrapper, e scaricando la libreria usbserial per fare una prova con il PIC in modalità cdc non funziona una emerita cippa, ma potrebbe essere anche dovuto ad un sacco di altri fattori ad esempio che non sono amministratore/root sul dispositivo android.

Xamarin: Praticamente è simile al visual studio e si lavora con il c#. Poco intuitivo ed ho passato 4 giorni ad installare ADB bridge per poter caricare gli apk sul dispositivo.
Quando creo la funzione per leggere i dispositivi connessi mi ritorna una lista vuota. Sempre problema di Amministrazione?

Bo, non so che strada intraprendere, perché non riesco a leggere i dispositivi USB connessi etc...
Se c'è qualcuno che ha qualche vaga idea, o ha già intrapreso una strada simile... mi dia un consiglio.

Re: PIC18F4550 + USB + APP ANDROID

MessaggioInviato: 1 nov 2013, 14:46
da c1b8
L'ambiente di sviluppo per Android che utilizzo è questo.
Plugin ADT per eclipse con un ottimo emulatore di diversi dispositivi. Utilissimo in debug.

Per la comunicazione con PIC utilizzarei l'interfaccia HID. Qui un tutorial che sembra essere buono (non l'ho però mai provato).

Re: PIC18F4550 + USB + APP ANDROID

MessaggioInviato: 1 nov 2013, 19:40
da MarcRider
Ho un dubbio atroce e non riesco a capire se è fondato oppure no.
a parte che già è complicato di suo comprendere, come eseguire la ricerca dei dispositivi attaccati all'host.
Ho installato un software della microchip, e mi ritorna

hardware.USB.accessory true
hardware.USB.usbaccessory false
"".host false
etc.. false

Nonostante abbia letto la documentazione dell'sdk, non capisco la differenza tra USB.accessory e USB.usbaccessory
Poi dalla documentazione c'è scritto che per comunicare con usbaccessory necessita la comunicazione con il protocollo AOA, invece sul demo della microchip non dice niente a riguardo ma se non ho capito male spiega solo che il dispositivo viene visto come dispositivo generico e utilizza l'interfaccia HID.

Mi si sta creando una confusione bestiale.
C'è di pro che ho installato un'altra app che mi restituisce i dispositivi collegati, e vede il micro collegato che niente non è. certo... ad avere il sorgente... :D

Re: PIC18F4550 + USB + APP ANDROID

MessaggioInviato: 1 nov 2013, 20:05
da TardoFreak
Se non ricordo male i dispositivi android si comportano non come host ma come device USB.
Quindi, per collegarli a qualcosa, è necessario implementare un circuito che abbia funzionalità almeno OTG.
Il che escluderebbe la gamma dei PIC18.

Re: PIC18F4550 + USB + APP ANDROID

MessaggioInviato: 1 nov 2013, 20:27
da c1b8
TardoFreak ha scritto:i dispositivi android si comportano non come host ma come device USB.

Non più, dal livello API 12 (Android 3.1) possono lavorare anche come Host.

Re: PIC18F4550 + USB + APP ANDROID

MessaggioInviato: 1 nov 2013, 20:35
da c1b8
MarcRider ha scritto:C'è di pro che ho installato un'altra app che mi restituisce i dispositivi collegati, e vede il micro collegato che niente non è. certo... ad avere il sorgente... :D

di questo ci sono anche i sorgenti, purtroppo non posso provare, ho un vecchio android alla 2.3 e non ha quelle API.

EDIT: hai già seguito questo esempio?

Re: PIC18F4550 + USB + APP ANDROID

MessaggioInviato: 1 nov 2013, 22:02
da TardoFreak
c1b8 ha scritto:
TardoFreak ha scritto:... possono lavorare anche come Host.

A questo punto implementerei un bella seriale virtuale.

Re: PIC18F4550 + USB + App Android

MessaggioInviato: 2 nov 2013, 10:55
da MarcRider
c1b8 ha scritto:Non più, dal livello API 12 (Android 3.1) possono lavorare anche come Host.


Quoto.

TardoFreak ha scritto:A questo punto implementerei un bella seriale virtuale.


Già provato, ma non ci sono riuscito. Ho usato Basic4android che ha una classe, per esattezza un wrapper, che permette la comunicazione in seriale. è stato studiato per arduino, ho provato ad associarlo al PIC con l'esempio cdc, non ho avuto nessuno risultato.
Ho però votato a non usare il sistema della seriale, dato che devo fare lo sforzo di far funzionare tutto con la USB e non ho necessità di adattare un vecchio hardware, mi piacerebbe farlo funzionare senza wrapper o particolari conversioni.

Mi sono messo anche a leggere il libro sulla USB "USB Complete the Developer's Guide" per avere anche una cognizione dei meccanismi della USB, e devo dire che ci vuole un po di stomaco per digerire tutto sto materiale.

EDIT: hai già seguito questo esempio?

Sto ancora lavorando su quell'esempio. se non erro è scritto in java, e ancora sto cercando di finire di valutare Xamarin, quindi devo riportare tutto in C#, e ci sono alcune cose che non sono ancora riuscito a "riscrivere".

di questo ci sono anche i sorgenti, purtroppo non posso provare, ho un vecchio android alla 2.3 e non ha quelle API.


Proverò senzaltro e ti farò sapere.

Re: PIC18F4550 + USB + App Android

MessaggioInviato: 2 nov 2013, 11:03
da TardoFreak
Non conosco android ma ho fatto parecchie implementazioni con la seriale virtuale (classe CDC) su diversi micro e pare che funzioni anche collegandoli al ferro da stiro. Nessun problema di driver, sul mac si collega e funziona senza fare niente.
Poi, per carità, può essere che android non riconosca la virtual com port, questo non lo so. :?

Re: PIC18F4550 + USB + App Android

MessaggioInviato: 2 nov 2013, 11:04
da c1b8
MarcRider ha scritto:Già provato, ma non ci sono riuscito. Ho usato Basic4android che ha una classe, per esattezza un wrapper, che permette la comunicazione in seriale. è stato studiato per arduino, ho provato ad associarlo al PIC con l'esempio cdc, non ho avuto nessuno risultato.

Se non erro Arduino utilizza un chip FTDI per la seriale virtuale, immagino che il wrapper di cui parli sia scritto per lavorare con quei chip quindi il tuo CDC non venga riconosciuto.

MarcRider ha scritto:Sto ancora lavorando su quell'esempio. se non erro è scritto in java

Se installi l'ambiente di sviluppo basato su Eclipse che ti ho linkato, puoi lavorare in Java. Tutti gli esempi che trovi nella documentazione ufficiale e che ho avuto modo di vedere sono sempre scritti in Java. Forse ti conviene passare subito a questo ambiente.

Prima parlavi di qualche difficoltà con la USB.usbaccessory, negli esempi che ho visto non si fa uso di quelle classi.


EDIT: Vedo che Foto UtenteTardoFreak ha risposto prima di me.