Banco di guida con Arduino Uno

Salve a tutti, la mia intenzione sarebbe quella di creare un controller usb da collegare al computer per simulare il banco di guida di un treno, Spulciando tra gli schemi ho visto qualcosa con L' Arduino Uno. La mia intenzione sarebbe quella di collegare 4 potenziometri che simulerebbero in sequenza: la manetta di potenza( o,+100%,-100%) , il selettore di direzione di marcia, (0, +100%, -100%), il freno del treno ( 0,+100% -100% ) ed il freno locomotiva ( 0, +100%, -100% ) ed aggiungere poi 7 pulsanti per azionamenti vari. Guardando appunto schemi del modulo Arduino uno ho visto che accetta ingressi da potenziometri (fino a 5) e 7 ingressi pulsanti. Mi chiedevo se qualche buona anima esperta mi potesse confermare, fornire consigli su cosa comprare, quali potenziometri adoperare. Il software di simulazione dispone di una API programmabile con interfaccia visiva che mi permetterebbe, una volta collegato il controller, di assegnargli i comandi e regolare la risposta in base al movimento di ogni potenziometro, stessa cosa per i pulsanti. Un grazie anticipato a coloro potranno fornirmi supporto per questo progetto, ammesso che si possa fare.

Arduino Uno (ATMega328p) ha 20 pin I/O a disposizione, di cui 6 che possono anche essere usati come ingressi analogici. Puoi, quindi, collegare fino a 6 potenziometri collegati come partitori tra +5V e massa.

Grazie per la risposta Datman, sapresti indicarmi che potenziometri mi conviene acquistare? in uno schema ho visto i 10K a 3 contatti, potrebbero fare al caso mio? Una volta collegato il tutto il computer mi riconoscerà la perifica usb o avrò bisogno di compilare qualcosa di software?

Aspetta... Controller USB? Arduino Uno non è un dispositivo USB, ma ha solo un convertitore USB-seriale a bordo! Equivale a collegarlo alla porta seriale di un computer.

si , la funzione di questo dispositivo dovrebbe essere la stessa di un joystick, ora non so come il computer considera un joystick , anni fa erano collegati con una porta a 15 pin che ricorda tanto le seriali. Ho scritto controller perchè il joystick viene chiamato anche controller.

Andreago71: si , la funzione di questo dispositivo dovrebbe essere la stessa di un joystick

In tal caso NON puoi usare Arduno UNO, ma devi usare Arduino Leonardo che ha una USB in grado di emulare un device HID :)

Tra le librerie di Arduno trovi anche le librerie Keyboard e Mouse che, sulla Leonardo, permettono di emulare Keyboard e Mouse.

Guglielmo

Ottimo Gpb01 grazie del consiglio, in effetti in mancanza di un joystick controller, il simulatore adotta dei tasti su tastiera per eseguire le funzioni di comando A-D per la potenza motore, W-S per la direzione di marcia, è-ò per la frenatura generale,+-à per la frenatura locomotiva. Quindi con questa scheda mi sarebbe possibile andare in emulazione tastiera, ma mi permetterebbe di usare ugualmente i potenziometri per controllare in maniera incrementale?

Sul modello di potenziometro da usare mi sapete dire nulla? 10K a tre fili' 100K? immagino che la differenza stia nella corrente in uscita.

Andreago71: ... Quindi con questa scheda mi sarebbe possibile andare in emulazione tastiera, ma mi permetterebbe di usare ugualmente i potenziometri per controllare in maniera incrementale?

La parte emulazione tastiera/mouse sulla USB è del tutto indipendente dalla parte di lettura di pin analogici e quant'altro, quindi ... puoi fare quello che vuoi ;)

Per i potenziometri, dovrebbe andarti bene qualisasi modello lineare tra i 2.2KΩ e i 10KΩ (10KΩ* va benissimo*) in cui colleghi un estremo a Vcc, l'altro a GND ed il cursore ad un ingresso analogico per leggere il valore e capire la posizione del cursore.

In pratica, con il cursore tutto verso GND leggerai il vaore 0, con il cursore tutto a Vcc leggerai il valore 1023 e con il cursore in posizione intermedia leggerai un valore compreso tra tali estermi e proporzionale alla posizione assunta.

Guglielmo

Ottimo, proprio quello che speravo grazie 1000

Mi sorge un dubbio, nelle specifiche di Arduino Leonardo c' è scritto che la tensione di input raccomandata è 7 volt, mentre dalla presa usb che io sappia ne escono solo 5.

Leggi bene ... si parla di alimentazione dal Jack nero o dal pin Vin ... che passa attraverso un regolatore di tensione, da cui la caduta di tensione e la richiesta di minimo 7V (... ed io aggiungo massimo 9V ... 12 sono già troppi).

La scheda lavora a 5V.

Guglielmo

Grazie della precisazione, appena reperisco tutto il materiale comincio la costruzione del banco, posterò i miei progressi!

ho trovato su internet questo schema, sarebbe all’ incirca lo stesso che volevo realizzare io. Nel mio progetto utilizzerò 5 potenziometri avendo 5 uscite analogiche, quanti pulsanti momentanei potrei inserire? In questo schema ne utilizza solo 6 uno dei quali usando l’ uscita 11, potrei aggiungerne altri utilizzando anche le uscite 3, 5, 6, 9 ,10 oltre quelle già usate in questo schema?

Basta leggere le specifiche di Arduino Leonardo
… in tutto hai 20 pin di I/O di cui 12 possono essere utilizzati come analogici.

Ora, 20 - 5 analogici = 15 pin di I/O disponibili.

Tieni conto che la porta USB, sulla Leonardo, NON è collegata ad alcun pin quindi non ne occupa, mente, se usi la seconda seriale (Serial1) occupi 2 pin di I/O.

Ora vedi tu :wink:

Guglielmo

ti ringrazio della risposta ma non capisco molto di quello che scrivi, non sono pratico di elettronica e mi ci sto avvicinando ora per la prima volta volendo provare a realizzare il sopracitato banco. Se non interpreto male il tuo consiglio i pulsanti avranno il gnd in comune e un filo per pulsante ad ogni pin numerati da 0 13, considerati gli altri 6 da A0 a A5 disponibili per i potenziometri. Correggimi se sbaglio, vorrei evitare di bruciare la scheda Arduino alla prima accensione.

Se i pulsanti chiudono verso massa (GND) ricorda che o su ogni pin metti una resistenza di pull-up per tenerlo a +Vcc quando il pulsante è aperto oppure usate le pull-up interne.

Utilizzando dei pulsanti dovrai anche preoccupari del "debouncing" ... ::)

Comunque, poichè mi sembrano più che evidenti (per tua stessa ammissione) le tue scarse conoscenze in materia, mi permetto di consigliarti, prima di avventuarati in qualsiasi progetto, lo studio di QUESTO poi di QUESTO e l'acquisto qualche buon libro (es. QUESTO).

Per la parte vera e propria di elettronica, puoi fare questa ricerca con Google "imparare l'elettronica partendo da zero pdf" ... sicuramente troverai un bel libro, in .pdf, che pubblico molto tempo fa Nuova Elettronica. Non posso metterti il link perché ... pur essendo Nuova Elettronica ormai fallita, comunque il materiale è soggetto a copyright ... ma vedrai che con una ricerca su Google lo trovi al primo colpo ...

Buono studio :)

Guglielmo

Ti ringrazio nuovamente per i consigli, sul tuo suggerimento ho guardato subito e quindi si, inserirò una resistenza , questo dovrebbe aiutarmi anche per le interferenze. Ora consulterò tutta la documentazione di base che mi hai suggerito ed insieme al tutorial per principianti che ho trovato, voglio provare a buttare giù uno schema di base. Si le mie conoscenze sono più che scarse, sono elettricista ma non elettronico,e sono qui appunto per imparare

ho messo giù uno schema preliminare, spero di aver capito la posizione delle resistenze sui pulsanti ed il loro valore, grazie per eventuali consigli

Dallo schema hai usato delle pull-down verso GND mentre il tuo pulsante chiude verso Vcc, confermi? In tal caso il pulsante darà normalmente LOW e, quando premuto, darà HIGH.

Se ti andasse bene il contrario (normalmnete HIGH e premuto LOW), allora potresti semplificare il circuito eliminando tutte le resistenze esterne ed i collegamneti esterni verso Vcc ed utilizzare quelle interne al chip (si attivano con un comando da software), che sono di pull-up (vanno verso Vcc) per tenere il pin normalmente ad HIGH e portarlo a LOW chiudendo il pulsante ad esso connesso verso GND.

Scegli tu quale delle due soluzioni ti è più comoda ...

Guglielmo

se invece spostassi la resistenza sul Vcc prima del pulsante realizzerei la PULL Up diciamo via hardware, nella guida che ho letto dice che limita la corrente sul microprocessore ( cosa positiva ) ed aiuta nella gestione del debouncing che successivamente va regolato anche via software. Confermi?

Diciamo che a livello pratico non so cosa sia meglio, nel mio dispositivo la pressione di un pulsante serve ad attivare una funziona isolata che normalmente è attivata da un tasto della tastiera. A differenza di un joystick per retroconsole io non ho necessità di avere pressioni ripetute molto ravvicinate dello stesso tasto. Ad esempio un tasto azzurro mi inserirà la marcia avanti, questa rimarrà inserita finchè non premo il tasto nero che la disinserirà. Allo stesso modo gli altri tasti. Detto questo non so quale configurazione sia meglio, il grosso del lavoro lo fanno le leve ( potenziometri )che verranno usate in continuazione.