Tabla de contenido:
- Paso 1: Incorporación de la radio en las torretas
- Paso 2: (Re) cableado de las torretas
- Paso 3: Componentes eléctricos de MTC
- Paso 4: Piezas impresas en 3D
- Paso 5: Montaje eléctrico
- Paso 6: Código
- Paso 7: Menú MTC - Navegación
- Paso 8: personalización del código
- Paso 9: Resumen
Video: Torreta del Portal 2 - Control de la torreta maestra: 9 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este proyecto es una extensión o remezcla de mi Portal Turret original en Instructables (Portal-2-Turret-Gun). También se puede usar como un controlador económico para controlar cualquier cosa que use el chip de radio nRF24L01. La pantalla LCD es particularmente útil al personalizar.
(Resulta muy útil para verificar cuándo mis radios establecen y pierden conexiones con otros nRF24L01 en la "red". Puedo caminar y ver la pantalla que muestra el estado de conexión de las radios. Muy útil para ajustar la configuración y verificar ¡distancia!)
Después de haber completado la Torreta del Portal, vi un breve videoclip de la escena de la ópera de Cara Mia al final de Portal 2. Pensé, "oye, he construido algunas torretas ahora. ¡Yo puedo hacer eso!" Bueno, tenía las torretas, pero para que funcionara, ahora tendrían que comunicarse entre sí o con algún otro dispositivo. Después de pensarlo un poco y pensar que el control manual también sería genial, terminé decidiendo que construiría un controlador de torreta maestro o un MTC.
Ok, entonces, ¿cómo hacer esto? Bueno, no tenía ganas de modificar demasiado las torretas, así que eso fue una limitación. Tenía algunos chips de radio nRF24L01 que aún no había usado, y pensé que se mantendrían en línea con mi objetivo de usar componentes económicos y confiar en el diseño mecánico y el código para que esto funcione. Tendría que construir un controlador y comenzar a reflexionar sobre lo que contendría el controlador y qué podría hacer exactamente con las torretas. Cara Mia ya estaba en la agenda, pero ¿qué más?
Control manual: Una vez que las alas estén abiertas, me gustaría controlar el lanzamiento y el pivote. 2 ejes = un joystick, por lo que el control del joystick y algunos pulsadores. El botón 1 dispararía la torreta, y tal vez el botón 2 haría que diga uno de sus dichos. ¡Suena bien! Suficientemente simple…
Chat: Hace poco vi la rutina "Quién está primero": Abbott y Costello nuevamente, ¡y una luz se encendió en mi cabeza! ¡También haría una rutina de bocetos de comedia usando todos los dichos, usando múltiples torretas! De acuerdo, este no estaba completamente resuelto, pero estoy seguro de que lo solucionaría una vez que mi compilación estuviera en marcha.
También quería que este MTC fuera inalámbrico, así que opté por una opción simple alimentada por batería de 9V y diseñé el controlador para que fuera alimentado por el enchufe mini-USB a través del Nano en la parte posterior. Útil para actualizar también.
Paso 1: Incorporación de la radio en las torretas
Primero conseguí que la radio funcionara con unos pocos Nanos desnudos, para asegurarme de que pudiera hacerlo funcionar y enviar información entre varios dispositivos. Una vez hecho eso, fue cuestión de incorporar la radio a las torretas existentes. Hmm, agregar la PCB física a la torreta fue bastante fácil. Acabo de modificar el soporte del chip para incluir el chip nRF24L01, Nano y mp3. Está bien. Una parte física modificada, con algo de cableado.
El soporte de chip modificado ya forma parte de las piezas impresas de la torreta. Acabo de eliminar la opción sin radio de las partes impresas en esa compilación. No marcará la diferencia si alguien quiere construir la variante sin radio. Simplemente no incluya el chip de radio nRF24L01.
Paso 2: (Re) cableado de las torretas
UH oh…
Esto no se veía bien. Necesitaba agregar 5 conexiones al Nano, y ya tenía pocos pines disponibles. Después de analizar esto por un momento, me di cuenta de qué conexiones tenían prioridad y reconocí que para que esto funcione, tendría que reasignar la mayoría de las conexiones Nano existentes.
Para aquellos que quieren hacer una "Radio Turret" y ya han construido la generación anterior … Lo siento …
Ahora, he hecho este cambio varias veces y resulta que el proceso no es tan malo. Implica volver a entrar, pero pude deshacer las conexiones existentes al Nano y luego volver a conectarme a los pines apropiados sin demasiado dolor. Agregué los 7 cables para el chip de radio al nRF24L01 (5 cables de comunicación, 3v y GND), luego conecté los otros extremos al Nano.
Sin embargo, ahora hay más cables, por lo que es mucho más importante mantener las cosas ordenadas al enrutar los cables.
IMPORTANTE: ¡Al ensamblar, asegúrese de que los cables no presionen el botón de reinicio Nano en la placa! ¡Eso me pasó en uno y me lanzó por un bucle innecesario!
Así que la construcción de la torreta ahora tiene 2 esquemas de cableado: la antigua opción heredada "sin radio" y la opción revisada de "torreta de radio". Si construyera una torreta "sin radio" hoy, todavía usaría el esquema y el código de la radio. Simplemente elimine o comente las partes de la radio si esa es la ruta elegida o no. La torreta aún debería funcionar por sí sola sin la radio.
Paso 3: Componentes eléctricos de MTC
Habiendo arreglado las torretas, llegó el momento de hacer un MTC.
El MTC utiliza los siguientes componentes, todos adquiridos a través de Amazon o Baggood o Ali Express, etc. Estoy mostrando los números de pieza de Amazon a los que hice referencia como referencia, ya que estos artículos están comúnmente disponibles y tienen un precio razonable (y no tuve que hacerlo). ¡Espere más de 2 semanas para tener en mis manos lo que necesitaba antes de poder comenzar con el diseño mecánico!)
- Arduino Nano 0.96”LCD, (SSD1306) Usé la versión Azul / Amarilla
- Joystick pequeño (HW-504) Módulo de joystick PS de 5 V
- Interruptor de palanca (dx-004) 22 mm * 13 mm
- Radio - (nRF24L01)
- Botones pulsadores de 12 mm (CLT1088 para botones de colores, PBS-33B para negros)
- Tornillos de 2 mm (juego de tornillos autorroscantes M2, surtido de cabeza plana de accionamiento transversal)
- LED de 5 mm de su elección para indicadores. (¡No use LED brillantes!)
- Conector de batería genérico de 9 V con coletas
- Batería de 9 V (use una buena, no una de las variedades de las tiendas de un dólar que no siempre pueden suministrar suficiente energía para estos proyectos).
- Usé alambre revestido de silicona. Me gusta usarlo para estos proyectos.
Originalmente usé algunos LED brillantes, pero descubrí que eran demasiado buenos. ¡Me estaban cegando! Terminé usando algunos LED viejos y débiles, y eso tenía más sentido para esta aplicación.
Paso 4: Piezas impresas en 3D
Diseñé el MTC usando Fusion, de manera similar a como hice el diseño de la torreta.
El conjunto impreso solo requiere 3 partes:
- Panel superior (versión 1 o 2)
- Carcasa inferior
- Correa LCD
El chip nRF, el Nano, la batería de 9V, el interruptor de palanca y los LED se instalan en la placa superior sin sujetadores. Los LED simplemente presionan la placa y se mantienen en su lugar mediante pestañas. Deberían simplemente encajar, pero no exagere. La placa superior está diseñada para sujetar el Nano a presión, y el chip nRF debe entrar con cuidado. Cuidado con la pequeña pestaña nRF; es pequeño y se dobla hacia atrás para abrirse y se suelta para capturar el chip. Aunque su recorrido es limitado, sea amable aquí.
El joystick y la pantalla LCD necesitan tornillos de 2 mm (5 mm de largo) para sujetarlos a la placa superior. El PCB del joystick tiene orificios grandes, por lo que sentí que necesitaba arandelas pequeñas para asegurarme de que los tornillos no pasaran.
Descubrí que las placas de circuito impreso en las que se encienden las pantallas LCD varían ligeramente de un fabricante a otro, por lo que opté por usar una correa simple para sujetarlas en su lugar en lugar de tacos o ganchos.
Tenga en cuenta que la pantalla LCD se puede instalar físicamente en la placa superior de cualquier manera, ¡pero la pantalla solo se muestra completamente a través de la abertura en una orientación! Por esta razón, he incluido una segunda opción de placa superior cuando utilizo la pantalla dividida amarilla / azul. Una versión tiene el amarillo en la parte superior y la otra mostrará el amarillo en la parte inferior como se muestra en mis fotos.
Para la versión de LCD de un solo color, no importa cuál se use, ya que puede voltear la pantalla usando el software.
Dado que todo el cableado se realiza en la placa superior, la parte inferior es efectivamente solo una cubierta sujeta a la placa superior con tornillos más largos de 2 mm (cantidad: 4).
En lugar de una opción de "puerta de la batería", simplemente incorporé la batería en la placa superior. Esto significa quitar los 4 tornillos que sujetan la parte inferior hacia la parte superior para cambiar una batería, pero como también se puede alimentar con un cable USB, no es el fin del mundo. La placa superior está hecha con un sistema de soporte de batería de 9 V que debe ser lo suficientemente resistente para un uso repetido, no es demasiado complicado pero evita que la batería se mueva.
Imprimí la placa superior en 2 colores como se ve en las fotos. Utilizo una Prusa i3 Mk2 sin la opción multicolor, pero uso su herramienta de impresión en color (https://www.prusaprinters.org/color-print/) para cambiar el color en la mitad del proceso. Verifique la capa en la que el texto se detiene y se vuelve sólido, y conviértalo en la capa de transición. ¡Voila! ¡Texto en color!
Imprimí las piezas a una altura de capa de 0,35 mm ya que no hay necesidad de una resolución más fina en estas piezas planas. También prefiero la forma en que se ve esta resolución. ¡Ah, y también se imprime bastante rápido!
Paso 5: Montaje eléctrico
Todos los componentes eléctricos están instalados en la parte inferior de la placa superior y todo el cableado se realiza en conjunto. Los botones pulsadores y la palanca deben instalarse primero, y la radio LCD, Nano, Joystick y nRF pueden precablearse antes de instalarse en la placa superior. Recomiendo este método de precablear los componentes individuales y luego hacer las conexiones finales al Nano al final. También recomiendo subir el boceto a un Nano desnudo primero, antes de completar el cableado.
¡No hay nada más satisfactorio que encender el dispositivo y verlo cobrar vida como se esperaba cuando haya terminado!
La única preparación de la parte eléctrica requerida fue quitar los pasadores del cabezal del joystick para que encajen debajo de la placa superior. La pantalla LCD se puede comprar con o sin pines instalados, y funcionará de cualquier manera. El Nano debe seleccionarse sin pines de encabezado.
Paso 6: Código
¡Código para MTC, torreta roja, torreta blanca y torreta azul ahora
Bueno, ¡esta fue una experiencia en la codificación! Tenía la torreta funcionando de forma independiente, ¡pero incorporar la radio fue más difícil de lo que pensé originalmente! También me divertí un poco haciendo que la sección "Chat" funcionara como lo deseaba (más sobre esto más adelante).
¡El código MTC, una vez que se resolvió por completo, comenzó a gravar los límites de memoria del Nano! Tuve que hacer ajustes y economizar el código para ser más eficiente en memoria. Otra buena experiencia de aprendizaje.
He incluido el código correspondiente "Opción de radio con torreta" en esta compilación, ya que funcionan juntos. La construcción de la torreta de opciones de radio según la página de construcción de la torreta la preparará para su uso con el MTC, o para su otro método de control nRF24L01.
Además, conseguir que los sonidos funcionaran con este código me llevó algo de tiempo y, dado que los sonidos se tomaron de otros sitios web de acceso público, incorporé todos los sonidos tal como los he usado en un par de archivos ZIP; uno para la torreta normal y otro para la torreta defectuosa. Lo bueno para ti, querido lector, es que puedes usar los sonidos de tus tarjetas SD con los códigos tal como están escritos y ¡estarás listo!
Paso 7: Menú MTC - Navegación
El código MTC comienza con una pantalla de bienvenida personalizada, luego verifica el estado de las torretas. Si no hay torretas, se quedará ahí hasta que se conecten.
Si al menos una torreta está conectada, se mostrará el menú principal y se iluminará el LED "Listo", a menos que las torretas se interrumpan o estén ocupadas "tratando con alguien". Si están ocupados, se mostrará la pantalla “Las torretas están ocupadas” y el LED de “Ocupado” se iluminará.
Todas las torretas conectadas activamente deben estar en "Modo Listo" antes de que el MTC pueda controlar las torretas.
Utilice el joystick (arriba y abajo) para recorrer las opciones del menú:
- Aria
- Chat
- Manual
Seleccione la opción deseada con el botón "X" o presionando el joystick.
Modo Aria: seleccionar esta opción mostrará la pantalla "Modo Aria" y hará que las torretas realicen la escena Aria al final del juego Portal 2. Una vez completadas, las torretas se cerrarán y esperarán una orden o alguien que las despierte.
Modo de chat: al seleccionar esta opción, se mostrará la pantalla "Modo de chat" e iniciará la secuencia de chat. Una vez completadas, las torretas se cerrarán y esperarán una orden o alguien que las despierte.
Modo manual: seleccionar esta opción mostrará la pantalla "Modo manual", iluminará el LED "Manual" y permitirá la operación manual de las torretas. Control mediante joystick de cabeceo y pivote. Al presionar el botón "X" se activará la secuencia de disparo. Pulsar el botón "T" hará que "hablen", donde las torretas dicen un dicho aleatorio de su biblioteca.
Al presionar el botón "<" o atrás, se cancelarán estos tres modos, se cerrarán las torretas y se volverá al menú principal.
Si desea ver el estado de conexión de su enjambre de torretas (actualmente limitado a 3), presione el botón "T" cuando esté en el menú principal. Serás llevado a la pantalla de "estado de la torreta", donde podrás ver el estado de conexión de cada torreta.
En la pantalla de "estado de la torreta", verá el estado de cada torreta.
- Listo, listo para el control
- Ocupado: la torreta está ocupada "atendiendo" a alguien
- No disponible: el MTC no se puede conectar con esta torreta
Presione el botón "<" para volver al menú principal.
Paso 8: personalización del código
La captura de pantalla que se muestra aquí muestra lo que estuve mirando durante demasiado tiempo … ¡4 bocetos a la vez! ¿Quién dijo que la depuración no es divertida?
El código proporciona el control y las opciones que se muestran arriba, pero ¿qué pasa con la personalización del código?
¡Por supuesto! Pero hay muchas cosas que hacer aquí, así que aquí hay algunas pautas o consejos.
Tip1 - Modificar la secuencia de "Chat". Esta modificación tiene lugar en el código de la torreta.
Intenté encontrar una forma de hacer que el código me funcionara siempre que pudiera. Hacer que la secuencia de chat sea más editable (¿es una palabra?) Para poder concentrarme en la historia requirió más trabajo al principio, pero hace que sea más fácil personalizarla después.
El cambio de la secuencia de chat utilizando la estructura de codificación proporcionada se puede hacer de una manera bastante sencilla, siempre que siga el método utilizado en el código. Usando los archivos de sonido proporcionados, del juego Portal 2, solo necesitarías cambiar la tabla (chatSayings ).
Seleccione el dicho para la torreta normal o la torreta defectuosa. El dicho es el archivo mp3 que se identifica con "00XX -" seguido de un texto que describe el dicho. Es el número que es la parte importante. La torreta # 1 usaría este valor XX en la tabla. La torreta # 2 antepone el valor XX con un "1", y la torreta # 3 antepone el valor XX con un "2". Entonces, por ejemplo, si estuviera seleccionando la expresión "0040 - lo siento" y quisiera que la torreta n. ° 3 la dijera, debe insertar "240" en la tabla en la secuencia correcta. Si la torreta # 1 lo dijera, insertaría “40” en la mesa.
Haga lo mismo con la siguiente expresión y así sucesivamente. Podrían ser algunas expresiones entre las torretas, o bastantes. (No conozco las limitaciones de este método, además de la memoria).
No necesitaría cambiar los valores de las otras tablas, ya que son los tiempos que corresponden al dicho de la tabla. La única otra línea para cambiar es alrededor de la línea 520.
if (i> = 43) {// fin de secuencia
El valor de i aquí tendría que establecerse en el número de dichos en la tabla chatSayings.
Para hacer dichos completamente personalizados (¡donde comienza la verdadera diversión!), Necesitaría configurar las expresiones en archivos numerados y saber cuánto tiempo se necesita para reproducir el archivo. Guarde el archivo en la carpeta “mp3” del directorio raíz de la tarjeta SD utilizando el método de cuatro dígitos (“0001”, “0002”, etc.). Luego, registre el tiempo en milisegundos que tarda ese archivo en reproducirse. Inserte estos valores en la tabla correspondiente.
Por lo tanto, para una expresión guardada como "0037 - [su expresión]", que tarda 5400 milisegundos en reproducirse, colocaría "37" en la tabla chatSayings en la ubicación adecuada (y agregar el prefijo según la torreta que diga it) y 5400 en la tabla NormaTimings en la misma ubicación (como el quinto elemento de cada tabla).
Ahora, cuando se incrementa el valor de "i", el código reproducirá 0037 durante 5400 milisegundos.
Tenga en cuenta que agregué una variable "timeadder" que agrega un poco de tiempo extra a cada dicho al jugar. Esto le da un poco de distancia entre los dichos para que no parezcan superponerse.
¡La belleza de este método es que las tablas completadas son exactamente las mismas en cada torreta! No es necesario personalizar estas tablas para cada torreta. Solo necesita ordenar una tabla, y el código determina lo que dice cada torreta basándose en la misma tabla.
¡Esto significa que puede concentrarse en la escritura de guiones en lugar de codificar!
Si alguien tiene una mejor manera de hacer esto, ¡me encantaría escucharlo!
Paso 9: Resumen
Así que me llevó más tiempo del que pensaba, pero el resultado me ha encantado. ¡Algunas de las rutinas de Chat todavía me hacen reír!
Me encantaría escuchar otros métodos para hacer las cosas que hice dentro de mi código. Estoy seguro de que hay secciones que podrían reescribirse y usar menos memoria, lo que permite más funciones u opciones.
¡También me encantaría ver otras ideas incorporadas en el MTC y el control de las torretas!
Espero haber proporcionado una plataforma para que otros diseñadores y programadores usen / roben / aprendan. Pude ver que esto se usa para ayudar a las personas a aprender a codificar. Elimine una sección del MTC y / o torreta, como "Modo manual", por ejemplo, y haga que los estudiantes desarrollen su propia forma de incorporar el control manual.
Aprendí mucho de esta comunidad y de la Web en general. Todavía me sorprende la cantidad de personas que pasan mucho tiempo averiguando cosas y compartiéndolas con el mundo. Supongo que debería tomar lo que he aprendido, aplicarlo y luego compartirlo con usted.
¡Buena suerte y diviértete construyendo tu propio ejército de torretas!
Recomendado:
Cómo: ¡Hacer una obra maestra impresionante en Animal Jam! (NOTA: ACTUALIZADO 2020): 3 pasos
Cómo: ¡Hacer una obra maestra impresionante en Animal Jam! (NOTA: ACTUALIZADO 2020): Animal Jam es un mundo virtual sobre animales. ¡Puedes comprar animales con gemas o diamantes y personalizarlos con ropa que compras en tiendas virtuales! Realmente nunca " juego " Animal Jam, ¡simplemente me gusta hacer obras maestras! Hoy te voy a mostrar
Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python: 5 pasos
Trazado de intensidad de luz usando Arduino y la biblioteca maestra de Arduino de Python: Arduino es una herramienta económica pero altamente eficiente y funcional, programarlo en Embedded C hace que el proceso de hacer proyectos sea tedioso. El módulo Arduino_Master de Python simplifica esto y nos permite realizar cálculos, eliminar valores basura
Torreta y cañón del escáner: 10 pasos (con imágenes)
Torreta y cañón del escáner: Estábamos destinados a hacer un prototipo funcional utilizando algunos sensores arduino diferentes, por lo que nuestra elección ha sido desarrollar una torreta con un cañón que dispara una bala a un objeto que el escáner ha detectado. la C
Mente maestra con una matriz de LED RGB 8x8: 5 pasos (con imágenes)
Mente maestra con una matriz de LED RGB 8x8: Piezas necesarias: Matriz LED Basys3 FPGA 8x8 RGB de GEEETECH9V batería2N3904 transistores (x32) Resistencia de 1K (x32) Resistencia de 100 ohmios (x1) Resistencia de 50 ohmios (x1) La matriz de LED es una matriz de ánodo común con 32 pines en total. El ánodo común significa que cada fila es
Regleta de alimentación inteligente maestra / esclava para su PC [mod] (apagado automático pero sin espera): 6 pasos (con imágenes)
Regleta de alimentación inteligente maestra / esclava para su PC [mod] (apagado automático pero en espera cero): Apagado debe estar apagado. Y la usabilidad debería ser buena. Para abreviar: no encontramos el producto adecuado, así que terminamos modificando uno. Compramos algunos " Energy Saver " regletas de enchufes de Zweibrueder. Los dispositivos son muy sólidos y no muy e