Índice:

Arduino Hot Wheels Speed Track Parte 2 - Código: 5 etapas
Arduino Hot Wheels Speed Track Parte 2 - Código: 5 etapas

Vídeo: Arduino Hot Wheels Speed Track Parte 2 - Código: 5 etapas

Vídeo: Arduino Hot Wheels Speed Track Parte 2 - Código: 5 etapas
Vídeo: HotWheels Speed Track - Part #2 - The code and Testing 2024, Julho
Anonim
Image
Image

Na primeira parte deste projeto, construímos o hardware para o protótipo em 2 placas de ensaio.

E nesta parte iremos repassar o código, como ele funciona e então testá-lo.

Assista ao vídeo acima para ver a revisão completa do código e mostrar o código em funcionamento.

Etapa 1: MASTER e SLAVE no mesmo código

O código está em 2 partes, mas dentro do mesmo arquivo. Eu uso #define e #ifdef para determinar qual código será compilado ou ignorado para que eu possa separar qualquer código que seja apenas para a breadboard MASTER e o código que seja apenas para a breadboard SLAVE.

Basicamente, se o define MASTER for encontrado, então qualquer código que esteja dentro do bloco de código MASTER será compilado e qualquer código fora desse bloco será removido em tempo de compilação.

#ifdef MASTER

// O código específico do mestre está aqui

#outro

#define SLAVE

// Código específico do escravo está aqui

#fim se

Também estou usando a mesma técnica para #define SLAVE quando MASTER é compilado, então você só precisa se preocupar em definir MASTER ou não habilitar a definição de SLAVE.

Etapa 2: Módulos BLUETOOTH conversam via leitura e gravação serial

Neste projeto, apenas a placa de ensaio SLAVE se comunica com a placa de ensaio MASTER. O MASTER nunca responde, apenas ouve e age de acordo com os dados que chegam.

Os módulos falam e ouvem usando a classe Serial integrada no ecossistema de codificação do Arduino.

Módulos Bluetooth se comunicam a 38400 baud, então ambos os caminhos de código inicializam suas comunicações seriais usando:

Serial.begin (38400);

E o SLAVE usa:

Serial.write (dados aqui);

Para falar com o MASTER, e o MASTER usa:

dados = Serial.read ();

Para ouvir o fluxo serial e ler seu conteúdo e armazená-lo dentro de uma variável.

Etapa 3: controlando a corrida

O SLAVE diz ao MASTER se ele está em modo de corrida mais ou pronto através do botão verde conectado ao seu microcontrolador. No modo pronto, os sensores IV não fazem nada e o MASTER mostrará 8 traços no visor para indicar que está no modo pronto.

Quando o SLAVE diz ao MASTER que uma corrida vai começar, o SLAVE começa a consultar os sensores IR em seu lado (o início da pista de corrida) para que os carros passem por baixo.

Conforme cada carro passa sob cada sensor IR, ele envia um A (carro 1) ou B (carro 2) para o MASTER.

Quando o MASTER recebe um A ou B, ele habilita o cronômetro para aquele carro específico e então espera que o carro passe por baixo do sensor IR correspondente na linha de chegada.

O display é atualizado a cada 50ms para mostrar a hora atual de cada carro em segundos com 2 casas decimais.

Assim que os dois carros atingirem a linha de chegada, o MASTER decide qual carro foi o mais rápido e pisca esse tempo no visor para indicar o vencedor.

Etapa 4: O resto do código

O resto do código é apenas um código de utilitário que controla a exibição de dados no display de 8 dígitos ou lida com a lógica de pressionamento de botão, etc.

No final do vídeo na seção de introdução deste projeto, mostro um exemplo do código em execução nas 2 placas de ensaio, portanto, certifique-se de verificar isso!

Você pode obter o código para este projeto no meu repositório github.

Etapa 5: o que vem a seguir?

Por enquanto é isso … na parte 3, veremos como mover os componentes da placa de ensaio para algo mais permanente … fique ligado!

Espero que você esteja gostando desse projeto!

Siga-me:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Recomendado: