Come sapranno i miei 5 affezionati lettori che hanno letto il “whois” , sono appassionato di simulatori di volo da molto, molto tempo.
Negli anni ho visto di tutto: software di cui nemmeno ci si ricorda più il nome come Apache Longbow, simulatori arcade talmente brutti da rasentare il ridicolo ed altri invece vere pietre miliari che ancora reggono a distanza di anni come Falcon BMS, fino ai più moderni e sofisticati quali sono DCS, X-Plane e FS2020.
Una cosa ho capito in tutto questo tempo ed è in comune con tutti: che la simulazione “standard”, ovvero usando il joystick e la tastiera per controllare le varie funzioni, non (mi) basta.
Preferisco, anzi no, ho bisogno di controlli diretti, interruttori, leve o pulsanti come sui veri aerei.
Questo perché, tanto i vecchi quanto i nuovi simulatori hanno un livello di realismo tale per cui i comandi dei vari velivoli son tutti replicati. TUTTI. Ma le tastiere hanno solo e sempre gli stessi tasti, quindi le combinazioni per eseguire determinate funzioni sono pazzesche (cose simili a “CTRL+SHIFT Destro + ALT + F” per estendere i flap) e non ce la facciamo, io e il mio neurone, a ricordarle tutte, senza contare che servono mani da pianista per tenere una mano sulla cloche e con l’altra premere quattro tasti assieme.
Se poi si parla di usare il mouse, peggio che andar di notte! Per cliccare direttamente sullo schermo perdo tempo, mi distraggo dal pilotaggio e (soprattutto sui sim militari) finisce che sfascio l’aereo.
Idem per quanto riguarda la RV (Realtà Virtuale), in cui col caschetto in testa è anche quasi impossibile trovare il mouse perché, si, visivamente sei coinvolto al 100% ma alla fine non vedi l’ambiente attorno a te quindi i movimenti più basilari diventano difficili.
Ora, visto che già non sono un fenomeno, mi sono detto che è meglio evitare ulteriori distrazioni.
Da lì ad avere l’idea e l’obiettivo di creare pannelli è stato un attimo.
Pannelli interfacciati col computer, con tasti, led e pulsanti che mi permettessero di fare quelle famose combinazioni di tasti senza dover star troppo a pensarci.
Allunghi una mano, giri l’interruttore e via.
All’inizio è stata dura.
Anni fa non esisteva la tecnologia che c’è adesso, le schede Arduino non le conoscevo (e comunque erano appena uscite sul mercato) e le stampanti 3D erano di là da venire.
Nonostante le difficoltà però, ho realizzato qualche pannello molto semplice con interfacce basilari (addirittura uno che passava attraverso la porta parallela, bei ricordi!) e qualche risultato l’ho ottenuto.
Col tempo e con l’esperienza le cose si sono evolute, la tecnologia stessa è diventata più accessibile e facile da usare, le schede di interfaccia sono diventate più abbordabili e le stampanti 3D anche.
Un passo alla volta e un fallimento dietro l’altro, sono arrivato fin qui, alla realizzazione di questo MCP.
Ma di che si tratta?
E’ il Mode Control Panel del Boeing 737-800, in estrema sintesi il sistema che permette di controllare l’autopilota, e la modalità di volo dell’aereo.
Sul 737, ma anche su altri aerei civili, l’MCP integra i controlli che consentono all’equipaggio dell’aeromobile di selezionare quali parametri del volo dell’aeromobile devono essere controllati automaticamente.
È possibile inserire input di base come direzione, velocità, velocità verticale, livello di volo/altitudine.
Una volta che queste modalità sono state selezionate come attive, i computer dell’aeromobile regoleranno quindi l’assetto, la direzione e la spinta dei motori per raggiungere e mantenere i parametri selezionati.
E’ una parte molto importante del velivolo e si trova nella posizione del cockpit chiamata “Glareshield”, proprio di fronte ai piloti perché deve essere rapidamente consultabile e/o impostabile in caso di necessità.
Chiaramente non sto a spiegarvi da cima a fondo come funziona, esiste un manuale di qualche centinaio di pagine che nemmeno conosco così bene, ma voglio invece spiegarvi come sono arrivato a realizzarlo, se magari qualcuno avesse idea di replicarlo.
L’idea di base arriva dal fantastico sito di Karl Clarke 737diysim, in cui si trova tutto il materiale relativo alla costruzione “in casa” della cabina di un 737.
Questo pezzo, in particolare, è stato rilasciato anni fa (ed aggiornato recentemente) in versione freeware, quindi liberamente scaricabile.
Non è una replica esatta, alcuni pulsanti sono stati spostati per esigenze di spazio e per rendere la realizzazione più facile, però le funzionalità sono tutte quelle che un’unità di questo tipo ma di livello commerciale può offrire.
Per la realizzazione ho utilizzato sia la stampante a filamento, per creare la struttura ed i pannelli, che quella a resina per stampare le manopole e le cornici dei display (non montate nelle foto perché ancora non le ho verniciate…).
Il pannello frontale è stampato su PLA bianco, verniciato in grigio (solo vagamente somigliante al RAL della Boeing, lo ammetto), e poi è stata data una passata di cartavetro sulle scritte in rilievo in modo da farle tornare bianche.
Il risultato non è proprio perfetto, poteva essere migliore perché non è uscita benissimo la stampa col filamento bianco, ma per me e per l’utilizzo che devo farne è più che sufficiente.
La stampa di tutta la struttura ha impiegato circa 80 ore, con i gusci della scatola che staccano di gran lunga tutti gli altri pezzi nella classifica dei più lunghi.
Sembrano molte, ma se si vogliono ottenere risultati apprezzabili bisogna avere stampanti molto costose oppure macchine più economiche e più lente. Scartata la prima opzione per ovvi motivi, ho dovuto ripiegare sulla seconda. In ogni caso non è un male perché ogni errore o problema risolto diventa esperienza per la prossima stampa, facendoci capire come funziona la stampante e il motivo per cui si è presentato il problema.
Stampate e montate le parti plastiche, è stato il momento dell’elettronica.
E qui ci sono voluti due round.
Si, perchè al primo montaggio ho deciso di collegare i componenti con i connettori “DuPont” che uso da sempre nei progetti test.
Mi sembrava comodo poter collegare e scollegare i singoli componenti agli Arduino in base alla necessità. Però ho avuto dei malfunzionamenti continui, display che visualizzavano valori casuali o erratici, pulsanti che una volta funzionavano e subito dopo non più.
Oltre a questo, l’interno dell’unità sembrava quello che ho definito “piatto di spaghetti”, ovvero un intrico di cavi assolutamente impossibile da sbrogliare.
Addirittura io, disordinato cronico, sono arrivato al punto di dire “No, così non va, tocca rifare tutto o non ne usciamo!”
Volevo inserirvi una foto per spiegarmi meglio, ma non ne ho fatte. Probabilmente era talmente brutto da vedersi che ho lasciato perdere!
Leggendo in rete ho poi capito che
- I connettori DuPont vanno bene per alcune applicazioni ma sono fortemente sconsigliati per altre (tipo i miei display seriali a 7 segmenti) che necessitano di connessioni stabili.
- L’interno DEVE essere ordinato perché altrimenti risolvere i problemi diventa impossibile.
E quindi si arriva al secondo round: dissaldare tutti i componenti, eliminare i cavi con i connettori, recuperare due piastre per prototipi da collegare agli Arduino e saldare il tutto in maniera decente, con cavi in silicone ordinati e raggruppati.
C’è voluto un mese però ora funziona tutto, i display fanno il loro lavoro e i pulsanti non perdono un colpo.
Inoltre l’interno è relativamente ordinato e addirittura avanza spazio.
E vi garantisco che è una grossa soddisfazione!
Per l’interfaccia con il simulatore (X-Plane nel mio caso, con il 737 Zibo) ho utilizzato il software MobiFlight.
Il programma, dopo averlo configurato, si interfaccia agli Arduino e gestisce gli input ed output da e per l’MCP.
Configurato, appunto.
Ed anche qui non è stata tutta rose e fiori.
Nella prima versione di MobiFlight che ho utilizzato non era ancora presente la parte relativa ai cosiddetti DataRef di X-Plane.
Di che si tratta? Per farla breve, sono le variabili che MF deve leggere e scrivere nel simulatore per far funzionare il pannello.
Ora, la sezione “X-Plane DataRef”, cioè la possibilità di gestire direttamente dall’interno di MF questi dati, è stata aggiunta solo circa a metà 2022 mentre prima ci si doveva basare su un file di testo, compilato manualmente ed inserito in una directory del simulatore.
Era un processo abbastanza lungo perché bisognava trovare il dataref giusto (a volte anche in rete perchè non c’era documentazione), inserirlo nel file di testo in maniera corretta, programmare il MobiFlight, avviare il simulatore e sperare di aver fatto centro.
Era un “trial and error” perchè non tutte le variabili di configurazione erano scritte e lette correttamente, inoltre lo Zibo ha delle variabili sue che differiscono leggermente da quelle standard, quindi ho faticato un po’.
Ma una versione base funzionante c’era, anche se non proprio completa.
Poi è arrivata la versione 9, anche se in beta, con il supporto diretto, dall’interno di MobiFlight ai DataRef . E le cose sono diventate decisamente più rapide e sicure.
Il file di testo fatto a mano non serve più perchè MF stesso ha già la sua serie di comandi e variabili, basta andare a selezionare quella giusta e indicare come gestirla per ottenere un risultato.
Se non è la variabile, la riconfigurazione occupa pochi secondi in MobiFlight contro i minuti di prima. E non va nemmeno riavviato il simulatore!
Bene, sono andato fin troppo lungo, mi ero detto “scriviamo solo due righe e mettiamo qualche foto…”.
In conclusione posso dirvi che sono davvero soddisfatto del lavoro, considerando che è stato creato con un costo tutto sommato ridotto per le funzionalità che offre all’interno del simulatore.
Ho fatto ormai un po’ di voli utilizzando questo MCP e la comodità di premere un pulsante, magari un “APP” in corto finale, disattivare l’autopilota o ancora, cambiare l’altitudine direttamente con la manopola invece di perdermi a cercare mouse, tastiere o zone dello schermo ripaga ampiamente gli sforzi fatti per costruirlo.
E poi, in fin dei conti, è pure stato divertente!
Ora ci sono altri progetti in cantiere, ma ve ne parlerò più avanti!
Ciao!
M.