Piloter son port USB

Piloter son port USB - C - Programmation

Marsh Posté le 10-04-2007 à 11:19:02    

Bonjour
Je programme depuis un certains temps en C, j'ai fais quelques logiciels et des jeux. Mais j'ai fais le pari sous peu avec un amis que je pourai réaliser un robot pilotable par ordinateur. Ma seule solution serait de le piloter par USB mais je n'ai rien trouvé d'interessant sur la toile. Alors voila, j'aurai besoins de votre aide pour:
-Savoir comment on pilote un port USB en C sous windows XP de préference ou sous Linux Kubuntu
-Savoir quels son les schémas électronique pour recevoir et interpreter les données
 
Merci de votre aide future !  ;)  
A +


---------------
Le cerveau c'est comme un vase: il faut le remplire pour qu'il serve vraiment !
Reply

Marsh Posté le 10-04-2007 à 11:19:02   

Reply

Marsh Posté le 10-04-2007 à 12:54:11    

le plus simple a mon avis c'est d'acheter une carte type EVB avec un microcontroller qui fait les fonctions que tu veux: USB et un module qui te permette de controller tes moteur. Ainsi tu te feras pas trop chier a souder, coder le microcontroller, tester ton code.
 
Comme j'ai fait mon stage a Freescale (anciennement Motorola), je peux que te conseiller de regarder a cette page (c'est du 8bit):
http://www.freescale.com/webapp/sp [...] 1DxpCp8924
Sinon, ya aussi du 32bit qui fait USB (Coldfire) et surement du 16bit mais j'ai la flemme de chercher. D'autres fabricant existent evidement, si tu cherche mieux sur le net tu verras plein de hobbyist qui proposent des plans pour faire des robot (enfin souvent autonomes).
 
Note qu'il faudra peut etre un transceiver USB, faut voir.
 
T'as resolu le probleme du deplacement? moteur DC ou pas a pas? Quel arrangement des roues?
 
Edit: apparement les microcontroller PIC sont tres populaire pour les hobbyist, mais j'ai aucune conaissance dessus


Message édité par Pantoufle_man le 10-04-2007 à 13:08:27
Reply

Marsh Posté le 10-04-2007 à 13:29:08    

Merci Pantoufle_man, je vais voir ce que je peux faire avec ton lien !
Pour les PIC, moi non plus je n'ai pas de connaissances dessus ...
Question des moteurs, je n'ai pas besoins de faire quelque chose de précis donc j'imaginai 2 moteurs DC pilotés par des hacheurs pour faire varier leurs vitesse et ensuite l'un par r'apport à l'autre pour faire tourner le moteur.
Voilà.
Salut et à + !

Reply

Marsh Posté le 10-04-2007 à 14:34:07    

thufire a écrit :

Question des moteurs, je n'ai pas besoins de faire quelque chose de précis donc j'imaginai 2 moteurs DC pilotés par des hacheurs pour faire varier leurs vitesse et ensuite l'un par r'apport à l'autre pour faire tourner le moteur.

Rien de tel que les LM629 pour asservir des moteurs CC. L'implémentation "à la mano" de l'asservissement d'un moteur CC sur un microcontrôleur PIC n'est pas si évident que ça (mais je pense que ça reste faisable).
 
Sinon, en ce qui concerne les cartes de commande, je te recommande le Système Extralink de chez Sidena. Tu peux le piloter par liaison USB ou série, depuis Windows en natif, [publicité] ou bien sous linux grâce à la bibliothèque libExtralink que je développe dans mon club de robotique[/publicité]
 
Par contre, tout cela est relativement cher, donc je ne sais pas si ça rentre dans ton budget.


---------------
TriScale innov
Reply

Marsh Posté le 10-04-2007 à 14:41:17    

perso j'utiliserai des moteurs pas a pas pour la simplicité de controle, mais un moteur DC c'est possible aussi. Si tu utilises du freescale, c'est orienté automobile le plus souvent et les microcontrolleur ont des modules qui font du PWM, ce qui te permettra de te passer d'un hacheur (enfin je crois :p). Je dit peut etre de la merde, je ne sais pas vraiment comment on controle les moteurs, mais le fait est qu'on ne peux sortir beaucoup de courant des microcontroller et ya moyen que tu le grilles si tu branche le moteur directement sur les pins du microcontroller. Donc il te faudra un circuit pour isoler le microcontroller de l'alimentation du moteur (debut de réponse: http://www.freescale.com/files/mic [...] AN1285.pdf )

 

Coté connectivité, considere aussi le RS232 (port COM). La plupart des microcontroller ont un un module nommé SCI, tu y attaches une MAX232 et tu peux communiquer sur le port com (avec telnet par exemple) avec ton PC. Plein de schema sont disponibles sur le net, et c'est surement beaucoup plus facile a faire que par USB.

 

Edit: c'est SCI, pas SPI :).


Message édité par Pantoufle_man le 10-04-2007 à 15:06:47
Reply

Marsh Posté le 12-04-2007 à 09:04:03    

Sous linux, tu peux écrire un pilote noyau pour ton périphérique usb. Tu as une documentation assez détaillée dans le répertoire Documentation/usb du noyau. Tu as également un fichier exemple dans drivers/usb/usb-skeleton.c te décrivant comment accéder à un périphérique usb dans le noyau avec l'API usb.

 

Reply

Marsh Posté le 20-04-2007 à 17:29:41    

Bonjour tout le monde !
 
Merci Francesco mais oui justement, j'ai un budget assez limité et puis c'est juste un petit projet sans importance donc je ne veux pas mettre non plus des mille et des cents.
Ensuite Pantoufle, je n'ai pas eu bien le temps de regarder ton site chez Freescale (en ce moment je suis un peu debordé) mais par contre je suis obligé de me brancher sur usb car j'avais commencé à faire mon programme sur un vieux win98 avec le port com mais j'ai du rendre la mchine à son propriétaire et donc je n'ai plus que mon portable et ses port usb.
 
Enfin merci xilebo, je vais voire ta doc dès que j'ne ai le temps !
A++ !
 
Edit: Euh... enfait Xilebo, je ne trouve pas les fichiers, j'ai [K]Ubuntu 6.06. Y sont-ils aussi ?


Message édité par thufire le 20-04-2007 à 17:34:45
Reply

Marsh Posté le 20-04-2007 à 18:04:05    

C'est dans les sources du noyau, et il me semble dans le package linux-manual.


---------------
You get so used to things the way they are. And I've always been alone. I guess that makes me lonely.
Reply

Marsh Posté le 20-04-2007 à 21:45:55    

les sources du noyau sont généralement installés dans /usr/src/linuxXXXX (XXXX étant la version du noyau). Ca peut etre egalement /usr/src/linux directement, mais ce n'est pas obligatoire, et parfois c'est un lien symbolique sur les sources du dernier noyau installé.
 
tu peux également les trouver dans /lib/modules/XXX/build. XXX etant la valeur de 'uname -r'.
 
Si tu n'as pas les sources du noyau avec ubuntu, tu peux les installer en tapant la commande apt-get install linux-kernelXXXX (XXXX étant toujours ta version de noyau), ou bien tu télécharges les sources sur www.kernel.org en prenant la bonne version de noyau (correspondant à ton uname -r).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed