Sommario:

KerbalController: un pannello di controllo personalizzato per Rocket Game Kerbal Space Program: 11 passaggi (con immagini)
KerbalController: un pannello di controllo personalizzato per Rocket Game Kerbal Space Program: 11 passaggi (con immagini)

Video: KerbalController: un pannello di controllo personalizzato per Rocket Game Kerbal Space Program: 11 passaggi (con immagini)

Video: KerbalController: un pannello di controllo personalizzato per Rocket Game Kerbal Space Program: 11 passaggi (con immagini)
Video: Контроллер космической программы Кербал [Обновление создателя] 2024, Dicembre
Anonim
KerbalController: un pannello di controllo personalizzato per Rocket Game Kerbal Space Program
KerbalController: un pannello di controllo personalizzato per Rocket Game Kerbal Space Program

Perché costruire un KerbalController?

Bene, perché premere pulsanti e attivare interruttori fisici sembra molto più sostanziale che fare clic con il mouse. Soprattutto quando si tratta di un grande interruttore di sicurezza rosso, dove devi prima aprire il coperchio, azionare l'interruttore per armare il tuo razzo, iniziare il conto alla rovescia e 3.. 2.. 1.. abbiamo il decollo!

Che cos'è un KerbalController?

Un KerbalController, noto anche come pannello di controllo, Simpit (pozzetto simulato), DSKY (tastiera display) o joystick personalizzato, è un dispositivo di input personalizzato per il controllo del popolare razzo che costruisce e vola e si spera non esplode gioco Kerbal Space Program combinato con output opzionali dal gioco, come spie di stato, display di telemetria e/o indicatori di carburante.

Questa build specifica include input come i controlli di rotazione e traslazione tramite joystick, un cursore dell'acceleratore, un sacco di pulsanti con spie di stato, indicatori di livello del carburante a LED e un display LCD di telemetria con più modalità.

Questa guida includerà tutto il necessario per creare una copia identica o apportare modifiche e miglioramenti lungo il percorso, come meglio credi. Sono inclusi:

  • un elenco delle parti
  • disegni di progettazione digitale pronti per il taglio laser
  • istruzioni per il cablaggio
  • Codice Arduino
  • Codice per il plugin KSP di accompagnamento
  • Molte immagini

Pronti al decollo? Andiamo!

Passaggio 1: gli strumenti

Gli attrezzi
Gli attrezzi

Lo strumento più importante che devi avere per questa build è un saldatore. Ciò include della saldatura, una spugna per la pulizia del metallo per pulire la punta del saldatore e una "terza mano".

Altri strumenti sono una spelafili, un tronchese, pinzette e alcuni cacciaviti di piccole dimensioni.

Passaggio 2: parti e layout di base

Parti e layout di base
Parti e layout di base
Parti e layout di base
Parti e layout di base

Realizzare il miglior controller possibile per te significa selezionare esattamente quali pulsanti e interruttori vuoi implementare. Perché ognuno gioca in modo diverso. Alcune persone pilotano aerei e costruiscono SSTO (single-stage-to-orbit). Altri preferiscono i rover delle stazioni spaziali. E alcuni vogliono solo che le cose esplodano in modo spettacolare!

Aiuta a disegnare tutte le parti nella loro dimensione approssimativa e trascinarle in un programma di disegno vettoriale (come Affinity Designer o Inkscape) o un programma di disegno 3D (come SketchUp).

Se vuoi una build più semplice, puoi semplicemente copiare il mio controller e ottenere le parti elencate nell'elenco delle parti allegato.

Passaggio 3: creare un prototipo (opzionale)

Crea un prototipo (opzionale)
Crea un prototipo (opzionale)
Crea un prototipo (opzionale)
Crea un prototipo (opzionale)

Se stai copiando il mio controller, puoi saltare questo passaggio.

Se stai cercando un layout personalizzato, ti consiglio di utilizzare prima una scatola da scarpe per creare un prototipo funzionante con i controlli principali. Aiuta davvero a mettere a punto la posizione dei controlli principali. È anche bello avere la sicurezza di poterlo far funzionare prima di continuare a investire tempo e denaro nella costruzione finale. In realtà ci ho giocato per un po' con il controller della mia scatola da scarpe. Non è il modo Kerbal di usare le parti recuperate per hackerare qualcosa insieme?

Passaggio 4: suggerimenti sul cablaggio

Suggerimenti per il cablaggio
Suggerimenti per il cablaggio
Suggerimenti per il cablaggio
Suggerimenti per il cablaggio
Suggerimenti per il cablaggio
Suggerimenti per il cablaggio

Quando crei un prototipo, non saldare tutti i tuoi pulsanti a meno che tu non voglia dissaldrli quando arrivi alla custodia finale. Ho saldato alcuni fili ai pulsanti e ho utilizzato una breadboard senza saldatura per effettuare le connessioni temporanee all'Arduino.

Quando si collega tutta l'elettronica al frontalino finale, è possibile ridurre l'ingombro creando loop per 5V e massa. Non colleghi tutti i pin di terra direttamente ad Arduino, ma piuttosto colleghi la terra su un pulsante a terra sul pulsante successivo e gira tutto intorno. Infine, ti connetti ad Arduino.

Dopo aver creato i loop per l'alimentazione e la massa, rimangono tutte le connessioni ai pin Arduino. Consiglio di prendere alcune strisce di pin di intestazione e di saldare i fili a quelli. Puoi usarli come un grande connettore, così puoi ancora scollegare il tuo Arduino per i test.

La lunghezza dei fili è un atto di bilanciamento tra abbastanza corto da mantenere la custodia libera da grovigli di filo in eccesso (che potrebbero impedirti di essere in grado di chiudere la scatola) e abbastanza lungo da poter spostare le parti fuori strada per saldare altre parti, stringere le viti e frugare con il multimetro durante il debug.

Passaggio 5: ottenere il taglio laser del frontalino

Ottenere il Lasercut del frontalino
Ottenere il Lasercut del frontalino
Ottenere il Lasercut del frontalino
Ottenere il Lasercut del frontalino
Ottenere il Lasercut del frontalino
Ottenere il Lasercut del frontalino

Ottenere un aspetto pulito e professionale è molto difficile quando si sega e si dipinge a mano. Fortunatamente, il taglio laser non è più molto costoso. Consente un'estrema precisione, purché il tuo design sia accurato.

In allegato è il mio design del frontalino, nei formati appropriati per Affinity Designer e altri programmi di disegno vettoriale come InkScape gratuito.

Ho fatto tagliare al laser il frontalino in Olanda a Lichtzwaard. Da allora hanno chiuso e le attività sono state rilevate da Laserbeest, dove ho fatto tagliare al laser la scatola. Ogni negozio può avere requisiti diversi per il design, quindi controlla con il tuo negozio prima di inviare. Inoltre, offrono quasi sempre assistenza alla progettazione a una tariffa oraria.

Cose importanti da tenere a mente:

  • Tutto deve essere basato su vettori. Ecco perché il logo nel mio design del frontalino non è stato inciso. Nota che questo non è risolto nei disegni allegati.
  • Anche il testo è basato su vettori. Quindi converti quelle lettere in curve!
  • Misurare. Misurare. Misurare. Non sono riuscito a prendere in considerazione le dimensioni necessarie per montare i joystick e ho dovuto hackerarlo. È venuto bene, per fortuna. Nota che questo è risolto nei disegni allegati.

Dopo aver controllato tutto accuratamente, invialo al negozio di taglio laser. Aspettati di pagare 40-50 euro in Olanda e ricevi questo bellissimo risultato per posta il giorno successivo!

Passaggio 6: collegamento di pulsanti e interruttori

Collegamento di pulsanti e interruttori
Collegamento di pulsanti e interruttori
Collegamento di pulsanti e interruttori
Collegamento di pulsanti e interruttori
Collegamento di pulsanti e interruttori
Collegamento di pulsanti e interruttori

La maggior parte degli interruttori e dei pulsanti ha i connettori etichettati C, NO, NC, +, -. Ecco come collegarli ad Arduino.

Interruttore o pulsante semplice:

  • Massa C (comune)
  • Pin digitale Arduino NO (normalmente aperto)

Configurare il pin digitale come INPUT_PULLUP, il che significa che Arduino manterrà il pin a 5 V e rileverà quando il pin viene messo a terra e lo tratterà come un input. Il connettore NO sull'interruttore o sul pulsante è normalmente aperto, quindi il circuito non è collegato. Quando si preme il pulsante o si attiva l'interruttore, il circuito si chiude e il pin viene messo a terra.

Pulsante con LED:

La parte del pulsante è la stessa di sopra. Per il LED, si collegano cavi aggiuntivi:

  • Massa - (negativo)
  • Pin digitale Arduino + (positivo)

Questa parte è piuttosto semplice. Useremo il pin Arduino in modalità OUTPUT normale.

Interruttori di sicurezza con LED:

Questi sono leggermente diversi e non consentono il controllo del LED indipendentemente dalla posizione dell'interruttore. Il LED si accenderà sempre solo quando l'interruttore è acceso. Hanno un connettore +, - e segnale.

  • Massa - (negativo)
  • 5V + (positivo)
  • Pin digitale Arduino S (segnale)

Useremo il pin Arduino in modalità INPUT. Quando l'interruttore è attivato, il LED si accende e il pin del segnale diventa alto.

Passaggio 7: collegamento dei joystick e del display LCD

Collegamento dei joystick e del display LCD
Collegamento dei joystick e del display LCD
Collegamento dei joystick e del display LCD
Collegamento dei joystick e del display LCD
Collegamento dei joystick e del display LCD
Collegamento dei joystick e del display LCD

LCD

L'LCD è molto semplice. Ha solo bisogno di alimentazione, massa e seriale.

  • 5V VDD
  • Terra GND
  • Arduino Tx PIN RX

È possibile utilizzare un connettore JST o saldare i fili direttamente alla scheda.

Joystick

I joystick potrebbero sembrare scoraggianti all'inizio, ma sono abbastanza facili da collegare. Ci sono tre assi che sono collegati allo stesso modo. Due di loro stanno usando i connettori nella parte inferiore del joystick. Il terzo utilizza alcuni fili.

  • Terreno
  • Pin di ingresso analogico Wiper Arduino
  • 5V

I connettori possono essere collegati in questo ordine. Non preoccuparti di farlo tornare indietro, il tergicristallo è sempre quello centrale. Se l'alimentazione e la massa vengono scambiate, possiamo invertire l'asse nel codice Arduino in un secondo momento.

I fili potrebbero avere uno schema di colorazione diverso sul tuo joystick, ma in generale: i due fili con colori identici sono per il pulsante in alto. Rosso o arancione è 5V, nero o marrone è Ground. Il filo rimanente è il tergicristallo.

Passaggio 8: indicatori di carburante della barra LED

Indicatori di carburante a barra LED
Indicatori di carburante a barra LED
Indicatori di carburante a barra LED
Indicatori di carburante a barra LED
Indicatori di carburante a barra LED
Indicatori di carburante a barra LED

Va bene. Questa è la parte più difficile dell'intera costruzione. Sentiti libero di saltare questo nella tua prima build, o miglioralo e fammi sapere!

Ho queste fantastiche barre LED che voglio usare come indicatori di livello del carburante. Il LED superiore è blu, poi un po' di verde, poi arancione e infine rosso. Se possiamo accendere un LED alla volta, possiamo lasciare che rappresenti il livello del carburante sulla nostra navicella spaziale.

Inizialmente ho ordinato driver IC con loro. Funzionano benissimo! È possibile selezionare la modalità punto o la modalità barra e visualizzerà una tensione di ingresso analogica come un singolo LED (punto) o una gamma di LED (barra). Ma un Arduino non emette una tensione analogica! E la funzione PWM che consente di attenuare un LED emulando una sorta di tensione analogica, non funziona con questi circuiti integrati driver.

Al piano 2: registri a turni. Puoi lavorare con questi in ogni kit di avvio Arduino. E puoi saperne di più qui:

Il piano è convertire in qualche modo i livelli di carburante nella stringa di bit corretta che rappresenterà i livelli di carburante sulle barre LED. Con 5 indicatori di carburante, tutti i livelli di carburante riempiti dovrebbero essere 10000000001000000000100000000010000000001000000000. Con il monopropellente vuoto, diventerebbe: 10000000001000000000100000000010000000000000000001.

Sembra abbastanza semplice. Ci sono alcune complicazioni. I registri a scorrimento hanno 8 pin, mentre le barre LED hanno 10 LED. Uso 7 registri a scorrimento per ottenere 56 uscite. Quando li ho collegati, ho saltato un pin IC da qualche parte (lo inseriremo nel codice). E ho cablato una barra LED iniziando dall'altra estremità (lo sistemeremo nel codice). Oh e la matematica di Arduino di cui abbiamo bisogno a volte usa l'aritmetica in virgola mobile che causa errori di arrotondamento (lo sistemeremo nel codice). Nota che condivido il codice in un passaggio successivo.

La mia build finale non corrispondeva allo schema elettrico allegato, quindi se ricostruisci questo controller, sono necessari alcuni aggiornamenti al codice. Commenta di seguito se hai bisogno di assistenza.

Ogni LED richiede il proprio resistore. Prova alcuni valori diversi per abbinare la luminosità. Il verde appare molto più luminoso del rosso con gli stessi resistori, quindi aiuta a bilanciarlo.

Risultato finale: invece dei 50 pin digitali necessari per alimentare le 5 barre LED, si riduce a 3: un segnale di clock, un segnale di latch e un segnale di dati.

Passaggio 9: costruzione del recinto

Costruire il recinto
Costruire il recinto
Costruire il recinto
Costruire il recinto
Costruire il recinto
Costruire il recinto
Costruire il recinto
Costruire il recinto

È ora di vendicarsi con quei loghi!

Ho convertito i loghi in veri e propri disegni vettoriali in modo che vengano incisi perfettamente. Questa volta ho un problema diverso. I fori delle viti non sono nei punti giusti per il corretto montaggio della scatola. Ho usato MDF da 6 mm per la scatola. Sfortunatamente, l'avvitamento dei chiodi nei bordi li fa spaccare. L'ho hackerato insieme a pezzi di legno aggiuntivi e colla. Molta colla.

Per quelli di voi che sono più bravi con legno, colla e/o chiodi, ho allegato una versione dei disegni senza i fori per le viti.

Nonostante le difficoltà, il risultato finale è piuttosto scorrevole.

Passaggio 10: software e test

Image
Image
Software e test
Software e test

Scarica il seguente software per far funzionare il controller con Kerbal Space Program:

Plugin KSP:

Il file ZIP è il plugin compilato. Il resto è codice sorgente che puoi usare per modificare il plugin e compilare la tua versione. Decomprimi il plugin nella directory GamaData.

Codice Arduino:

Usa l'IDE Arduino per caricare il codice su Arduino Mega nel tuo controller.

Guarda in basso a destra nell'IDE di Arduino per capire su quale porta seriale si trova il controller (ad esempio /dev/cu.usbmodem1421). Apri il file config.xml dalla directory dei plugin e assicurati che la tua porta sia compilata. Ora sei a posto!

È possibile utilizzare la modalità debug mettendo il piccolo interruttore on/off in alto a sinistra in posizione ON. Il display LCD dovrebbe visualizzare una stringa di lettere. Ogni lettera rappresenta un pulsante o un interruttore e cambia tra minuscolo e maiuscolo quando si preme il pulsante o si attiva l'interruttore. Impostando gli interruttori xyz su Xyz (on/off/off) verranno visualizzati anche i valori del cursore del motore. xYz visualizza i valori del joystick per il joystick di traduzione (sinistro). xyZ per il joystick di rotazione (destra).

Modalità LCD

Le seguenti modalità di visualizzazione possono essere selezionate per la visualizzazione sull'LCD utilizzando gli interruttori x, yez

Modalità di decollo: velocità superficiale / accelerazione (G)

Modalità Orbita: Apoapsi + Tempo per Apoapsi / Periapsi + Tempo per Periapsi

Modalità di manovra: Tempo al prossimo nodo di manovra / Delta-V rimanente per il prossimo nodo

Modalità Rendezvous: Distanza dall'obiettivo/Velocità relativa all'obiettivo

Modalità di rientro: Percentuale di surriscaldamento (max) / Decelerazione (G)

Modalità di volo: altitudine / numero di Mach

Modalità di atterraggio: Radar Altitudine / Velocità verticale

Modalità Extra: non implementata (ancora)

Per vedere le diverse modalità in azione, guarda il video alla fine dell'istruzione.

Passaggio 11: sulla luna

Image
Image
Alla luna!
Alla luna!

Accendi KSP, carica la tua nave preferita o costruiscine una nuova e il gioco è fatto!

Suggerimenti:

  • Usa il gruppo di azioni personalizzate 5 per le tue scale
  • Usa il gruppo di azioni personalizzate 6 per i tuoi pannelli solari
  • Usa il gruppo di azioni personalizzato 7 per paracadute o scivoli drogue
  • Assegnare il sistema di fuga di lancio e i disaccoppiatori appropriati al gruppo di azioni Interrompi
  • Non dimenticare che devi attivare il pulsante Staging
Concorso Arduino 2017
Concorso Arduino 2017
Concorso Arduino 2017
Concorso Arduino 2017

Secondo classificato all'Arduino Contest 2017

Concorso d'autore per la prima volta 2018
Concorso d'autore per la prima volta 2018
Concorso d'autore per la prima volta 2018
Concorso d'autore per la prima volta 2018

Secondo classificato al concorso per autori per la prima volta 2018

Consigliato: