Índice:

Código 'Simon Says' aprimorado: 3 etapas
Código 'Simon Says' aprimorado: 3 etapas
Anonim
Código 'Simon Says' melhorado
Código 'Simon Says' melhorado

Um projeto 'Simple Simon' atualizado.

Especificamente, é mais fácil trabalhar com a implementação de software.

Etapa 1: primeiros passos

Começando
Começando

Comecei com o instrutível em 'Simple-Simon-Says-Game'

Consulte-o para obter a implementação geral de hardware.

Como já tinha feito um projeto meu que tinha 4 botões, 4 LEDs e um alto-falante, usei esse hardware (visto acima). Retoquei um pouco as fotos para mudar alguns aspectos para ficar mais adequado para ilustração neste projeto.

Ele usa um Nano 3.0 e eu usei diferentes atribuições de pinos para os periféricos.

A propósito, você também pode estar interessado em uma versão simplificada de hardware que fiz em Instructables.com/id/Fast-Easy-Simon

Etapa 2: Adaptação ao novo hardware

O esboço Simon_Says não funcionou para mim, pois o código dependia de atribuições de pinos fixos. Além disso, o código era difícil de seguir e tinha alguns bugs.

Então criei esta versão atualizada.

  • Corrigido o uso incorreto do tipo 'booleano' para números de pinos
  • Modificou o código para que funcione para quaisquer atribuições de pinos de LED e botão.
  • O fluxo lógico era excessivamente complicado e, em alguns pontos, muito repetitivo, tornando-o difícil de entender e depurar. Então, eu simplifiquei na maior parte.
  • Junto com outras melhorias, como o fato de que eu alterei o nome do objeto de classe 'Tone' de 'speakerpin' para 'speaker' e criei uma variável de byte 'speakerpin' para sua atribuição pin #.
  • Outubro de 2015: permitido para sequências de entrada de botão rápido

Um link para download do meu esboço atualizado está incluído aqui. Você deve achar que é fácil começar a trabalhar com seu próprio hardware simplesmente alterando as atribuições dos pinos perto do início do código. Baixe e divirta-se com isso.

Etapa 3: por demanda popular

Como tem havido dúvidas sobre como usar o software com um servo para operar uma trava quando um conjunto bem-sucedido de correspondência de padrões do Simon é feito. Estou incluindo aqui versões de 'Simon_Says', bem como de 'Simon_Sings' semelhantes, que adaptei para serem adequados para modificações posteriores com o código servo apropriado. Coloquei comentários '@TODO' no código de cada um, mostrando onde colocar o código do servo.

A codificação exata dependerá da implementação do hardware e da servo-biblioteca usada. Eu não tenho respostas para questões específicas do servo. Para isso, recomendo revisar os seguintes: video: How to control servosinstructables.com/id/Arduino-Servo-Motors/instructables.com/id/Access-control-with-Arduino-Keypad-4x4-Servo/For aqueles que precisam de mais ajuda relacionada ao servo, eu recomendo um post instrutível para o servo relacionado com o máximo de semelhanças com a implementação do servo.

Recomendado: