Arduino riceve dati esterni e li invia ad una stampante USB

Anche se sono ancora un principiante con la programmazione di Arduino, vorrei avventurarmi in un nuovo progetto.
Devo ricevere su Arduino Uno, dati in parallelo e poi li devo spedire, in caratteri alfanumerici, ad una stampante con interfaccia USB.
In questo momento, la parte di acquisizione dei dati in parallelo l'ho già funzionante, mi manca la parte di invio degli stessi attraverso USB.

Ho visto in rete dei moduli per Arduino, che collegati allo stesso, si possono inviare in uscita, dei dati attraverso USB (nel mio caso ad una stampante).
Non ho mai usato questi moduli e non ho trovato in rete delle informazioni su un loro uso.
C'è qualcuno che mi possa indicare degli articoli con spiegazione sulla programmazione dei moduli USB collegati ad Arduino?

Grazie da Saverio.

Dimenticalo.
Arduino UNO non ha un USB HOST e percui non puoi attacare una stampante.
Poi non ci sono driver per stampanti su Arduino.
Prendi un raspberry PI.
Ciao Uwe

>saverio13: ... per avere la possibilità di attacare dei "devices" USB ad Arduno UNO, come hai visto, ti occorre un "USB Host shield" (... dato che la USB di Arduino UNO NON può essere HOST). Detto questo, quando la monti, hai un "pezzo di hardware" e ti occorro i driver per poter collegare i vari tipi di "device" USB.

Una delle librerie più complete per l'"USB Host Shield v2" è QUESTA e, nella descrizione, vedi i tipi di "devices" supportati (... ovvero, per i quali sono stati scritti i driver). Vedi tu se tra quelli ce ne è qualcuno in grado di colloquiare con la tua stampante (... io non credo, ma chissà, magari con il profilo SPP se la stampante emula una porta seriale sulla USB ::slight_smile:), altrimenti ...
... beh, ho sei in grado di scrivere tu la parte che serve o NON hai alcuna possibilità di parlarci.

Ma quella stampante, non ha anche una porta vera seriale (... di solito, assieme alla USB, è possibile avere anche la seriale, o RS232 o, magari, anche TTL)? Sarebbe molto più facile ... :slight_smile:

Guglielmo

uwefed:
Dimenticalo.
Arduino UNO non ha un USB HOST e percui non puoi attacare una stampante.
Poi non ci sono driver per stampanti su Arduino.
Prendi un raspberry PI.
Ciao Uwe

Da quanto ho letto, con Arduino, non ho modo di utilizzare una stampante comune USB per stampare i dati elaborati dallo stesso Arduino.
Oltre alla scheda Raspberry suggerita, non ci sono altre soluzioni?
Che funzioni ha la scheda con porta USB da collegare ad Arduino?

Nella mia ignoranza, pensavo che utilizzando Arduino, avrei potuto inviare una stringa alfanumerica ad una stampante USB, quest'ultima la stampava così come la riceveva.
Attualmente le stesse stringhe, le invio ad una stampante con ingresso parallelo (senza Arduino).
Poiché la maggioranza delle stampanti sono con ingresso USB, pensavo che con l'aiuto di Arduino avrei convertito l'uscita parallela in una USB.

Vengo da esperienze di programmazione in assembler (accantonato da oltre 20 anni) e ho avuto difficoltà con la programmazione di Arduino, ora non me la sento di iniziare con la scheda Raspberry.

Saverio.
Scusate. Ho visto solo ora il post di Guglielmo.

saverio13:
Oltre alla scheda Raspberry suggerita, non ci sono altre soluzioni?

Se parliamo di una normale stampante inkjet/laser non è possibile collegarla alla usb host shield di Arduino perché servono gli appositi driver, senza non la usi nemmeno con un normale pc, inoltre le normali richieste come buffer e gestione di una laser/inkjet sono nettamente superiori alle possibilità di Arduino, qualunque modello inclusi quelli a 32 bit.
Se parliamo di stampanti da strumentazione, o similari, c'è la possibilità di riuscire a farle stampare con Arduino perché quasi sempre supportano la seriale virtuale tramite la quale mandi i relativi comandi di stampa.
L'alternativa è un sistema Linux Embedded quale la Raspberry, però solo se esistono i driver Linux per la stampante che vuoi collegare.

Grazie a tutti per le vostre parole di "sconforto".
In 12 ore avete demolito i miei sogni di gloria.
D'ora in poi, per i miei progetti, mi rivolgerò solo agli extra terrestri.

Un saluto da Saverio.

Un ultimo tentativo, abbiate pazienza.

Ho visto in rete delle stampatine con interfaccia Bluetooth tipo POS.
Se al mio Arduino collego un modulo di trasmissione Bluetooth, posso inviare i miei dati da Arduino alla stampante senza particolari problemi?

Saverio.

Siamo alle solite ...
... la stampante richiede un "driver" o è una stampante base a cui mandi solo codici ASCII ?

Se richiede un "driver", scordatela, se è una stampante che accetta semplici comandi ASCII (es. set* di comandi ESC*), allora probabilmnete riesci a comandarla ...
... ma ripeto, perché complicarsi la vita ? Se è una stampante tipo POS (... con set di comandi ESC), esiste SICURAMENTE con interfaccia seriale che è molto più facile collegare ad Arduno.

Guglielmo

gpb01:
Siamo alle solite ...
... la stampante richiede un "driver" o è una stampante base a cui mandi solo codici ASCII ?

Se richiede un "driver", scordatela, se è una stampante che accetta semplici comandi ASCII (es. set di comandi ESC), allora probabilmnete riesci a comandarla ...
... ma ripeto, perché complicarsi la vita ? Se è una stampante tipo POS (... con set di comandi ESC), esiste SICURAMENTE con interfaccia seriale che è molto più facile collegare ad Arduno.

Guglielmo

Come avrete già capito, non conosco il sistema di invio dei dati tra Arduino e varie stampanti.
Nel mio caso, devo inviare solo caratteri ASCII.
Proverò una ricerca di mini stampanti con ingresso seriale, vediamo se risolverò questo mio problema.

Saverio.

Prendi questa e hai risolto il tuo problema.

astrobeed:
Prendi questa e hai risolto il tuo problema.

Grazie della segnalazione. Ottima stampantina.
Una volta (20 anni fa) c'erano in commercio delle stampanti Citizen a 40 caratteri con ingresso parallelo, ne avevo usate un paio.
Poi c'erano anche delle micro stampanti ad impatto, sempre a 40 caratteri e sempre con ingresso parallelo.
In rete non ne vedo più, con queste dormirei tranquillo, in quanto l'interfaccia parallela mi è più famigliare.

Se non trovo questo tipo di stampanti, mi orienterò sulle termiche con ingresso seriale/TTL.

Saverio.

Le stampanti con interfaccia parallela non le fanno più da molti anni, questo perché l'interfaccia parallela è scomparsa dai pc/notebook.
Solo in ambito industriale si trovano ancora stampanti con porta centronics, ma è roba che costa molto e al giorno d'oggi non ha alcun senso usare una simile stampante salvo usi molto particolari.
La USB ha mandato in pensione molte interfacce, però se da un lato è "facile" implementare un device usb è molto più complesso implementare un host usb, sopratutto quando si parla di collegare device complessi come una moderna stampante.
In linea di massima con Arduino è possibile pilotare quasi tutte le stampanti per pos, casse, bilance, etc, dotate di interfaccia seriale, al massimo serve un adattatore UART-RS232 come hardware aggiuntivo, si trovano facilmente come usato a prezzi molto bassi.

Rieccomi.
Ho ordinato una stampantina tipo POS con porta USB. Prezzo 15 euro.
Oggi è arrivata e naturalmente non funziona ne con W10, W7 e XP.
Dato il connettore a 25 poli che si trova nella stampante, mi è venuto un sospetto.
Il connettore poteva essere un ingresso RS232 oppure un ingresso Parallelo.
Fatte diverse prove con la porta USB, disperato, ho preso un cavo con attacchi a vaschetta a 25 poli è ho sperato che l'ingresso alla stampante fosse parallela.
Mi è andato bene. La stampante funziona e stampa tutti i caratteri richiesti.
C'è ancora un problema. Inserito una serie di caratteri e numeri divisi ognuno da uno spazio, la stampa non è regolare come inserita nel testo (senza spazi stampa bene).
Questo inconveniente, spero che non sia un problema e che sia dovuto al programma di scrittura.
Ora preparerò un cavo parallelo da collegare ad Arduino e vedremo se tutto funziona come voglio.
Avendo già dei sospetti prima dell'ordine, ho ordinato in Cina un'altra stampantina, simile con ingresso RS232/TTL.
Vi terrò informati sui prossimi sviluppi e sicuramente avrò ancora bisogno del vostro aiuto.

Saverio.

Ci dai i link alle stampanti in questione?

Ecco il "gioiello".

https://www.amazon.it/s/ref=nb_sb_noss?__mk_it_IT=ÅMÅŽÕÑ&url=search-alias%3Daps&field-keywords=Stampante+termica+Stampante+scontrini+Stampante+fiscale+con+Carta+termica+Modello%3A+D10+

saverio13:
Ecco il "gioiello".

Dove sta scritto che è USB ?
Io vedo solo un connettore DB25 che in prima battuta fa pensare ad una porta parallela, sono quasi 20 anni che la RS232 viaggia quasi esclusivamente su DB9.

astrobeed:
Dove sta scritto che è USB ?
Io vedo solo un connettore DB25 che in prima battuta fa pensare ad una porta parallela, sono quasi 20 anni che la RS232 viaggia quasi esclusivamente su DB9.

Nella confezione c'era solo un cavo USB/connettore 25 poli.
Ho scritto al fornitore che mi ha confermato che funziona con USB.
Probabilmente il cavo è un convertitore USB/parallelo.

Saverio.

Se il cavo è un convertitore USB-parallela allora si, però di cavi di quel tipo realmente funzionanti ne ho visti pochi e tutti molto costosi.

Saverio, hai letto la recensione?...

"Non si configura e non sono riuscito ad installarlo su ben 3 PC!
Non c'è il CD con i driver nè il manuale installazione. Su internet non si trovano info e il sito è solo in tedesco.
Restituito. Tempo perso"

Datman:
Saverio, hai letto la recensione?...

"Non si configura e non sono riuscito ad installarlo su ben 3 PC!
Non c'è il CD con i driver nè il manuale installazione. Su internet non si trovano info e il sito è solo in tedesco.
Restituito. Tempo perso"

In realtà le ho lette, ma dato il prezzo ho rischiato e speravo di essere più fortunato.
Al di là di tutto, mi è andata bene, poiché cercavo una stampantina con ingresso parallelo.
Vedremo con la stampante cinese RS232/TTL che ho ordinato se funzionerà. Anche per questa, il prezzo è più o meno uguale.

Saverio.

Dimenticavo di dire che ho scritto l'inconveniente alla ditta, la quale per altre cose è stata rapida nella risposta. Vedremo cosa mi diranno nel non funzionamento con L'USB.