Manège à résistances : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Réaliser le projet)
 
(17 révisions intermédiaires par 4 utilisateurs non affichées)
Ligne 14 : Ligne 14 :
 
* [[Utilisateur:Jeremy|Jeremy]]
 
* [[Utilisateur:Jeremy|Jeremy]]
 
* [[Utilisateur:Kaike|Kaike]]
 
* [[Utilisateur:Kaike|Kaike]]
 +
* [[Utilisateur:Elie|Elie]]
 
[[Catégorie:GroupeA]]
 
[[Catégorie:GroupeA]]
 
== Outils et matériaux ==
 
''Quantité, format, mesures…''
 
Des planches de bois pour l'armature externe et pour les tiroir
 
 
''(photo) texte''
 
 
''(photo) texte''
 
 
''(photo) texte''
 
 
...
 
  
 
== Réaliser le projet ==
 
== Réaliser le projet ==
''Comment faire étapes par étapes ?''
 
 
''Il faut que cela soit visuel, intégrer au texte, des photos, des images, des dessins...''
 
 
  
 +
=== Pouvoir choisir un tiroir ===
 +
Le but était de pouvoir à partir de la couleur de la résistance ou de sa valeur trouver son tiroir correspondant.Au début nous étions partis dans l'idée de faire des engrenages , c'est un dire un engrenage qui correspond aux valeur ainsi que un engrenage qui correspond aux couleurs et donc faire 3 jeu de deux engrenages qui correspondraient au deux chiffres significatif des résistances ainsi que leur puissance de dix .Puis au cour du projet pour se simplifier la tâche nous avons décidé de mettre les chiffres et les couleurs sur une même roue donc finalement nous n'avions plu que 3 roues. Pour capter la valeur de la résistance choisit ,nous avions prévu de placer dix résistances dans la roue qui serai alimentait par un fils de cuivre qui remonterait le long de l'arbre de la roue et chaque résistance correspondrait a une couleur et en capteur la valeur de la tension a la sortie de la resistance on aurai pu savoir avec un Arduino quel couleur et donc quel résistances avait été choisit?
 +
<br>[[Fichier:Manége à resistance engrenage.jpg|500px|center]]
 
=== Choisir et retrouver le tiroir de rangement des résistances recherchés ===
 
=== Choisir et retrouver le tiroir de rangement des résistances recherchés ===
  
 +
L'objectif est de pouvoir rapidement trouver un tiroir à résistances en fonction des couleurs ou des valeurs des résistances. Pour ça, nous voulions utiliser un logiciel de dessin en 3D. Malheureusement toute nos tentatives se sont soldé par des échecs.
 +
De plus, pour l'armature nous n'avons pas réussi à le mettre en place parce que nous n'avions pas assez de bois.
  
L'objectif est de pouvoir rapidement trouver un tiroir à résistances en fonction des couleurs ou des valeurs des résistances.
 
 
=== Détection d'une résistance et allumage d'une LED sur le tiroir correspondant ===
 
=== Détection d'une résistance et allumage d'une LED sur le tiroir correspondant ===
 
L'objectif était de pouvoir, en branchant une résistance à l'armoire, trouver automatiquement sa valeur et d'allumer une LED sur le tiroir correspondant afin de ranger la résistance facilement.
 
L'objectif était de pouvoir, en branchant une résistance à l'armoire, trouver automatiquement sa valeur et d'allumer une LED sur le tiroir correspondant afin de ranger la résistance facilement.
Ligne 48 : Ligne 37 :
  
 
Cette partie est assez simple, il suffit de câbler une résistance fixe entre le 5V et une entrée analogique de la carte. On peut ensuite brancher la résistance à mesurer entre cette même entrée et GND.
 
Cette partie est assez simple, il suffit de câbler une résistance fixe entre le 5V et une entrée analogique de la carte. On peut ensuite brancher la résistance à mesurer entre cette même entrée et GND.
Pour le programme, on fait un analogRead() sur l'entrée, et on récupère la valeur en faisait un calcul de pont diviseur.
+
Pour le programme, on fait un analogRead() sur l'entrée, et on récupère la valeur en faisait un calcul de pont diviseur.[[Media:]]
 +
 
 +
Le code arduino:
 +
<code>
 +
int sensorPin = A0;
 +
float sensorValue = 0;
 +
const int divisor = 10000; //valeur de la résistance du pont diviseur en Ohm
 +
float resistor_value = 0; //valeur de la résistance recherchée en Ohm
 +
 
 +
void setup() {
 +
  pinMode(2, OUTPUT);
 +
  Serial.begin(9600);
 +
}
 +
 
 +
void loop() {
 +
  sensorValue = 5 * analogRead(sensorPin) / 1023.0; //on lit la tension et on la ramène en Volt
 +
  if (sensorValue < 5) {
 +
    resistor_value = (divisor * sensorValue) / (5 - sensorValue); // on fait le calcul du pont diviseur
 +
    Serial.println(resistor_value); // affichage de la valeur dans le moniteur série
 +
  }
 +
}</code>
 +
 
 +
==== Contrôler de nombreuses LEDs avec un nombre de sorties limité ====
 +
 
 +
On a donc 14 LEDs à éteindre ou allumer suivant le tiroir que l'on veut indiquer. Or sur la carte arduino UNO à notre disposition il y a 14 sorties dont certaines sont réservées, ce n'est donc pas assez.
  
=== Faire cela ===
+
La première solution pour palier à ce problème consistait à utiliser des démultiplexeurs 8 vers 1 74HC595 qui permettent de contrôler 8 LEDs avec seulement 3 sorties de l'aduino. Ce composant reçoit un octet de données couplé à un signal d'horloge pour définir l'état de ses 8 sorties. Malheureusement ce type de matériel n'était pas disponible.
...
 
  
== Comment ça marche ? ==
+
On a donc trouvé une autre solution en câblant les LEDs sous forme de matrice suivant le schéma suivant:
 +
[[Image:matrice_resistances_enib2017.jpg|500px|center]]
  
=== Observations ===
+
De cette façon, en activant par exemple les sorties 3 et 4 de l'arduino, on allumera la LED en bas à gauche. Le problème de cette solution est qu'on ne peut pas allumer au même moment deux LEDs situées sur une ligne et une colonne différente sans en allumer d'autres.
''Texte + images/photos''
+
Pour palier à cela, on va se servir du phénomène de persistance rétinienne de l’œil humain : en allumant les deux LEDs à tour de rôle, mais en les faisant clignoter très vite, l'observateur aura l'impression que les deux sont allumées en même temps.
  
=== Explications ===
+
Le code arduino pour allumer 2 LEDs différentes suivant cette méthode:
''Etre capable de vulgariser au maximum ces connaissances de façon simple et ludique, afin de les transmettre à un plus grand nombre.
 
''
 
  
''Texte + images/photos''
+
<code>void setup() {
 +
  pinMode(2, OUTPUT);
 +
  pinMode(3, OUTPUT);
 +
  pinMode(4, OUTPUT);
 +
  pinMode(5, OUTPUT);
 +
  pinMode(6, OUTPUT);
 +
  pinMode(7, OUTPUT);
 +
  pinMode(8, OUTPUT);
 +
  pinMode(9, OUTPUT);
 +
  pinMode(10, OUTPUT);
  
=== Plus d'explications ===
+
}
''Entrer dans des explications techniques et scientifiques plus complexes, mais toujours de manière ludique.''
 
  
''Texte + images/photos''
+
void loop() {
 +
  digitalWrite(2, HIGH); //on allume la première LED
 +
  digitalWrite(5, HIGH);
 +
  delay(2);              //pendant 2 millisecondes
 +
  digitalWrite(2, LOW);  //on l'éteint
 +
  digitalWrite(5, LOW);
  
 +
  digitalWrite(3, HIGH); //on allume la seconde LED
 +
  digitalWrite(14, HIGH);
 +
  delay(2);              //pendant 2 millisecondes
 +
  digitalWrite(3, LOW);  //on l'éteint
 +
  digitalWrite(14, LOW);
 +
}</code>
  
== Et dans la vie de tous les jours ? ==
+
[[Image:matrice_leds_montage_arduino_enib2017.jpg|500px|center|thumb|<center>Le montage avec la carte et les LEDs</center>]]
  
''Mettre en avant le lien avec le quotidien.''
+
== Comment ça marche ? ==
  
 +
Notre projet étant plus pratique que ludique pour les Fabriques du Ponant, nous n'avons pas vraiment quelque chose à observer, ni à expliquer.
  
 
== Vous aimerez aussi ==
 
== Vous aimerez aussi ==
 
''Liens vers des projets ou des expériences complémentaires pour mieux comprendre son fonctionnement.''
 
''Liens vers des projets ou des expériences complémentaires pour mieux comprendre son fonctionnement.''
 
 
== Sources et ressources utiles ==
 
''Liens vers les ressources pédagogiques + quelques mots de description si besoin''
 

Version actuelle datée du 26 janvier 2017 à 12:57

Cette page est une fiche écrite dans le cadre de l'Inter Semestre ENIB 2017

Le contenu de cette fiche est en cours de rédaction, elle va s'étoffer pendant tout le mois de janvier !

Le Manège à resistance

« Chapeau » du projet de fabrication numérique :

Un manège à résistance est un outils permettant de ranger des résistance suivant leur valeur. Nous avons penser à toute les fonctionnalité que nous pourrions rajouter pour qu'il soit ludique. Ainsi, nous voulions mettre au début un détecteur de résistance qui aurait allumé une led sur le tiroir correspondant à la valeur de la résistance. Nous voulions aussi mettre un détecteur de tiroir vide ainsi qu'un disque de valeur de résistance.
Tournante.JPG


Auteurs

Ont participé à la rédaction de cette fiche :

Réaliser le projet

Pouvoir choisir un tiroir

Le but était de pouvoir à partir de la couleur de la résistance ou de sa valeur trouver son tiroir correspondant.Au début nous étions partis dans l'idée de faire des engrenages , c'est un dire un engrenage qui correspond aux valeur ainsi que un engrenage qui correspond aux couleurs et donc faire 3 jeu de deux engrenages qui correspondraient au deux chiffres significatif des résistances ainsi que leur puissance de dix .Puis au cour du projet pour se simplifier la tâche nous avons décidé de mettre les chiffres et les couleurs sur une même roue donc finalement nous n'avions plu que 3 roues. Pour capter la valeur de la résistance choisit ,nous avions prévu de placer dix résistances dans la roue qui serai alimentait par un fils de cuivre qui remonterait le long de l'arbre de la roue et chaque résistance correspondrait a une couleur et en capteur la valeur de la tension a la sortie de la resistance on aurai pu savoir avec un Arduino quel couleur et donc quel résistances avait été choisit?


Manége à resistance engrenage.jpg

Choisir et retrouver le tiroir de rangement des résistances recherchés

L'objectif est de pouvoir rapidement trouver un tiroir à résistances en fonction des couleurs ou des valeurs des résistances. Pour ça, nous voulions utiliser un logiciel de dessin en 3D. Malheureusement toute nos tentatives se sont soldé par des échecs. De plus, pour l'armature nous n'avons pas réussi à le mettre en place parce que nous n'avions pas assez de bois.

Détection d'une résistance et allumage d'une LED sur le tiroir correspondant

L'objectif était de pouvoir, en branchant une résistance à l'armoire, trouver automatiquement sa valeur et d'allumer une LED sur le tiroir correspondant afin de ranger la résistance facilement.

Comme l'objectif de base était d'avoir 48 tiroirs, autant de LEDs aurait été compliqué à gérer. Nous sommes donc partis sur l'idée de mettre 14 LEDs, 6 horizontales et 8 verticales: pour désigner un tiroir, on allume les 2 LEDs correspondant à la ligne et la colonne du tiroir.

Pour réaliser tout ça, on va mettre en oeuvre une solution sur la base d'une carte Arduino.

Utiliser l'Arduino comme Ohmmètre

Cette partie est assez simple, il suffit de câbler une résistance fixe entre le 5V et une entrée analogique de la carte. On peut ensuite brancher la résistance à mesurer entre cette même entrée et GND. Pour le programme, on fait un analogRead() sur l'entrée, et on récupère la valeur en faisait un calcul de pont diviseur.[[Media:]]

Le code arduino: int sensorPin = A0; float sensorValue = 0; const int divisor = 10000; //valeur de la résistance du pont diviseur en Ohm float resistor_value = 0; //valeur de la résistance recherchée en Ohm

void setup() {

 pinMode(2, OUTPUT);
 Serial.begin(9600);

}

void loop() {

 sensorValue = 5 * analogRead(sensorPin) / 1023.0; //on lit la tension et on la ramène en Volt
 if (sensorValue < 5) {
   resistor_value = (divisor * sensorValue) / (5 - sensorValue); // on fait le calcul du pont diviseur
   Serial.println(resistor_value); // affichage de la valeur dans le moniteur série
 }

}

Contrôler de nombreuses LEDs avec un nombre de sorties limité

On a donc 14 LEDs à éteindre ou allumer suivant le tiroir que l'on veut indiquer. Or sur la carte arduino UNO à notre disposition il y a 14 sorties dont certaines sont réservées, ce n'est donc pas assez.

La première solution pour palier à ce problème consistait à utiliser des démultiplexeurs 8 vers 1 74HC595 qui permettent de contrôler 8 LEDs avec seulement 3 sorties de l'aduino. Ce composant reçoit un octet de données couplé à un signal d'horloge pour définir l'état de ses 8 sorties. Malheureusement ce type de matériel n'était pas disponible.

On a donc trouvé une autre solution en câblant les LEDs sous forme de matrice suivant le schéma suivant:

Matrice resistances enib2017.jpg

De cette façon, en activant par exemple les sorties 3 et 4 de l'arduino, on allumera la LED en bas à gauche. Le problème de cette solution est qu'on ne peut pas allumer au même moment deux LEDs situées sur une ligne et une colonne différente sans en allumer d'autres. Pour palier à cela, on va se servir du phénomène de persistance rétinienne de l’œil humain : en allumant les deux LEDs à tour de rôle, mais en les faisant clignoter très vite, l'observateur aura l'impression que les deux sont allumées en même temps.

Le code arduino pour allumer 2 LEDs différentes suivant cette méthode:

void setup() {

 pinMode(2, OUTPUT);
 pinMode(3, OUTPUT);
 pinMode(4, OUTPUT);
 pinMode(5, OUTPUT);
 pinMode(6, OUTPUT);
 pinMode(7, OUTPUT);
 pinMode(8, OUTPUT);
 pinMode(9, OUTPUT);
 pinMode(10, OUTPUT);

}

void loop() {

 digitalWrite(2, HIGH); //on allume la première LED
 digitalWrite(5, HIGH);
 delay(2);              //pendant 2 millisecondes
 digitalWrite(2, LOW);  //on l'éteint
 digitalWrite(5, LOW);
 digitalWrite(3, HIGH); //on allume la seconde LED
 digitalWrite(14, HIGH);
 delay(2);              //pendant 2 millisecondes
 digitalWrite(3, LOW);  //on l'éteint
 digitalWrite(14, LOW);

}

Le montage avec la carte et les LEDs

Comment ça marche ?

Notre projet étant plus pratique que ludique pour les Fabriques du Ponant, nous n'avons pas vraiment quelque chose à observer, ni à expliquer.

Vous aimerez aussi

Liens vers des projets ou des expériences complémentaires pour mieux comprendre son fonctionnement.