Índice:

Arduino Hangman em Morse: 9 etapas
Arduino Hangman em Morse: 9 etapas

Vídeo: Arduino Hangman em Morse: 9 etapas

Vídeo: Arduino Hangman em Morse: 9 etapas
Vídeo: Morse Code Converter with arduino 2024, Novembro
Anonim
Arduino Hangman em Morse
Arduino Hangman em Morse

Neste tutorial, vou mostrar como configurar seu próprio Arduino para jogar Hangman enviando código Morse com uma simples lanterna ou a função de tocha de seu telefone.

Tudo o que você precisa para acompanhar é: Uma placa Arduino.10 Luzes LEDFios para conectar tudo. Extra: Um elemento Piezo (para adicionar som).

Etapa 1: Configurando as luzes LED

Configurando as luzes LED
Configurando as luzes LED

Este jogo de Morse fará uso de 4 luzes para indicar as 4 letras da palavra que precisam ser adivinhadas e 5 luzes para indicar as vidas que o jogador ainda tem para adivinhar, então antes de tudo você terá que conectar 9 LED -luz da maneira usual, como pode ser visto na foto.

Etapa 2: adicionar um sensor de luz improvisado

Não podemos sair por aí jogando dinheiro em lojas de eletrônicos, então decidi manter este projeto barato, usando uma simples luz LED como um sensor de luz improvisado.

Tudo que você precisa fazer é conectar o lado positivo da luz LED a uma de suas portas analógicas (no meu caso, A0) e o lado negativo ao aterramento.

Etapa 3: adicione seu dicionário

Adicione o seu dicionário
Adicione o seu dicionário

Em primeiro lugar, vamos começar adicionando uma espécie de dicionário para traduzir as letras para seus códigos Morse correspondentes. Para fazer isso, simplesmente fazemos um array de 26 por 5, com o primeiro slot de cada array secundário tendo a letra e os 4 próximos slots tendo o código Morse correspondente ou um espaço se não houver código restante. Assim, por exemplo, com a letra s, o primeiro slot tem 's', o segundo, terceiro e quarto slots têm um '.' e o slot final tem ''.

Etapa 4: faça as luzes acenderem por padrão

Faça as luzes acenderem por padrão
Faça as luzes acenderem por padrão
Faça as luzes acenderem por padrão
Faça as luzes acenderem por padrão

Nesta etapa, verificamos se as luzes estão acesas quando o programa é iniciado e o Morse a letra que elas representam, uma vez que o usuário as adivinhou corretamente (o código para isso será escrito na etapa 6). Também nos certificamos de que há apenas tantas luzes acesas para as vidas quanto o jogador tem vidas restantes.

Antes disso, certifique-se de ter um array com os números das portas e inteiros configurados para 0 para representar a hora em que a luz deve acender, apagar e em qual parte do Morse a luz de LED está mostrando no momento.

Etapa 5: Adicionar a entrada

Adicionando a entrada
Adicionando a entrada

Agora vamos escrever o código para verificar se o jogador está acendendo uma luz no LED conectado à nossa porta analógica A0, e se eles devem traduzi-lo para a letra correta.

Para ter certeza de que a leitura está correta, calculamos a média de cada 20 leituras da luz LED e usamos esse número para rastrear se a luz está apagada ou acesa. Para fazer isso, no início do programa, definimos NUM_AVG como o número de vezes que queremos verificar a luz antes de calcular a média. Quanto maior for esse número, mais precisa é a leitura, mas também pode causar atrasos.

msBtnPushed representa a quantidade de tempo que a luz esteve acesa.lastPressed é um booleano que rastreia se no loop anterior a luz estava acesa.

Etapa 6: Manuseio da entrada

Manipulando a entrada
Manipulando a entrada
Manipulando a entrada
Manipulando a entrada

Para esta etapa, vamos dar uma olhada no que fazer uma vez que tenha passado tempo suficiente para presumir que não será adicionado mais nenhum Morse, e precisamos verificar se o Morse enviou uma carta em formulários e se é uma carta correta.

Para fazer isso, precisamos definir a string wordToGuess como a palavra que queremos que nossos jogadores adivinhem. Pessoalmente, tenho um gerador de números aleatórios para definir uma palavra aleatória no início, mas você também pode simplesmente definir uma única palavra.

Também precisamos ter certeza de que o contador sobe um a cada loop, caso contrário, o programa inteiro não faria nada. Além disso, adicionei a função de atraso, para garantir que haja um loop a cada milissegundo.

PS: Todas as funções Serial.println são apenas para fins de teste. Eles podem ser excluídos após a conclusão.

O goodTimer e badTimer são simplesmente valores para se você estiver planejando usar um elemento Piezo para adicionar som. Se desejar fazer isso, você também deve adicionar o código na segunda imagem, que reproduz os sons.

Etapa 7: Resolvendo as Cartas Adivinhadas Corretamente

Analisando as Cartas Adivinhadas Corretamente
Analisando as Cartas Adivinhadas Corretamente

Como prometido anteriormente, nesta etapa faremos as luzes que representam as letras que foram adivinhadas corretamente em Morse sua letra.

Para isso, escrevi duas funções: morseThis e nextLetter. Ela usa os números que definimos anteriormente em nossa matriz de temporizadores e os altera dependendo de qual parte do código Morse está brilhando no momento.

Se o cronômetro atingir o momento em que a luz deve acender, ele simplesmente acenderá a luz e executará o código para definir novos cronômetros para desligar e acender novamente. Se o cronômetro atingir a parte em que a luz deve voltar desligado, ele apaga a luz e, em seguida, define o código para representar a próxima parte da letra. Se não houver uma parte seguinte, ele redefine para a primeira parte.

Etapa 8: Revisão de nossa configuração e redefinição

Revisando nossa configuração e reinicialização
Revisando nossa configuração e reinicialização

É claro que o programa não será executado se as luzes não estiverem definidas para saída e entrada. Também adiciono um gerador de números aleatórios para adicionar uma palavra de uma lista de palavras que coloquei em uma matriz chamada wordsToGuess.

Além disso, devemos adicionar a função de reset e garantir que todos os valores sejam redefinidos para o padrão.

Etapa 9: todas as variáveis em uma imagem

Todas as variáveis em uma imagem
Todas as variáveis em uma imagem

Finalmente, você pode usar isso para verificar se todas as variáveis necessárias estão configuradas corretamente.

Agora divirta-se jogando Hangman em Morse!

Recomendado: