Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
|
wiki:projets:capteur_de_particules_fines [2015/04/02 09:31] plume_louis |
wiki:projets:capteur_de_particules_fines [2020/10/05 14:39] (Version actuelle) |
====== CONCEPTION D'UN CAPTEUR DE PARTICULES FINES ====== | ====== CONCEPTION D'UN CAPTEUR DE PARTICULES FINES ====== |
| |
**OBJECTIF** | **OBJECTIF** |
| |
Le but de ce projet est de concevoir un capteur embarqué de particules fines, low-cost. Nous avons choisi pour ce faire de nous appuyer sur la diffusion lumineuse. | Le but de ce projet est de concevoir un capteur embarqué de particules fines, low-cost. Nous avons choisi pour ce faire de nous appuyer sur la diffusion lumineuse. |
| |
**LES PARTICULES FINES** | **LES PARTICULES FINES** |
| |
//**Qu’est que c’est ?**// | //**Qu’est que c’est ?**// |
Ces particules sont susceptibles de diffuser la lumière dans toutes les directions. Dans le cas général, cette diffusion est principalement fonction de leur taille et de leur nombre. Pour une particule solitaire, il est relativement facile de remonter à sa taille à partir de la mesure du flux diffusé puisque celui-ci dépend de son diamètre à la puissance 6 pour les particules plus petites que la longueur d'onde utilisée (diffusion de Rayleigh) et de son diamètre à la puissance 2 pour les particules plus grandes (diffusion de Mie). En revanche, lorsqu'un grand nombre de particules fines se trouve dans le volume de mesure en même temps, il devient beaucoup plus difficile de déduire du flux reçu le nombre et la taille des particules l'ayant engendré. Toutefois, une astuce consiste à réaliser des mesures dans plusieurs directions pour subdiviser la distribution de particules en autant de sous-catégories. | Ces particules sont susceptibles de diffuser la lumière dans toutes les directions. Dans le cas général, cette diffusion est principalement fonction de leur taille et de leur nombre. Pour une particule solitaire, il est relativement facile de remonter à sa taille à partir de la mesure du flux diffusé puisque celui-ci dépend de son diamètre à la puissance 6 pour les particules plus petites que la longueur d'onde utilisée (diffusion de Rayleigh) et de son diamètre à la puissance 2 pour les particules plus grandes (diffusion de Mie). En revanche, lorsqu'un grand nombre de particules fines se trouve dans le volume de mesure en même temps, il devient beaucoup plus difficile de déduire du flux reçu le nombre et la taille des particules l'ayant engendré. Toutefois, une astuce consiste à réaliser des mesures dans plusieurs directions pour subdiviser la distribution de particules en autant de sous-catégories. |
| |
**LES CAPTEURS COURANTS** | **LES CAPTEURS COURANTS** |
| |
Certains capteurs de ce type existent déjà sur le marché. On peut distinguer 2 grandes catégories : | Certains capteurs de ce type existent déjà sur le marché. On peut distinguer 2 grandes catégories : |
| |
| |
**PROTOTYPE #1** | **reverse engineering : SHARP GP2Y1010** |
| |
**principe** | Afin de mettre au point notre propre détecteur de particules fines, nous avons commencé par une phase de reverse engineering sur 2 capteurs low-cost du marché : le SHARP GP2Y1010 et le SHINYEI PPD42NS. |
| Ci-dessous les photos du Sharp désossé avec légendes. |
| |
| {{ :wiki:projets:plume_sharp_all.png?400 |plume_sharp_all}} |
| {{ :wiki:projets:plume_sharp_scattered.jpg?400 |plume_sharp_scattered}} |
| {{ :wiki:projets:plume_sharp_circuit.jpg?400 |plume_sharp_circuit}} |
| {{ :wiki:projets:plume_sharp_casing.jpg?400 |plume_sharp_casing}} |
| {{ :wiki:projets:plume_sharp_optics.jpg?400 |plume_sharp_optics}} |
| |
| Le faisceau collimaté de l'émetteur est diffusé par les particules fines. Le flux diffusé par les particules situées dans la champ optique collimaté du récepteur à un certain angle constitue la mesure.
En pratique, ce flux est très faible. Il est le paramètre contraignant le dispositif. |
| |
| <code=cpp> |
| /* |
| Interface to Sharp GP2Y1010AU0F Particle Sensor |
| Program by Christopher Nafis |
| Written April 2012 |
| |
| http://www.sparkfun.com/datasheets/Sensors/gp2y1010au_e.pdf |
| http://sensorapp.net/?p=479 |
| |
| Sharp pin 1 (V-LED) => 5V (connected to 150ohm resister) |
| Sharp pin 2 (LED-GND) => Arduino GND pin |
| Sharp pin 3 (LED) => Arduino pin 2 |
| Sharp pin 4 (S-GND) => Arduino GND pin |
| Sharp pin 5 (Vo) => Arduino A0 pin |
| Sharp pin 6 (Vcc) => 5V |
| */ |
| #include <SPI.h> |
| #include <Ethernet.h> |
| #include <stdlib.h> |
| |
| int dustPin=0; |
| int ledPower=2; |
| int delayTime=280; |
| int delayTime2=40; |
| float offTime=9680; |
| |
| int dustVal=0; |
| int i=0; |
| float ppm=0; |
| |
| void setup(){ |
| Serial.begin(9600); |
| pinMode(ledPower,OUTPUT); |
| i=0; |
| ppm =0; |
| } |
| |
| void loop(){ |
| i=i+1; |
| digitalWrite(ledPower,LOW); // power on the LED |
| delayMicroseconds(delayTime); |
| dustVal=analogRead(dustPin); // read the dust value |
| ppm = ppm+dustVal; |
| delayMicroseconds(delayTime2); |
| digitalWrite(ledPower,HIGH); // turn the LED off |
| delayMicroseconds(offTime); |
| } |
| </code> |
| |
| |
| **reverse engineering : SHINYEI PPD42NS** |
| {{ :wiki:projets:plume_shinyei_all.jpg?400 |plume_shinyei_all}} |
| {{ :wiki:projets:plume_shinyei_scattered.png?400 |plume_shinyei_scattered (aqicn.org)}} |
| |
| |
| **PROTOTYPE #1** |
| |
| **principe** |
Le faisceau collimaté de l'émetteur est diffusé par les particules fines. Le flux diffusé par les particules situées dans la champ optique collimaté du récepteur à un certain angle constitue la mesure. En raison de son grand diamètre, de nombreuses particules passent dans le faisceau en même temps et le signal résultant est donc la somme de toutes les contributions individuelles des particules. Il est impossible de remonter à une classification des particules fines qui ont généré le flux par tailles à l'aide d'une unique mesure. En revanche, si on s'intéresse au flux émis dans plusieurs directions on va pouvoir classer les particules en autant de catégories de taille grâce à la théorie de Mie qui nous dit que la diffusion par une particule n'est d'une part pas uniforme dans l'espace et d'autre part dépend fortement de la taille de la particule.
En pratique, ce flux est très faible. Il est le paramètre contraignant le dispositif. | Le faisceau collimaté de l'émetteur est diffusé par les particules fines. Le flux diffusé par les particules situées dans la champ optique collimaté du récepteur à un certain angle constitue la mesure. En raison de son grand diamètre, de nombreuses particules passent dans le faisceau en même temps et le signal résultant est donc la somme de toutes les contributions individuelles des particules. Il est impossible de remonter à une classification des particules fines qui ont généré le flux par tailles à l'aide d'une unique mesure. En revanche, si on s'intéresse au flux émis dans plusieurs directions on va pouvoir classer les particules en autant de catégories de taille grâce à la théorie de Mie qui nous dit que la diffusion par une particule n'est d'une part pas uniforme dans l'espace et d'autre part dépend fortement de la taille de la particule.
En pratique, ce flux est très faible. Il est le paramètre contraignant le dispositif. |
Selon le logiciel Mieplot, l'énergie diffusée dans la direction de 52° par exemple (angle du Sharp GP2Y1010AU0F) par une seule particule opaque de 1µm à 10µm est situé entre 0.1 µW/m² et 6.5 µW/m². | Selon le logiciel Mieplot, l'énergie diffusée dans la direction de 52° par exemple (angle du Sharp GP2Y1010AU0F) par une seule particule opaque de 1µm à 10µm est situé entre 0.1 µW/m² et 6.5 µW/m². |
| |
**caractéristiques optiques** | **caractéristiques optiques** |
* IR (~880nm) | * IR (~880nm) |
* faisceau collimaté avec lentille (surface ~95mm2) | * faisceau collimaté avec lentille (surface ~95mm2) |
| |
**matériel** | **matériel** |
* émetteur : SFH421 (880nm) | * émetteur : SFH421 (880nm) |
* récepteur : QSE114 (880nm) | * récepteur : QSE114 (880nm) |
* AO : TL081 | * AO : TL081 |
| |
**circuit** | **circuit** |
{{ :wiki:projets:circuit.jpeg?200 |circuit}} | {{ :wiki:projets:circuit.jpeg?200 |circuit}} |
| |
**montage** | **montage** |
{{ :wiki:projets:vue_ensemble.jpg?300 |vue d'ensemble}} | {{ :wiki:projets:vue_ensemble.jpg?300 |vue d'ensemble}} |
{{ :wiki:projets:vue_haut.jpg?300 |vue de haut}} | {{ :wiki:projets:vue_haut.jpg?300 |vue de haut}} |
| |
| |
**liste des impressions 3D** | **liste des impressions 3D** |
| |
**PROTOTYPE #2** | **PROTOTYPE #2** |
| |
**principe** | **principe** |
L'intensité lumineuse diffusée par les particules de petite taille n'étant pas suffisante pour être détectée par nos photodiodes, nous avons décidé de réaliser un deuxième montage utilisant cette fois un laser d'une puissance de l'ordre de 1mW. | L'intensité lumineuse diffusée par les particules de petite taille n'étant pas suffisante pour être détectée par nos photodiodes, nous avons décidé de réaliser un deuxième montage utilisant cette fois un laser d'une puissance de l'ordre de 1mW. |
| |
**caractéristiques optiques** | **caractéristiques optiques** |
* rouge (~650nm) | * rouge (~650nm) |
* faisceau laser collimaté avec lentille intégrée (surface ~3mm2) | * faisceau laser collimaté avec lentille intégrée (surface ~3mm2) |
| |
**matériel** | **matériel** |
* émetteur : laser low-cost 5V ([[https://hackspark.fr/fr/5v-low-cost-laser-pointer-red-point.html|commander sur Hackspark]]) | * émetteur : laser low-cost 5V ([[https://hackspark.fr/fr/5v-low-cost-laser-pointer-red-point.html|commander sur Hackspark]]) |
* récepteur : OPT101, TSL14 | * récepteur : OPT101, TSL14 |
* AO : OPA344 (alim 5V) | * AO : OPA344 (alim 5V) |
| |
**montage** | **montage** |
{{ :wiki:projets:montage_2.jpg?500 |vue d'ensemble}} | {{ :wiki:projets:montage_2.jpg?500 |vue d'ensemble}} |
| {{ :wiki:projets:circuit_tsl14.png?200 |circuit_TSL14}} |
| {{ :wiki:projets:circuit_opt101.png?400 |circuit_OPT101}} |
| |
**observations** | **observations** |
{{ :wiki:projets:laser_tsl14_aref1v1.png?400 |détection de particules fines}} | {{ :wiki:projets:laser_tsl14_aref1v1.png?400 |détection de particules fines}} |
Ci-dessus se trouve un graphe temporel de la réponse de la photodiode en présence de fumée légère (générée par la combustion d'un bâton d'allumette). Chaque pic "fin" correspond au passage d'une particule fine et les pics plus larges correspondent au passage d'une //plume// de fumée dans le faisceau laser : c'est donc un amas de particules très très fines ~0.01µm qui passe dans le faisceau, la réponse individuelle de chaque particule est très faible mais leur grand nombre rend le signal visible. | Ci-dessus se trouve un graphe temporel de la réponse de la photodiode en présence de fumée légère (générée par la combustion d'un bâton d'allumette). Chaque pic "fin" correspond au passage d'une particule fine et les pics plus larges correspondent au passage d'une //plume// de fumée dans le faisceau laser : c'est donc un amas de particules très très fines ~0.01µm qui passe dans le faisceau, la réponse individuelle de chaque particule est très faible mais leur grand nombre rend le signal visible. |
| |
**PROTOTYPE #3** | **PROTOTYPE #3** |
| |
| **principe** |
| Le montage précédent ne nous permet que de détecter des particules relativement grosses. En effet, le bruit dû au montage lui-même (fils électriques notamment) semble étouffer les signaux plus faibles. Pour cela, nous avons décidé de réaliser un circuit similaire mais sur PCB grâce à la CIF du PMClab. Dans le même temps, nous avons tenté d'amplifier plus fortement le signal émis par la photodiode pour détecter de plus faibles variations. |
| |
| ** Amplification du signal émis par la photodiode** |
| |
| Nous utilisons pour cela un montage classique convertissant ce courant en tension, montage appelé généralement montage à transimpédance. L'idée de ce montage est d'injecter le courant de sortie (Iin) de la photodiode dans un AO et de boucler la sortie d'un AO sur son entrée - à l'aide d'une résistance (Rf), ce qui permet d'obtenir une tension de sortie (Vout) de l'AO: Vout = - (Rf * Iin). |
| Pour effectuer ce montage, nous avons essayer de suivre les conseils de l'article "What's All This Transimpedance Amplifier Stuff, Anyhow?" de Bob Pease qui indique comment effectuer un montage à transimpédance fonctionnel ([[http://electronicdesign.com/analog/whats-all-transimpedance-amplifier-stuff-anyhow-part-1|article concerné]]). |
| |
| Nous avons alors tenté d'effectuer le montage, en utilisant comme AO l'OPA344 ([[http://www.ti.com/lit/ds/symlink/opa344.pdf|datasheet]]. Nous avons choisi cet AO car il fonctionne en 5V, ce qui était une contrainte dans notre projet. |
| Malheureusement, la tension lue en sortie de l'AO n'était pas satisfaisante, et présentant une forte oscillation. En continuant la lecture de l'article, nous avons compris que cela était probablement du à la capacité interne de l'AO. Pour corriger ce phénomène, il est alors nécessaire de mettre une capacité en parallèle de la résistance. Le montage se trouve ci-dessous. |
| {{ :wiki:projets:transimpedance.gif?400 |}} |
| |
| Nous avons donc calculé les valeurs théoriques de la résistance et de la capacité à utiliser dans ce montage selon l'article, à partir des valeurs théoriques de la résistance interne et de la capacité interne trouvées sur les données du constructeur. Malheureusement, cela n'a pas amélioré la tension lue en sortie de l'AO, le signal présentant encore une oscillation. |
| Pour améliorer ce montage, nous avons alors pensé à mettre une capacité variable, en pensant que le problème pouvait être dû aux imprécisions sur la valeur de la résistance interne et de la capacité interne de l'AO. Nous pouvons faire varier cette capacité jusqu'à obtenir un signal satisfaisant puis mesures la capacité correspondante. Malheureusement, nous n'avons toujours pas réussi à obtenir de signal satisfaisant en sortie de l'AO. En revanche, ayant recherché différentes façons de mesurer une capacité, nous souhaitons présenter brièvement ci-dessous une méthode très rapide. |
| |
| |
| **Mesure de la capacité d'un condensateur** |
| |
**principe** | Il existe différentes façons de mesurer la capacité d'un condensateur. L'une des plus répandues est celle apprise dès le lycée consistant à étudier le temps de réponse de charge ou de décharge d'un montage RC, et de remonter alors à la valeur de la capacité avec une résistance connue. Cette méthode, souvent peu précise dans le cadre d'un laboratoire de lycée, peut en revanche être appliquée facilement à l'aide d'un arduino s'occupant à la fois de gérer la charge-décharge du circuit RC et du traitement de la réponse obtenue. La démarche et le code arduino sont disponibles sur le tutoriel d'Arduino [[http://arduino.cc/en/Tutorial/CapacitanceMeter|CapacitanceMeter]]. |
Le montage précédent ne nous permet que de détecter des particules relativement grosses. En effet, le bruit dû au montage lui-même (fils électriques notamment) semble étouffer les signaux plus faibles. Pour cela, nous avons décidé de réaliser un circuit similaire mais sur PCB grâce à la CIF du PMClab. | |
| |
**circuit** | **circuit** |
{{ :wiki:projets:plumepm_circuit.png?200 |}} | |
| |
**photos du circuit** | **photos du circuit** |
{{ :wiki:projets:proto3_1.jpg?400 |}} | |
{{ :wiki:projets:proto3_2.jpg?400 |}} | {{ :wiki:projets:proto3_2.jpg?400 |}} |
{{ :wiki:projets:proto3_3.jpg?400 |}} | {{ :wiki:projets:proto3_3.jpg?400 |}} |
| |