Question:
Meilleure interface PC pour un matériel personnalisé simple
Penguin Nurse
2013-10-31 12:03:43 UTC
view on stackexchange narkive permalink

Quelle interface de votre PC utilisez-vous pour vous connecter à du matériel simple personnalisé?

L'interface la plus couramment utilisée était RS232 il y a quelque temps et aujourd'hui est probablement USB, mais ne serait-ce pas plus simple pour les débutants d'utiliser le port parallèle pour contrôler des circuits vraiment simples comme des moteurs pas à pas ou des LED? J'ai l'impression d'après ce que j'ai lu jusqu'à présent que le port parallèle n'était pas vraiment conçu pour des choses comme ça, mais je ne suis pas sûr des limites possibles par rapport à cela.

Malheureusement, je peux trouver très peu de littérature sur la façon d'utiliser le port parallèle probablement parce qu'il est quelque peu obsolète pour le matériel professionnel.

Est-ce que cela fait une différence pour décider de l'interface la plus appropriée si j'utiliserai simplement la sortie ou aussi l'entrée?

Je dois ajouter que je connais bien sûr Arduino, mais je ne veux pas avoir de complexité cachée de moi.

Moerover, j'utilise Linux et j'ai un port parallèle Je suis donc actuellement biaisé vers le port parallèle.

Le port parallèle est mort Jim. Les adaptateurs USB vers série / Uart sont actuellement la solution la plus courante.
Ou même des connexions USB directes vers MCU.
Arduino n'a * pas * à vous cacher la complexité ...
Bien être open source et cacher la complexité n'est pas la même chose et je tiens à souligner que le point ladt est bien sûr absolument légitime et sensé. Mais je recherche une solution simple à un problème simple. Arduino est conçu pour faire des choses beaucoup plus élaborées que la régulation de moteurs ou de LED, mais si vous pensez aux bibliothèques de logiciels supplémentaires derrière lui, c'est plus compliqué que le port parallèle.
Ce que je trouve surprenant et peut-être que n'importe qui d'entre vous peut m'aider à ce sujet, c'est que si le parport est si facile à utiliser, il devrait y avoir beaucoup de vieux tutoriels pour contrôler des circuits personnalisés avec des universités ou des écoles, mais je n'en trouve pas.
Le principal compromis à garder à l'esprit n'est pas tant le matériel externe, mais celui-ci. Les ports parallèles ont des problèmes de ** disponibilité ** étant largement obsolètes sur les systèmes récents, tandis que l'USB a des problèmes de ** latence ** (même si l'USB peut déplacer rapidement de gros volumes de données, cela prend beaucoup plus de temps, en termes informatiques, à faire un aller-retour sur le bus USB que sur un port parallèle de bus local). Vous devez décider de ce qui est plus intolérable pour votre projet; pour résoudre les deux, vous devez parfois décharger non seulement les E / S mais aussi la «réflexion» vers un micro externe puissant.
http://logix4u.net/parallel-port/15-a-tutorial-on-parallel-port-interfacing premier coup sur google?
Sept réponses:
alex.forencich
2013-10-31 12:16:20 UTC
view on stackexchange narkive permalink

Le port parallèle est idéal lorsque vous utilisez Windows 98 ou DOS. Tous les systèmes d'exploitation Windows modernes ont radicalement changé le fonctionnement de l'interface du port parallèle, rendant presque impossible l'interface avec autre chose qu'une imprimante. Et le port parallèle est de toute façon obsolète à ce stade. En outre, il est fondamentalement impossible d'effectuer un contrôle minuté avec précision à partir d'un ordinateur à usage général. Si votre objectif est de millisecondes, ce n'est pas trop mal. Mais si vous voulez descendre beaucoup plus bas, cela devient très, très difficile de le faire de manière fiable. Il vaut mieux envoyer des commandes de haut niveau à un microcontrôleur ou similaire. J'obtiendrais un Arduino si vous n'avez jamais utilisé de microcontrôleur auparavant.

Si vous voulez faire une interface sérieuse avec du matériel, vous allez probablement utiliser l'USB. Si vous avez besoin d'une série RS232, procurez-vous une puce de conversion USB vers série. Ceux-ci sont facilement disponibles auprès d'entreprises comme FTDI et Exar. La plupart des cartes que je fabrique ont un en-tête sur lequel je peux brancher une petite carte adaptateur USB-série, ou elles ont une puce USB-série à bord. Ethernet est une autre option si vous avez besoin d'une communication plus rapide, mais la prise en charge d'Ethernet sur votre appareil est généralement un peu plus compliquée qu'une simple interface série. Il est également possible de s'interfacer avec PCI, PCI express et Serial ATA si vous avez vraiment besoin de performances.

Edit: Je ne peux plus recommander FTDI en toute conscience sans mentionner également que FTDI a publié un pilote qui contient du code pour détruire intentionnellement (et probablement illégalement) des puces FTDI "contrefaites". Voir http://www.eevblog.com/forum/reviews/ftdi-driver-kills-fake-ftdi-ft232/ et http://www.eevblog.com/forum/ reviews / ftdi-driver-kills-fake-ftdi-ft232 / msg535270 / # msg535270 pour plus de détails. Si vous envisagez d'utiliser FTDI, vous devez alors peser les risques de défaillance de vos appareils sur le terrain en raison de ce pilote, soit en raison de puces contrefaites glissant dans votre production, soit d'un problème avec la détection de contrefaçon dans le pilote FTDI.

2ème FTDI! Puces USB UART fantastiques. Interface très simple du côté matériel. Du côté hôte, un port COM virtuel peut être ouvert ou un accès au pilote de niveau inférieur. J'ai un joli wrapper python autour des pilotes FTD2XX fournissant une belle interface pythonique
Quel avantage le pilote FTD2XX vous offre-t-il sur un port COM virtuel? J'utilise exclusivement des puces FTDI en raison de leur excellent support de pilote - fonctionne directement sous Linux, et c'est un jeu d'enfant à installer sur Windows. En fait, j'ai eu un problème très étrange avec une puce série USB Exar sur une carte FPGA Atlys - ils ont fait tourner la matrice et ont activé le contrôle de flux matériel par défaut. Le pilote linux standard ne prend pas en charge la modification du contrôle de flux, le pilote Exar a planté mon ordinateur et la broche CTS est attachée haut sur la carte. J'ai dû modifier les cartes FPGA pour que cela fonctionne.
Eh bien, il y a toujours Prolific, ainsi que des puces qui fonctionnent avec les pilotes CDC standard intégrés à chaque système d'exploitation.
Prolific a fait quelque chose de similaire, déclenchant des écrans bleus lorsque des puces «contrefaites» ont été détectées.Cela a valu à Prolific la réputation d'être peu fiable.Il y a quelques années, j'avais quelques câbles prolifiques qui ne semblaient jamais fonctionner correctement, alors j'ai fini par chercher des câbles FTDI.Je suppose qu'au moins FTDI est franc à ce sujet.Pourtant, ils ont énervé beaucoup de gens avec celui-là.Il existe définitivement de nombreuses puces alternatives, donc si vous n'avez pas besoin d'utiliser certaines des fonctionnalités spéciales des puces FTDI, l'une d'entre elles pourrait être une meilleure option (et probablement moins chère).
Gustav Bertram
2013-10-31 13:16:03 UTC
view on stackexchange narkive permalink

Je pense que vous avez quelques options.

Ports parallèles

Les ports parallèles restent la solution la plus simple pour contrôler des circuits simples. Il existe encore des kits qui vous permettent d'utiliser le port parallèle pour contrôler un ensemble de relais.

Une recherche rapide sur le Web pour "kit de relais de port parallèle" donne un tas de résultats. J'ai inclus les PDF de deux de ces kits, car ils contiennent des listes de pièces et des schémas de principe:

Le logiciel de contrôle de ces kits peut devenir un peu épineux, mais j'ai trouvé une bibliothèque Python astucieuse qui fonctionnait très bien à la fois sous Windows et Linux: http://pyserial.sourceforge.net/pyparallel.html

La plupart des cartes mères modernes ne sont plus livrées avec un port parallèle, mais il existe de nombreuses cartes d'extension bon marché qui fournissent un ou deux ports parallèles. Alternativement, vous pouvez acheter un PC tout-en-un bon marché qui a toujours un port parallèle, comme l'Intel Atom DH2500.

Notez que les câbles USB vers port parallèle ne fonctionneront généralement pas pour ce genre de choses. Il existe des hacks qui peuvent les faire fonctionner, mais les hacks ne fonctionnent que pour certains câbles.

Enfin, si vous souhaitez utiliser le port parallèle pour une installation permanente, sachez qu'au démarrage, tous les relais s'allument et s'éteignent brièvement. Vous ne pouvez pas faire grand-chose à ce sujet, à moins que vous ne souhaitiez réécrire le BIOS de votre PC.

Microcontrôleurs

Je joue avec des cartes Arduino depuis un certain temps quelques mois maintenant. Il est très facile de le faire envoyer du texte au PC sur le port série USB, et j'imagine qu'il ne sera pas trop difficile de lui faire écouter les commandes série du PC non plus.

Alternativement, programmer la carte pour faire tout le contrôle lui-même est également une très bonne solution. Il existe des lots de cartes d'extension, y compris des ensembles de relais. Les cartes Arduino sont également très simples à alimenter - je les ai vues fonctionner à partir d'environ 5v jusqu'à 20v, bien que je pense qu'elles recommandent entre 9v et 12v pour une utilisation à long terme.

Vous ne devriez pas avoir trop de mal à trouver de l'aide pour les projets Arduino. La communauté pour eux est énorme et ils sont plutôt conçus pour les bricoleurs. Je fortement recommande leur kit de démarrage aux personnes débutant avec l'électronique.

Ports série (y compris USB)

Apprendre à concevoir et à construire du matériel de port USB est toujours sur ma liste TODO. Bien que je ne les ai pas utilisés moi-même, j'ai entendu de bonnes choses à propos de deux livres en particulier:

Ils ne coûtent qu'environ 25 $ chacun, et si vous avez des questions plus spécifiques après les avoir lues, je suis sûr que vous pouvez trouver plus d'aide en posant des questions spécifiques ici.

Andy aka
2013-10-31 18:04:30 UTC
view on stackexchange narkive permalink

Idées de bonnes affaires pour le sous-sol

N'excluez jamais les sorties analogiques de la carte son pour pouvoir contrôler beaucoup de choses. Vous pouvez parfaitement envoyer FSK (modulation par décalage de fréquence) à plusieurs centaines de bauds. Cela peut bien sûr être décodé avec la puce appropriée.

Vous pouvez même envoyer des tonalités qui peuvent être décodées pour activer ou désactiver tout ce à quoi vous pouvez raisonnablement penser. Plusieurs tonalités (chacune avec leur propre décodeur) peuvent contrôler plusieurs sorties simultanément.

J'ai même vu une personne attacher une photodiode à une partie de l'écran de son PC et décoder les changements relatifs de luminosité - cela avait un petit zone dédiée de l'écran utilisée pour la transmission des données. Je ne peux pas dire à quel point cela fonctionnerait avec les écrans LCD, mais je me souviens qu'il fournissait des centaines de bauds sur un CRT.

tcrosley
2013-10-31 22:13:52 UTC
view on stackexchange narkive permalink

La carte de développement USB Bit Whacker 18F2553 de SparkFun vous permet de contrôler 16 lignes GPIO (en entrée ou en sortie) depuis le PC. Il utilise une Microchip PIC18F2553 et se connecte au PC via USB, et apparaît comme un port COM virtuel RS-232.

enter image description here

La carte coûte 24,95 $. Il existe une version plus sophistiquée du Bit Whacker utilisant un PIC32MX795 qui a 78 lignes d'E / S disponibles et coûte 39,95 $. Je l'ai utilisé dans un projet et où je l'ai contrôlé à l'aide de scripts Python.

Tom L.
2013-10-31 16:51:10 UTC
view on stackexchange narkive permalink

Si je devais concevoir un appareil qui interagit avec un ordinateur, j'utiliserais une interface USB HID. Il ne nécessitera aucun pilote du côté Windows et sera vraiment plug'n'play. L'interfaçage côté PC sera un peu plus difficile (par rapport à un port série) mais je l'ai déjà fait et ça a marché.

RedGrittyBrick
2013-10-31 15:32:28 UTC
view on stackexchange narkive permalink

L'interface de facto sur les ordinateurs personnels de la maison et du bureau est USB

Les interfaces les plus courantes pour les appareils électroniques simples sont I2C, SPI, 1-wire et GPIO (etc)

Il n'est donc pas surprenant que vous puissiez acheter des choses comme des adaptateurs USB vers GPIO comme ceci ou ceci

lyndon
2013-10-31 17:19:07 UTC
view on stackexchange narkive permalink

Les ports parallèles sont géniaux pour du matériel vraiment simple. J'ai une petite carte que j'ai fabriquée il y a environ 10 ans qui donne 8 sorties de pilote de solénoïde et 4 entrées numériques protégées à partir d'un port parallèle. Le problème est qu'ils sont (1) très limités et (2) obsolètes sur les ordinateurs "de bureau". Vous pouvez probablement toujours trouver des ordinateurs embarqués qui en ont et si vous «bricolez», il y a un flux constant d'anciens PC disponibles qui en ont. Il est plus difficile de les utiliser sous Windows, mais sous Linux, ils sont simples à utiliser si vous avez un accès root.

Cependant, avec le coût des petits microcontrôleurs aujourd'hui, il est beaucoup plus efficace de mettre tous les I / O on one et utilisez le PC comme interface utilisateur, communiquant avec le micro via une connexion série ou sans fil.



Ce Q&R a été automatiquement traduit de la langue anglaise.Le contenu original est disponible sur stackexchange, que nous remercions pour la licence cc by-sa 3.0 sous laquelle il est distribué.
Continuer la lecture sur narkive:
Loading...