Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
|
wiki:projets:rfid:ethylometre:journal-de-bord [2016/03/16 10:39] younes |
wiki:projets:rfid:ethylometre:journal-de-bord [2016/12/09 15:15] (Version actuelle) 132.227.118.145 ↷ Liens modifiés en raison d'un déplacement. |
==== Journal de bord ==== | ====== Journal de bord ====== |
__**07/02**__: | |
* Création du groupe | |
| |
**__10/02__**: | |
* Choix du projet: nous décidons de créer un éthylomètre, et nous commençons nos recherches sur le wiki pour nous inspirer des groupes qui avaient déjà réalisé ce projet. | |
| |
**__17/02__**: | |
* Nous nous réunissons pour décider de la liste du matériel nécessaire à la construction de l'éthylomètre. | |
* Nous décidons que pour l'affichage, nous allons utiliser deux choses: des leds allant du vert au rouge, et un 7 segment indiquant le taux d'alcool dans le sang. | |
* Pour le capteur MQ3, nous pensons à acheter un bocal hermétique en verre, dans lequel on placerait le capteur. Cela permettrait de garder l'air soufflé dans le bocal pendant plus longtemps, pour que les mesures ne soient pas fausses. On s'inspirera de cette idée: [[http://nootropicdesign.com/projectlab/2010/09/17/arduino-breathalyzer/]] | |
| |
**__24/02__**: | [[wiki:projets:rfid:ethylometre:semaine1|Semaine 1 : 08-14 février]] |
* Réunion avec les référents du fablab | |
* Répartition des tâches par ordre de préférence | |
* Nous avons pensé à acheter ce type de led:[[https://www.adafruit.com/products/1426|NeoPixel Stick - 8 x 5050 RGB LED ]] qui afficherait un dégradé de couleur du vert au rouge en fonction du taux d'alcool | |
* Pour calibrer le capteur: se rendre en salle de chimie pour utiliser de l'éthanol et calculer le taux d'éthanol gazeux en fonction d'un volume d'air donné | |
| |
**__29/02__** : | [[wiki:projets:rfid:ethylometre:semaine2|Semaine 2 : 15-21 février]] |
* Le matériel requis vient d'être commandé:[[http://www.electrodragon.com/product/mq-3-alcohol-ethanol-gas-sensor-module/#prettyPhoto|un capteur MQ-3]], [[https://www.sparkfun.com/products/12661|un ruban de led RGB]], [[https://www.sparkfun.com/products/11441|un afficheur 4 chiffres 7-segments]] | |
| |
==Calibration du capteur== | [[wiki:projets:rfid:ethylometre:semaine3|Semaine 3 : 22-28 février]] |
Afin que le capteur MQ-3 que nous venons de commander puisse déterminer le nombre de grammes d’alcool et pour réduire les variances dues à la température et à l’humidité, nous allons devoir le calibrer et l’isoler dans un compartiment aux gaz connus. La notice du capteur MQ-3 conseille pour la calibration de placer le capteur dans de l’air composé de 0.4mg/L de concentration massique en alcool. Comme pour les autres Ethylotest, nous allons utiliser de l’éthanol donc il nous faut créer un environnement composé à 0.4mg/L d’éthanol. Or là se pose le problème du comment sachant que nous ne possédons pas de solution d’éthanol pur et toute solution aqueuse d’éthanol modifiera l’humidité de l’environnement (le capteur est aussi sensible à l’humidité comme le montre le graphique ci-dessous). Avant de réaliser l’expérience, nous allons continuer nos recherches et essayer de contacter les responsables Chimie au Fablab pour savoir si elles connaissent une solution à ce problème. | |
| |
{{:wiki:projets:graphique_sensibilite.png|}} | [[wiki:projets:rfid:ethylometre:semaine4|Semaine 4 : 29 février - 6 mars]] |
| |
**__01/03__** : | [[wiki:projets:rfid:ethylometre:semaine5|Semaine 5 : 07-13 mars]] |
* Montage électronique du 7 segments effectué sur le logiciel PROTEUS ISIS, pour mieux se rendre compte de comment fonctionne un 7 segments. J'ai aussi essayé d'utiliser KiCad mais je ne retrouve pas certains composants comme le 74HC192 par exemple. Faut-il télécharger d'autres bibliothèques? | |
| |
{{:wiki:projets:schema_montage_7seg.png|}} | [[wiki:projets:rfid:ethylometre:semaine6|Semaine 6 : 14-20 mars]] |
| |
* Entrainement à la programmation de Leds sur Arduino //(impossible de partager le programme directement sur le wiki ?)// | [[wiki:projets:rfid:ethylometre:semaine7|Semaine 7 : 21-27 mars]] |
| |
* Pour le bocal hermétique en verre : trouver comment faire pour garder l'air à l'intérieur tout en pouvant par la suite réussir à l'expulser facilement. | [[wiki:projets:rfid:ethylometre:semaine8|Semaine 8 : 28 mars - 3 avril]] |
| |
**__02/03__**: | [[wiki:projets:rfid:ethylometre:semaine9|Semaine 9 : 4-10 avril]] |
* Conversion éthanol dans l'air / éthanol dans le sang (taux donné par la Sécurité Routière de Luxembourg [[http://www.msr.lu/mmp/online/website/content/fiches_pedagogiques/biologie/192/index_FR.html | ici]] La conversion est de 2x10^3 (passage de mg d'alcool dans l'air à g d'alcool dans le sang) | |
| |
* Idée de protocole de tests pour l'étalonnage : à l'aide de la masse volumique de l'éthanol (connue) nous ferons des tests avec différentes masses d'éthanol afin de tester les valeurs données par le capteur (le tout à la même température). Ensuite nous testerons avec une certaine masse d'alcool fixe, avec différentes températures afin de voir l'influence de ce facteur. Idée des valeurs à tester : 0.0mg/L; 0.10mg/L (=0.2g/L d'alcool dans le sang); 0.25mg/L (=0.5g/L dans le sang); 0.5mg/L; 0.75mg/L; 1.00mg/L: (1.5mg/L); 2.0mg/L | [[wiki:projets:rfid:ethylometre:semaine10|Semaine 10 : 11-17 avril]] |
**Problème** : faire en sorte que l'éthanol évaporé pour le test ne sorte pas de la bouteille pour ne pas diminuer la concentration dans le récipient. | |
| |
* Tests de branchement en utilisant le logiciel 123D Circuits pour se familiariser à l'utilisation du 7-segment | |
{{:wiki:projets:ethylometre:20140502_sevseg_display.jpg|}} | |
| |
* **Tests MQ-3** (Jeremy TOUBOUL, Younès CHEFOU : 2h) | |
| |
Nous avons commencé les premiers tests sur le capteur MQ-3, le but était de réaliser des branchements corrects avec l’Arduino Uno et de vérifier s’il y avait bien une réaction lorsque le capteur était en présence d’alcool. | |
| |
{{:wiki:projets:ethylometre:schema_montage.png|}} {{:wiki:projets:ethylometre:20160302_165440.jpg|}} | |
{{ :wiki:projets:ethylometre:2016-03-02_17.33.42.jpg?300 |}} | |
| |
Donc après avoir réalisé le montage, nous avons soufflé dans le capteur pour voir si la valeur changeait bien mais cela nous a aussi permis de mettre en évidence les informations fournies par la notice du capteur, ce dernier est très sensible à la température. En faisant varier notre façon de souffler (souffle chaud, souffle froid), on obtient des valeurs différentes pour la même personne. Cela pourra poser problème par la suite car le MQ-3 chauffe au fil du temps. | |
| |
{{:wiki:projets:ethylometre:tests_signal_mq3.png|}} | |
| |
Ensuite, nous avons testé le MQ-3 avec de l’alcool à 90° : | |
Cela donne une valeur de « 1024 », l’alcool à 90 étant vraiment concentré, « 1024 » est probablement la limite que peut afficher le capteur. | |
| |
{{:wiki:projets:ethylometre:tests_signal_mq3_alcool_90_.png|}} | |
| |
Dernier détail important à noter est la valeur que l'on a au départ lorsque le capteur est à l'air libre et la sensiblité du capteur va dépendre de la résistance choisie dans le montage. Il semblerait que plus la résistance est faible, plus la valeur stable de départ est basse. | |
| |
Il est important de noter que le capteur, après contact avec de l'air chargé en alcool, ne revient pas à sa valeur de base tout de suite. Après chronométrage, il s'avère que ce temps d'adaptation est d'environ 30 secondes. Il faudra donc compter au moins 30 secondes entre chaque test, que ce soit pour l'étalonnage ou l'utilisation de l'éthylotest. | |
De plus, il s'avère que la résistance préconisée dans la datasheet du MQ3 n'est pas adapté. 200K Ohms est trop, nous avons une valeur de base d'environ 900 sur la valeur maximale de 1021. Nous avons testé avec des résistances de l'ordre de 15K Ohms, cela laisse une plus grande marge (on commence avec une valeur de base d'environ 400). Cependant le fait de souffler sur le capteur produit un pic non négligeable (que ce soit de l'air froid ou chaud). | |
Le capteur réagit bien à l'alcool (nous l'avons placé devant une bouteille d'alcool à 90°). | |
Lors des tests plus précis, il faudra tester avec différentes résistances afin de voir laquelle est la plus adaptée. Ou alors un système de résistance où l'on peut contrôler cette valeur. | |
| |
| |
| |
**__03/03__** (Noé Sandoz & Jérémy Touboul): | |
| |
* Deuxième test avec le MQ3 au FabLab. Nous avons eu quelques problèmes avec le code. La veille nous avions prit un code sur internet pour afficher les données reçues par le MQ3. Il faut apparemment que dans le code il y est une ligne //Serial.begin(9600)// sinon les données n'apparaissent pas. | |
De plus, nous avons vu qu'avec une résistance de 4.7K Ohms, la valeur de base est de 40 sur 1021, et le capteur semble moins sensible au simple souffle. | |
Voici le [[wiki:projets:ethylometre:code| code ]] à utiliser | |
| |
**__04/03__** (Josselin Lecomte): | |
* Premier test de l'afficheur 7 segments 4 chiffres. J'ai rencontré quelques problèmes au niveaux des branchements étant donné qu'il y a plusieurs types d'afficheurs et qu'ils ne se branchent pas de la même façon.Je n'ai aussi pas réussi à allumer le premier chiffre, je ne sait pas si il s'agit d'un problème au niveau du matériel, des branchements ou du code. Le code en lui même est assez similaire à celui qu'on pourrait utiliser pour contrôler des leds, il suffit d'écrire une ligne par secteur que l'on veut allumer et cela allume chacun des 4 chiffres de l'afficheur, car il ne peut pas afficher des chiffres différents en même temps. Pour écrire des nombres, il faut demander à l'afficheur de n'allumer qu'un seul chiffre avec un délai rapide, on peut alors afficher un chiffre différent sur chaque segments en les faisant clignoter. | |
{{ :wiki:projets:ethylometre:imag02755.jpg?200 |}} | |
| |
**__07/03__** (Angelina Soares, Younès Chefou, Josselin Lecomte/ 1h): | |
* Second test de l'afficheur 7 segments 4 chiffres. Le précédent problème a été résolu, il s'agissait tout simplement du fil reliant le premier chiffre à la carte arduino qui était défectueux et qui empêchait donc la mise sous tension de celui-ci. De plus, nous avons trouvé une bibliothèque arduino permettant d'afficher n'importe quel nombre seulement en le rentrant dans le code et en plaçant la virgule ([[https://docs.google.com/file/d/0Bwrp4uluZCpNdE9oWTY0M3BncTA/edit|lien]]). Nous pouvons donc maintenant utiliser l'afficheur pour afficher les valeurs que nous renverra le capteur mq3 modifiées pour avoir l'alcoolémie réelle. | |
| |
{{:wiki:projets:ethylometre:12432701_1001188496628587_623379843_o.jpg|}} | |
| |
<code> | |
// Include library found at | |
// https://docs.google.com/file/d/0Bwrp4uluZCpNdE9oWTY0M3BncTA/edit | |
#include "SevSeg.h" | |
| |
//Create an instance of the object. | |
SevSeg sevseg; | |
| |
void setup() { | |
// Set up pins | |
// Arguments : | |
// First 0 is for common cathode | |
// Following 0 to 11 numbers are for Arduino pins | |
// connected to display in the following order | |
// 1,2,3,4,A,B,C,D,E,F,G,DP | |
sevseg.Begin(0,2,3,4,5,6,7,8,9,10,11,12,13); | |
} | |
| |
void loop() { | |
// Prepare number to display, and dot position | |
// (0 to 3, other number means no dot) | |
sevseg.NewNum(2225,1); | |
// Display number | |
sevseg.PrintOutput(); | |
// To maintain display with this wiring, | |
// we are forced to loop over those commands rapidly | |
} | |
</code> | |
| |
| |
**__09/03__** (Angelina Soares, Younès Chefou, Josselin Lecomte, Noé Sandoz, Jérémy Touboul, Maxime Sacilé, Alba Espagnon Ibañez / 1h): | |
* Réalisation du montage et du premier programme reliant l'envoie des données du MQ-3 vers l'afficheur 7 segments | |
| |
{{:wiki:projets:ethylometre:img_20160309_105929.jpg|}} | |
| |
* Le programme permet d'afficher les valeurs analogiques, que renvoie le capteur, sur l'afficheur. Il faudra rajouter une conversion de ces valeurs dans le programme pour avoir le taux d'alcool dans le sang, mais ce programme permet de valider le fonctionnement du montage. | |
| |
{{:wiki:projets:ethylometre:vid_20160309_110040.mp4|}} {{:wiki:projets:ethylometre:mq3_7seg.mp4|}} | |
| |
* En mettant le capteur MQ-3 en contact avec les vapeurs d'alcool à 90° la valeur sur l'afficheur 7 segment augmente rapidement (de environ 200 à plus de 900) puis diminue progressivement jusqu'à ça valeur d'origine. | |
* Nous avons ensuite changé le code pour permettre une lecture plus facile, au lieu d'afficher toutes les valeurs envoyées par le capteur MQ3, nous affichons la valeur maximum prise sur une durée de 5 secondes, et nous actualisons cette valeur toutes les 5 secondes. | |
* A ce point, toute la partie affichage est finie ainsi que la partie acquisition. Il nous reste maintenant à faire l'étalonnage, la programmation des leds, et finalement l'assemblage. | |
| |
**__12/03__** (Angelina Soares, Alba Espagnon) | |
| |
* Schéma du boitier final espéré | |
* Achat de la chambre à air | |
{{:wiki:projets:ethylometre:boitier.png?500|}} | |
| |
| |
**__14/03__** (Josselin Lecomte, Alba Espagnon) | |
| |
* Nous sommes allés au fablab pour essayer de programmer les leds. Nous avons emprunté une bande de leds et nous l'avons branchée à l'arduino sur le montage que l'on avait fait, avec le 7 segment et le MQ3. Nous avons réussi à les allumer, avec un dégradé du vert au rouge et avec une fonction "rainbow" (voir les vidéos). | |
* Nous avons rencontré un problème au moment de faire le lien entre les valeurs qu'affichaient le 7 segment et les leds: l'objectif est que plus le taux d'alcool affiché est élevé, plus les leds s'allument vers le rouge. Or, quand on lance le programme, les valeurs mesurées par le MQ3 s'affichent bien sur le 7segment mais les leds ne s'allument pas. Nous allons donc tenter de résoudre ce problème. | |
| |
{{:wiki:projets:ethylometre:led.mp4|}} | |
| |
* Code: | |
<code> | |
#include <Adafruit_NeoPixel.h> // Bibliothèque qui gère l'affichage des leds | |
#ifdef __AVR__ | |
#include <avr/power.h> | |
#endif | |
#define PIN 1 // Pin utilisé par le strip de leds | |
#include "SevSeg.h" // Bibliothèque qui gère l'affichage du 7 segment | |
SevSeg sevseg; | |
// Parametre 1 = nombre de pixels du strip | |
// Parameter 2 = pin Arduino | |
// Parameter 3 = type de pixels | |
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRB + NEO_KHZ800); | |
int i = 0; | |
int timer = millis(); | |
int j = 0; | |
int r = 0; | |
int g = 255; | |
| |
void setup() { | |
strip.begin(); // Initialise le strip de leds | |
strip.show(); // Eteint tous les pixels | |
sevseg.Begin(0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13); // Déclaration des pins du 7 segment | |
} | |
| |
void loop() { | |
sevseg.NewNum(555, 5); // Entrer le nombre à afficher et la place de la virgule | |
sevseg.PrintOutput(); | |
strip.setPixelColor(i, r, g, 0); // Entrer la led à allumer ainsi que sa couleur en RGB | |
strip.show(); | |
i++; | |
r = r + 35; // Variable qui gère le niveau de rouge pour un dégradé | |
g = g - 35; // Variable qui gère le niveau de vert pour un dégradé | |
while (timer < 200) { // Utilisation de la millis pour ne pas éteindre | |
timer = millis() - j * 200; // le 7 segment à chaque delay | |
sevseg.NewNum(5555, 5); | |
sevseg.PrintOutput(); | |
} | |
timer = timer - 200; | |
j++; | |
} | |
</code> | |
| |
{{:wiki:projets:ethylometre:rainbow.mp4|}} | |
| |
* [[wiki:projets:ethylometre|Présentation]] | * [[wiki:projets:ethylometre|Présentation]] |
* [[wiki:projets:ethylometre:materiel|Matériel]] | * [[wiki:projets:rfid:ethylometre:materiel|Matériel]] |
* [[wiki:projets:ethylometre:liens|Liens]] | * [[wiki:projets:rfid:ethylometre:liens|Liens] |