<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeu+de+la+corde</id>
		<title>Les Fabriques du Ponant - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jeu+de+la+corde"/>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Sp%C3%A9cial:Contributions/Jeu_de_la_corde"/>
		<updated>2026-04-05T23:47:23Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18935</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18935"/>
				<updated>2022-01-17T14:38:03Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte D1 mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
[[Fichier:Schema2.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
int presence=0;&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  animation();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  &lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
  non_presence();&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.1); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(0.1);&lt;br /&gt;
    non_presence();&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void non_presence(){&lt;br /&gt;
  if (digitalRead(button_1)==1 and digitalRead(button_2)==1 and digitalRead(button_init)==1){&lt;br /&gt;
    presence ++;&lt;br /&gt;
    Serial.println(presence);&lt;br /&gt;
    if(presence&amp;gt;=3000)&lt;br /&gt;
    {&lt;br /&gt;
        while (test_bouton()==false)&lt;br /&gt;
        {&lt;br /&gt;
          animation();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
  else{Serial.println(&amp;quot;else&amp;quot;);&lt;br /&gt;
    presence =0;}&lt;br /&gt;
}&lt;br /&gt;
bool test_bouton(){&lt;br /&gt;
   if (digitalRead(button_1)==1 and digitalRead(button_2)==1 and digitalRead(button_init)==1)&lt;br /&gt;
   {&lt;br /&gt;
    return false;&lt;br /&gt;
   }&lt;br /&gt;
   else{return true;}&lt;br /&gt;
}&lt;br /&gt;
void eteind(){&lt;br /&gt;
  for (int j = 0; j &amp;lt; NUM_LEDS; j++) //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
  {  &lt;br /&gt;
     leds[j] = CRGB::Black;&lt;br /&gt;
  }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bool animation(){&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
  i = 23;&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    if (test_bouton()==false)&lt;br /&gt;
    {&lt;br /&gt;
      leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    &lt;br /&gt;
      FastLED.show();&lt;br /&gt;
      delay(25);&lt;br /&gt;
    }&lt;br /&gt;
    else{eteind();return false;}&lt;br /&gt;
      &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++)&lt;br /&gt;
    { if (test_bouton()==false)&lt;br /&gt;
        {                    //les leds se supprime vers la led du milieu&lt;br /&gt;
           leds[j] = CRGB::Black;&lt;br /&gt;
           leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
           FastLED.show();&lt;br /&gt;
           delay(25);&lt;br /&gt;
        }&lt;br /&gt;
        else{eteind();return false;}&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++)&lt;br /&gt;
  {&lt;br /&gt;
    if (test_bouton()==false)&lt;br /&gt;
    {&lt;br /&gt;
      leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
      leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
      Serial.println(j);&lt;br /&gt;
      FastLED.show();&lt;br /&gt;
      delay(25);&lt;br /&gt;
    }&lt;br /&gt;
    else{eteind();return false;}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--)&lt;br /&gt;
  {&lt;br /&gt;
    if (test_bouton()==false)&lt;br /&gt;
    {&lt;br /&gt;
        leds[i+j] = CRGB::Black;&lt;br /&gt;
        leds[i-j] = CRGB::Black;&lt;br /&gt;
        FastLED.show();&lt;br /&gt;
        delay(25);&lt;br /&gt;
    }&lt;br /&gt;
    else{eteind();return false;}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
  return true;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18925</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18925"/>
				<updated>2022-01-17T14:32:21Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte D1 mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
[[Fichier:Schema2.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
int presence=0;&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  animation();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  &lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
  non_presence();&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.1); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void non_presence(){&lt;br /&gt;
  if (digitalRead(button_1)==1 and digitalRead(button_2)==1 and digitalRead(button_init)==1){&lt;br /&gt;
    presence ++;&lt;br /&gt;
    Serial.println(presence);&lt;br /&gt;
    if(presence&amp;gt;=3000)&lt;br /&gt;
    {&lt;br /&gt;
        while (test_bouton()==false)&lt;br /&gt;
        {&lt;br /&gt;
          animation();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
  &lt;br /&gt;
  }&lt;br /&gt;
  else{Serial.println(&amp;quot;else&amp;quot;);&lt;br /&gt;
    presence =0;}&lt;br /&gt;
}&lt;br /&gt;
bool test_bouton(){&lt;br /&gt;
   if (digitalRead(button_1)==1 and digitalRead(button_2)==1 and digitalRead(button_init)==1)&lt;br /&gt;
   {&lt;br /&gt;
    return false;&lt;br /&gt;
   }&lt;br /&gt;
   else{return true;}&lt;br /&gt;
}&lt;br /&gt;
void eteind(){&lt;br /&gt;
  for (int j = 0; j &amp;lt; NUM_LEDS; j++) //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
  {  &lt;br /&gt;
     leds[j] = CRGB::Black;&lt;br /&gt;
  }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
bool animation(){&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
  i = 23;&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    if (test_bouton()==false)&lt;br /&gt;
    {&lt;br /&gt;
      leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    &lt;br /&gt;
      FastLED.show();&lt;br /&gt;
      delay(25);&lt;br /&gt;
    }&lt;br /&gt;
    else{eteind();return false;}&lt;br /&gt;
      &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++)&lt;br /&gt;
    { if (test_bouton()==false)&lt;br /&gt;
        {                    //les leds se supprime vers la led du milieu&lt;br /&gt;
           leds[j] = CRGB::Black;&lt;br /&gt;
           leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
           FastLED.show();&lt;br /&gt;
           delay(25);&lt;br /&gt;
        }&lt;br /&gt;
        else{eteind();return false;}&lt;br /&gt;
   }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++)&lt;br /&gt;
  {&lt;br /&gt;
    if (test_bouton()==false)&lt;br /&gt;
    {&lt;br /&gt;
      leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
      leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
      Serial.println(j);&lt;br /&gt;
      FastLED.show();&lt;br /&gt;
      delay(25);&lt;br /&gt;
    }&lt;br /&gt;
    else{eteind();return false;}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--)&lt;br /&gt;
  {&lt;br /&gt;
    if (test_bouton()==false)&lt;br /&gt;
    {&lt;br /&gt;
        leds[i+j] = CRGB::Black;&lt;br /&gt;
        leds[i-j] = CRGB::Black;&lt;br /&gt;
        FastLED.show();&lt;br /&gt;
        delay(25);&lt;br /&gt;
    }&lt;br /&gt;
    else{eteind();return false;}&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
  return true;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18892</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18892"/>
				<updated>2022-01-17T13:41:20Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte D1 mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
[[Fichier:Schema2.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[X]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[X]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[X]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban  et boutons       &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Schema2.jpg&amp;diff=18890</id>
		<title>Fichier:Schema2.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Schema2.jpg&amp;diff=18890"/>
				<updated>2022-01-17T13:41:04Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;m&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18865</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18865"/>
				<updated>2022-01-17T13:24:31Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[X]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[X]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[X]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban  et boutons       &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18855</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18855"/>
				<updated>2022-01-17T13:16:45Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|440px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18854</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18854"/>
				<updated>2022-01-17T13:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|450px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|450px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18852</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18852"/>
				<updated>2022-01-17T13:16:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|450px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|250px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|450px]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18851</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18851"/>
				<updated>2022-01-17T13:15:58Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|400px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|250px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18850</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18850"/>
				<updated>2022-01-17T13:15:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|250px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|250px]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|250px]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18849</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18849"/>
				<updated>2022-01-17T13:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|100px]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|100px]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18848</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18848"/>
				<updated>2022-01-17T13:14:53Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|vignette|devant]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18846</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18846"/>
				<updated>2022-01-17T13:14:16Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&amp;lt;br&amp;gt;&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18845</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18845"/>
				<updated>2022-01-17T13:14:02Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18843</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18843"/>
				<updated>2022-01-17T13:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&amp;lt;/br&amp;gt;&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18842</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18842"/>
				<updated>2022-01-17T13:11:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* photo de l'équipe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|600 px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18840</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18840"/>
				<updated>2022-01-17T13:11:22Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* photo de l'équipe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Regle-tir-corde.png|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Regle-tir-corde.png&amp;diff=18839</id>
		<title>Fichier:Regle-tir-corde.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Regle-tir-corde.png&amp;diff=18839"/>
				<updated>2022-01-17T13:11:15Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;regle&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18838</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18838"/>
				<updated>2022-01-17T13:09:25Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Que fait ce projet ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018 6065990.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:271283375 663960811312375 2742679284613237478 n.jpg|vignette|devant]]&lt;br /&gt;
[[Fichier:271354244 478487547023891 7814625120603058233 n.jpg|vignette]]&lt;br /&gt;
[[Fichier:271493392 1128680897671462 5164840374888400180 n.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:271493392_1128680897671462_5164840374888400180_n.jpg&amp;diff=18837</id>
		<title>Fichier:271493392 1128680897671462 5164840374888400180 n.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:271493392_1128680897671462_5164840374888400180_n.jpg&amp;diff=18837"/>
				<updated>2022-01-17T13:09:20Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;carte&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:271354244_478487547023891_7814625120603058233_n.jpg&amp;diff=18836</id>
		<title>Fichier:271354244 478487547023891 7814625120603058233 n.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:271354244_478487547023891_7814625120603058233_n.jpg&amp;diff=18836"/>
				<updated>2022-01-17T13:08:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;arriere du projet&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:271283375_663960811312375_2742679284613237478_n.jpg&amp;diff=18835</id>
		<title>Fichier:271283375 663960811312375 2742679284613237478 n.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:271283375_663960811312375_2742679284613237478_n.jpg&amp;diff=18835"/>
				<updated>2022-01-17T13:07:48Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;avant du projet&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18834</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18834"/>
				<updated>2022-01-17T13:06:54Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Catégories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018 6065990.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18833</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18833"/>
				<updated>2022-01-17T13:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* Catégories */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018 6065990.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;br /&gt;
[[Catégorie:arduino]]&lt;br /&gt;
[[Catégorie:ruban led]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18830</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18830"/>
				<updated>2022-01-17T13:04:00Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* photo de l'équipe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018 6065990.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18829</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18829"/>
				<updated>2022-01-17T13:03:41Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : /* photo de l'équipe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==photo de l'équipe==&lt;br /&gt;
[[Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018 6065990.jpg|vignette]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018_6065990.jpg&amp;diff=18827</id>
		<title>Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018 6065990.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Equipe-france-mondial-russie-coupe-du-monde-2018_6065990.jpg&amp;diff=18827"/>
				<updated>2022-01-17T13:03:07Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;equipe de france&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18824</id>
		<title>ENIB 2022 - groupe C : Jeu de la corde</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2022_-_groupe_C_:_Jeu_de_la_corde&amp;diff=18824"/>
				<updated>2022-01-17T13:00:14Z</updated>
		
		<summary type="html">&lt;p&gt;Jeu de la corde : Page créée avec « ==photo de l'équipe== 600px  ==Que fait ce projet ? == Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bo... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==photo de l'équipe==&lt;br /&gt;
[[Fichier:Photoenib2018.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
==Que fait ce projet ? ==&lt;br /&gt;
Il s’articule comme un jeu du tir à la corde, avec deux boutons pour le jeu, un bouton d'initialisation , un ruban de led et une carte arduino mini.&lt;br /&gt;
A chaque appuie sur le bouton la led se déplace du coté du joueur. L’adversaire fait de même de son côté.&lt;br /&gt;
But du jeu, mettre la led de son côté.&lt;br /&gt;
Le bouton d'initialisation permet de redémarrer le jeu a zéro.&lt;br /&gt;
&lt;br /&gt;
==Liste des composants==&lt;br /&gt;
&lt;br /&gt;
* 3 boutons poussoir&lt;br /&gt;
* câbles&lt;br /&gt;
* ruban led  (ici 48 led)&lt;br /&gt;
* arduino d1 mini&lt;br /&gt;
* breadboard&lt;br /&gt;
* Câble usb micro usb &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
                               &lt;br /&gt;
                                     BROCHAGE                            &lt;br /&gt;
                                _________________                        &lt;br /&gt;
                               /     D1 mini     \                       &lt;br /&gt;
                              |[ ]RST        TX[ ]|                   &lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|                    &lt;br /&gt;
                              |[ ]D0-16    5-D1[X]| - Button Init         &lt;br /&gt;
                              |[ ]D5-14    4-D2[ ]| - Button 1                    &lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]| - Ruban led           &lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]| - Button 2         &lt;br /&gt;
                              |[ ]D8-15     GND[X]| - masse du ruban         &lt;br /&gt;
                              |[ ]3V3 .      5V[X]| - Alim du ruban         &lt;br /&gt;
                              |       +---+       |                     &lt;br /&gt;
                              |_______|USB|_______|     &lt;br /&gt;
MatÃƒÂ©riel :&lt;br /&gt;
- des fils dupont.&lt;br /&gt;
- un ruban de led&lt;br /&gt;
- un D1 mini&lt;br /&gt;
- ...*/&lt;br /&gt;
//Libraries&lt;br /&gt;
#include &amp;lt;FastLED.h&amp;gt;//https://github.com/FastLED/FastLED&lt;br /&gt;
&lt;br /&gt;
//Constants&lt;br /&gt;
#define NUM_STRIPS 1                   //un seul ruban de led&lt;br /&gt;
#define NUM_LEDS 48                   // nombre de led dans le ruban&lt;br /&gt;
#define BRIGHTNESS 15                // luminositÃ©&lt;br /&gt;
#define LED_TYPE WS2812B            // type de LED&lt;br /&gt;
#define COLOR_ORDER RGB//BRG         //ordre des couleurs&lt;br /&gt;
#define FASTLED_ALLOW_INTERRUPTS 0  &lt;br /&gt;
#define FASTLED_INTERRUPT_RETRY_COUNT 1&lt;br /&gt;
#define FRAMES_PER_SECOND 60&lt;br /&gt;
#define COOLING 55&lt;br /&gt;
#define SPARKING 120&lt;br /&gt;
&lt;br /&gt;
//Parameters&lt;br /&gt;
const int stripPin  = 0;   //ruban led D3&lt;br /&gt;
const int button_1 = 4;  //broche D2&lt;br /&gt;
const int button_2 = 2; //broche D4&lt;br /&gt;
const int button_init = 5;  //broche D1&lt;br /&gt;
int i = 23;      //initialisation de la possition de la led&lt;br /&gt;
bool anti_rebond_1 = true;  //pour prendre le front montant du bouton 1&lt;br /&gt;
bool anti_rebond_2 = true;  //pour prendre le front montant du bouton 2&lt;br /&gt;
&lt;br /&gt;
//Variables&lt;br /&gt;
bool gReverseDirection  = false;&lt;br /&gt;
&lt;br /&gt;
//Objects&lt;br /&gt;
CRGB leds[NUM_LEDS];  //initialisation de tout les led&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  //Init Serial USB&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
  pinMode(button_1,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_2,INPUT_PULLUP);&lt;br /&gt;
  pinMode(button_init,INPUT_PULLUP);&lt;br /&gt;
  Serial.println(F(&amp;quot;Initialize System&amp;quot;));&lt;br /&gt;
  //Init led strips&lt;br /&gt;
  FastLED.addLeds&amp;lt;LED_TYPE, stripPin, COLOR_ORDER&amp;gt;(leds, NUM_LEDS);&lt;br /&gt;
  FastLED.setBrightness(  BRIGHTNESS );&lt;br /&gt;
  //================================================&lt;br /&gt;
  //annimation debut&lt;br /&gt;
  //================================================&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                        //les leds se rejoigne vers la led du milieu&lt;br /&gt;
    leds[j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    leds[NUM_LEDS-1-j].setRGB(15+j*8, 15+j*8, 255-j*8);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){                     //les leds se supprime vers la led du milieu&lt;br /&gt;
    leds[j] = CRGB::Black;&lt;br /&gt;
    leds[NUM_LEDS-1-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);                             //pareil mais dans l'autre sens&lt;br /&gt;
  for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){&lt;br /&gt;
    leds[i+j].setRGB(15+j*8, 255-j*8,15+j*8);&lt;br /&gt;
    leds[i-j].setRGB(15+j*8, 255-j*8, 15+j*8);&lt;br /&gt;
    Serial.println(j);&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  for(int j = NUM_LEDS/2; j &amp;gt; 0; j--){&lt;br /&gt;
    leds[i+j] = CRGB::Black;&lt;br /&gt;
    leds[i-j] = CRGB::Black;&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(25);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  leds[i].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  leds[i+1].setRGB(255, 0, 255);  //allumage de la led du milieu pour le debut&lt;br /&gt;
  FastLED.show();              //affichage sur le ruban de led&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  ledScenario();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ledScenario(void ) { /* function ledScenario */&lt;br /&gt;
  ////LEDS Strip scenario&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton init &lt;br /&gt;
&lt;br /&gt;
  if (digitalRead(button_init)==0){   &lt;br /&gt;
    ini();}&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 1  &lt;br /&gt;
  if (digitalRead(button_1) == 0 ){&lt;br /&gt;
    if (anti_rebond_1 == true){ // verifi si le bouton etait deja allumer ou pas&lt;br /&gt;
    i++;                       &lt;br /&gt;
    anti_rebond_1 = false; &lt;br /&gt;
    if (i&amp;gt;=47){i=47;}    // dans le cas ou la led est arriver au bout&lt;br /&gt;
    leds[i].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    leds[i-1].setRGB(255, 0, 255); //avancer la led&lt;br /&gt;
    &lt;br /&gt;
    if (i==0){leds[47] = CRGB::Black;}  //&lt;br /&gt;
    else {leds[i-2] = CRGB::Black;}    // mets l'aute led eteint&lt;br /&gt;
    FastLED.show();                    // affiche les modification&lt;br /&gt;
    &lt;br /&gt;
    }}&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_1 = true;           // le bouton n'est pas appuiÃ©&lt;br /&gt;
  }&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
  // bouton 2  (mÃªme principe que le bouton 2 mais dans l'autre sens)&lt;br /&gt;
  if (digitalRead(button_2) == 0 ){&lt;br /&gt;
    &lt;br /&gt;
    if (anti_rebond_2 == true){&lt;br /&gt;
    i--;&lt;br /&gt;
    anti_rebond_2 = false;&lt;br /&gt;
    &lt;br /&gt;
    if (i&amp;lt;=0){i=0;}&lt;br /&gt;
    leds[i].setRGB(255, 0, 255);&lt;br /&gt;
    leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    if (i==0){leds[1] = CRGB::Black;}&lt;br /&gt;
    else{leds[i+2] = CRGB::Black;}&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    Serial.println(i);&lt;br /&gt;
    &lt;br /&gt;
    }&lt;br /&gt;
    }&lt;br /&gt;
  else{&lt;br /&gt;
    anti_rebond_2 = true;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //============&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
  // verifie si le joueur 1 a gagnÃ©&lt;br /&gt;
  if (i==47){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 1 et en rouge celui du joueur 2&lt;br /&gt;
      leds[j].setRGB(0, 255, 0);   //vert&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(255, 0, 0); //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 1&amp;quot;);&lt;br /&gt;
    loop_infiny();  //va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
&lt;br /&gt;
  //===========&lt;br /&gt;
    // verifie si le joueur 2 a gagnÃ©&lt;br /&gt;
  if (i==0){&lt;br /&gt;
    for(int j = 0; j &amp;lt; NUM_LEDS/2; j++){  //allume en vert le cotÃ© du joueur 2 et en rouge celui du joueur 1&lt;br /&gt;
      leds[NUM_LEDS-1-j].setRGB(0, 255, 0);//vert&lt;br /&gt;
      leds[j].setRGB(255, 0, 0);           //rouge&lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(50);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.println(&amp;quot;gagner joueur 2&amp;quot;);&lt;br /&gt;
    loop_infiny();//va dans une boucle infini&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
  delay(0.05); //delai pour anti rebond&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
    /*&lt;br /&gt;
    for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
    //leds[i] = CRGB::Goldenrod;&lt;br /&gt;
    leds[i].setRGB(255, 0, 0);&lt;br /&gt;
    &lt;br /&gt;
    FastLED.show();&lt;br /&gt;
    delay(10);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  for (int i = 0; i &amp;lt; NUM_LEDS; i++) {&lt;br /&gt;
   leds[i] = CRGB::Black;&lt;br /&gt;
   FastLED.show();&lt;br /&gt;
   delay(10);&lt;br /&gt;
  }&lt;br /&gt;
  }*/&lt;br /&gt;
}&lt;br /&gt;
void loop_infiny(){&lt;br /&gt;
  while (digitalRead(button_init)){ //tant que le bouton init n'est pas activÃ©&lt;br /&gt;
    delay(1);&lt;br /&gt;
    }&lt;br /&gt;
    ini();//&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void ini(){&lt;br /&gt;
  i = 23;&lt;br /&gt;
   for (int j = 0; j &amp;lt; NUM_LEDS; j++) {  //eteint tout les lumieres et met la led du milieu allumÃ©&lt;br /&gt;
   leds[j] = CRGB::Black;&lt;br /&gt;
    }&lt;br /&gt;
   leds[i].setRGB(255, 0, 255);&lt;br /&gt;
   leds[i+1].setRGB(255, 0, 255);&lt;br /&gt;
  FastLED.show();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Catégories==&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2022]]&lt;/div&gt;</summary>
		<author><name>Jeu de la corde</name></author>	</entry>

	</feed>