Interfaccia per simulare interruttore

Ciao a tutti.
Dopo un pò (un bel pò…) di tempo, sto riprendendo in mano una serie di lavoretti di vario tipo (domestici e non), tra cui anche alcuni di elettronica (e quindi arduino).

In questo caso, ho ripreso in mano una idea che mi era venuta per sopperire ad una mancanza di “hardware” nel realizzare un pannellino da usare con un simulatore di volo.
In pratica, il PC è collegato ad una scheda I/O (collegata e alimentata via USB), cui collego switch e pulsanti. La scheda lavora eseguendo dei comandi software a seconda se il pin dello switch/pulsante sia connesso o meno al suo GND.

Finchè sono interruttori e pulsanti standard, non è un problema.
Ma ho necessità di operare su uno switch (nel simulatore è un interruttore a levetta) a 4 posizioni (che non reperisco sul mercato).

Avendo uno switch reale a 4 posizioni, dovrei collegare il pin comune al GND della scheda I/O e 3 pin ai 3 pin della scheda I/O
L’idea che mi era venuta era di sostituire (nel mondo reale) lo switch con un pulsante, e di identificare la sua posizione mediante l’accensione di 3 LED (min, med, max).
Utilizzare quindi arduino (NANO - dovrò gestire due di questi interruttori) collegando un pulsante (IN) e 3 led (OUT) e altri 3 OUT verso la scheda I/O (uno per pin).
In condizioni “di riposo” avrei i 3 led spenti e nessun segnale verso la scheda I/O
Prima pressione > 1 led acceso e segnale verso il pin 1 della scheda I/O
Seconda pressione > 2 led accesi e segnale verso il pin 2 della scheda I/O
Terza pressione > 3 led accesi e segnale verso il pin 3 della scheda I/O
Quarta pressione > led tutti spenti e nessun segnale verso la scheda I/O

Ho fatto un circuito di prova simulando i 3 segnali in uscita con altri 3 led, e il risultato è giusto. (non ho collegato alcunchè alla scheda I/O)

Però ho necessità di simulare (in uscita) un interruttore che rimane nella sua posizione (in quanto non deve essere un singolo impulso), per cui avevo pensato di usare 3 transistor.

Ho provato a figurarmi un possibile schema che allego. Vorrei un vostro parere sulla cosa: è giusto quello che ho schematizzato, soluzioni alternative, etc etc?
Non essendo un genio elettronico, la cosa che più mi lascia più perplesso è il GND della scheda I/O: mi è venuto “logico” collegare anch’esso al Collettore, dove già è collegato il GND di Arduino. Ma non vorrei rischiare il botto…

Grazie
Andrea

PS: scusate se lo schema non è ottimale…

PP.SS.:Mi sono accorto che nello schema i led non risultano collegati al gnd....

jocman:
In questo caso, ho ripreso in mano una idea che mi era venuta per sopperire ad una mancanza di "hardware" nel realizzare un pannellino da usare con un simulatore di volo.
In pratica, il PC è collegato ad una scheda I/O (collegata e alimentata via USB), cui collego switch e pulsanti. La scheda lavora eseguendo dei comandi software a seconda se il pin dello switch/pulsante sia connesso o meno al suo GND.
Finchè sono interruttori e pulsanti standard, non è un problema.
Ma ho necessità di operare su uno switch (nel simulatore è un interruttore a levetta) a 4 posizioni (che non reperisco sul mercato).

Non so bene se ho compreso la tua esigenza, ma se parli di simulatori di volo vedi una cosa come QUESTA se può esserti utile (è un mio progetto quindi chiedi pure).
Come vedrai, ci sono commutatori a 4 posizioni ed interruttori a 3 (on-off-on):

Se invece per motivi di “realismo” e’ proprio necessario simulare un commutatore a leva a 4 posizioni, si puo usare uno “sporco trucco” (:stuck_out_tongue: :D) … si prende un commutatore rotativo (del diametro piu piccolo possibile), si costruisce una levetta che simuli quella del pannello, che magari scorra in un taglio, e si collega il commutatore rotativo in orizzontale dietro il pannello, con una staffetta ad angolo … in questo modo la leva fara’ ruotare il commutatore, ma il movimento sul pannello risultera’ come quello di un commutatore a leva (piu o meno ;))

All'inizio (a suo tempo, a inizio progettazione) avevo optato anche io per la soluzione rotary switch (e vattelapesca il "realismo").
Tant'è che sul pannello di gestione APU in realtà l'elicottero (trattasi di elicottero) ha un level switch a ben 5 posizioni che ho trasformato in rotary (pazienza, ma dove lo trovo ?!?!? ......)
Switch "normali e non" a 3 posizioni li ho; purtroppo questi due, come detto, sono a 4 posizioni "a croce" (su,giu,destra,sinistra).
Siamo d'accordo che la mia idea comunque è del tipo "vattelapesca", ma mi piacerebbe realizzare qualcosa con arduino (vattelapesca per vattelapesca....)

A proposito (piccolo OT)
DocDoc, che sistema di interfacciamento usi?
Io uso le schede OC, anche se dopo 7 anni di letargo mi stanno fondendo i neuroni a ricordarmi come le avevo programmate e tutto il resto....

jocman:
… 4 posizioni “a croce” (su,giu,destra,sinistra) …

… ma e’ uno switch o un joystick ? …

jocman:
DocDoc, che sistema di interfacciamento usi?
Io uso le schede OC, anche se dopo 7 anni di letargo mi stanno fondendo i neuroni a ricordarmi come le avevo programmate e tutto il resto....

Credo che siano ambiti diversi, nel mio caso non mi interfaccio con un trasmettitore (non so cosa siano le schede OC) ma con Flight Simulator X, quindi i comandi li mando via USB ad un apposito software sul PC che comunica con le DLL di FSX. E' tutto scritto sul sito Instructables :wink:

jocman:
purtroppo questi due, come detto, sono a 4 posizioni "a croce" (su,giu,destra,sinistra).

Cioè intendi uno switch che posizioni e resta in una di queste 4 posizioni (e concordo con Etem, ma che è una specie di joystick digitale)?
Mai visti, puoi postare una foto, per farci capire?

Le schede OC (Open Cockpit) in effetti nascono per Fligh Simulator (con tanto di gestione motori passo passo, display, etc etc).

Spero di non fare “danno”, il loro sito è questo:

Io le userei in un altro simulatore, per cui l’interfacciamento è più complesso (le OC comunicano tramite USB e SIOC - un linguaggio loro che gestisce le funzioni - che poi deve essere tradotto da me in LUA per il mio sim)

Riguardo gli switch, si sono proprio switch a levetta (non joystick).
Vi allego le immagini prese dal sim (c’è l’APU a 5 posizioni e i due che mi stanno ingrippando adesso)

Clipboard03.jpg

Clipboard02.jpg

Capito, non conoscevo Open Cockpit, io ho usato semplicemente un Arduino Nano, come avrai visto nell'Instructable. Ma scusa la curiosità, nel tuo caso di quale aereo parliamo?

In ogni caso fammi capire come funzionano, immagino che le luci NAV e il Wiper siano assimilabili ad un commutatore a 4 posizioni (alto:off, sx:10%, dx:30% basso:100%, o alto:off sx:SPD1 dx:SPD2 basso:FAST): non puoi implementarlo proprio con un commutatore a 4 posizioni come quello che ti ho mostrato nella foto sopra? D'altronde molti aerei ce l'hanno proprio così (es. MD81).

Per l'APU invece non capisco, perché ha 5 posizioni? Sul 737 ne ha solo 3 (off, on, start e tra l'altro quest'ultimo è temporaneo ossia resta in posizione finché lo si tiene premuto), nel tuo come funziona? Ha 5 posizioni ossia centro, alto, basso, sinistra, destra?

Il sim è Ka50 della DCS
Quanto all'APU, se ricordo bene (come detto sono 7 anni che non ci metto mano purtroppo, per varie vicissitudini) le 5 posizioni sono sopra (il turbo gear se ricordo bene permette di deviare il flusso di aria verso un generatore ausiliario quando non hai GPU disponibili), centro (disabilitato), sinistra (motore di sinistra), destra (motore di destra), centro basso (entrambe)

Riguardo i due commutatori, il funzionamento è proprio quello. Il primo progetto di pannello che feci era proprio con un rotary per gestire le 4 posizioni, ma non mi piaceva molto come soluzione (anche se funzionale).

Riguardo a instructables, ho provato a fare una ricerca veloce, ma non sono riuscito a trovare il tuo link.
Me lo posti che ci do volentieri uno sguardo?

L'ultima volta che ho visto un "coso" del genere, stavo riparando una vecchia fresa inglese e saranno passati 25 anni ... e ancora me lo ricordo l'incubo di trovare qualcosa di simile che potesse funzionare come ricambio ... ora non ho idea delle dimensioni dei tuoi switch, e quelli non erano piccolini, ma se cerchi "51DXY" dovresti trovare qualcosa di simile (attenzione che non sia 51MXY, perche' quello ha la molla di ritorno, il D no) ...

L'unico switch a levetta ancora piu assurdo di quello l'ho trovato riparando una vecchia chitarra elettrica custom ... 6 posizioni, matrice 3x2 (cioe' le classiche 3 posizioni tipo alto-centro-basso, pero' su due linee parallele, 3 a destra e 3 a sinistra ... come immaginazione malata, i fabbricanti di switch per strumenti musicali non li batte nessuno :astonished:

un qualcosa tipo questo ?

LINK

EDIT - No, mi sa' che e' un 3 posizioni

jocman:
Il sim è Ka50 della DCS

Ah capito, sti russi devono sempre fare le cose di testa loro... :wink:

Quanto all'APU, se ricordo bene le 5 posizioni sono

Beh con un commutatore rotativo a 5 posizioni potresti farlo ma ovviamente avresti l'impossibilità di passare a "on" direttamente uno dei due motori (es. se hai turbo, off, left, right, both significherebbe che da off non puoi andare direttamente a right). Lo simulerei con due interruttori, uno da 2 posizioni (turbo e off) in verticale, ed uno da 3 (left, both, right) in orizzontale. Le combinazioni sono 2x3=6 ma in pratica quando nel primo metti "turbo" ignori la posizione dell'altro considerandola sempre "both". so che non è la stesas cosa ma insomma, non è mica un vero elicottero! :slight_smile:

Il primo progetto di pannello che feci era proprio con un rotary per gestire le 4 posizioni, ma non mi piaceva molto come soluzione (anche se funzionale).

Boh sono valori in sequenza, non vedo il problema.

Riguardo a instructables, ho provato a fare una ricerca veloce, ma non sono riuscito a trovare il tuo link. Me lo posti che ci do volentieri uno sguardo?

Lo trovi nel mio post #2 qui sopra... :wink: comunque è:

Ho letto il tuo progetto su instructables, molto interessante. soprattutto un po' di spunti per me per imparare qualcosa di nuovo (beh, tutto sommato quasi tutto è sempre nuovo per me).