Domanda:
La migliore interfaccia per PC per hardware personalizzato semplice
Penguin Nurse
2013-10-31 12:03:43 UTC
view on stackexchange narkive permalink

Quale interfaccia del tuo PC usi per connetterti a un semplice hardware personalizzato?

L'interfaccia più comunemente usata era RS232 qualche tempo fa e oggi è probabilmente USB, ma non sarebbe più semplice per i principianti utilizzare la porta parallela per controllare circuiti molto semplici come motori passo-passo o LED? Ho l'impressione da quanto ho letto finora che la porta parallela non sia stata realmente progettata per cose del genere, ma non sono sicuro delle possibili limitazioni al riguardo.

Sfortunatamente, posso trovare molto poca letteratura su come usare la porta parallela probabilmente perché è un po 'obsoleta per l'hardware professionale.

Fa differenza per la decisione sull'interfaccia più adatta se userò solo l'output o anche l'input?

Dovrei aggiungere che ovviamente conosco Arduino, ma non voglio che mi venga nascosta alcuna complessità.

Moerover, sto usando Linux e ho una porta parallela quindi sono attualmente prevenuto verso la porta parallela.

La porta parallela è morta Jim. Gli adattatori da USB a seriale / Uart sono la soluzione più comune ora.
O anche connessioni dirette da USB a MCU.
Arduino non * deve * nasconderti alcuna complessità ...
Ben essere open source e nascondere la complessità non è la stessa cosa e vorrei sottolineare che il punto è ovviamente assolutamente legittimo e sensato. Ma sto cercando una soluzione semplice a un problema semplice. Arduino è progettato per fare cose molto più elaborate rispetto alla regolazione di motori o LED, ma se pensi alle librerie software aggiuntive dietro di esso, è più complicato della porta parallela.
Quello che trovo sorprendente e forse chiunque di voi può aiutarmi è che se il parport è così facile da usare dovrebbero esserci molti vecchi tutorial per controllare i circuiti personalizzati con esso da università o scuole, ma non riesco a trovarne nessuno.
Il principale compromesso da tenere a mente non è tanto l'hardware esterno, ma questo. Le porte parallele hanno problemi di ** disponibilità ** in gran parte deprecati sui sistemi recenti, mentre USB ha problemi di ** latenza ** (anche se USB può spostare rapidamente grandi volumi di dati, ci vuole molto più tempo, in termini di computer, per farlo un viaggio di andata e ritorno sul bus USB che su una porta parallela del bus locale). Devi decidere cosa è più intollerabile per il tuo progetto; per risolvere entrambi, a volte è necessario scaricare non solo l'I / O ma anche il "pensiero" su un potente micro esterno.
http://logix4u.net/parallel-port/15-a-tutorial-on-parallel-port-interfacing primo colpo su google?
Sette risposte:
alex.forencich
2013-10-31 12:16:20 UTC
view on stackexchange narkive permalink

La porta parallela è ottima quando usi Windows 98 o DOS. Tutti i moderni sistemi operativi Windows hanno cambiato drasticamente il modo in cui funziona l'interfaccia della porta parallela rendendo quasi impossibile l'interfaccia con qualcosa di diverso da una stampante. E la porta parallela è praticamente obsoleta a questo punto comunque. Inoltre, è praticamente impossibile eseguire un controllo a tempo preciso da un computer generico. Se il tuo obiettivo è millisecondi, non è poi così male. Ma se vuoi scendere molto più in basso, diventa molto, molto difficile farlo in modo affidabile. È meglio inviare comandi di alto livello a un microcontrollore o simili. Otterrei un Arduino se non hai mai usato un microcontrollore prima.

Se vuoi interfacciarti seriamente con l'hardware, probabilmente utilizzerai l'USB. Se hai bisogno di seriale RS232, procurati un chip convertitore da USB a seriale. Questi sono prontamente disponibili da aziende come FTDI ed Exar. La maggior parte delle schede che produco hanno un'intestazione a cui posso collegare una piccola scheda adattatore seriale USB, oppure hanno un chip seriale USB a bordo. Ethernet è un'altra opzione se hai bisogno di comunicazioni a velocità più elevate, ma supportare Ethernet sul tuo dispositivo è solitamente un po 'più complicato di una semplice interfaccia seriale. È anche possibile interfacciarsi con PCI, PCI express e Serial ATA se hai davvero bisogno delle prestazioni.

Modifica: non posso più raccomandare FTDI con la coscienza pulita senza menzionare anche che FTDI ha rilasciato un driver che contiene codice per distruggere intenzionalmente (e probabilmente illegalmente) chip FTDI "contraffatti". Vedi http://www.eevblog.com/forum/reviews/ftdi-driver-kills-fake-ftdi-ft232/ e http://www.eevblog.com/forum/ reviews / ftdi-driver-kills-fake-ftdi-ft232 / msg535270 / # msg535270 per maggiori dettagli. Se stai pensando di utilizzare FTDI, devi valutare i rischi che i tuoi dispositivi non funzionino sul campo a causa di questo driver, a causa di chip contraffatti che scivolano nella tua produzione in qualche modo o per qualche problema con il rilevamento della contraffazione nel driver FTDI.

2 ° FTDI! Fantastici chip USB UART. Interfaccia molto semplice dal lato hardware. Dal lato host è possibile aprire una porta COM virtuale o l'accesso al driver di livello inferiore. Ho un bel wrapper python attorno ai driver FTD2XX che fornisce una bella interfaccia pitonica
Quale vantaggio offre il driver FTD2XX rispetto a una porta COM virtuale? Uso esclusivamente chip FTDI per il loro eccellente supporto per i driver: funziona immediatamente in Linux ed è un gioco da ragazzi da installare su Windows. In realtà ho avuto uno strano problema con un chip seriale USB Exar su una scheda FPGA Atlys: hanno fatto girare il dado e attivato il controllo del flusso hardware per impostazione predefinita. Il driver Linux standard non supporta la modifica del controllo di flusso, il driver Exar ha provocato un crash del mio computer e il pin CTS è legato in alto sulla scheda. Ho dovuto modificare le schede FPGA per farlo funzionare.
Ah beh, c'è ancora Prolific, così come i chip che funzionano con i driver CDC standard integrati in ogni sistema operativo.
Prolific ha fatto qualcosa di simile, attivando schermate blu quando sono stati rilevati chip "contraffatti".Finì per guadagnare a Prolific la reputazione di inaffidabile.Un paio di anni fa avevo un paio di cavi prolifici che non sembravano mai funzionare bene, quindi ho finito per cercare cavi FTDI.Suppongo che almeno FTDI sia in anticipo su questo.Tuttavia, hanno fatto incazzare molte persone con quello.Ci sono sicuramente molti chip alternativi là fuori ora, quindi se non hai bisogno di usare alcune delle caratteristiche speciali dei chip FTDI, uno di questi potrebbe essere un'opzione migliore (e probabilmente più economica).
Gustav Bertram
2013-10-31 13:16:03 UTC
view on stackexchange narkive permalink

Penso che tu abbia un paio di opzioni.

Porte parallele

Le porte parallele sono ancora la soluzione più semplice per controllare circuiti semplici. Esistono ancora kit che consentono di utilizzare la porta parallela per controllare un insieme di relè.

Una rapida ricerca sul web per "kit relè porta parallela" produce una serie di risultati. Ho incluso i PDF di due di questi kit, perché contengono elenchi di parti e diagrammi a blocchi:

Il software per il controllo di questi kit può diventare un po 'complicato, ma ho trovato un'elegante libreria Python che funzionava molto bene sia su Windows che su Linux: http://pyserial.sourceforge.net/pyparallel.html

La maggior parte delle schede madri moderne non è più dotata di una porta parallela, ma ci sono molte schede di espansione poco costose che forniscono una o due porte parallele. In alternativa puoi acquistare un PC all-in-one economico che ha ancora una porta parallela, come l'Intel Atom DH2500.

Nota che i cavi da USB a porta parallela generalmente non funzionano per questo genere di cose. Ci sono hack là fuori che possono farli funzionare, ma gli hack funzionano solo per alcuni cavi.

Infine, se vuoi usare la porta parallela per un'installazione permanente, tieni presente che durante l'avvio, tutti i relè si accenderanno e spegneranno brevemente. Non c'è molto che puoi fare al riguardo, a meno che tu non voglia riscrivere il BIOS del tuo PC.

Microcontrollori

Ho giocato con le schede Arduino per un un paio di mesi ormai. È molto facile convincerlo a inviare testo al PC sulla porta seriale USB e immagino che non sarà troppo difficile fargli ascoltare i comandi seriali dal PC.

In alternativa, anche programmare la scheda per eseguire tutto il controllo è un'ottima soluzione. Ci sono un sacco di schede di espansione, inclusi set di relè. Le schede Arduino sono anche molto semplici da alimentare: le ho viste funzionare da circa 5v fino a 20v, anche se penso che raccomandino tra 9v e 12v per un uso a lungo termine.

Non dovresti avere troppi problemi a trovare aiuto con i progetti Arduino. La comunità per loro è enorme e sono praticamente progettati per i tinker. altamente consiglio il loro kit di base per le persone che hanno appena iniziato con l'elettronica.

Porte seriali (inclusa USB)

Imparare a progettare e costruire hardware per porte USB è ancora nella mia lista di TODO. Anche se non li ho usati personalmente, ho sentito parlare bene di due libri in particolare:

Costano solo circa $ 25 ciascuno, e se hai domande più specifiche dopo averle lette, sono sicuro che puoi trovare ulteriore aiuto ponendo domande specifiche qui.

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

Idee per affari in cantina

Non escludere mai le uscite analogiche della scheda audio per essere in grado di controllare molte cose. È possibile inviare perfettamente l'FSK (frequency shift keying) a diverse centinaia di baud. Questo può ovviamente essere decodificato con il chip appropriato.

Puoi anche inviare toni che possono essere decodificati per attivare o disattivare qualsiasi cosa tu possa ragionevolmente pensare. Diversi toni (ciascuno con il proprio decodificatore) possono controllare più uscite contemporaneamente.

Ho persino visto una persona attaccare un fotodiodo a una parte dello schermo del proprio PC e decodificare i relativi cambiamenti di luminosità - questo aveva un piccolo area dedicata dello schermo utilizzata per la trasmissione dei dati. Non posso dire quanto bene avrebbe funzionato con gli LCD, ma ricordo che fornisce centinaia di baud su un CRT.

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

La scheda di sviluppo USB Bit Whacker 18F2553 di SparkFun ti consente di controllare 16 linee GPIO (input o output) dal PC. Utilizza un Microchip PIC18F2553 e si collega al PC tramite USB e si presenta come una porta COM virtuale RS-232.

enter image description here

La scheda costa $ 24,95. Esiste una versione più elaborata di Bit Whacker che utilizza un PIC32MX795 che ha 78 linee I / O disponibili e costa $ 39,95. L'ho usato in un progetto e dove l'ho controllato utilizzando script Python.

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

Se dovessi progettare un dispositivo che interagisce con un computer, utilizzerei un'interfaccia HID USB. Non richiederà alcun driver sul lato Windows e sarà davvero plug'n'play. L'interfacciamento sul lato PC sarà un po 'più difficile (rispetto a una porta seriale) ma l'ho già fatto e ha funzionato.

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

L'interfaccia de facto sui personal computer di casa e ufficio è USB

Le interfacce più comuni per dispositivi elettronici semplici sono I2C, SPI, 1-wire e GPIO (ecc.)

Non sorprende quindi che tu possa acquistare cose come adattatori da USB a GPIO come questo o questo

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

Le porte parallele sono fantastiche per hardware davvero semplice. Ho una piccola scheda che ho realizzato circa 10 anni fa che fornisce 8 uscite del driver del solenoide e 4 ingressi digitali protetti da una porta parallela. Il problema è che sono (1) molto limitati e (2) obsoleti sui computer "da ufficio". Probabilmente puoi ancora trovare computer incorporati che li hanno e se stai "solo armeggiando" c'è un flusso costante di vecchi PC disponibili che li hanno. È più difficile usarli su Windows, ma sotto Linux sono banali da usare se si dispone dell'accesso root.

Tuttavia, con il costo dei piccoli microcontrollori oggi, è molto più efficiente mettere tutto l'I / O su uno e utilizza il PC come interfaccia utente, comunicando al micro tramite connessione seriale o wireless.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...