-
Controler un port USB
Bonjour à tous,
J'essaie depuis peu de trouver une façon de contrôler le port USB de mon PC avec python, je sais que c'est possible avec la biblio pyUSB, je n'arrive pas en m'en servir :(. Quelqu'un connait-il de bon tuto sur cette biblio car je n'ai rien trouvé de clair pour un novice...
Mon but étant de contrôler une brick lego NXT directement à partir de mon PC. J'ai également trouvé nxt_python qui permet de faire sa, mais malheureusement je doit avoir python 2.x car sa ne fonctionne pas sur python 3.x. J'ai donc entrepris de convertir cette biblio pour qu'elle fonctionne mais même la elle ne trouve pas ma brick, en fait, on dirait qu'elle ne fais rien... :(
En gros, j'aimerais bien avoir des tutos ou des explications sur comment contrôler les objets qui sont branché sur mon ordi, si c'est possible, j'ai cherché pas mal sur google en tapant "Contrôler son port USB en python" et plein de chose du genre mais j'ai rien trouvé, je crois que je ne cherche pas à la bonne place.
Quelqu'un peut-il m'éclairer s.v.p.
Merci
-
Bonjour PascalStl,
Avant de pour voir t'aider, nous aurions besoin de quelques informations complementaires: pourrais tu nous donner la version precise de python que tu as installé sur ton poste, ton post est un peu ambigu à ce sujet? as-tu essayé d'installer python 2.x et 3.x en parallele sur ta machine? Si oui, precise tu la version à utiliser lors de tes appels programmes?
Pour information, si tu ne le sais pas déjà, il est tout a fait possible de faire cohabiter plusieurs version de python ensemble.
Concernant la branche 3 de python, il est souvent recommandé de coder avec cette branche. Il est vrai qu'elle est censé etre meilleure. Dans les fait, les différents modules/packages que l'on rencontre ne sont parfois compatible qu'avec une seule de ces branches. j'aurais donc tendance à préconiser de choisir sa branche de developpement en fonction des modules à utiliser.
Concernant ta demande, je te donne ce lien google: LIEN_GOOGLE
J'y ai trouvé quelques petite chose sympa. J'espère que cela t'aidera. N'hesite pas à revenir pour nous donner des reponses aux questions, et des nouvelles de ton projet. :ccool:
-
Aaaa, je savais pas qu'on pouvait installer les deux version:D
Maintenant sa marche, j'arrive même à contrôler le robot en manuel avec mon clavier, et c'étais très facile à faire en plus.
Mais sa c'est juste pour m'amuser, mon but étant un jour de me fabriquer des modules d'entrées/sorties (avec des PIC par exemple), raccordé sur mon PC via des ports USB et de les contrôler avec python à travers une interface graphique que j'aurais fais avec tkinter par exemple.
Sauve que la où je bloque c'est la communication avec le USB, je trouve pas grand chose de concluant sur le net, j'ai bien trouvé pyUSB, mais je trouve pas de tuto qui m'explique comment cette bibliothèque marche et j'avoue ne rien comprendre quand j'essaie de lire sont code source...:oops:
En fait, je sais pas du tout comment faire communiquer un ordinateur et un périphérique. Quelqu'un aurait-il de bon tuto sur la communication, le USB ou des idées par où commencer pour faire se que je veux faire.:D
Merci
-
Heureux que tu ai pu resoudre ton probleme premier.
Concernant tes autres petits projets, étant un ancien ingenieur electronique expert Microchip PIC, je vais te livrer un petit secret qui devrait t'intéresser: environ 50% des appareil USB sont en réalité des appareils série RS232 avec des bridges (convertisseurs RS232/USB, type FT232).
Pour tes projet je te conseillerai donc de partir sur ce genre de puces. Qui plus est, elles existent en modules DIP tel ce modele: MM232R
Double avantage pour toi: exterieurement parlant, tu dispose d'un appareil USB que tu peut d'ailleurs auto alimenter sur le port USB. Ensuite, une fois les drivers installés, tu ne gere qu'une simple com série :mouarf:
et Tadaaa!!!! ton électronique est simplifié au plus basic au niveau conception/dev, et coté user, tu passe pr un génie sachant maitriser l'USB lol.
Voilà pour commencer. SI tu as d'autre question n'hésite surtout pas :ccool:
-
Super, sa va me simplifier la vie:D
Mais pour ce qui est de la programmation, je dois toujours utiliser le port USB non?
Comment fait-on pour établir une connections et envoyer/recevoir des commandes et des infos à partir de python?
-
La puce que je t'ai indiqué (ou le module tout fait MM232R) est un convertisseur USB/Série. Du côté de ton électronique, c'est de la com série. Vu de ton programme python, ce sera aussi de la com série.
En fait, une fois ton module USB connecté, un port série supplémentaire apparaîtra sur ta machine. C'est ce port qu'il faudra utiliser. l'USB n'est alors plus à considérer que comme de la simple connectique, et toute cette couche sera transparente.
Donc côté python, tu partira simplement sur Pyserial, et côté microcontrôleur, quasiment tous les PICs ont des ports série. :ccool:
EDIT: je ne sait pas avec quoi tu programmes tes PICS. Personnellement j'utilisais PIC SIMULATOR IDE. Il est payant mais très abordable (<50€), et surtout, c'est une licence à vie. C'est un IDE simplifiant considérablement la prog des PIC, puisque disposant de nombres de routines preprogrammée pour piloter LCD, moteur Pas a pas, I2C, série hardware/software, 1-wire, ...
-
Merci beaucoup pour toutes c'est info :D
Je vais partir mon petit projet sur cette base :D
A plus
-
Heureux d'avoir pu t'aider. N'hesite surtout pas si tu as besoin de plus d'info, ou de conseil pour ton projet. Envoie moi un MP et je tacherai d'y repondre au plus proche de tes attentes.
Bonne continuation :ccool: