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:
- 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:
.
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
,
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
.
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
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!
CurtirCurtido por 1 pessoa
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
CurtirCurtir
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.
CurtirCurtido por 1 pessoa