Taula de continguts:

Portal 2 Torreta: control de torreta principal: 9 passos (amb imatges)
Portal 2 Torreta: control de torreta principal: 9 passos (amb imatges)

Vídeo: Portal 2 Torreta: control de torreta principal: 9 passos (amb imatges)

Vídeo: Portal 2 Torreta: control de torreta principal: 9 passos (amb imatges)
Vídeo: КАКИМ БУДЕТ PORTAL 3 2024, Juliol
Anonim
Image
Image

Aquest projecte és una extensió o remescla del meu Portal Turret original a Instructables (Portal-2-Turret-Gun). També es pot utilitzar com a controlador econòmic per controlar qualsevol cosa que faci servir el xip de ràdio nRF24L01. La pantalla LCD és particularment útil quan es personalitza.

(Resulta que és molt útil per comprovar quan les meves ràdios estableixen i perden connexions amb altres nRF24L01 de la "xarxa". Puc passejar i veure la pantalla que mostra l'estat de la connexió de les ràdios. Molt útil per ajustar la configuració i verificar-les) gamma!)

Després d’haver completat la torreta del portal, vaig veure un petit videoclip de l’escena de l’òpera Cara Mia al final del portal 2. Vaig pensar: “Ei, ara he construït algunes torretes. Jo puc fer això! Bé, tenia les torretes, però per fer-la funcionar, ara haurien de comunicar-se entre elles o amb algun altre dispositiu. Després de pensar-ho i pensar que el control manual també seria fantàstic, vaig acabar decidint que construiria un Master Turret Controller o un MTC.

D’acord, doncs, com fer-ho? Bé, no tenia ganes de modificar massa les torretes, de manera que això era una restricció. Tenia alguns xips de ràdio nRF24L01 que encara no havia utilitzat, i pensava que mantindria la línia del meu objectiu d’utilitzar components econòmics i confiar en el disseny i el codi mecànics per fer que això funcionés. Hauria de construir un controlador i començar a reflexionar sobre què contindria el controlador i què podia fer exactament amb les torretes. Cara Mia ja estava a l’agenda, però què més?

Control manual: per tant, un cop obertes les ales, voldria controlar el to i el pivot. 2 eixos = un joystick, de manera que el control del joystick i alguns botons. El polsador 1 dispararia la torreta i potser el polsador 2 faria que digués un dels seus refranys. Sona bé! Prou senzill …

Xat: fa poc vaig veure la rutina "Qui hi ha en primer lloc": Abbott i Costello, i se m'ha apagat un llum! També faria una rutina d’esbossos amb totes les dites, fent servir diverses torretes !! D’acord, aquest no es va esbrinar del tot, però estic segur que ho aconseguiria un cop feta la meva construcció.

També volia que aquest MTC fos sense fils, de manera que vaig optar per una opció senzilla amb bateria de 9V i vaig dissenyar el controlador per alimentar-lo mitjançant l’endoll mini-USB a través del Nano a la part posterior. Útil per actualitzar també.

Pas 1: incorporar la ràdio a les torretes

Primer vaig aconseguir que la ràdio funcionés amb uns quants nanos nus, per assegurar-me que podia fer-la funcionar i enviar informació entre diversos dispositius. Un cop fet això, es tractava d’incorporar la ràdio a les torretes existents. Mmm, afegir el PCB físic a la torreta va ser força fàcil. Acabo de modificar el suport del xip per incloure el nRF24L01, el Nano i el xip mp3. D'acord. Una part física modificada, amb algun cablejat.

El porta-xips modificat ja forma part de les peces impreses de la torreta. Acabo d’esborrar l’opció que no és de ràdio de les parts impreses d’aquella versió. No canviarà la diferència si algú vol construir la variant que no és de ràdio. No incloeu el xip de ràdio nRF24L01.

Pas 2: (Re) cablejat de les torretes

(Re) cablejat de les torretes
(Re) cablejat de les torretes
(Re) cablejat de les torretes
(Re) cablejat de les torretes
(Re) cablejat de les torretes
(Re) cablejat de les torretes
(Re) cablejat de les torretes
(Re) cablejat de les torretes

UH oh…

Això no semblava bo. Necessitava afegir 5 connexions al Nano i ja tenia poca quantitat de pins disponibles. Després d’analitzar-ho una mica, em vaig adonar de quines connexions tenien prioritat i vaig reconèixer que per fer que aquest treball funcionés, hauria de tornar a mapar la majoria de les connexions Nano existents.

Per a aquells que vulguin fer una "Radio Turret" i que ja hagin construït la generació anterior … Ho sento …

Ara he fet aquest canvi algunes vegades i resulta que el procés no és massa dolent. Implica tornar a entrar, però he pogut desfer les connexions existents amb el Nano i després tornar a connectar-me als pins adequats sense massa dolor. Vaig afegir els 7 cables del xip de ràdio al nRF24L01 (5 cables de comm, 3v i GND), i després vaig connectar els altres extrems al Nano.

Ara bé, hi ha més cables, de manera que és molt més important mantenir les coses ordenades a l’hora d’encaminar els cables.

IMPORTANT: en fer el muntatge, assegureu-vos que els cables no premen el botó de reinici Nano de la placa. Això em va passar a un i em va llançar per un bucle innecessari.

Per tant, la construcció de torreta ara té 2 esquemes de cablejat: l’antiga opció “no radiofònica” antiga i l’opció revisada de “Radio Torreta”. Si avui construís una torreta "no radiofònica", encara faria servir l'esquema i el codi de la ràdio. Només cal que suprimiu o comenteu les porcions de ràdio si és la ruta escollida o no. La torreta encara hauria de funcionar sola sense la ràdio.

Pas 3: components elèctrics MTC

Components elèctrics MTC
Components elèctrics MTC
Components elèctrics MTC
Components elèctrics MTC
Components elèctrics MTC
Components elèctrics MTC

Tenint les torretes ordenades, era el moment de fer un MTC.

El MTC utilitza els components següents, tots provinents d’Amazon o Baggood o Ali Express, etc. Mostro els números de peça d’Amazon als quals he fet referència com a referència, ja que aquests articles solen estar disponibles i tenen un preu raonable (i no calia espereu més de dues setmanes per aconseguir el que necessitava abans de començar el disseny mecànic.)

  • LCD Arduino Nano de 0,96”, (SSD1306) He utilitzat la versió blava / groga
  • Petit joystick (HW-504) mòdul de joystick de 5V PS
  • Interruptor alternatiu (dx-004) 22 mm * 13 mm
  • Ràdio - (nRF24L01)
  • Polsadors de 12 mm (CLT1088 per als botons de colors, PBS-33B per als negres)
  • Cargols de 2 mm (joc de cargols autofiletants M2, assortiment de capçal de tracció transversal)
  • LED de 5 mm que vulgueu per als indicadors. (No utilitzeu LED brillants !!)
  • Connector de bateria genèric de 9V amb trencaclosques
  • Bateria de 9 V (utilitzeu-ne una de bona, no una de les varietats de botiga de dòlars que no sempre pot subministrar prou energia per a aquests projectes).
  • He utilitzat filferro revestit de silicona. M’agrada fer-lo servir per a aquests projectes.

Originalment vaig utilitzar alguns LEDs brillants, però vaig trobar que eren massa bons. Em cegaven! Vaig acabar utilitzant alguns LED antics i febles, i això tenia més sentit per a aquesta aplicació.

Pas 4: peces impreses en 3D

Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D
Parts impreses en 3D

Vaig dissenyar el MTC amb Fusion, de manera similar a la manera en què vaig fer el disseny de la torreta.

El conjunt imprès només requereix 3 parts:

  • Tauler superior (versió 1 o 2)
  • Carcassa inferior
  • Corretja LCD

El xip nRF, el Nano, la bateria de 9 V, l’interruptor de commutació i els LED s’instal·len a la placa superior sense elements de subjecció. Els LED només han de prémer la placa i es mantenen al seu lloc mitjançant pestanyes. Simplement haurien d’introduir-se, però no exagerar-ho. La placa superior està dissenyada per agafar el Nano i el xip nRF ha d’entrar suaument. Compte amb la petita pestanya nRF; és petit i es dobla cap enrere per obrir-se i es deixa anar per capturar el xip. Tot i que el seu viatge és limitat, sigueu amables aquí.

El joystick i la pantalla LCD necessiten cargols de 2 mm (5 mm de llarg) per subjectar-los a la placa superior. El PCB del joystick té forats grans, de manera que vaig sentir que necessitava petites rentadores per assegurar-me que els cargols no s’estrenessin.

He comprovat que les pantalles LCD del PCB varien lleugerament dimensionalment de fabricant a fabricant, de manera que vaig optar per utilitzar una corretja senzilla per mantenir-la al lloc en lloc de tacs o ganxos.

Tingueu en compte que la pantalla LCD es pot instal·lar físicament a la placa superior de qualsevol manera, però la pantalla només es mostra completament a través de l'obertura en una sola orientació. Per aquest motiu, he inclòs una segona opció de placa superior quan s’utilitza la pantalla dividida groc / blau. Una versió té el groc a la part superior i l’altra mostrarà el groc a la part inferior, tal com es mostra a les meves fotos.

Per a la versió LCD de color únic, no importa quin s’utilitzi, ja que podeu girar la pantalla mitjançant el programari.

Com que tot el cablejat es fa a la placa superior, la part inferior només és una tapa subjecta a la placa superior amb cargols de 2 mm més llargs (quantitat: 4).

En lloc d’una opció de “porta de la bateria”, acabo d’incorporar la bateria a la placa superior. Això significa eliminar els 4 cargols que mantenen la part inferior cap a la part superior per canviar la bateria, però ja que també es pot alimentar mitjançant un cable USB, no pas la fi del món. La placa superior està fabricada amb un sistema de suport de bateria de 9V que hauria de ser prou resistent per a un ús repetit, no és massa complicat, però impedeix que la bateria es mogui.

Vaig imprimir la placa superior en 2 colors tal com es veu a les fotos. Utilitzo un Prusa i3 Mk2 sense l’opció multicolor, però utilitzo la seva eina d’impressió en color (https://www.prusaprinters.org/color-print/) per canviar el color durant la meitat del procés. Comproveu la capa que el text s'atura i es converteixi en sòlida i feu que sigui la capa de transició. Voila! Text en color!

Vaig imprimir les peces a una alçada de capa de 0,35 mm, ja que no cal una resolució més fina en aquestes parts planes. També prefereixo la forma en què es veu aquesta resolució. Ah, i també s’imprimeix amb força rapidesa!

Pas 5: Muntatge elèctric

Muntatge elèctric
Muntatge elèctric
Muntatge elèctric
Muntatge elèctric
Muntatge elèctric
Muntatge elèctric
Muntatge elèctric
Muntatge elèctric

Tots els components elèctrics s’instal·len a la part inferior de la placa superior i es fan tots els cables. Primer s’han d’instal·lar els botons i els commutadors i es pot pre-cablejar la ràdio LCD, Nano, Joystick i nRF abans d’instal·lar-la a la placa superior. Recomano aquest mètode de precablatge dels components individuals i, després, fer les connexions finals amb el Nano al final. També recomano pujar l'esbós a un Nano nu abans de completar el cablejat.

No hi ha res més satisfactori que engegar el dispositiu i veure-lo cobrar vida com s’esperava quan acabi.

L’única preparació de la peça elèctrica necessària era treure els passadors de capçalera del joystick per tal que encaixés sota la placa superior. La pantalla LCD es pot comprar amb o sense pins instal·lats i funcionarà de qualsevol manera. El Nano s'ha de seleccionar sense pins de capçalera.

Pas 6: Codi

Codi per a MTC, torreta vermella, torreta blanca i torreta blava

Bé, aquesta va ser una experiència de codificació. Tenia la torreta funcionant independentment, però incorporar la ràdio era més difícil del que pensava originalment. També em vaig divertir fent que la secció "Xat" funcionés segons es desitgi (més informació més endavant).

El codi MTC, un cop esbrinat completament, va començar a gravar els límits de memòria del Nano. Vaig haver de fer ajustos i economitzar el codi per ser més eficient en memòria. Una altra bona experiència d’aprenentatge.

He inclòs el codi corresponent "Opció de ràdio torreta w" en aquesta compilació, ja que funcionen junts. La creació de la torreta d’opció de ràdio segons la pàgina de construcció de la torreta farà que estigui llest per al seu ús amb el MTC o per al vostre altre mètode de control nRF24L01.

A més, aconseguir que els sons funcionessin amb aquest codi va trigar una mica i, ja que els sons es van treure d’altres llocs web accessibles públicament, vaig incorporar tots els sons ja que els he utilitzat en un parell de fitxers ZIP; una per a la torreta normal i una per a la torreta defectuosa. El millor per a vosaltres, estimat lector, és que podeu utilitzar els sons de les vostres targetes SD amb els codis escrits i estareu bé.

Pas 7: menú MTC: navegació

Menú MTC: navegació
Menú MTC: navegació
Menú MTC: navegació
Menú MTC: navegació
Menú MTC: navegació
Menú MTC: navegació

El codi MTC s'inicia amb una pantalla Splash personalitzada i, a continuació, comprova l'estat de les torretes. Si no hi ha torretes, només s’hi quedarà fins que es connectin.

Si hi ha connectada almenys una torreta, es mostrarà el menú principal i el LED "Llest" s'encendrà, tret que les torretes estiguin interrompudes o estiguin ocupades "tractant amb algú". Si estan ocupats, es mostrarà una pantalla "Les torretes estan ocupades" i el LED "Ocupat" s'encendrà.

Totes les torretes connectades activament han d'estar en "mode llest" abans que el MTC pugui controlar les torretes.

Utilitzeu el joystick (amunt i avall) per recórrer les opcions del menú:

  • Ària
  • Xatejar
  • Manual

Seleccioneu l'opció desitjada mitjançant el botó "X" o prement el joystick cap avall.

Mode Aria: si seleccioneu aquesta opció, es mostrarà la pantalla "Mode Aria" i farà que les torretes realitzin l'escena Aria al final del joc Portal 2. Un cop acabades, les torretes es tancaran i esperaran una ordre o algú que les desperti.

Mode de xat: en seleccionar aquesta opció es mostrarà la pantalla "Mode de xat" i s'iniciarà la seqüència de xat. Un cop acabades, les torretes es tancaran i esperaran una ordre o algú que les desperti.

Mode manual: en seleccionar aquesta opció es mostrarà la pantalla "Mode manual", il·luminarà el LED "Manual" i permetrà l'operació manual de les torretes. Control amb el joystick del to i del pivot. En prémer el botó ‘X’ s’activarà la seqüència de trets. En prémer el botó "T" els faran "parlar", on les torretes parlen una dita aleatòria de la seva biblioteca.

En prémer el botó «<» o enrere es cancel·laran aquests tres modes, es tancaran les torretes i es tornarà al menú principal.

Si voleu veure l’estat de connexió del vostre eixam de torretes (actualment limitat a 3), premeu el botó ‘T’ al menú principal. Se us dirigirà a la pantalla "estat de la torreta", on podreu veure l'estat de connexió de cada torreta.

Quan estigueu a la pantalla "estat de la torreta", veureu l'estat de cada torreta.

  • Llest - llest per al control
  • Ocupat: la torreta està ocupada per "cuidar" algú
  • No disponible: MTC no es pot connectar amb aquesta torreta

Premeu el botó «<» per tornar al menú principal.

Pas 8: personalització del codi

Personalització del codi
Personalització del codi

La captura de pantalla que es mostra aquí mostra el que estava mirant durant massa temps … 4 esbossos a la vegada! Qui va dir que la depuració no és divertida!

El codi proporciona el control i les opcions mostrades anteriorment, però, què hi ha de personalitzar el codi?

És clar! Però aquí hi ha una bona quantitat, de manera que aquí teniu algunes directrius o consells.

Consell 1: modificació de la seqüència "Xat". Aquesta modificació té lloc al codi de la torreta.

Vaig intentar trobar una manera de fer funcionar el codi allà on pogués. Fer que la seqüència del xat fos més editable (és això una paraula?) Per poder centrar-me en la història va tenir més feina per davant, però fa que sigui més fàcil personalitzar-la després.

Canviar la seqüència del xat mitjançant l'estructura de codificació proporcionada es pot fer d'una manera bastant senzilla, sempre que seguiu el mètode utilitzat al codi. Utilitzant els fitxers de so proporcionats, des del joc Portal 2, només haureu de canviar la taula (chatSayings ).

Seleccioneu la dita de la torreta normal o de la torreta defectuosa. La dita és el fitxer mp3 que s’identifica amb “00XX -” seguit d’un text que la descriu. És el nombre que és la part important. La torreta núm. 1 faria servir aquest valor XX a la taula. La torreta núm. 2 prefixaria el valor XX amb un '1' i la torreta núm. 3 prefixaria el valor XX amb un '2'. Per exemple, si seleccioneu l'expressió "0040 - ho sento" i voleu que la torreta núm. 3 ho digui, inserireu "240" a la taula en la seqüència correcta. Si ho digués la torreta núm. 1, inseriríeu "40" a la taula.

Feu el mateix per a la següent expressió, etc. Podrien ser algunes expressions entre les torretes o algunes. (No sóc conscient de les limitacions d’aquest mètode, a part de la memòria).

No caldria canviar els valors de les altres taules, ja que són els temps que corresponen a la dita de la taula. L’única altra línia que es pot canviar és al voltant de la línia 520.

if (i> = 43) {// final de la seqüència

El valor d'i aquí s'hauria d'establir al nombre de refranys de la taula chatSayings.

Per fer refranys completament personalitzats, (on comença la veritable diversió!), Hauríeu de configurar les expressions en fitxers numerats i conèixer el temps necessari per reproduir-lo. Deseu el fitxer a la carpeta "mp3" del directori arrel de la targeta SD mitjançant el mètode de quatre dígits ("0001", "0002", etc.). A continuació, registreu el temps en mil·lisegons que triga a reproduir-se. Inseriu aquests valors a la taula adequada.

Per tant, per a una expressió desada com a "0037 - [la vostra expressió]", que triga 5400 mil·lisegons a reproduir-se, posareu '37' a la taula chatSayings a la ubicació adequada (i afegiríeu el prefix segons la torreta que digui) it), i 5400 a la taula NormaTimings a la mateixa ubicació (com ara el cinquè element de cada taula).

Ara, quan s'incrementa el valor de "i", el codi reproduirà 0037 durant 5400 mil·lisegons.

Tingueu en compte que he afegit una variable "cronòmetre" que afegeix una mica de temps extra a cada refrany en jugar. Això dóna una mica de distància entre les dites perquè no semblin superposades.

La bellesa d’aquest mètode és que les taules completades són exactament iguals a cada torreta. No cal personalitzar aquestes taules per a cada torreta. Només cal ordenar una taula i el codi determina el que diu cada torreta en funció de la mateixa taula.

Això vol dir que podeu centrar-vos en l'escriptura de guions en lloc de codificar-los.

Si algú té una manera millor de fer això, m'encantaria escoltar-ho !!

Pas 9: resum

Resum
Resum

Per tant, això va trigar més del que pensava, però el resultat em fa més pessigolles. Algunes de les rutines del xat encara em fan riure.

M'encantaria escoltar altres mètodes per fer les coses que vaig fer dins del meu codi. Estic segur que hi ha seccions que es podrien reescriure i utilitzar menys memòria, permetent més funcions o opcions.

També m'encantaria veure altres idees incorporades al MTC i al control de les torretes.

Espero haver proporcionat una plataforma perquè altres dissenyadors i programadors puguin utilitzar / robar / aprendre. Vaig poder veure que s’utilitzava per ajudar la gent a aprendre a codificar. Elimineu una secció de la MTC i / o la torreta, com ara "Mode manual", i feu que els estudiants desenvolupin la seva pròpia manera d'incorporar control manual.

He après moltes coses d’aquesta comunitat i del web en general en general. Encara em sorprèn la quantitat de gent que passa temps a descobrir coses i compartir-les amb el món. Suposo que hauria d’agafar el que he après, aplicar-lo i compartir-lo també amb vosaltres.

Bona sort i diverteix-te construint el teu propi exèrcit de torretes!

Recomanat: