- Aperçu:
- Composants requis:
- Explication du circuit:
- Fonctionnement de l'accéléromètre:
- Programmation Arduino:
- Traitement de programmation:
- Essai:
La réalité augmentée et le jeu virtuel sont devenus une tendance récente dans l'industrie du jeu. L'époque de l'utilisation d'un clavier / joystick et d'une souris pour jouer à un jeu vidéo est passée derrière. Désormais, chaque console de jeu est livrée avec un contrôleur virtuel qui nous aide à jouer au jeu en utilisant les mouvements et les gestes de notre corps, de cette façon l'expérience de jeu a beaucoup augmenté et l'utilisateur se sent plus impliqué dans le jeu.
Dans ce projet, essayons de nous amuser tout en apprenant à travers le projet. Laissez-nous créer un jeu (oui, vous m'avez bien entendu, nous allons créer un jeu) et jouez-le en utilisant le mouvement de votre main. Nous créons le jeu de balle de ping-pong classique en utilisant Arduino et accéléromètre.
Aperçu:
Il existe des tonnes de logiciels open source disponibles ces jours-ci, ce qui a apporté beaucoup de bonheur aux amateurs comme nous, et Processing en fait partie. Avec cette application basée sur JAVA, nous pouvons créer notre propre logiciel (format.exe) ainsi qu'une application Android (fichier.apk). Nous allons donc utiliser ce logiciel pour construire notre jeu, nous avons précédemment utilisé Processing pour créer Arduino Chat Room.
La partie matérielle consistera en un Arduino qui récupérera l'entrée d'un accéléromètre pour l'alimenter en série à notre ordinateur / ordinateur portable.
Alors allons faire du shopping !!!!
Composants requis:
- Arduino (toute version ou modèle)
- Accéléromètre
- Fils de connexion
- Intérêt (Lolz)
Accéléromètre et Arduino Nano
Explication du circuit:
Le circuit du projet de jeu de balle de ping-pong Arduino n'implique aucune connexion complexe. J'ai utilisé un Arduino Nano avec un accéléromètre. Mais il y a peu de choses à prendre en compte comme mentionné ci-dessous:
1. Votre accéléromètre ne peut pas gérer 5V, donc connectez toujours le Vcc de l'accéléromètre à votre broche 3.3V d'Arduino.
2. Chaque accéléromètre souffre de l'effet de gravité qui doit être manipulé lors de la programmation (simplement à l'aide d'un filtre).
Dans cet esprit, examinons le fonctionnement d'un accéléromètre et comment nous l'utilisons.
Fonctionnement de l'accéléromètre:
Un accéléromètre est un appareil qui peut convertir l'accélération dans n'importe quelle direction en sa tension variable respective. Ceci est accompli en utilisant des condensateurs (voir l'image), lorsque l'Accel se déplace, le condensateur présent à l'intérieur subira également des modifications (voir l'image) en fonction du mouvement, car la capacité est variée, une tension variable peut également être obtenue.
Ainsi, comme mentionné ci-dessus, chaque accéléromètre souffre du problème de l'effet de gravité. Quelle que soit la précision de l'étalonnage de votre capteur (même vos téléphones Apple Accel.), Il sera affecté par la gravité. Une explication plus technique de ce problème est donnée ci-dessous.
Désormais, dans Arduino, nous pouvons réduire l'effet de la gravité en utilisant un filtre simple. Ce filtre se compose de deux tableaux, l'un est utilisé pour stocker les valeurs d'échantillon du capteur et l'autre est utilisé pour trier les valeurs d'échantillon et trouver la valeur la plus répétée. Implémentons cet algorithme dans notre Arduino et préparons notre matériel.
Programmation Arduino:
Le programme Arduino est donné ci-dessous dans la section Code. Il n'y a pas de données critiques à modifier. Mais vous voudrez peut-être tenir compte des éléments suivants:
Augmentez la taille de l'échantillon si votre Accel affiche toujours des valeurs aléatoires.
#define Samplesize 13 // filtreNuméro de l'échantillon
Jouez avec le débit de 9600 bauds pour augmenter la vitesse de communication entre Arduino et Processing. Mais assurez-vous de les modifier dans les deux logiciels (Programmes).
void setup () {Serial.begin (9600); }
Mon accéléromètre sur l'axe X donne 193 à l'extrémité gauche et 280 à l'extrémité droite, mesurez-les pour votre Accel et mettez à jour la valeur.
toSend = carte (smoothData1, 193, 280, 0, 255);
Les valeurs sont mappées dans un seul octet de données pour la communication série.
Vérifiez davantage les commentaires dans le code ci - dessous pour le comprendre clairement.
Traitement de programmation:
Le traitement est un logiciel open source utilisé par les artistes pour la conception graphique. Ce logiciel est utilisé pour développer des logiciels et des applications Android. Il est assez facile à développer et très similaire à l'IDE de développement Android. C'est pourquoi j'ai raccourci l'explication.
Le code de traitement du jeu de ping-pong est donné ici:
- Code de traitement pour Arduino Ping Ball Game
Faites un clic droit dessus et cliquez sur «Enregistrer le lien sous..» pour télécharger le fichier de code. Ensuite, ouvrez le fichier dans le logiciel 'Traitement' et cliquez sur le bouton 'Exécuter' pour jouer au jeu. Vous devez installer le logiciel 'Processing' pour ouvrir les fichiers *.pde. La section des commentaires est ouverte aux requêtes et vérifiez également les commentaires dans le programme pour mieux le comprendre.
En dessous de la ligne, dans la fonction void setup () de Traitement du code est importante, car elle décide de quel port les données doivent être.
port = new Serial (this, Serial.list (), 9600); // Lit le 4ème PORT à 9600 baudrate
Ici, j'ai lu les données du 4ème port de mon Arduino.
Donc, par exemple si vous avez COM COM COM COM COM
Ensuite, le code ci-dessus lira les données de COM.
Essai:
Maintenant que notre croquis de traitement et Arduino est prêt, téléchargez simplement le programme ci-dessous sur Arduino et connectez votre Arduino au câble de programmation complet du PC utilisateur et lancez le jeu en exécutant le fichier de code de traitement (.pde). C'est ça! Déplacez votre accéléromètre et jouez à votre jeu de ping-pong. La vidéo vous guidera à travers le projet complet.
Une fois que vous avez compris le programme, vous pouvez créer de nombreux jeux similaires et y jouer en utilisant votre Arduino.En outre, l'axe Y et l'axe Z peuvent également être inclus pour les jeux.