piOthello: Othello avec IA contrôlé par un Raspberry pi

image principale piOthello: Othello avec IA contrôlé par un Raspberry pi

Difficulté:

Je vais détailler dans ce tuto comment fabriquer un petit jeux d'Othello avec un Raspberry pi, une matrice de 8*8 leds bicolor d'Adafruit et une intelligence artificielle à plusieurs niveaux (facile/moyen/difficile) qui permet à un joueur humain de se mesurer à la machine, ou de voir à l'oeuvre deux IA s'affronter.

C'est parti

Matériel :

Budget : Non défini

Etape 1 : vidéo: 2 IA qui s'affrontent

Cette vidéo récapitulative montre les règles du jeux où l'on commence par choisir les 2 joueurs parmi 4 choix:

  • humain: le joeur devra utiliser les boutons jaune (choix d'un coup parmi une liste de coups possibles) et vert (validation de son choix)
  • IA facile: elle est plutôt idiote même car elle joue au hasard
  • IA moyen: choix du meilleur coup stratégique, ça se corse !
  • IA difficile: non seulement elle choisi le meilleur coup stratégique, mais en plus elle va anticiper les 5 prochains coups de son adversaire pour pouvoir faire son choix. en fin de partie elle change de stratégie en cherchant à prendre un max de pions adverses: cette IA est redoutablement efficace, il faut se cramer la tête pour la vaincre !
Etape 2 : Matériel nécessaire

  • 1 Raspberry pi modèle 3b+ (ça devrait aussi fonctionner sur un pi3b et sur un pi4), avec Raspbian installé sur un SD card 16Go, ainsi que son alimentation.

  • Le circuit imprimé format HAT piOthello, à récupérer sur ma page Guithub (fichier GERBER piOthelloGERBER.zip), à faire fabriquer chez un pro (comptez une vingtaine d'euros frais de port compris). Vous pouvez aussi me contacter pour en récupérer un tout prêt, vu que je les fais imprimer en 5 exemplaires à chaque fois.

  • 3 boutons poussoirs 12mm, 1 noir (Off), 1 jaune (Menu), 1 vert (Validation)

  • Résistances 1/4w: 6*10kΩ, 2*220Ω

  • Leds 5mm: 1 rouge et 1 verte (pas besoin de support de leds)

  • Condensateur : 1*100nf céramique (condensateur de découplage pour la matrice de leds)

  • 1 barrette 2*20 pin 2,54mm femelle (pour la connexion au GPIO du Rapsberry pi)

  • Matrice de leds 8*8 bicolor Adafruit avec un backpack i2C: ce modèle. Vous la trouverez pour environ 20€ dans les boutiques spécialisées de revente de matériel Arduino/Raspberry.

  • 2 petites entretoises M2.5 10mm femelle-femelle pour assurer le support de la carte HAT (2 suffise puisque l'autre côté sera maintenu par la barrette 2*20pin). Attention sans entretoises vous prenez le risque de tordre la carte lors des appuis sur les boutons poussoirs avec un gros risque que les soudures du dessous aillent toucher un truc métallique du Raspberry pi, ce qui provoquerait un court-circuit préjudiciable.

  • 4 petites entretoises M2.5 5mm mâle/femelle qui serviront de petits pieds sous le Raspberry pi, 2 d'entre elles seront reliées aux entretoises 10mm du dessus, et 2 autres il faut utiliser des petits boulons M2.5 pour les fixer.

Etape 3 : Assemblage du circuit

Pour souder les composants de la matrice de leds (matrice + support backpack + pin header 4pin) il est important de suivre le tutoriel d'Adafruit à la lettre, il est très bien expliqué pour éviter de souder les composants dans le mauvais sens et pour faire des soudures parfaitement droites en utilisant une breadboard: très pratique !

Ensuite pour souder les composants sur le circuit imprimé tout est clairement sérigraphié dessus / dessous: impossible de se tromper.

 Astuce: pour souder le pin header 4 pin du backpack de la matrice de leds sur le circuit imprimé, je vous conseille d'utiliser des cure-dents à disposer dans les 4 petits trous dans les coins, afin de maintenir la matrice parfaitement orientée sans qu'elle bouge pendant les 4 petites soudures à faire. Sinon vous prenez le risque de souder de travers la matrice.

Etape 4 : Installation du système et programmes Pythons

Il faut d'abord installer les bibliothèques Adafruit qui vont permettre de gérer la matrice: suivez bien leur guide. Il n'y a rien de compliqué. Pensez à bien activer les ports I2C du Raspberry pi comme epxliqué, et il y a même un petit programme de démo que vous pouvez tester.

Les programmes pythons sont à récupérer sur ma page Guithub.

3 programmes sont nécessaires:

  • piOthello.py: c'est le programme principal à exécuter

  • ledMatrixBicolor.py: classe qui gère la matrice de leds

  • game.py: gestion du jeux Othello

Pour exécuter ce programme il suffit d’exécuter une commande: python3 piOthello.py, ou bien de rajouter dans le fichier /etc/rc.local cette ligne: python3 /home/pi/piOthello.py &

(sans oublier le & à la fin ...) juste avant le "exit 0", en supposant que les 3 programmes pythons sont déposés dans le répertoire/home/pi/ ainsi le programme s'éxécute à chaque démarrage du Raspberry.

Sources :

https://www.papsdroid.fr/post/tutoriel-piothello


Ca me fait penser au corewar  ^^ (un projet d'ia en assembleur qui s'affrontent dans une vm)

 

Ces tutoriels devraient vous plaire

vignette Comment fabriquer son filament pour imprimante 3D
Comment fabriquer son filament pour imprimante 3D
vignette Arduino et Porte automatique de poulailler
Arduino et Porte automatique de poulailler
vignette Montez facilement votre console de jeu rétrogaming avec RECALBOX !
Montez facilement votre console de jeu rétrogaming avec RECALBOX !

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers