CONTROLE DO JOGO FLAPPY BIRD COM ARDUINO E O SENSOR IR (OA41SK)

O objetivo deste tutorial é mostrar o controle do video game flappy bird através da comunicação serial do Arduino. Além disso, apresentamos as configurações necessárias da conexão entre o sensor IR e o Arduino na captação de  medidas de distâncias, que são implementadas para o movimento do pássaro no jogo.

EQUIPAMENTOS:

montagem

  • Placa  Arduino que permite a conexãoserial.
  • Sensor IR (0A41SK), sensor de distância que está unido com o PSD (Position Sensitive Detector), IR-LED (Infrared Emitting Diode) e um circuito de processamento de sinal.  O ciclo de medição é curto (16.5ms), o intervalo de medição é 4cm-28cm e a saída de sinal é analógica.

CALIBRAÇÃO DO SENSOR IR E GERAÇÃO DO CÓDIGO ARDUINO:

O primeiro passo, é fazer o ajuste potencial da sinal do sensor de distância, dado como:

\textbf{distancia} = 12.08 \times \left( \frac{5.0 V}{1023 Bytes} \times Leitura~Bytes \right )^{-1.058} .

Também é necessário atrasar o sinal obtido pelo sensor, já que, se coletado na máxima taxa do Arduino, gera uma grande quantidade de dados que não são processados pelo video game, que tem taxa de atualização menor. A diferença de taxas dificulta o processamento da informação e produz um retardo no tempo de resposta do movimento do pássaro no video game. Para melhorar isto, definimos um delay (30) e uma média dos dados dada pela seguinte equação

  media = \left( 1- \alpha \right) \times media + \alpha \times distancia  ~~~~~~~~ \alpha = 0.125 ,

em seguida apresentamos o código do Arduino

#define sensorDist A0

float volt = 0;
float dist = 0;
float media = 15.0;
float alfa = 0.125;

void setup() {
  pinMode(sensorDist, INPUT);
  Serial.begin(9600);
}

void loop() {
  dist = 12.08 * pow(map(analogRead(sensorDist), 0, 1023, 0, 5000)/1000.0, -1.058);
  if (dist > 28) {
    Serial.println(15);
  } 
  else {
    media = ((1.0 - alfa) * media) + (alfa*dist);
    Serial.println(media);
  }
  delay(30);
}

CONSTRUÇÃO E CONFIGURAÇÃO DO VIDEO GAME:

Inicialmente estabelecemos o ponto médio, que corresponde a distancia em que se sugere posicionar a mão da pessoa para iniciar o jogo  (15 cm), depois  definimos a  equação de movimento do pássaro dada pelas seguintes equações

\textbf{up} = \left( \frac{246}{11} \times distancia \right )- \frac{3690}{11}~~~\textbf{down} = \left( \frac{133}{11} \times distancia \right )- \frac{1995}{11}.

O código do video game em linguagem programação  Python se mostra a continuação.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
## ------------------------------------------------------------------------
## Authors: David Avellaneda Bernal, Iury Xavier Adones, Sara Castillo Daza
## e-mail: davidave16@gmail.com
## UFRPE - Biometria e Estatistica Aplicada
## ------------------------------------------------------------------------

from turtle import *
from time import time, sleep
from random import randint
from subprocess import Popen
import sys
import glob

import serial
import os
osx = os.system('ls /dev/ttyUSB0') ## ----- Modify according to the active USB port-----
if osx == 0:
    ser = serial.Serial('/dev/ttyUSB0') ## ----- Modify according to the active USB port
    print "-----------------------------------------"    
    print "        -------------------------        "
    print "          Conectado Com Arduino          "

else:
    print "-----------------------------------------"    
    print "        -------------------------        "
    print "              Sem Arduino                "

control_arduino = ser.readline().split()[0]
print control_arduino

 

Segue os códigos completos para download e a pasta com os requerimentos necessários para executar o video game.

Arduino:
https://drive.google.com/open?id=0B_E61rDdWg-fcS1mRkNURHV1eUk

Python:
https://drive.google.com/open?id=0B_E61rDdWg-fNk0xMW5sVTF5ekk

3 comentários em “CONTROLE DO JOGO FLAPPY BIRD COM ARDUINO E O SENSOR IR (OA41SK)

  1. Olá, boa tarde! Gostei muito do projeto com Arduíno de vocês e gostaria de saber se há algum video mostrando o desenvolvimento do projeto passo a passo, pois fiquei muito admirado e gostaria também de fazê-lo. Estou apresentando um trabalho na amostra científica da minha escola e ficaria grato se pudessem me disponibilizar já que os arquivos acima não estão todos 100% funcionando.

    A amostra que pretendo apresentar tal projeto ( com modificações e adaptações minha também) é a Feira de Tecnologia regional do Instituto Federal do meu estado e com base no desenvolvimento do jogo que fizeram me proporcionou usalo também com base na ideia que tenho.
    Qualquer coisa podem entrar em contato comigo por esse e-mail,
    pedro.melo@acad.ifma.edu.com.br. Obrigado!

    Curtido por 1 pessoa

    1. Olá Pedro, infelizmente não existe um video do desenvolvimento do projeto. Mas os programas estão funcionando bem e foram implementados em sistema operacional Ubuntu 16

      Curtir

      1. Obrigado pela resposta! Conseguir desenvolver o jogo com minha equipe e obtivemos sucesso nos resultados, grato por disponibilizar a logica por traz do desenvolvimento do jogo que foi de fundamental importância para a conclusão do projeto.

        Curtido por 1 pessoa

Deixe um comentário