Jeux de course lumineux arduino lightrush

Medium yjlecyd2u7xxejq18ym6

Difficulté:

Comment fabriquer un jeu de course avec un arduino et une barre de leds addressables



Les cartes arduino, c’est bien et plein de possibilités; encore faut il les exploiter ! J’ai voulu créer un jeu de course avec une barre de led adressable et un arduino.
Le jeu est très simple, on a 4 boutons d’une couleur différente, un pour chaque joueur et à chaque fois qu’on appuie sur un des boutons ça fait avancer la couleur respectif d’un pas sur la barre de led. Le premier arrivé sur la dernière led a gagné. On peut facilement cumuler les barres de leds pour agrandir la course 🙂

Matériel

Medium iwgctki4j3w2i4x8ycn0

Budget:

30 €

  • Une barre de led adressable ou plusieurs si on veut faire un parcours plus long : Disponible ici
  • 4 boutons d’arcades ( 4 joueurs) : Disponible ici
  • Un arduino nano : Disponible ici
  • Une perceuse
  • Une caisse de vin en bois
  • Une mèche à bois plate
  • jumper : Disponible ici
  • cosse électrique : Disponible ici
  • fer à souder
  • pince coupante
  • câble électrique
  • Des vis à bois
  • Une batterie : Disponible ici
    ou une alimentation 5 volts : Disponible ici

    Etape 1 : Le code arduino

    Pour le code du arduino, on se base sur la librairie de adafruit neo pixel qui convient aux barres de leds adressables adafruit. (pour info la valeur stripshow push la commande à la barre de led)
    Mes connaissances en code sont basiques, j’ai donc eu un coup de main de ce côté là ( merci à seb des lille makers)
    Les commentaires expliquent le code et la fonction de chaque ligne. Si vous avez des questions sur le code posez vos questions en commentaires.

    #include
    #define PIN 6 //on met le DN de la barre de led sur la pin 6 sur arduino
    #define PIN_ALIM_BT 12
    #define PIN_ALIM_BT2 2
    #define PIN_ALIM_BT3 3
    #define PIN_ALIM_BT4 4
    #define BT_PIN_ROUGE 8 // on met le bouton rouge sur la pin 8
    #define BT_PIN_VERT 9 // on met le bouton vert sur la pin 9
    #define BT_PIN_BLEU 10 // on met le bouton bleu sur la pin 10
    #define BT_PIN_JAUNE 11 // on met le bouton jaune sur la pin 11

    #define NBR_LED 30 // on définit le nombre de leds présentent sur les barres de led

    #define BLUE 0x0000FF
    #define RED 0xFF0000
    #define GREEN 0x00FF00
    #define YELLOW 0xFFFF00
    #define OFF 0x000000
    #define WHITE 0xffffff

    int lastButtonStateRouge = 0;
    int buttonStateRouge =0;
    int buttonPushCounterRouge=0;

    int lastButtonStateVert = 0;
    int buttonStateVert =0;
    int buttonPushCounterVert=0;

    int lastButtonStateBleu = 0;
    int buttonStateBleu =0;
    int buttonPushCounterBleu=0;

    int lastButtonStateJaune = 0;
    int buttonStateJaune =0;
    int buttonPushCounterJaune=0;

    Adafruit_NeoPixel strip = Adafruit_NeoPixel(NBR_LED, PIN, NEO_GRB + NEO_KHZ800);

    //gere l’animation des led pour l’appuie sur un bouton, j’allume la led pos à la coleur demandé et j’eteint la led pos-1
    void avance(int pos,long color)
    {
    strip.setPixelColor(pos,color);
    strip.setPixelColor(pos-1,OFF);
    strip.show(); // très important la fonction strip show envoie la commande à la barre de led
    }

    //animation du départ de jeu
    void animLancement()
    {
    //fait défiler la couleur Bleu
    for(int i= 0;i28){
    animFinJeu(GREEN);
    resetCounter();
    animLancement();
    }
    if(buttonPushCounterBleu >28){
    animFinJeu(BLUE);
    resetCounter();
    animLancement();
    }
    if(buttonPushCounterJaune >28){
    animFinJeu(YELLOW);
    resetCounter();
    animLancement();
    }
    }

    http://dtbhw0y54ogly.cloudfront.net/wp-content/uploads/formidable/09064335/lightrush.ino

    Etape 4 : Maintenant on joue !

    Medium nwcqxmrio4vbxzz11xlc

    Voilà en vidéo le fonctionnement ! Pour les challenges, on peut imaginer différents modes de jeu 🙂 et c’est encore plus marrant quand on met plusieurs barres de leds adressables en série.

    Vous aimez ce tutoriel ?


    Ipxav

    07 juil. 2016 à 10:21

    Salut chapao,

    Pour le coup, il suffit de trouver les bon fournisseur pour avoir des supers prix !

    La barre de leds coûte 15$ sur adafruit mais j’ai fait des tests avec des barres de leds adressables de chez aliexpress pour 5$ pièce. Ensuite pour les arduinos nano c’est 3€ pour un sur eBay. Pour comprendre pourquoi ce arduino est si peu cher je t’invite à lire ça https://tinkerus.wordpress.com/2015/01/16/arduino-avec-controleur-ch340g

    Je te met les liens vers aliexpress et ebay cet après-midi

    Ipxav

    07 juil. 2016 à 10:21

    Voici le lien pour les barres de leds adressables :

    http://www.aliexpress.com/snapshot/6893081419.html?orderId=69145124569306

    Choisis la version : Color 1m 30LED White IP20


    et la vidéo du jeu

    https://www.youtube.com/watch?v=Wt8wnhft9W8


    Bon bricolage 🙂 si tu as des questions n’hésites pas.

    Ipxav

    07 juil. 2016 à 10:22

    Pour le code du arduino, j'ai ajouté le fichier ino que tu peux directement télécharger.

    Ipxav

    07 juil. 2016 à 10:24

    Sur les boutons types arcade tu as un branchement : 5v + ta sortie digitale + le GND. Si tu regardes bien dans les photos, j'ai intégré des résistances directement dans les câbles qui vont vers les PIN digitales des boutons c'est sous la gaine rétractable.

    Ipxav

    07 juil. 2016 à 10:24

    PS : Pas de problèmes avec les questions, le but est que tu puisses le refaire toi-même et que tu partages à ton tour ;). C'est ça être un Maker !

    Ipxav

    07 juil. 2016 à 10:26

    Chapao c'est super ton upgrade, tu as vraiment fait une V2 incroyable !

    C'est pour ça que j'ai partagé ce tuto c'est pour qu'il soit amélioré mais là ta création est vraiment géniale ! Un petit tuto et une petite vidéo se serait sympa. 🙂

    Merci Chapao !


    Recevez une fois par mois les meilleurs tutoriels Technologie dans votre boîte mail




    “Lille Makers”

    Lille Makers


    S'inscrire:



    En cliquant sur s'inscire, vous acceptez de respecter les conditions générales d'utilisation de Oui Are Makers.

    • Vues: 821
    • J'aime: 4