- Panoramica:
- Componenti richiesti:
- Spiegazione del circuito:
- Funzionamento dell'accelerometro:
- Programmazione di Arduino:
- Elaborazione della programmazione:
- Collaudo:
La realtà aumentata e il gioco virtuale sono diventati una tendenza recente nel settore dei giochi. I tempi in cui si utilizzava una tastiera / joystick e un mouse per giocare a un gioco per computer sono andati indietro. Ora ogni console di gioco è dotata di un controller virtuale che ci aiuta a giocare utilizzando i movimenti e i gesti del nostro corpo, in questo modo l'esperienza di gioco è aumentata molto e l'utente si sente più coinvolto nel gioco.
In questo progetto proviamo a divertirci mentre impariamo attraverso il progetto. Creiamo un gioco (Sì, hai sentito bene, vogliamo creare un gioco) e giochiamo usando il movimento della tua mano. Stiamo creando il classico gioco della palla da ping pong utilizzando Arduino e accelerometro.
Panoramica:
Ci sono tonnellate di software open source disponibili in questi giorni che hanno portato un sacco di felicità per gli hobbisti come noi, e Processing è uno di questi. Con questa applicazione basata su JAVA possiamo creare il nostro software (formato.exe) e anche un'applicazione Android (file.apk). Quindi utilizzeremo questo software per creare il nostro gioco, abbiamo già utilizzato Processing per creare Arduino Chat Room.
La parte hardware sarà costituita da un Arduino che preleverà l'input da un accelerometro per alimentarlo in serie al nostro computer / laptop.
Allora andiamo a fare shopping !!!!
Componenti richiesti:
- Arduino (qualsiasi versione o modello)
- Accelerometro
- Cavi di collegamento
- Interesse (Lolz)
Accelerometro e Arduino Nano
Spiegazione del circuito:
Il Circuito di Arduino Ping Pong Ball Game Project non prevede connessioni complesse. Ho usato un Arduino Nano con un accelerometro. Ma ci sono poche cose di cui occuparsi come indicato di seguito:
1. Il tuo accelerometro non può gestire 5V, quindi collega sempre il Vcc dell'accelerometro al tuo pin 3.3V di Arduino.
2. Ogni accelerometro soffre dell'effetto della gravità che deve essere gestito durante la programmazione (semplicemente utilizzando un filtro).
Con questo in mente, esaminiamo il funzionamento di un accelerometro e come lo usiamo.
Funzionamento dell'accelerometro:
Un accelerometro è un dispositivo in grado di convertire l'accelerazione in qualsiasi direzione nella rispettiva tensione variabile. Ciò si ottiene utilizzando dei condensatori (vedi immagine), poiché l'Accel si muove, anche il condensatore presente al suo interno subirà delle variazioni (vedi immagine) in base al movimento, poiché varia la capacità, si può ottenere anche una tensione variabile.
Quindi, come accennato sopra, ogni accelerometro soffre del problema dell'effetto gravità. Non importa quanto sia preciso il tuo sensore calibrato (anche i tuoi telefoni Apple Accel.), Sarà influenzato dalla gravità. Di seguito viene fornita una spiegazione più tecnica per questo problema.
Ora, in Arduino possiamo ridurre l'effetto della gravità utilizzando un filtro semplice. Questo filtro sarà composto da due array, uno viene utilizzato per memorizzare i valori del campione dal sensore e l'altro è utilizzato per ordinare i valori del campione e trovare il valore più ripetuto. Implementiamo questo algoritmo nel nostro Arduino e prepariamo il nostro hardware.
Programmazione di Arduino:
Il programma Arduino è fornito di seguito nella sezione Codice. Non ci sono dati critici che devono essere modificati. Ma potresti prendere in considerazione quanto segue:
Aumenta la dimensione del campione se Accel mostra ancora valori casuali.
#define Samplesize 13 // filterSample numero
Gioca con la velocità di 9600 baud per aumentare la velocità di comunicazione tra Arduino e Processing. Ma assicurati di cambiarli in entrambi i software (Programmi).
void setup () {Serial.begin (9600); }
Il mio accelerometro sull'asse X fornisce 193 sull'estrema sinistra e 280 sull'estrema destra, misurali per il tuo Accel e aggiorna il valore.
toSend = map (smoothData1, 193, 280, 0, 255);
I valori vengono mappati in un singolo byte di dati per la comunicazione seriale.
Controllare ulteriormente i commenti nel codice fornito di seguito per comprenderlo chiaramente.
Elaborazione della programmazione:
L'elaborazione è un software open source che viene utilizzato dagli artisti per la progettazione grafica. Questo software viene utilizzato per sviluppare software e applicazioni Android. È abbastanza facile da sviluppare e molto simile all'IDE di sviluppo Android. Quindi ho accorciato la spiegazione.
Il codice di elaborazione per il gioco del ping pong è fornito qui:
- Codice di elaborazione per Arduino Ping Ball Game
Fare clic con il tasto destro del mouse e fare clic su "Salva collegamento con nome.." per scaricare il file di codice. Quindi apri il file nel software "Processing" e fai clic sul pulsante "Esegui" per giocare. È necessario installare il software "Processing" per aprire i file *.pde. La sezione commenti è aperta alle domande e controlla anche i commenti nel programma per comprenderlo meglio.
Sotto la riga, nella funzione void setup () del codice di elaborazione è importante, poiché decide da quale porta i dati provengono.
port = new Serial (this, Serial.list (), 9600); // Legge la 4a PORTA a 9600 baudrate
Qui ho letto i dati dalla 4a porta dal mio Arduino.
Quindi, per esempio, se hai COM COM COM COM COM
Quindi il codice sopra leggerà i dati da COM.
Collaudo:
Ora poiché il nostro schizzo di elaborazione e Arduino è pronto, carica il programma indicato di seguito su Arduino e collega Arduino al cavo di programmazione completo del PC dell'utente e avvia il gioco eseguendo il file di codice di elaborazione (.pde). Questo è tutto! Muovi il tuo accelerometro e gioca a ping pong. Il video ti guiderà attraverso l'intero progetto.
Una volta compreso il programma, puoi creare molti giochi simili e giocarci usando il tuo Arduino, inoltre l'asse Y e l'asse Z potrebbero essere inclusi anche per i giochi.