Étape 4: Le Code
Vous aurez besoin d’un magicien de Micro (peu importe quelle version) et la bibliothèque microM qui peut être téléchargée ici : https://sites.google.com/site/daguproducts/home/arduino-libraries
Si vous préférez, que vous pouvez utiliser une autre carte Arduino. Vous aurez probablement besoin d’une maquette et cavalier fils pour raccorder un récepteur IR et vos servos. Vous préférerez peut-être utiliser multiprotocole IR bibliothèque de Ken Shirriff qui peut être trouvé ici : http://www.righto.com/2009/08/multi-protocol-infrared-remote-library.html
Comme vous pouvez le voir j’ai décomposé mon code en sections logiques et mettez-les dans des onglets différents. Cela le rend beaucoup plus facile de modifier votre code.
[TicTacToe] ce premier onglet est votre code principal. C’est votre fonction Setup() où tous vos initialisation est effectuée et la fonction Loop() où le jeu est joué. La fonction Loop() consistent en 3 sections.
- Sélection du mode - le programme cherche à toutes les nouvelles commandes IR et modifie des modes si nécessaire.
- Les joueurs se déplacent - quand c’est votre tour cette section vous permet de faire votre déménagement.
- Robots se déplacent - selon le niveau de difficulté, différentes stratégies sont sélectionnés ici.
Après qu’un déménagement a été effectué, il est affiché sur le moniteur de la série. Le robot vérifie ensuite si on peut faire plus se déplacer et si tout le monde a gagné.
[IOpins.h] cet onglet est le schéma de câblage vous. Si vous souhaitez changer qui épingle un servo est connecté pour ensuite il suffit de changer le NIP ici. Comme l’IR récepteur est câblé à D4 n’est pas répertoriée.
[Constants.h] cet onglet contient les constantes utilisées dans le programme. Codes de récepteurs infrarouges et des valeurs prédéfinies pour les servos de mécanisme de pince et épingles sont définies ici. Comme vous le robot sera différent à la mienne, vous devrez modifier ces valeurs en fonction. Toutes les valeurs sont en µS à utiliser avec la commande writeMicroseconds() .
[Calibrate] cette fonction sert à apprendre au robot correspondant à chaque position sur la carte. Au départ tous les postes sont égales aux deux servos de bras étant en position centrale. Que vous enseignez le bras, nouveaux postes sont enregistrés dans les processeurs EEPROM donc que même si l’alimentation est coupée le robot n’oublierons pas ce qui vous a enseigné.
[eepromFunctions] lorsque le programme exécute d’abord l’EEPROM est lue afin que le robot connaissent les positions du Conseil d’administration. Lorsque vous étalonnez le robot les nouvelles positions sont écrits dans l’EEPROM afin que lorsque l’alimentation est coupée le robot n’oubliera pas les positions.
[DisplayGrid] le jeu s’affiche sur le moniteur de la série pour des fins de débogage et permet de jouer les Tic Tac Toe contre le magicien Micro vous utilisez simplement un téléviseur distant. Le robot n’est nécessaire pour impressionner vos amis et votre famille et rendre le jeu plus amusant à jouer. 0 représente une position vide. Les boules de robots sont représentés avec un 1. Tes couilles sont représentés par 2.
[MoveArm] comme son nom l’indique, cette fonction déplace le bras d’un poste au Conseil d’administration à l’autre. mon code décompose le mouvement en petites étapes afin que le bras se déplace lentement et en douceur. Plus grands coups sont divisées en plusieurs étapes afin que tous les déplacements se produisent à peu près la même vitesse.
[CheckForWin] après chaque déplacement le jury est vérifié pour voir si il y a un gagnant. Toutes les lignes, colonnes et diagonales sont vérifiées pour 3 de la même chose.
[ClearBoard] à la fin du jeu pour robot recueille toutes les boules et les remet dans leur chute. Le robot s’appuie sur la mémoire afin de déterminer si le ballon appartient à l’acteur ou le robot et renvoie la balle à la goulotte correcte. Le mécanisme de la goupille déclenche les boules assez élevés pour la pince pour les recueillir et abaisse les boules à nouveau pour que le bras puisse bouger librement.
[RandomMove] au niveau plus facile, tous les mouvements de robots sont aléatoires. Ce mode est conçu pour enseigner aux enfants le jeu pour la première fois. Un mouvement aléatoire est également utilisé par le robot lors de l’échouent d’autres stratégies. Pour rendre le jeu moins prévisibles (plus agréable), quand c’est que les robots transformer de démarrer un jeu, le robot va commencer avec un déplacement aléatoire.
[BlockPlayer] cette fonction est utilisée par le robot pour examiner vos mouvements et déterminer si vous êtes sur le point de gagner. Si le robot détecte vous avez deux boules en ligne avec la troisième position indemnes alors il placera son ballon dans la position libre vous bloquer. Cette fonction ne sert pas dans le niveau plus simple qui a pour but d’enseigner aux enfants comment jouer.
[MakeLine] cette fonction est similaire à [BlockPlayer], sauf qu’il est utilisé par le robot pour obtenir 3 d’affilée. Cette fonction n’est pas utilisée dans les niveaux plus faciles.
[SecondMove] comme un jeu de Tic Tac Toe n’a pas beaucoup se déplace, le deuxième mouvement est souvent où votre stratégie entrera en jeu. Le robot utilise ce fait dans le niveau plus dur d’essayer de vous battre. Je l’avoue, cette partie du code est perfectible. Je ne suis pas bon dans les jeux de stratégie.