Avançar para a área de conteúdo

ir para o conteúdo principal

developerWorks Brasil  >  Software livre  >

Construindo um Jogo de Laser Baseado em Arduino, Parte 3: Transmita e Acerte

Inicie rapidamente seus projetos eletroeletrônicos com a plataforma de hardware e software livre Arduino

developerWorks
Ir para a página anteriorPágina 3 de 10 Ir para a próxima página

Opções de documento

Código de amostra


Classificar este tutorial

Ajude-nos a melhorar este conteúdo


Codificação do Transmissor

Nesta seção, você escreve código para o transmissor, configura as variáveis e inicializa os pinos na função setup .

Escrevendo o Código

Primeiro, uma revisão rápida do tipo de sinal que a arma precisará enviar e como deve se comportar.

Ao codificar o receptor, você indicou que ele deveria reconhecer um bit inicial, em seguida, ler mais nove pulsos. Os quatro primeiros pulsos são usados para representar o jogador que disparou (nosso Quem). Os quatro segundos pulsos são usados para representar o que está sendo disparado (o nível do jogador ou o código de comando do árbitro — nosso O que). O pulso final, incluído no início deste tutorial, é usado para ajudar a eliminar sinais inválidos lidos de quaisquer controles remotos que possam estar na área.

Você conhece algumas coisas sobre como a arma deve se comportar no modo de disparo. Quando as regras do 'Duino tag foram estabelecidas, havia diversas instruções que afetavam como a arma funcionaria. Condensadas, as instruções importantes são:

  • Quando o jogador puxar um gatilho, um único disparo é feito.
  • Quando a arma é disparada, ela deve emitir um som legal, como "POU POU".
  • Cada arma possui seus tiros de "segurança". Não há recarregamento. Esses disparos podem ser realizados sem perigo.
  • cada disparo realizado por um jogador além dos seis aumentar a possibilidade de falha catastrófica da arma. No caso de falha catastrófica da arma, o jogador é eliminado.

Agora, você pode realizar mais alguma codificação. Comece configurando todas as variáveis e inicializando os pinos na função setup . Abra o arquivo da Parte 2 e comece a incluir algum código. Como opção, abra o arquivo archive de código e siga em frente.



Voltar para parte superior


Inicialização e Configuração

Você incluiu dois pinos na combinação: um para o LED de infravermelho e um para o acionador do botão de pressionamento (Pinos 3 e 4, respectivamente). Você deve declarar esses pinos como variáveis, como fez com os outros, para que seja mais fácil se você decidir reconectar as coisas posteriormente.

Você irá querer mais algumas variáveis:

  • Uma para conter o valor do pino do botão de pressionamento
  • Uma para lembrar se você já disparou ara esse pressionamento do botão
  • Uma para determinar quanto tempo esperar entre bits individuais ao transmitir dados binários

No final, você obtém algo como a Listagem 5.


Listagem 5. Criando Mais Variáveis

...
int senderPin  = 3;      // LED infravermelho no Pino 3
int triggerPin = 4;      // Acionador do Botão de Pressionamento no Pino 4
...
int trigger;             // É usado para conter o valor da leitura do acionador;
boolean fired  = false;  // Booleano usado para lembrar se o acionador já foi lido.
int waitTime = 300;     // O tempo a aguardar entre pulsos
...

Na função setup , é necessário inicializar os Pinos 3 e 4. O Pino 3 é para o LED, portanto, está configurado para saída. O Pino 4 é para o botão de pressionamento, portanto, está configurado para entrada. Você também deve determinar o valor inicial do gerador de número aleatório, efetuando uma leitura do Pino 0. Como você não está usando esse pino, uma leitura retornará um número aleatório o suficiente para ser usado para esse propósito, conforme mostrado abaixo.


Listagem 6. Determinando o Valor Inicial do Gerador de Número Aleatório

...
pinMode(senderPin, OUTPUT);
pinMode(triggerPin, INPUT);
...
randomSeed(analogRead(0));
...

Agora que você possui as variáveis necessárias e os pinos externos foram inicializados, você pode escrever o código para disparar a arma.



Voltar para parte superior



Ir para a página anteriorPágina 3 de 10 Ir para a próxima página