Índice:

Jogo Arduino Battleship: 3 etapas
Jogo Arduino Battleship: 3 etapas

Vídeo: Jogo Arduino Battleship: 3 etapas

Vídeo: Jogo Arduino Battleship: 3 etapas
Vídeo: MUITO CUIDADOS POIS ELES IMITAM TUDO 2024, Novembro
Anonim
Jogo Arduino Battleship
Jogo Arduino Battleship

Lembro-me de jogar uma versão com papel e lápis do Jogo do Navio de Guerra quando criança. Na verdade, ele existe desde a Primeira Guerra Mundial. Eu também tinha uma variante "eletrônica" no início dos anos 1960 chamada "Sonar Sub Hunt" que tinha luzes e sons e minas escondidas. Pelos padrões de videogame de hoje, Battleship é muito chato, mas pensei que faria um de qualquer maneira, só para ver o que os netos pensavam sobre isso. Afinal, às vezes retrô pode ser legal.

Existem pedaços deste projeto que seriam úteis em outro lugar, mesmo se você não estiver interessado em fazer o jogo Battleship. Ele tem uma interface simples de LCD 1602 de 4 bits que inclui uma rotina para definir a localização de um caractere específico. Também existe uma interface para decodificar uma matriz de switch 4x4. Essas duas interfaces estão disponíveis como arquivos de inclusão separados para que sejam facilmente transportáveis. O jogo também tem várias rotinas de efeitos sonoros e um circuito amplificador de áudio simples de um transistor.

Etapa 1: Hardware

Hardware
Hardware
Hardware
Hardware

O esquema apresentado aqui é para um único jogador, portanto, duas unidades precisariam ser feitas. As unidades se comunicam usando uma interface de 3 fios que inclui as linhas UART TX e RX e um fio terra. Eu escolhi usar um fone de ouvido estéreo padrão de 1/8 de polegada e um cabo padrão com plugues machos em ambas as extremidades. O RX de uma caixa vai para o TX da outra caixa e vice-versa. Você pode fazer isso trocando os fios soldados ao conector do fone de ouvido dentro da caixa ou trocando-os na placa de circuito ao construí-la.

O jogo clássico foi planejado como uma matriz, mas decidi fazer uma implementação simples usando um LCD 1602 para a tela. A primeira linha mostra a localização do navio do jogador e os tiros do oponente. A segunda linha mostra os tiros do jogador e quaisquer acertos nos navios do oponente. Isso fornece 16 localizações possíveis para navios. O número de navios é definido no software e eu escolhi 5 arbitrariamente.

Os 16 locais de envio se ajustam perfeitamente aos requisitos do switch porque permitem uma matriz 4x4. Existem painéis de comutação de matriz 4x4 disponíveis, mas optei por usar interruptores individuais em uma única linha para corresponder à exibição linear. No entanto, conectei os interruptores como uma matriz 4x4, de modo que apenas oito pinos do Arduino sejam necessários. Consulte o diagrama de fiação da chave e o esquema para as conexões adequadas.

O display LCD é conectado para uma interface de 4 bits. Também adicionei um LED externo no pino D13 para indicar qual jogador deve tirar uma foto. Inicialmente, os jogadores decidem quem dá o primeiro tiro e, em seguida, o software controla automaticamente o vaivém do jogo.

Eu queria adicionar efeitos sonoros simples para o tiro, as explosões, o jogo pronto e o vencedor / perdedor. Tentei usar uma campainha piezoelétrica simples, mas acabei com um pequeno alto-falante. A corrente exigida pelo alto-falante excede o que o Arduino pode suportar, então um amplificador de transistor simples foi adicionado. O som ainda não é bom, mas é melhor do que com a campainha. Meu alto-falante tem 4 ohms, mas se você tiver um de 8 ohms, mude o resistor no esquema de 39 ohms para 33 ohms. Se você usar uma campainha piezoelétrica, deverá ser capaz de acioná-la diretamente do pino do Arduino com o outro lado da campainha conectado ao aterramento.

Uma chave de reinicialização externa também está incluída e é conectada diretamente entre o aterramento e o pino de “reinicialização” no Arduino. Isso fornece os meios para reiniciar o jogo.

Etapa 2: Software

O software tem o arquivo de inclusão para minha interface LCD e também criei um arquivo de inclusão para a digitalização de matriz de switch 4x4. A inicialização avisa o jogador para selecionar os locais para seus navios e então vai para um estado “Pronto”. Quando os dois jogadores estiverem prontos, um deles inicia o jogo pressionando um botão.

O local do tiro é transmitido através do UART para o outro jogador e o resultado apropriado é transmitido de volta para o jogador que disparou. Como mencionado anteriormente, uma vez que a primeira foto é tirada, o software controla quem tira a próxima. Antes de uma foto ser transmitida, ela é verificada em relação aos locais das fotos anteriores. Se esse local já tiver sido usado, o tiro não será transmitido. O LED “My_Shot” determina de quem é a vez. Há também um som de tiro gerado para uma seleção válida e um som de explosão se um navio for atingido. Os efeitos sonoros são derivados de exemplos encontrados online com modificações para se adequar ao jogo.

Assim que os navios do oponente forem todos atingidos, uma mensagem é exibida em cada LCD - um como o vencedor e o outro como o perdedor. A mensagem também especifica que o jogo pode ser reiniciado pressionando o botão reset. Existem também efeitos sonoros separados para o vencedor e o perdedor.

Etapa 3: capturas de tela

Capturas de tela
Capturas de tela
Capturas de tela
Capturas de tela
Capturas de tela
Capturas de tela
Capturas de tela
Capturas de tela

Aqui estão algumas capturas de tela do jogo. É isso para este post. Confira meus outros Instructables e também meu site em: www.boomerrules.wordpress.com

Recomendado: