Tabla de contenido:

Arduino Hangman en Morse: 9 pasos
Arduino Hangman en Morse: 9 pasos

Video: Arduino Hangman en Morse: 9 pasos

Video: Arduino Hangman en Morse: 9 pasos
Video: Morse Code Converter with arduino 2024, Junio
Anonim
Arduino Hangman en Morse
Arduino Hangman en Morse

En este tutorial, te mostraré cómo configurar tu propio Arduino para jugar a Hangman enviando código Morse con una simple linterna o la función de antorcha desde tu teléfono.

Todo lo que necesitas para seguir son: una placa Arduino, 10 luces LED, cables para conectarlo todo, extra: un elemento piezo (para agregar sonido).

Paso 1: Configuración de las luces LED

Configuración de las luces LED
Configuración de las luces LED

Este juego de Morse hará uso de 4 luces para indicar las 4 letras de la palabra que hay que adivinar y 5 luces para indicar las vidas que le quedan al jugador por adivinar, así que antes que nada tendrás que conectar 9 LED -Luces de forma habitual, como se puede apreciar en la imagen.

Paso 2: agregue un sensor de luz improvisado

No podemos tirar dinero en tiendas de electrónica, así que decidí mantener este proyecto barato, usando una simple luz LED como sensor de luz improvisado.

Todo lo que necesita hacer es conectar el lado positivo de la luz LED a uno de sus puertos analógicos (en mi caso, A0) y el lado negativo a su suelo.

Paso 3: agregue su diccionario

Agregue su diccionario
Agregue su diccionario

Lo primero es lo primero, comencemos agregando una especie de diccionario para traducir letras a sus códigos Morse correspondientes. Para hacer esto, simplemente hacemos una matriz de 26 por 5, con la primera ranura de cada matriz secundaria con la letra y las 4 siguientes ranuras con el código Morse correspondiente o un espacio si no queda código. Entonces, por ejemplo, con la letra s, la primera ranura tiene una 's', la segunda, tercera y cuarta ranuras tienen una '.' y la ranura final tiene ''.

Paso 4: haz que las luces se enciendan por defecto

Hacer que las luces se enciendan por defecto
Hacer que las luces se enciendan por defecto
Hacer que las luces se enciendan por defecto
Hacer que las luces se enciendan por defecto

En este paso, nos aseguramos de que las luces estén encendidas una vez que se inicia el programa y en Morse la letra que representan una vez que el usuario las haya adivinado correctamente (el código para esto se escribirá en el paso 6). También nos aseguramos de que solo haya tantas luces encendidas como vidas le quedan al jugador.

Antes de esto, asegúrese de tener una matriz con los números de puerto y los enteros configurados en 0 para representar el momento en que la luz debe encenderse, apagarse y qué parte del Morse muestra actualmente la luz LED.

Paso 5: Agregar la entrada

Agregar la entrada
Agregar la entrada

Ahora escribiremos el código para verificar si el jugador está iluminando la luz LED conectada a nuestro puerto analógico A0, y si deben traducirlo a la letra correcta.

Para asegurarnos de que la lectura sea correcta, promediamos cada 20 lecturas de la luz LED y usamos ese número para rastrear si la luz está apagada o encendida. Para hacer esto, al inicio del programa establecemos NUM_AVG en la cantidad de veces que queremos que verifique la luz antes de promediarla. Cuanto mayor sea este número, más precisa será la lectura, pero también puede causar retrasos.

msBtnPushed representa la cantidad de tiempo que la luz ha estado encendida. lastPressed es un valor booleano que realiza un seguimiento de si en el ciclo anterior la luz estuvo encendida.

Paso 6: Manejo de la entrada

Manejo de la entrada
Manejo de la entrada
Manejo de la entrada
Manejo de la entrada

Para este paso, veremos qué hacer una vez que haya pasado el tiempo suficiente para asumir que no se agregará más Morse, y debemos verificar si el Morse envió una carta en forma y si es una letra correcta.

Para hacer esto, necesitamos tener la cadena wordToGuess establecida en la palabra que queremos que adivinen nuestros jugadores. Personalmente, tengo un generador de números aleatorios para configurarlo en una palabra aleatoria al principio, pero también puede simplemente configurarlo en una sola palabra.

También debemos asegurarnos de que el contador suba uno en cada bucle, de lo contrario, todo el programa no haría nada. Además, he agregado la función de retardo para asegurarme de que haya un bucle cada milisegundo.

PD: Todas las funciones de Serial.println son solo para fines de prueba. Pueden eliminarse una vez finalizados.

GoodTimer y badTimer son simplemente valores para si planea usar un elemento Piezo para agregar sonido. Si lo desea, también debe agregar el código en la segunda imagen, que reproduce los sonidos.

Paso 7: Morsing las letras correctamente adivinadas

Morsing las letras correctamente adivinadas
Morsing las letras correctamente adivinadas

Como prometí antes, en este paso haremos las luces que representan las letras que se han adivinado correctamente en Morse su letra.

Para esto, he escrito dos funciones: morseThis y nextLetter. Utiliza los números que hemos establecido previamente en nuestra matriz de temporizadores y los cambia dependiendo de qué parte del código Morse esté brillando actualmente.

Si el temporizador llega a la hora en la que la luz debe encenderse, simplemente enciende la luz y ejecuta el código para configurar nuevos temporizadores para apagar la luz y volver a encenderla. apagado, apaga la luz y luego establece el código para representar la siguiente parte de la letra. Si no hay una parte siguiente, la restablece a la primera parte.

Paso 8: revisión de nuestra configuración y restablecimiento

Revisión de nuestra configuración y restablecimiento
Revisión de nuestra configuración y restablecimiento

Por supuesto, el programa no se ejecutará si las luces no están configuradas para salida y entrada. También agrego un generador de números aleatorios para agregar una palabra de una lista de palabras que he puesto en una matriz llamada wordsToGuess.

Además de eso, debemos agregar la función de restablecimiento y asegurarnos de que todos los valores se restablezcan a los valores predeterminados.

Paso 9: todas las variables en una imagen

Todas las variables en una imagen
Todas las variables en una imagen

Finalmente, puede usar esto para verificar si tiene todas las variables necesarias configuradas correctamente.

¡Ahora disfruta jugando al ahorcado en morse!

Recomendado: