Mon projet consiste à réaliser une liaison bluetooth entre un quadri-copter et une tablette. L'arduino va me servir de passerelle entre le drone et la tablette via un pont bluetooth afin de paramétrer l'appareil en vol (et plus si affinité). La connectique côté drone est une prise USB qui cache par derrière une simple liaison série. Les commandes sont de type "telnet". Mon idée est donc de lire ce qui arrive depuis le drone, l'envoyer vers la liaison bluetooth et inversement (communication bi-directionnelle).
Je me suis donc procuré le matériel suivant :
Arduino UNO
USB Host shield
Transmetteur bluetooth
Niveau branchement, c'est OK (pas compliqué non plus...). Je suis tombé sur la library USB Host Shield 2.0 qui semble faire l'affaire. J'arrive à identifier le drone au niveau USB :
Après quelques recherches, je suis tombé sur l'exemple de support FTDI . Bien évidement, ça ne marche pas car il semblerait que mon VendorId et le ProductID ne correspondent pas à la norme FTDI...
Si j'ai bien compris :
-le quadricopter possède un adaptateur serie/USB équippé d'un CP2102 de Silicon Labs (ex Cygnal)
-la librairie USB Host ne contient pour l'instant que les 'drivers' pour FTDI232 ou PL2303 Prolific. Pas encore de driver CP2102 Silabs. (avec ces 3 références on couvre 90% des adaptateurs Usb/série)
Trafiquer les VID/PID ne suffira peut être pas pas.
Un driver de client USB/Série contient en général un peu de code pour permettre à l'hôte de configurer la puce cliente.... et chaque puce à ses particularités.
Il faudrait comparer les fichiers cdcftdi(.cpp et .h) et cdcprolific(.cpp et .h) pour s'en assurer.... ça donnerait des idées pour des futurs cdcsilabs(.cpp et .h)
En se rapprochant de l'équipe qui travaille sur la librairie (http://www.circuitsathome.com/about) il est sans doute possible de participer (ou au moins surveiller) le travail sur un 'indispensable' driver pour CP2102 Silabs. Ce n'est pas insurmontable car Silabs documente ses puces et fournit de quoi développer. On doit pouvoir mettre la main sur des sources de drivers et s'en inspirer pour programmer ce qu'il faut. USBXpress USB Connectivity Bridges - Silicon Labs
Autres solutions :
-hacker le quadricopter et le doter d'un adaptateur à FTDI232 ou à PL2303 supportés, eux, par la librairie Host Shield 2 actuelle, voire remplacer par un adaptateur série/BlueToooth
al1fch:
Autres solutions :
-hacker le quadricopter et le doter d'un adaptateur à FTDI232 ou à PL2303 supportés, eux, par la librairie Host Shield 2 actuelle, voire remplacer par un adaptateur série/BlueToooth
C'est peut être la solution la plus simple.
Trois fils, un vers le GND, un vers Tx et un vers Rx, cela éviterai d'avoir la "usb host shield" et tout le code quelle requière pour fonctionner, et il suffirai alors d'utiliser Serial ou SoftwareSerial à la place.