ENIB 2024 : Les zinzins envahisseurs
Titre de la fiche expérience :
Sommaire
description (résumé)
éventuelle photo de l'équipe
Introduction
L'objectif de ce projet est de réaliser le jeu "Space Invader" sur une borne d'arcade, à partir d'une carte Arduino et de leds
outil et matériel
Carte ESP800266modÀ
64x leds
Structure de la borne en bois, usinée avec la découpeuse laser.
Ordinateur avec un logiciel Arduino.
Fer à souder et câbles pour l'assemblage de la matrice de led 8x8.
Potentiomètre ou joystick pour les commandes du jeu.
fichiers à joindre
code, ficher d'impression 3D, de découpe laser ou vinyle, ...
Mettre du code Arduino
1
2 #define PIN 9
3 #include <Arduino_GFX_Library.h>
4
5 /// @file ArrayOfLedArrays.ino
6 /// @brief Set up three LED strips, all running from an array of arrays
7 /// @example ArrayOfLedArrays.ino
8
9 // ArrayOfLedArrays - see https://github.com/FastLED/FastLED/wiki/Multiple-Controller-Examples for more info on
10 // using multiple controllers. In this example, we're going to set up three NEOPIXEL strips on three
11 // different pins, each strip getting its own CRGB array to be played with, only this time they're going
12 // to be all parts of an array of arrays.
13
14 #include <FastLED.h>
15
16
17 #define NUM_STRIPS 1
18 #define NUM_LEDS_PER_STRIP 256
19 CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP];
20
21 int position;
22 int color[3] {0x000000,0x000020,0x200000};
23
24 int test[16][16] { \
25 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
26 {0, 0, 2, 2, 0, 2, 2, 0, 0, 2, 2, 0, 2, 2, 0, 0}, \
27 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
28 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
29 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
30 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
31 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
32 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
33 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
34 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
35 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
36 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, \
37 {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, \
38 {0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0}, \
39 {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}, \
40 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} \
41 };
42
43 // For mirroring strips, all the "special" stuff happens just in setup. We
44 // just addLeds multiple times, once for each strip
45 void setup() {
46 // tell FastLED there's 60 NEOPIXEL leds on pin 2
47 FastLED.addLeds<NEOPIXEL, 2>(leds[0], NUM_LEDS_PER_STRIP);
48
49 // tell FastLED there's 60 NEOPIXEL leds on pin 3
50 FastLED.addLeds<NEOPIXEL, 3>(leds[1], NUM_LEDS_PER_STRIP);
51
52 // tell FastLED there's 60 NEOPIXEL leds on pin 4
53 FastLED.addLeds<NEOPIXEL, 4>(leds[2], NUM_LEDS_PER_STRIP);
54
55 }
56
57 void affiche() {
58 for(int x = 0; x < 16; x++) {
59 for(int y = 0; y < 16;y++){
60 if (x%2 == 1){
61 position = x*16+y;
62 }
63 else{
64 position = x*16+15-y;
65 }
66 leds[0][position] = color[test[x][y]];
67
68 }
69 }
70 FastLED.show();
71 }
72
73
74 void loop() {
75 affiche();
76 delay(100);
77 }
étapes de fabrication
indiquer autant d'étape que nécessaire, chacune illustrée par des images (phot, dessins, ...)
- Élément de la liste numérotée
étape 1
Il est préférable de commencer par construire une maquette carton de la structure de la borne d'arcade, afin de se faire une premières idée des dimensions, en prenant en compte la taille de votre écran de led. dessin, découpage au cutter, et assemblage au pistolet à colle.
étape 2 : étude du câblage et réalisation du support de l'écran
Il faudra ensuite étudier la documentation technique et le fonctionnement du câblage. Vous pouvez les retrouver sur cette page, avec un petit tuto vidéo.
https://www.hackster.io/mircemk/space-invaders-game-on-8x8-homemade-led-matrix-4029f8
Puis, si vous n'avez pas déjà une matrice de led 8x8, dessiner et découper le support où on fixera les led. On se servira d'une découpeuse laser pour être plus précis dans la découpe.
étape 3 : Codage du jeu
Codage du jeu en Arduino
étape 4
Dessin des pièces sur Catia et Mise en plan pour découpeuse 3D. et tests du jeu sans la structure en parallèle
étape 5
Assemblage de la structure finale, fixation des composants et compte rendu du projet sur le wiki
troubleshouting
quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?
Nous avons rencontrés des soucis lors de l'étude du câblage et de la doc car le code que nous avions récupéré pour le jeu