domenica 12 febbraio 2012

Interfaccia INPUT "artigianale"




Terminati tutti i test con la scheda USB Output per la gestione dei led è arrivato il momento di pensare a come interfacciare pulsanti e switch con il simulatore.

Prendendo spunto da un'idea del mio "ispiratore" Dave, ho provato a trasformare una tastiera USB in una scheda di INPUT. In sostanza, smontando la tastiera, ne ho recuperato la schedina di gestione e con un pò di collegamenti e saldature sono riuscito a creare un sistema al quale posso collegare gli switch e i pulsanti che andrò a comprare.

Cortocircuitando in combinazioni diverse i pin della scheda della tastiera si ottiene lo stesso risultato della pressione di un tasto (ogni combinazione corrisponde ad un tasto). Con enorme pazienza, quindi, utilizzando un vecchio cavo flat normalmente utilizzato per collegare gli hard-disk IDE, ho collegato i singoli contatti della scheda della tastiera su una basetta multifori. E' stato un lavoro lungo in quanto ho dovuto separare e spelare i piccoli fili del cavo flat; fili che poi sono stati saldati sulla scheda della tastiera, uno per ogni contatto; questi contatti sono molto vicini e sottili, quindi mi sono dovuto armare di tanta pazienza...

Ecco il risultato ottenuto

Il cavo flat saldato sulla scheda della tastiera USB:


L'altra estremità del cavo flat collegata alla basetta multifori:


Dopo aver provato e trovato diverse combinazioni per riprodurre la pressione dei tasti tramite i contatti, ho mappato le funzioni del simulatore attraverso la libreria FSUIPC. In questo modo, collegando degli switch / bottoni posso controllare il simulatore. Ho fatto quindi qualche prova collegando alcuni switch comprati per test:



Dopo aver mappato più o meno tutte le funzionalità che voglio controllare, mi tocca solo più acquistare e collegare fisicamente i pulsanti.

venerdì 3 febbraio 2012

Il SIOC




Finalmente sono arrivato al mio "punto forte"...la programmazione!

Ok, non conosco il linguaggio SIOC ma la teoria e la logica della programmazione ad eventi...beh...quella sì.

E allora....mi studio un pò di sintassi, sbircio qualche esempio su internet ed il gioco è fatto.

Inizio con un semplice programmino per far accendere i led in funzione dello stato delle luci dell'aereo, attraverso la libreria d'interfaccia FSUIPC. Collego quindi 3 uscite della scheda USB alla basetta multifori, sulla quale sono montati i led. Prendo nota dei numeri delle uscite collegate e inizio a scrivere il primo codice di programmazione di una lunga serie (se riesco ad arrivare in fondo al mio progetto!!!).

La prima cosa da fare è identificare quali sono le variabili FSUIPC (chiamate OFFSET) che entrano in gioco in questa situazione e quindi, manuale alla mano, trovo, a titolo di esempio, gli offset relativi alle LANDING LIGHTS, TAXI LIGHT e STROBE LIGHT. A questo punto in SIOC si creano delle variabili interne collegate alle variabili del simulatore e si scrivono le procedure che vengono invocate tutte le volte (eventi) che gli OFFSET del simulatore cambiano valore.

Successivamente si creano altre tre variabili interne collegate, questa volta, alle uscite della scheda USB.

Il piccolo programmino che ho scritto mette in relazione le variabili relative agli OFFSET del simulatore (INPUT), con le variabili collegate alle uscite della scheda USB (OUTPUT). In poche parole:

Ad ogni evento di cambio valore di un OFFSET

- se il valore di INPUT è pari a 1 allora setta il valore 1 sulla relativa uscita;
- viceversa setta 0


Settare 1 sull'uscita significa far arrivare una tensione pari a 5V (circa!) sul morsetto di segnale dell'uscita relativa...in questo modo sul led arriva la tensione di 5V che, con la resistenza dimensionata correttamente, viene portata a 2V (circa!) e il led si accende senza bruciarsi (questo perchè i leds che ho comprato lavorano con una tensione di circa 2V).

Niente di più semplice!!!!

Ecco un piccolo filmato che documenta il risultato ottenuto: vengono azionate le luci dell'aereo tramite il pannello SAITEK e i relativi LED sulla scheda millefori si accendono/spengono di conseguenza!!!



Non mi resta nient'altro che definire tutti gli stati del simulatore che voglio tracciare per pilotare i led e scrivere i relativi programmi di gestione.