3

Je ne suis pas un gars de l'électronique, donc je ne pourrais pas être en mesure d'expliquer précisément ce dont j'ai besoin. C'est une question qu'un ami ne cesse de me poser.Quel serait un bon langage de programmation (ou un ensemble de bibliothèques pour C++) pour interfacer avec des composants électroniques (moteurs pas à pas, etc.)?

Ce que mon ami recherche est un langage de programmation qui lui permettrait de:

  1. Interface avec le matériel (via les ports série et USB).
  2. Écrire du code multithread.
  3. Jeter les interfaces utilisateur très rapidement.
  4. Port son code à Linux et OS X aussi facilement que possible (d'accord, c'est ce que I veulent).

Il construit un outil pour un groupe local qui enseigne la robotique très de base pour les étudiants. En ce moment, il utilise C++, mais écrire le code de l'interface utilisateur en C++ n'est pas vraiment une tâche amusante. Il utilise également des bibliothèques spécifiques à Windows pour (1), ce qui signifie que je ne peux ni essayer son code ni l'aider à corriger des bugs (j'utilise un Mac).

EDIT: Les bibliothèques pour Python/Ruby sont les bienvenues.

Répondre

4

Vous peut vouloir jeter un oeil à la complémentarité des outils Processing et Wiring. Le traitement est un environnement permettant de créer des interfaces utilisateur. Le câblage est un environnement de programmation de cartes d'E/S, telles que la carte de câblage éponyme, son cousin simplifié Arduino et les périphériques associés. Les cartes de câblage communiquent généralement avec un ordinateur de bureau via une liaison série ou USB avec une émulation série.

0

Ruby et chaussures (GUI) travailleraient bien, particulièrement bien adapté à un environnement d'apprentissage/multi-plateformes

Edition - Je l'ai trouvé (son un peu difficile à trouver):

http://shoooes.net/

1

Java peut être une bonne option ici. Il a des bibliothèques disponibles pour les API de threading et de communication de bas niveau, et il devrait fonctionner correctement pour une boucle de contrôle. Je sais qu'il a une bibliothèque de communications par port série, et je crois qu'il existe des bibliothèques USB open-source. Pour l'interface utilisateur, vous pouvez utiliser l'API Java 2D Graphics, ou pour une interface utilisateur plus avancée, vous pouvez essayer les bibliothèques Java3D légèrement négligées ou les bibliothèques JOGL plus récentes. Swing a ses défauts, mais il est en fait assez facile à utiliser pour faire des UI de formulaires de base.

1

Si vous voulez un équipement simple et beaucoup de matériel pris en charge, je pense que votre meilleur choix est Labview. C'est toute la programmation graphique (glisser des blocs, faire des connexions) et de nombreux périphériques USB (DIO par exemple) ont le soutien de Labview. Le support série est intégré. Il peut rendre les interfaces utilisateur plutôt faciles (il est principalement destiné au contrôle de l'interface graphique).

+1

Vous devez supprimer votre dernière phrase. LabVIEW n'est certainement pas uniquement Windows (http://www.ni.com/labview/how_to_buy.htm), en fait il est né sur le Mac. Et cela fonctionne de manière multi-thread, d'une manière qui est la plupart du temps transparente pour le programmeur. Cependant, je ne voterai pas pour votre réponse, car LabVIEW est certainement un bon moyen de contrôler le matériel. – mghie

Questions connexes