Salut,
J'ai � faire une application utilisant ce convertisseur, mais j'avoue �tre dans le brouillard pour la partie USB. Il faut dire que je d�couvre ce protocole (j'ai r�alis� quelques applis qui utilisent RS232, mais les communications sont loin d'�tre ma sp�cialit�) et j'ai du mal � faire le lien entre les diff�rentes docs que je consulte :
http://abcelectronique.com/acquier/USB.html
http://www.motrona.eu/PDF/Uz210_f.pdf
http://www.motrona.eu/PDF/Serpro_e.pdf
http://www.developpez.net/forums/d12...ipherique-usb/
Prises individuellement et du point de vue th�orique, elles me paraissent claires (bien que je d�couvre que l'USB est bien plus complexe que le RS232 !), mais quand j'essaie de voir comment je pourrais faire pratiquement, j'ai l'impression qu'il me manque un paquet de choses essentielles ! Est-ce seulement parce que, je l'avoue, je n'ai pas pris le temps de lire toute la premi�re doc, et d'en avoir pris seulement ce qui me semblait indispensable ? Si je ne doute pas qu'une lecture plus assidue me serait tr�s b�n�fique, je n'ai pas l'impression qu'elle m'aidera beaucoup sur le plan pratique...
Ce que j'ai � r�aliser est simple :
R�cup�rer sur l'USB les donn�es converties de l'entr�e analogique pour les afficher sous forme de courbe. Peu importe de les r�cup�rer "� la vol�e" ou par �chantilonnage. Cela doit tourner sous Linux (je d�veloppe sur Ubuntu 12.04) et je pensais utiliser libusb.
Mais voil� : je ne parviens pas � voir comment "traduire" le protocole d�crit par Motrona en code C qui, via libusb, fera le dialogue avec l'UZ210...
D'abord, me faut-il un driver ? Je pensais qu'avec libusb c'�tait inutile, mais les explications de djuju me mettent un doute... Si je dois en utiliser un, comment le g�n�rer ?
Ensuite, comment faire les requ�tes ? J'ai un peu de mal � retrouver, dans les exemples que j'ai, la relation entre les appels de fonction qui sont faits et la th�orie. J'ai fait quelques analyses avec wireshark, et j'ai l� aussi du mal � retrouver les bmRequestType, bmRequest, wValue, wIndex, wLength... Il y a plusieurs cas o� l'ordre ou la taille des donn�es semble diff�rent... Bref, quelque chose m'�chappe, mais je n'arrive pas � voir quoi exactement... Y aurait-il un exemple qui se rapprocherait plus de ce que je dois faire ?
Ce que j'ai quand m�me r�ussi � faire
J'ai r�alis� il y a quelque temps une commande d'un bras robotis� KSR10. Bon, je n'ai pas eu grand mal : je suis parti d'un script python que j'ai trouv� sur le net, et pour la partie USB je me suis content� de recopier les appels � libusb. Cela me paraissait assez simple et clair : apr�s recherche du bras et obtention du handle, tout ce qu'on fait est d'envoyer une s�rie de bits sur 3 octets, chacun commandant un moteur :
J'arrive aussi, en r�utilisant le m�me code d'initialisation, � obtenir un handle pour l'UZ210. Mais apr�s, je suis bloqu� ! Je ne suis pas arriv� � faire la moindre r�cup�ration de donn�es qui fonctionne... Je ne sais m�me pas que faire de la commande de lecture donn�e dans la doc de l'UZ210 et ne comprends pas pourquoi elle n'a aucun rapport avec ce qui est d�crit dans le site d'abcelectronique.com...
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 r = libusb_control_transfer(devh, 0x40, //uint8_t bmRequestType, 6, //uint8_t bRequest, 0x100, //uint16_t wValue, 0, //uint16_t wIndex, cmd, // Les 3 octets de la commande CMD_DATALEN, 0 );
Si quelqu'un pouvait m'indiquer une doc, un exemple ou autre qui me mette le pied � l'�trier...
Partager