Sommario:

Torretta di Portal 2 - Controllo della torretta principale: 9 passaggi (con immagini)
Torretta di Portal 2 - Controllo della torretta principale: 9 passaggi (con immagini)

Video: Torretta di Portal 2 - Controllo della torretta principale: 9 passaggi (con immagini)

Video: Torretta di Portal 2 - Controllo della torretta principale: 9 passaggi (con immagini)
Video: Il NUMERO di TELEFONO di mia SORELLA… 2024, Luglio
Anonim
Image
Image

Questo progetto è un'estensione o un remix del mio Portal Turret originale su Instructables (Portal-2-Turret-Gun). Può anche essere usato come controller economico per controllare tutto ciò che utilizza il chip radio nRF24L01. Lo schermo LCD è particolarmente utile durante la personalizzazione.

(Si rivela molto utile per controllare quando le mie radio stabiliscono e perdono le connessioni con altri nRF24L01 sulla "rete". Posso camminare e guardare lo schermo del display mostrare lo stato della connessione delle radio! Abbastanza utile per regolare le impostazioni e verificare gamma!)

Dopo aver completato la torretta del portale, ho visto un breve video clip della scena dell'opera Cara Mia alla fine del portale 2. Ho pensato: "Ehi, ho costruito alcune torrette ora. Posso farlo!" Beh, avevo le torrette, ma per farlo funzionare ora avrebbero dovuto comunicare tra loro o con qualche altro dispositivo. Dopo averci pensato un po', e aver pensato che anche il controllo manuale sarebbe stato interessante, ho deciso di costruire un Master Turret Controller, o un MTC.

Ok, quindi come procedere? Beh, non mi andava di modificare troppo le torrette, quindi era un vincolo. Avevo alcuni chip radio nRF24L01 che non avevo ancora usato e pensavo che sarebbe stato in linea con il mio obiettivo di utilizzare componenti economici e fare affidamento sulla progettazione meccanica e sul codice per farlo funzionare. Avrei dovuto costruire un controller e iniziare a rimuginare su cosa conterrebbe il controller e cosa potevo fare esattamente alle torrette. Cara Mia era già all'ordine del giorno, ma cos'altro?

Controllo manuale: quindi una volta aperte le ali, vorrei controllare il passo e il perno. 2 assi = un joystick, quindi controllo del joystick e alcuni pulsanti. Il pulsante 1 farebbe scattare la torretta, e forse il pulsante 2 gli farebbe dire uno dei suoi detti. Suona bene! Abbastanza semplice…

Chat: Recentemente ho visto di nuovo la routine "Who's on First" - Abbott e Costello, e una luce si è accesa nella mia testa! Farei anche una routine di sketch comici usando tutti i detti, usando più torrette!! Ok, questo non è stato completamente capito, ma sono sicuro che lo avrei risolto una volta che la mia costruzione era in corso.

Volevo anche che questo MTC fosse wireless, quindi ho optato per una semplice opzione alimentata a batteria da 9 V e ho progettato il controller per essere alimentato dalla presa mini-USB attraverso il Nano sul retro. Utile anche per l'aggiornamento.

Passaggio 1: incorporare la radio nelle torrette

Per prima cosa ho fatto funzionare la radio con alcuni Nano nudi, per assicurarmi di poterla far funzionare e inviare informazioni tra più dispositivi. Fatto ciò, si trattava di incorporare la radio nelle torrette esistenti. Hmm, aggiungere il PCB fisico alla torretta è stato abbastanza facile. Ho appena modificato il supporto del chip per includere il nRF24L01, il Nano e il chip mp3. Ok. Una parte fisica modificata, con alcuni cablaggi.

Il porta trucioli modificato fa già parte delle parti stampate della torretta ora. Ho appena eliminato l'opzione non radio dalle parti stampate in quella build. Non farà differenza se qualcuno vuole costruire la variante non radiofonica. Basta non includere il chip radio nRF24L01.

Passaggio 2: (Ri)cablaggio delle torrette

(Ri)cablaggio delle Torrette
(Ri)cablaggio delle Torrette
(Ri)cablaggio delle Torrette
(Ri)cablaggio delle Torrette
(Ri)cablaggio delle Torrette
(Ri)cablaggio delle Torrette
(Ri)cablaggio delle Torrette
(Ri)cablaggio delle Torrette

Uh Oh…

Questo non stava andando bene. Avevo bisogno di aggiungere 5 connessioni al Nano ed ero già a corto di pin disponibili. Dopo aver esaminato questo aspetto per un po', mi sono reso conto di quali connessioni avevano la precedenza e ho riconosciuto che per farlo funzionare avrei dovuto rimappare la maggior parte delle connessioni Nano esistenti.

A chi vuole realizzare una “Torretta Radio” e ha già costruito la precedente gen… Scusate…

Ora, ho fatto questa modifica alcune volte e si scopre che il processo non è poi così male. Si tratta di tornare indietro, ma sono stato in grado di annullare le connessioni esistenti al Nano e quindi ricollegarlo ai pin appropriati senza troppo dolore. Ho aggiunto i 7 fili per il chip radio al nRF24L01 (5 fili di comunicazione, 3v e GND), quindi ho collegato le altre estremità al Nano.

Tuttavia, ora ci sono più cavi, quindi è molto più importante mantenere le cose in ordine quando si instradano i cavi.

IMPORTANTE: durante il montaggio, assicurarsi che i fili non premano il pulsante di ripristino Nano sulla scheda!! Mi è successo su uno e mi ha buttato per un giro inutile!

Quindi la costruzione della torretta ora ha 2 schemi di cablaggio: la vecchia opzione "non radio" legacy e l'opzione "torretta radio" rivista. Se oggi costruissi una torretta "non radio", userei ancora lo schema e il codice della radio. Basta eliminare o commentare le parti radio se questo è il percorso scelto o meno. La torretta dovrebbe comunque funzionare da sola senza la radio.

Passaggio 3: componenti elettrici MTC

Componenti elettrici MTC
Componenti elettrici MTC
Componenti elettrici MTC
Componenti elettrici MTC
Componenti elettrici MTC
Componenti elettrici MTC

Dopo aver sistemato le torrette, era ora di fare un MTC.

L'MTC utilizza i seguenti componenti, tutti acquistati tramite Amazon o Baggood o Ali Express, ecc. Sto mostrando i numeri di parte Amazon a cui ho fatto riferimento come riferimento, poiché questi articoli sono comunemente disponibili e a prezzi ragionevoli (e non ho dovuto aspetta 2+ settimane per mettere le mani su ciò di cui avevo bisogno prima di poter iniziare la progettazione meccanica!)

  • Arduino Nano LCD da 0,96", (SSD1306) ho usato la versione blu/gialla
  • Joystick piccolo (HW-504) Modulo joystick PS 5V
  • Interruttore a levetta (dx-004) 22 mm * 13 mm
  • Radio - (nRF24L01)
  • Pulsanti da 12 mm (CLT1088 per pulsanti colorati, PBS-33B per nero)
  • Viti da 2 mm (set di viti autofilettanti M2, assortimento con testa bombata a croce)
  • LED da 5 mm a scelta per gli indicatori. (Non usare LED luminosi!!)
  • Connettore generico per batteria 9V con trecce
  • Batteria da 9 V (usane una buona, non una delle varietà di negozi in dollari che non possono sempre fornire energia sufficiente per questi progetti!)
  • Ho usato filo rivestito di silicone. Mi piace usarlo per questi progetti.

Inizialmente ho usato alcuni LED luminosi, ma ho scoperto che erano troppo buoni. Mi stavano accecando! Ho finito per utilizzare alcuni LED vecchi e deboli, e questo aveva più senso per questa applicazione.

Passaggio 4: parti stampate in 3D

Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D
Parti stampate in 3D

Ho progettato l'MTC utilizzando Fusion, in modo simile al design della torretta.

L'assieme stampato richiede solo 3 parti:

  • Pannello superiore (versione 1 o 2)
  • Alloggiamento inferiore
  • Cinturino LCD

Il chip nRF, il Nano, la batteria da 9V, l'interruttore a levetta e i LED sono installati nella piastra superiore senza elementi di fissaggio. I LED sono semplicemente premuti nella piastra e sono tenuti in posizione da linguette. Dovrebbero semplicemente scattare, ma non esagerare. La piastra superiore è progettata per trattenere a scatto il Nano e il chip nRF dovrebbe entrare delicatamente. Attenzione con la piccola scheda nRF; è piccolo ed è piegato all'indietro per aprirsi e rilasciato per catturare il chip. Anche se il suo viaggio è limitato, sii gentile qui.

Il joystick e l'LCD necessitano di viti da 2 mm (5 mm di lunghezza) per fissarli alla piastra superiore. Il PCB del joystick ha grandi fori, quindi ho sentito di aver bisogno di piccole rondelle per assicurarmi che le viti non passassero.

Ho scoperto che l'accensione degli LCD del PCB varia leggermente dimensionalmente da produttore a produttore, quindi ho scelto di utilizzare una semplice cinghia per tenerlo in posizione invece di tacchetti o ganci.

Nota che l'LCD può essere installato fisicamente nella piastra superiore in entrambi i modi, ma il display viene visualizzato completamente solo attraverso l'apertura in un orientamento! Per questo motivo, ho incluso un'opzione per la seconda piastra superiore quando si utilizza lo schermo giallo/blu diviso. Una versione ha il giallo in alto e l'altra mostrerà il giallo in basso come mostrato nelle mie foto.

Per la versione LCD a colore singolo, non importa quale viene utilizzato, poiché è possibile capovolgere il display utilizzando il software.

Poiché tutto il cablaggio viene eseguito sulla piastra superiore, la parte inferiore è effettivamente solo una copertura fissata alla piastra superiore con viti più lunghe da 2 mm (qtà: 4).

Invece di un'opzione "sportello della batteria", ho semplicemente incorporato la batteria nella piastra superiore. Questo significa rimuovere le 4 viti che fissano il fondo verso l'alto per cambiare una batteria, ma visto che può essere alimentata anche tramite cavo USB, non è la fine del mondo. La piastra superiore è realizzata con un sistema di supporto della batteria da 9 V che dovrebbe essere abbastanza robusto per un uso ripetuto, non è eccessivamente complicato ma impedisce alla batteria di muoversi.

Ho stampato la piastra superiore in 2 colori come si vede nelle foto. Uso una Prusa i3 Mk2 senza l'opzione multi colore, ma uso il loro strumento di stampa a colori (https://www.prusaprinters.org/color-print/) per cambiare il colore a metà del processo. Controlla il livello in cui il testo si ferma e diventa solido e rendilo il livello di transizione. Ecco! Testo colorato!

Ho stampato le parti con un'altezza dello strato di 0,35 mm poiché non è necessaria una risoluzione più fine su queste parti piatte. Anch'io preferisco l'aspetto di questa risoluzione. Oh, e stampa anche abbastanza velocemente!

Passaggio 5: assemblaggio elettrico

Assemblaggio elettrico
Assemblaggio elettrico
Assemblaggio elettrico
Assemblaggio elettrico
Assemblaggio elettrico
Assemblaggio elettrico
Assemblaggio elettrico
Assemblaggio elettrico

I componenti elettrici sono tutti installati sul lato inferiore della piastra superiore e tutti i cablaggi vengono eseguiti insieme. I pulsanti e la levetta devono essere installati prima, e LCD, Nano, Joystick, radio nRF possono essere precablati prima di essere installati nella piastra superiore. Raccomando questo metodo di pre-cablaggio dei singoli componenti, quindi effettuare i collegamenti finali al Nano alla fine. Consiglio anche di caricare prima lo schizzo su un Nano nudo, prima di completare il cablaggio.

Non c'è niente di più soddisfacente che accendere il dispositivo e guardarlo prendere vita come previsto una volta terminato!

L'unica preparazione della parte elettrica richiesta era rimuovere i perni della testata dal joystick per adattarlo sotto la piastra superiore. Lo schermo LCD può essere acquistato con o senza pin installati e funzionerà in entrambi i modi. Il Nano dovrebbe essere selezionato senza pin di intestazione.

Passaggio 6: codice

Codice per MTC, torretta rossa, torretta bianca e torretta blu ora attivo

Bene, questa è stata un'esperienza di programmazione! Ho fatto funzionare la torretta in modo indipendente, ma incorporare la radio è stato più difficile di quanto pensassi inizialmente! Mi sono anche divertito a far funzionare la sezione "Chat" come desiderato (ne parleremo più avanti).

Il codice MTC, una volta completamente capito, ha iniziato a tassare i limiti di memoria del Nano! Ho dovuto apportare modifiche ed economizzare il codice per essere più efficiente in termini di memoria. Un'altra buona esperienza di apprendimento.

Ho incluso il corrispondente codice "Turret w radio option" in questa build, poiché funzionano insieme. Costruire la torretta opzione radio per la pagina di costruzione torretta la renderà pronta per l'uso con l'MTC o per l'altro metodo di controllo nRF24L01.

Inoltre, far funzionare i suoni con questo codice ha richiesto del tempo e poiché i suoni sono stati presi da altri siti Web accessibili pubblicamente, ho incorporato tutti i suoni come li ho usati in un paio di file ZIP; uno per la torretta normale e uno per la torretta difettosa. La cosa buona per te, caro lettore, è che puoi usare i suoni sulle tue schede SD con i codici come scritti e sarai a posto!

Passaggio 7: Menu MTC - Navigazione

Menu MTC - Navigazione
Menu MTC - Navigazione
Menu MTC - Navigazione
Menu MTC - Navigazione
Menu MTC - Navigazione
Menu MTC - Navigazione

Il codice MTC si avvia con una schermata iniziale personalizzata, quindi controlla lo stato delle torrette. Se non sono presenti torrette, rimarrà lì fino a quando le torrette non si connetteranno!

Se è collegata almeno una torretta, verrà visualizzato il menu principale e il LED "Pronto" si accenderà, a meno che le torrette non siano interrotte o siano occupate "a trattare con qualcuno". Se sono occupati, verrà visualizzata una schermata "Torrette sono occupate" e il LED "Occupato" si illuminerà.

Tutte le torrette attivamente collegate devono essere in "Modalità Pronta" prima che l'MTC possa controllare le torrette.

Utilizzare il joystick (su e giù) per scorrere le scelte del menu:

  • Aria
  • Chiacchierata
  • Manuale

Selezionare l'opzione desiderata utilizzando il pulsante "X" o premendo il joystick.

Modalità Aria: selezionando questa opzione verrà visualizzata la schermata "Modalità Aria" e le torrette eseguiranno la scena Aria alla fine del gioco Portal 2. Una volta completate, le torrette si chiuderanno e attenderanno un comando o qualcuno che le svegli.

Modalità chat - Selezionando questa opzione verrà visualizzata la schermata "Modalità chat" e verrà avviata la sequenza della chat. Una volta completate, le torrette si chiuderanno e attenderanno un comando o qualcuno che le svegli.

Modalità manuale - Selezionando questa opzione verrà visualizzata la schermata "Modalità manuale", il LED "Manuale" si illuminerà e consentirà il funzionamento manuale delle torrette. Joystick di controllo del pitch e del pivot. Premendo il pulsante "X" si attiverà la sequenza di sparo. Premendo il pulsante "T" li farà "parlare", dove le torrette pronunciano un detto casuale dalla loro libreria.

Premendo il pulsante "<" o indietro si annullano queste tre modalità, si chiuderanno le torrette e si tornerà al menu principale.

Se desideri vedere lo stato di connessione del tuo sciame di torrette (attualmente limitato a 3), premi il pulsante "T" nel menu principale. Verrai indirizzato alla schermata "stato della torretta", dove puoi vedere lo stato di connessione di ciascuna torretta.

Nella schermata "stato della torretta", vedrai lo stato di ciascuna torretta.

  • Pronto - pronto per il controllo
  • Occupato - la torretta è occupata a "prendersi cura" di qualcuno
  • Non disponibile - MTC non può connettersi con questa torretta

Premere il pulsante "<" per tornare al menu principale.

Passaggio 8: personalizzazione del codice

Personalizzazione del codice
Personalizzazione del codice

La schermata mostrata qui mostra cosa stavo fissando da troppo tempo… 4 schizzi alla volta! Chi ha detto che il debug non è divertente!

Il codice fornisce il controllo e le opzioni mostrate sopra, ma per quanto riguarda la personalizzazione del codice?

Certo! Ma c'è una discreta quantità in corso qui, quindi ecco alcune linee guida o suggerimenti.

Tip1 - Modifica della sequenza "Chat". Questa modifica avviene nel codice della torretta.

Ho cercato di trovare un modo per far funzionare il codice per me ovunque potevo. Rendere la sequenza della chat più modificabile (è una parola?) in modo che potessi concentrarmi sulla storia ha richiesto più lavoro in anticipo, ma rende più facile la personalizzazione in seguito.

La modifica della sequenza della chat utilizzando la struttura di codifica fornita può essere eseguita in modo piuttosto semplice, a condizione di seguire il metodo utilizzato nel codice. Utilizzando i file audio forniti, dal gioco Portal 2, avresti solo bisogno di cambiare la tabella (chatSayings).

Seleziona il detto per la torretta normale o la torretta difettosa. Il proverbio è il file mp3 identificato da "00XX -" seguito dal testo che descrive il detto. È il numero che è la parte importante. La torretta n. 1 userebbe questo valore XX nella tabella. La torretta n. 2 antepone al valore XX un "1" e la torretta n. 3 antepone al valore XX un "2". Quindi, ad esempio, se si seleziona l'espressione "0040 - scusa" e si desidera che la torretta n. 3 la dica, si inserisce "240" nella tabella nella sequenza corretta. Se la torretta n. 1 lo dicesse, inseriresti "40" nella tabella.

Fai lo stesso per l'espressione successiva e così via. Potrebbero essere alcune espressioni tra le torrette, o parecchie. (Non sono a conoscenza dei limiti di questo metodo, a parte la memoria).

Non avresti bisogno di cambiare i valori delle altre tabelle in quanto sono i tempi che corrispondono a quanto detto nella tabella. L'unica altra linea da cambiare è intorno alla linea 520.

if (i >= 43) { // fine sequenza

Il valore di i qui dovrebbe essere impostato sul numero di detti nella tabella chatSayings.

Per creare detti completamente personalizzati (dove inizia il vero divertimento!), dovresti impostare le espressioni in file numerati e conoscere il tempo necessario per riprodurre il file. Salvare il file nella cartella "mp3" nella directory principale della scheda SD utilizzando il metodo a quattro cifre ("0001", "0002", ecc.). Quindi registra il tempo in millisecondi necessario per riprodurre quel file. Inserire questi valori nella tabella appropriata.

Quindi per un'espressione salvata come "0037 - [la tua espressione]", che richiede 5400 millisecondi per essere riprodotta, dovresti mettere "37" nella tabella chatSayings nella posizione appropriata (e aggiungere il prefisso a seconda di quale torretta sta dicendo it) e 5400 nella tabella NormaTimings nella stessa posizione (come il quinto elemento in ogni tabella).

Ora, quando il valore di "i" viene incrementato, il codice riprodurrà 0037 per 5400 millisecondi.

Nota che ho aggiunto una variabile "timeadder" che aggiunge un po' di tempo in più a ogni frase durante il gioco. Questo dà una piccola distanza tra i detti in modo che non sembrino sovrapporsi.

La bellezza di questo metodo è che le tabelle completate sono esattamente le stesse in ogni torretta! Non c'è bisogno di personalizzare queste tabelle per ogni torretta. Hai solo bisogno di risolvere una tabella e il codice capisce cosa dice ogni torretta in base alla stessa tabella.

Ciò significa che puoi concentrarti sulla scrittura di script anziché sulla codifica!

Se qualcuno ha un modo migliore per farlo, mi piacerebbe sentirlo!!

Passaggio 9: riepilogo

Riepilogo
Riepilogo

Quindi questo ha richiesto più tempo di quanto pensassi, ma sono piuttosto solleticato dal risultato. Alcune delle routine di chat mi fanno ancora ridere!

Mi piacerebbe sentire altri metodi per fare le cose che ho fatto all'interno del mio codice. Sono sicuro che ci sono sezioni che potrebbero essere riscritte e utilizzare meno memoria, consentendo più funzionalità o opzioni.

Mi piacerebbe anche vedere altre idee incorporate nell'MTC e nel controllo delle torrette!

Spero di aver fornito una piattaforma per altri designer e programmatori da usare/rubare/da cui imparare. Ho potuto vedere che questo viene utilizzato per aiutare le persone a imparare a programmare. Rimuovi una sezione dall'MTC e/o dalla torretta, come ad esempio la "Modalità manuale", e fai in modo che gli studenti sviluppino il proprio modo di incorporare il controllo manuale!

Ho imparato molto da questa community e dal web in generale in generale. Sono ancora stupito di quante persone trascorrono un sacco di tempo a capire le cose e a condividerle con il mondo. Immagino che dovrei prendere ciò che ho imparato, applicarlo, quindi condividerlo anche con te!

Buona fortuna e divertiti a costruire il tuo esercito di torrette!

Consigliato: