domingo, 6 de agosto de 2017

Jogo com Lego EV3: Corrida de obstáculos

Olá brickeiros, esse é um jogo de corrida com obstáculos construído com Lego technic utilizando componentes EV3. O funcionamento do jogo é assim:

- A cada segundo sem colisão, 10 pontos são adicionados
- Cada faixa ou esteira possui uma velocidade variável e que vai aumentando com a pontuação
- O controle é feito com os botões esquerda e direita, sendo que ao apertar os dois juntos, a esteira central anda para trás, mas isso faz com que 5 pontos sejam perdidos a cada segundo

Veja o jogo em funcionamento:




Sua programação foi feita com o software do próprio Lego Mindstorms, veja alguns detalhes dele:




Na inicialização, a variável Pontos é gravada com -10 pontos (já que assim que ele inicia os ciclos 10 pontos são adicionados e ele vai para 0 pontos), e a variável FimJogo é gravada como False. Um som é tocado 3 vezes, para que o jogador tenha tempo de levar a mão aos controles:

A inicialização está ligada a todos os outros loops, de forma paralela:



No primeiro ciclo, é verificado se os dois botões estão pressionados. Caso não estejam, as variáveis de velocidade do motor são atribuídas a eles. Caso os dois botões estejam pressionados, a esteira do meio é girada para trás com 20% da potência. Esse ciclo só é finalizado quando o sensor de colisão é acionado, nesse caso a variável FimJogo é gravada com True (para que os outros ciclos sejam interrompidos também), em seguida os motores retornam 250° e são finalizados, os sons de finalização são tocados e o jogo é encerrado:



No segundo ciclo, as variáveis de velocidade são definidas a cada um segundo. Para definir a velocidade, um valor aleatório entre -5 e -20 é somado a Pontos / 6, dessa forma o jogo vai ficando cada vez mais rápido. Existe uma verificação também, para que se a variável FimJogo seja verdadeira,  esse ciclo seja interrompido:


No terceiro e quarto ciclo, é feita a verificação dos botões esquerdo e direito. Existe um condicional em cada ciclo se somente um botão está sendo pressionado, caso os dois estejam sendo pressionados, nada é feito. Existe também um pequeno delay de 0,1 segundos no início e fim do ciclo, eles tem a intenção de evitar que ao pressionar os dois botões juntos a diferença de tempo entre uma mão e a outra faça o carrinho correr para algum lado:



No quinto ciclo, é feita a contagem de pontos. Primeiramente, existe uma verificação da variável FimJogo, caso seja verdadeira, o ciclo é interrompido. Em seguida. e feita uma verificação se os dois botões estão sendo pressionados, caso não estejam, 10 pontos são adicionados a varíável pontos, caso estejam, 5 pontos são removidos. O ciclo se repete a cada 1 segundo.


Para baixar o programa acesse:

A seguir, fotos com mais detalhes da montagem:




























Nenhum comentário:

Postar um comentário