- Visão geral:
- Componentes necessários:
- Explicação do circuito:
- Funcionamento do acelerômetro:
- Programando Arduino:
- Processamento de programação:
- Teste:
A realidade aumentada e os jogos virtuais tornaram-se uma tendência recente na indústria de jogos. O tempo de usar um teclado / joystick e um mouse para jogar um jogo de computador acabou. Agora todo console de videogame vem com um Controlador Virtual que nos ajuda a jogar usando nossos movimentos e gestos corporais, desta forma a experiência de jogo aumentou muito e o usuário se sente mais envolvido no jogo.
Neste projeto, vamos tentar nos divertir enquanto aprendemos com o projeto. Deixe-nos criar um jogo (sim, você me ouviu corrigir, vamos criar um jogo) e jogá-lo usando o movimento de sua mão. Estamos criando o clássico jogo de bola de pingue-pongue usando Arduino e acelerômetro.
Visão geral:
Existem muitos softwares de código aberto disponíveis atualmente, o que trouxe muitas alegrias para entusiastas como nós, e Processing é um deles. Com este aplicativo baseado em JAVA podemos construir nosso próprio software (formato.exe) e também um aplicativo Android (arquivo.apk). Então, vamos usar este software para construir nosso jogo. Anteriormente, usamos o Processing para criar a sala de bate-papo do Arduino.
A parte de hardware consistirá em um Arduino que buscará a entrada de um acelerômetro para alimentá-la serialmente para nosso computador / laptop.
Então vamos às compras !!!!
Componentes necessários:
- Arduino (qualquer versão ou modelo)
- Acelerômetro
- Fios de conexão
- Interesse (risos)
Acelerômetro e Arduino Nano
Explicação do circuito:
O projeto do circuito do Arduino Ping Pong Ball Game não envolve nenhuma conexão complexa. Usei um Arduino Nano com um acelerômetro. Mas há algumas coisas a serem cuidadas, conforme mencionado abaixo:
1. Seu acelerômetro não suporta 5 V, então sempre conecte o Vcc do acelerômetro ao pino de 3,3 V do Arduino.
2. Todo acelerômetro sofre o efeito da gravidade, que deve ser tratado durante a programação (simplesmente usando um filtro).
Com isso em mente, vamos examinar o funcionamento de um acelerômetro e como o usamos.
Funcionamento do acelerômetro:
Um acelerômetro é um dispositivo que pode converter a aceleração em qualquer direção para sua respectiva tensão variável. Isso é feito por meio de capacitores (consulte a imagem), à medida que o Accel se move, o capacitor presente nele também sofrerá alterações (consulte a imagem) com base no movimento, como a capacitância é variada, uma tensão variável também pode ser obtida.
Assim, como mencionado acima, todo acelerômetro sofre do problema do efeito da gravidade. Não importa o quão preciso o seu sensor seja calibrado (até mesmo seus Apple phones Accel.), Ele será afetado pela gravidade. Uma explicação mais técnica para esse problema é fornecida abaixo.
Agora, no Arduino, podemos reduzir o efeito da gravidade usando um filtro simples. Este filtro consistirá em duas matrizes, uma é usada para armazenar os valores de amostra do sensor e a outra é usada para classificar os valores de amostra e encontrar o valor mais repetido. Vamos implementar este algoritmo em nosso Arduino e preparar nosso hardware.
Programando Arduino:
O programa Arduino é fornecido abaixo na seção Código. Não há dados críticos que precisem ser modificados. Mas você pode querer considerar o seguinte:
Aumente o tamanho da amostra se seu Accel ainda mostrar valores aleatórios.
#define Samplesize 13 // filterSample number
Jogue com a taxa de 9600 bauds para aumentar a velocidade de comunicação entre o Arduino e o Processing. Mas certifique-se de alterá-los em ambos os softwares (Programas).
void setup () {Serial.begin (9600); }
Meu acelerômetro no eixo X dá 193 na extremidade esquerda e 280 na extremidade direita, meça-os para sua aceleração e atualize o valor.
toSend = map (smoothData1, 193, 280, 0, 255);
Os valores são mapeados em um único byte de dados para comunicação serial.
Verifique também os Comentários no Código fornecido abaixo para entendê-lo claramente.
Processamento de programação:
Processing é um software de código aberto usado por artistas para design gráfico. Este software é usado para desenvolver software e aplicativos Android. É muito fácil de desenvolver e muito semelhante ao IDE de desenvolvimento Android. Portanto, encurtei a explicação.
O Código de Processamento para o Jogo de Ping Pong é fornecido aqui:
- Processando código para o jogo de bola de ping do Arduino
Clique com o botão direito e clique em 'Salvar link como..' para baixar o arquivo de código. Em seguida, abra o arquivo no software 'Processing' e clique no botão 'Executar' para jogar. Você precisa instalar o software 'Processing' para abrir arquivos *.pde. A seção de comentários está aberta para consultas e também verifique os comentários no Programa para melhor entendê-lo.
Abaixo da linha, na função void setup () do código de processamento é importante, pois ele decide de qual porta os dados serão fornecidos.
porta = novo Serial (isto, Serial.list (), 9600); // Lê a 4ª PORTA a 9600 baudrate
Aqui, li dados da 4ª porta do meu Arduino.
Então, por exemplo, se você tiver COM COM COM COM COM
Então, o código acima lerá os dados do COM.
Teste:
Agora, como nosso esboço de processamento e Arduino está pronto, basta fazer o upload do programa fornecido abaixo para o Arduino e conectar seu Arduino ao PC do usuário por meio de um cabo de programação e iniciar o jogo executando o arquivo de código de processamento (.pde). É isso aí! Mova seu acelerômetro e jogue seu jogo de pingue-pongue. O vídeo o guiará por todo o projeto.
Depois de entender o programa, você pode criar muitos jogos semelhantes e jogá-los usando seu Arduino. Além disso, os eixos Y e Z também podem ser incluídos para jogos.