Tabla de contenido:
- Paso 1: Conexión de los botones de control a Arduino
- Paso 2: codificación del Arduino Leonardo:
- Paso 3:
- Paso 4:
- Paso 5:
- Paso 6:
- Paso 7:
- Paso 8: Movimiento de codificación en Unity:
- Paso 9:
- Paso 10:
- Paso 11:
- Paso 12:
- Paso 13:
- Paso 14: Conexión de luces a Arduino
- Paso 15: codificación del Arduino Uno
- Paso 16:
- Paso 17:
- Paso 18: Codificación de luces Lado de unidad:
- Paso 19:
- Paso 20:
- Paso 21:
- Paso 22:
- Paso 23:
- Paso 24:
Video: Controlador de juego Arduino con luces que responden a tu juego Unity :: 24 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Primero, escribí esto en palabras. Esta es la primera vez que uso instructable, así que cada vez que digo: escriba el código como para saber que me refiero a la imagen en la parte superior de ese paso.
En este proyecto, utilizo 2 arduino para ejecutar 2 bits de código separados, ya que tuve algunos problemas para que funcionara con solo uno.
Estos son el Uno y el Leonardo
en total, esto es lo que necesitará para realizar el protoboard de este proyecto.
· 7 pulsadores
· 23 cables de puente
· 1 arduino Leonardo + cable usb
· 4 resistencias · 4 leds
· 1 cable arduino uno + usb
· 2 protoboards
Paso 1: Conexión de los botones de control a Arduino
Qué necesitará para conectar esta pieza:
· 7 pulsadores
· 14 cables de puente
· 1 arduino Leonardo + cable usb
· Tablero
Los botones son bastante sencillos de conectar, pero pueden convertirse rápidamente en un desastre para mostrarlos en forma de imagen.
· Primero coloque los pulsadores en las posiciones que marqué en la imagen de arriba.
· En segundo lugar, desea conectar un puente desde la ranura de tierra en el arduino Leonardo en la fila menos de la placa de pruebas.
· Ahora conecta los puentes desde cualquier lugar de la fila menos a la fila que está en línea con el pin derecho de su botón. esto le dará energía.
· A continuación, desea conectar un cable de puente de una fila que esté en línea con el pin izquierdo de su botón pulsador a las ranuras de entrada digital de Leonardo. Para los botones aquí utilicé la ranura 2 - 3 - 4 - 5 - 6 - 7-8
Solo mostré el cable que va a la entrada 8 en la imagen porque se vuelve una imagen muy desordenada para mostrarle todos los cables que se cruzan entre sí.
Paso 2: codificación del Arduino Leonardo:
Entonces, para decirte la razón por la que estoy usando a Leonardo para esto. Es porque tiene un chip que el Uno no tiene, lo que hace que la computadora lo reconozca como un dispositivo de entrada USB. Al igual que lo haría con un teclado. Lo que nos permite hacer algo que nos facilita la vida como programadores de este proyecto. Emulación de teclado. Vamos a engañar a la computadora para que piense que estamos presionando ciertas teclas en el teclado cuando de hecho estamos presionando botones en nuestro controlador.
Ahora voy a explicarte paso a paso el código.
En primer lugar, en la parte superior incluimos Keyboard.h. Esto nos permitirá utilizar las funciones del teclado que vamos a utilizar en nuestro código.
Paso 3:
Luego necesitamos definir las ranuras de entrada digital que vamos a usar en el
Leonardo para cada botón.
También he nombrado a cada uno de ellos con el nombre de la clave que voy a emular.
Paso 4:
Desde allí pasamos a la función de configuración. Esto le dice al
arduino lo que hace al iniciar.
primero escribimos el Serial.begin que abrirá el puerto serial y establecerá la velocidad de datos a 9600 bps
y definimos que todos los pines con nombre sean entradas.
Paso 5:
Y finalmente escribimos nuestra función de bucle que verificará si
se presionan botones y le dicen al arduino cómo responder a eso.
Primero escribimos Keyboard.begin que le dirá a arduino que necesita cuidarnos usando las funciones del teclado.
Paso 6:
Luego, para cada botón, escribimos una declaración if / else que dice así
Entonces, lo que le dije a arduino aquí es: si mi botón izquierdo está siendo presionado en el controlador, haga que la computadora piense que estamos presionando la tecla "a" y si ese no es el caso, haga que piense que hemos soltado la tecla.
Básicamente, repite este bloque de código para cada botón de su controlador. con cambios para cada variable y las claves que esa variable necesita emular
Paso 7:
Las teclas que le dijimos a la computadora que presione aquí son W - A - S - D que
son prácticamente el estándar para el movimiento en los juegos de PC y E - Q, y la barra espaciadora que en este código se reconoce como , que son los botones que utilizo para recoger, cerrar y disparar en mi juego. Siéntase libre de cambiarlos por las teclas que considere que funcionan mejor para su juego / controlador.
Luego, por último, le decimos al arduino que detenga la comprobación de qué teclado.
Paso 8: Movimiento de codificación en Unity:
En primer lugar, déjame decirte que estoy haciendo esto para un juego 2d, así que
los ejemplos que verá están diseñados para eso. Principalmente, lo que significa que donde uso vector2, si está trabajando en 3D, usará vector3. porque tendrías que preocuparte por una dimensión extra de movimiento en 3D.
Ahora, la razón por la que usé la emulación de teclado en el lado de arduino es porque Unity tiene algo integrado para reconocer las teclas en el teclado que podemos usar.
Si abre su proyecto en unidad, vaya a Editar -> Configuración del proyecto -> Entrada. Puede ver en su inspector que inicia el administrador de entrada. Donde si hace clic en Axes puede ver un montón de nombres de entrada abiertos que normalmente se usan para controladores de PC como los que estamos haciendo ahora. Las 2 entradas que vamos a utilizar son Horizontal y Vertical, que comprueban si lo adivinaste W-A-S-D.
Primero quieres crear un objeto en tu jerarquía de escenas de unidad que será tu jugador. En mi caso, ser este pequeño divertido. Esto puede ser lo que necesites, pero para el propósito de mi juego creé a este tipo.
Paso 9:
Quieres darle a este jugador 2 cosas. Un box collider 2d y
un Rigidbody 2d y edítelos para que sean como la imagen de arriba.
Paso 10:
Entonces desea ir a la carpeta de proyectos y crear un
Secuencia de comandos C #. Al que llamé PlayerMovement.
En este script, definirás 2 variables. Un flotador público al que llamo moveSpeed. Lo que determinará qué tan rápido vas. Y un Rigidbody2D privado al que llamo RigidPlayer. El cual buscará a tus jugadores rigidbody.
No olvide ir a su editor de unidad, haga clic en su reproductor, agregue este nuevo script arrastrándolo al inspector y establezca un valor numérico para moveSpeed.
Paso 11:
ahora en tu Start () quieres hacer una cosa y es
asegúrese de que su RigidPlayer pueda encontrar a su pagador rigidbody 2d. Lo haces con la siguiente línea de código:
Paso 12:
Luego pasamos a la actualización (). Aquí es donde vamos
para hacer que el jugador se mueva.
hacemos eso con una declaración if bastante simple que observará las teclas negativas y positivas de Horizontal (AD) y Vertical (SW) y aplicaremos eso como un número para forzar, vamos a poner nuestro cuerpo rígido 2d para empujar a nuestro jugador hacia adentro. una dirección. Ese número se multiplicará por la variable moveSpeed.
Paso 13:
Por último, desea asegurarse de que su reproductor deje de moverse cuando
no presionas nada. Esto te gusta tanto:
Ahora, si desea usar sus otros 3 botones para cualquier cosa, haga eso con esta declaración if: if (Input. GetKeyDown (Keycode. Space))
para la barra espaciadora y en lugar de espacio ponga la letra de las otras teclas que eligió usar para las otras teclas.
Paso 14: Conexión de luces a Arduino
·
Qué necesitará para conectar esta pieza:
· 9 cables de puente
· 4 resistencias
· 4 leds
· 1 cable arduino uno + usb
· Tablero
La conexión de las luces se realizará a través del Uno.
Terminará luciendo como esta imagen de arriba:
Conecta las resistencias al lado largo de los LED. Y luego conecta un puente desde un número de pin digital en el uno a las resistencias. en este caso utilicé las ranuras de pines digitales 9 - 10-11-12, estos números serán relevantes cuando lleguemos al código de las luces.
Desde allí, desea conectar un puente desde la ranura de tierra en su arduino Uno al lugar en su placa como se ve con el cable negro en la imagen de arriba.
Entonces desea tener 4 puentes que conduzcan al extremo corto de cada LED
Paso 15: codificación del Arduino Uno
Muy bien, primero vamos a definir nuestras variables de nuevo.
Primero, qué entradas digitales estamos usando para nuestras luces. Y vamos a hacer un char llamado myCol [20]
Paso 16:
Luego, en la configuración, queremos hacer el Serial.begin nuevamente. Ponga todos nuestros LED en Salida y apáguelos todos al inicio.
Paso 17:
Y finalmente quieres escribir tu función de bucle.
Esto hará que Arduino lea cualquier dato que ingrese a través de la serie hasta que suceda uno de dos eventos. Se detecta un carácter de salto de línea; esto se identifica por lf que se establece en 10 y es el primer argumento o se ha leído una cierta cantidad de bytes. Este es el tercer argumento y para este ejemplo se establece en solo un byte. Los datos se almacenan en la variable myCol, que se establece en char y un límite de 20. En readBytesUntil este es el segundo argumento. O otra forma de explicarlo es Serial.readBytesUntil (terminatorCharacter, buffer, byteLimit);
Y las declaraciones if asegurarán que ciertas luces se enciendan cuando la unidad dé la señal. En este caso, obtuve 4 luces de colores diferentes, así que hago que la unidad envíe g para que se encienda el LED verde, b para que se encienda el LED azul, r para que se encienda el LED rojo ey para que se encienda el LED amarillo.
Paso 18: Codificación de luces Lado de unidad:
Oke 2 cosas primero antes de entrar en esto.
1. En su programa de codificación arduino, vaya a Herramienta -> Puerto -> y verifique por mí en qué COM está su uno. En mi caso es COM3 (esto será importante en el código)
2.en la unidad Vaya a Editar -> Configuración del proyecto -> Reproductor, luego, en el inspector, haga clic en otras configuraciones, vaya al Nivel de compatibilidad de API y cámbielo de la subred. NET 2.0 a solo. NET 2.0
Está bien, eso está hecho. Entremos en ello.
Haga clic derecho en su jerarquía y haga clic en Crear vacío.
Este será un objeto de juego vacío que solo existirá en su juego para contener un script para nosotros. He llamado a este objeto Init.
Paso 19:
Luego vaya a la pestaña de sus proyectos y cree un nuevo script C #
y llámalo Enviando.
Lo primero que debe hacer es escribir estas líneas en las secciones de uso de su código:
usando System. IO. Ports;
usando System. Threading;
esto hace que podamos usar la variable SerialPort
Paso 20:
en este script vamos a hacer las siguientes variables. Ahora tenga en cuenta que obtuve COM3 allí, esto podría ser diferente para usted, como discutimos al comienzo de este paso. Si es así, reemplace el 3 con el número que le indicó.
Paso 21:
Al principio le decimos que el script a usar es OpenConnection
función que vamos a escribir en un momento
la actualización es más una prueba que cualquier otra cosa, pero si desea incluirla, es para probar los mensajes que se envían a la unidad. Podrías ignorarlo honestamente.
Paso 22:
Oke ahora para esta función OpenConnection. Esto es solo un gran
La declaración if / else que mantiene la conexión abierta, simplemente cópiela como está escrita y debería estar bien.
Paso 23:
Ahora recuerde del código arduino que hice verificar
señales que la unidad le enviará.
bueno, aquí es donde sucede eso. En mi caso, tengo 4 luces conectadas, así que escribí 4 funciones que son extremadamente simples. Todo lo que hacen es cuando se les llama, envían una carta a arduino. Cuando arduino recibe esa letra, enciende la luz correspondiente a dicha letra.
Paso 24:
Tal vez se pregunte cómo hago para llamar a esto
¿función? Bueno, lo haces con una línea simple en cualquiera de tus otros scripts de C # que usas para tu juego. Sending. NameFunctionhere ();. Entonces, por ejemplo, en mi juego, el jugador tiene la tarea de recolectar 4 orbes de colores. Así que escribí un pequeño guión que asegura que cuando se acerca a uno y presiona el botón derecho lo levanta y envía la señal al arduino de que en este caso el orbe amarillo ha sido recogido. Para que lo sepa, tengo que encender el LED amarillo:
Puede poner esta línea de código en cualquier lugar que desee. Si quieres que se ilumine cuando el juego comience, colócalo en la función de inicio. Quieres que se encienda cuando muera, ponlo en tu función para la muerte del jugador. Experimente un poco. Elijo hacer de las luces una especie de elemento de interfaz de usuario fuera del juego para realizar un seguimiento de los orbes que debes recolectar sin saturar la pantalla.
Recomendado:
NeckLight V2: Collares que brillan en la oscuridad con formas, colores y LUCES: 10 pasos (con imágenes)
NeckLight V2: Collares que brillan en la oscuridad con formas, colores y LUCES: Hola a todos, Después de los primeros Instructables: NeckLight que publiqué, que fue un gran éxito para mí, elijo hacer el V2. V2 es corregir algún error del V1 y tener más opciones visuales. En este Instructables expondré
Controlador de juego Arduino Rhythm (para mi propio juego): 6 pasos
Controlador de juego de ritmo Arduino (para mi propio juego): en este instructivo le mostraré cómo construyo este controlador de juego de ritmo desde cero. Implica habilidades básicas de carpintería, habilidades básicas de impresión 3D y habilidades básicas de soldadura. Probablemente puedas construir este proyecto con éxito si no tienes ex
Luces De Navidad Con Relevadores (Luces de Navidad con relé): 17 pasos
Luces De Navidad Con Relevadores (Christmas Lights With Relay): Como configurar Relevadores usando Vixen Lights y ArduinoQue es Vixen Lights? Vixen Lights es un software de DIY (h á galo usted mismo) secuencias de luces. La última versión 3.x se redise ñ o completamente para soportar p í xel
Controlador de juego Arduino + Juego Unity: 5 pasos
Controlador de juego Arduino + Juego Unity: en este instructivo, le mostraré cómo construir / programar un controlador de juego arduino que se puede conectar a la unidad
Luces navideñas de bricolaje con música - Luces de la casa coreografiadas: 15 pasos (con imágenes)
Luces navideñas de bricolaje con música - Luces de casa con coreografía: Luces de Navidad con música - Luces de casa con coreografía Esto NO es un bricolaje para principiantes. Necesitará un conocimiento firme de la electrónica, los circuitos, la programación BÁSICA y conocimientos generales sobre seguridad eléctrica. Este bricolaje es para una persona con experiencia, así que