Compteur Geiger / Dosimètre et Arduino
Olduvaï :: Faire face aux situations de crise (réservé aux membres s'étant présentés) :: Matériel, outils divers, vêtements & accessoires (les trouver, les fabriquer, les utiliser, etc) :: Matériel électronique & informatique
Page 1 sur 1
Compteur Geiger / Dosimètre et Arduino
Salut à tous,
j'ai enfin trouvé un peu de temps pour lancer ce nouveau sujet sur les compteurs geiger à mi chemin entre le DIY et la programmation. Le but est de simplifier au maximum l'électronique avec ce qui peut être traité par un programme afin de rendre le projet beaucoup plus accessible.
Aujourd'hui, nous verrons la plaque "haute tension" qui est nécessaire à tout tube Geiger Müller, réduite au strict minimum.
L'objectif final est de produire un appareil qui compile toutes les fonctions "modernes" d'un compteur geiger/dosimètre" : affichage temps réel des coups, des débits, de la dose, enregistrement des logs sur carte (micro) SD, communication avec un PC, etc. bref un appareil qui présentera tout ce que l'on peut tirer d'un tube Geiger, mais réparable à tous les niveaux.
Enfin, je souhaitais ajouter la possibilité d'utiliser deux tubes GM à la fois, afin de les tester l'un contre l'autre car, comme vu dans le topics sur les tubes; ils présentent tous des variations intrinsèques.
En effet, il n'est possible de comparer les tubes entre eux qu'à paramètres équivalents. Électroniquement, il faut exactement le même circuit, mais par la nature stochastique des mesures, il faut réaliser la mesure sur la même temporalité.
C'est ce que permet l'Arduino Uno/Nano (de base) avec ses deux broches d'interruption. Au moment où je rédige ce post, je travaille aussi en parallèle sur un circuit qui utilise un tube SBM20 pour la radioactivité "usuelle" et le LND714 pour les environnements fortement contaminés, et un basculement automatique de l'un à l'autre.
Pour les purs et durs du bricolage analogique, n'hésitez pas à voir du côté du topic Un projet de compteur geiger à transistors
La simplification
Je sentais depuis quelques temps le besoin de simplifier et uniformiser ce projet au niveau électronique car il y a deux principaux écueils qui amha empêchent la plupart des intéressés de se lancer :
- le transformateur élévateur HT. C'est une pièce non standard dans l'ensemble des circuits. Il est quasiment impossible d'avoir une référence et encore moins d'assurer son approvisionnement. La plupart des bidouilleurs se trouvaient obligés de bricoler le leur et donc d'ajouter une phase de prototypage. Ici, je vais vous proposer un circuit uniformisé avec des composants stables et faciles à trouver, même en récup. Au lieu du transformateur, j'utilise en effet une inductance 10mH. On peut prendre un peu plus ou un peu moins voire bobiner un truc sur un barreau ferrite.
J'ai pensé le générateur HT comme un module indépendant de l'Arduino. On lui donne 5V, il alimente/gère le tube et fournit les impulsions sur une broche. Il n'y aura que trois fils.
Il aurait été possible de simplifier un peu le circuit en délégant plusieurs fonctions à l'Arduino, comme générer des impulsions pour piloter le transistor de charge et réguler la HT, mais cela impliquait d'une part de monopoliser deux broches de plus des cartes Arduino (signal HF OUT et régulation IN), mais aussi d'ajouter du code qui risque de ralentir voire de rendre instable le programme (le générateur HF perturbe et est perturbé par le fonctionnement par interruptions des Arduino.
Le tout avec le risque de se tromper et brancher la HT directement sur Arduino et tout cramer.
Avec un circuit dédié, on sépare clairement la partie électronique et le code, ce qui rend amha l'ensemble plus résilient.
- La partie traitement du signal nécessite un gros investissement en connaissance, prototypage et bricolage si on souhaite la traiter avec de l'électronique pure. Par exemple la partie permettant de convertir les impulsions en débit de dose ( vue dans le topic le compteur/dosimètre numérique
) :
C'est une "simple" fonction, mais elle nécessite un circuit assez évolué du point de vue électronique :
Cette fonction peut être entièrement traitée par un programme, comme je l'avais suggéré ici : Arduino, programmation, résilience et librairie Olduvaï
Je déplace donc la difficulté sur l'informatique, qui est beaucoup plus souple et évolutive. Il suffira donc principalement de comprendre globalement le code et l'interface, mais pas nécessairement de savoir coder.
Comme vu dans le topic Arduino, programmation, résilience et librairie Olduvaï les modules Arduino se sont vraiment démocratisés. On trouve le module pour 5-10E et des kits complets pour rarement plus de 15E.
Dans ce projet, je vous propose de voir d'abord une petite partie électronique relativement simple à fabriquer, avec des composants usuels pour une poignée d'euros, puis d'aller sur la partie Arduino avec le code.
Idéalement, mon objectif est de produire :
- un circuit électronique simple et frugal, peu de composants, peu gourmand et fiable, capable de s'adapter à la plupart des tubes.
- un code évolutif
- un appareil capable de détecter la radioactivité, de proposer des stats (CPM, débit de dose, dose) et d’enregistrer tout ça sur une mémoire flash en format CSV afin d'extraire ces données.
- au appareil capable de fonctionner en mode dégradé : du pack complet avec la date, l'écran, le son, l'enregistrement... jusqu'au rudimentaire tube qui fait "tak-tak", sans que la panne d'une partie entraîne celle des autres. En gros, un appareil qui fonctionnera en toute circonstance.
Voici donc la partie électronique élémentaire :
Au niveau des composants, j'ai un peu testé dans tous les sens, quasiment tout est interchangeable avec des références génériques. Par exemple, les transistors petit signaux BC54x sont remplaçables par à peu près tout NPN de même catégorie, même du 2N2222. La consommation tourne autour de 1mA.
Je propose différentes versions de ce module, du plus rudimentaire à la version complète.
Version 1 : Le générateur n'est pas régulé. Il se contente de générer des pics de tension avec le transistor de charge, et le multiplicateur. On peut "ajuster" un minimum la haute tension via la résistance ajustable 47k (il faut partir de la plus haute valeur à ses bornes, puis la diminuer; cela va augmenter petit à petit la HT). Cela nécessite soit un multimètre haute impédance, soit de construire l'adaptateur HT soit, en environnement vraiment dégradé, de tester à l'oreille. Voir les trois version plus bas
La consommation non régulée tourne autour de 10mA.
Nomenclature :
Ici, l'essentiel repose sur le transistor T1 qui pilote l'inductance. Il faut théoriquement qu'il puisse supporter la tension inverse du pic généré (avant le multiplicateur de tension, donc moindre que la HT finale), donc quelques centaines de volts. Dans le séries usuelles on a le BF642 et très couramment le MPSA42 côté US.
Le plus simple est de récupérer la pièce dans une lampe fluocompacte...qui contiendra en fait quasiment tous les composants nécessaires à cette plaque : les transistors de charge, les diodes et les condos haute tension, ainsi qu'une inductance.
Ici une au pif de ma paillasse : j'ai un MJE 13003 (qui tient 450V), des diodes HT 2kV, des condos 600V et une self 5mH.
Nomenclature :
Version 2 : Le générateur est ajusté mais pas régulé : la haute tensions est écrêtée par les diodes Zener. Pour rappel, une zener 200V aura tendance à conduire un peu avant, vers 190V. Donc dans les montages à haute impédance, la somme de deux 200V sera proche de 380V (adapté au tube SBM20) et le total de 440V sera plutôt à 400V (adapté au ZP1400).
Nomenclature:
Version 3 : Le générateur est ajusté est régulé.
Les Zener ne drainent plus vers la masse la haute tension, mais arrivent sur deux transistors en darlington qui viennent réguler le générateur.
On est donc sur quatre transistors :
En l'état, on est déjà sur un petit "compteur Geiger" : cela ne "compte" pas, mais donne une idée de la radioactivité ambiante avec un écouteur haute impédance (style celui que l'on utilise sur les radio à galène), en série avec le tube côté Cathode. On lui ajoute en général une résistance 100kΩ en parallèle car la plupart des écouteurs agissent en condensateur, qui finissent par bloquer le passage du courant.
Nomenclature :
Tester la haute tension :
Le plus simple étant de se fabriquer un testeur haute impédance, cf l'article : Circuits Nomades
Tester le circuit sans aucun moyen.
J'écris tranquillement ce post dans un contexte relativement commode. Mais il n'est pas impossible que vous ayez besoin de le fabriquer dans un environnement dégradé avec peu de ressources : pas de multimètre, pas de résistance de haute valeur, etc. Alors comment savoir si on a bien une haute tension en sortie de générateur ?
Le premier réflexe est d'essayer de court-circuiter les bornes du dernier condensateur HT C5. Avec 47nF, il devrait y avoir déjà une belle étincelle. S'il n'y a rien, il faut revoir le circuit. Mais si cela claque, ce n'est évidemment pas suffisant.
On va donc tester directement à partir du circuit, comme vu plus haut, en ajoutant un écouteur haute impédance, comme dans l'article : Un Compteur Geiger Passif
Avec la V1, on obtient donc ce schéma :
On va donc diminuer petit à petit la valeur de RV1. Normalement, le tube ne fonctionnera vraiment pas en dessous de sa tension de plateau, qui est d'environ 360V pour le SBM20. Vous devriez entendre quelques coups par ci par là. En moyenne, ce tube produit entre 10 et 20 coups par minute sur son plateau, et moins de 8 en sous-tension.
Si la HT est trop élevée, le tube entrera en saturation et va faire tak tak en permanence, il faut la réduire.
La sortie signal (circuit Final) :
Dernière étape électronique : amplification du signal. Théoriquement, les Cartes Arduino sont capables de détecter avec une grosse impédance d'entrée, mais le signal est tellement fugace que je ne prends pas de risque et amplifie avec un petit transistor générique. Cela permet au passage de sortir le signal sur un écouteur usuel, de haute impédance (cristal) ou tout ce qui est au dessus de 32Ω, donc de se passer de l'Arduino si besoin.
Il s'agit d'une liaison simple directement sur transistor. On évite le classique circuit RC qui a tendance à allonger l'impulsion. D5 sert à protéger le transistor et l'entrée Arduino en cas de mauvais branchement ou de surtension.
Nomenclature
Premiers pas en programmation
Voici le code le plus rudimentaire pour récupérer les impulsions GM sur la broche 2 de l'Arduino Uno et Nano.
Pour rappel le code déclenché par l'interruption doit être le plus court possible ! On se contente d'incrémenter le nombre de coups et de changer un flag pour déclencher l'affichage sur le Moniteur Série.
On devrait obtenir dans le Moniteur la suite de nombres à raison d'environ 10-20 par minute. S'il n'y a rien, tester la HT puis avec l'écouteur. Si ça défile à toute vitesse, il y a un mauvais branchement.
Bons bidouillages à tous !
j'ai enfin trouvé un peu de temps pour lancer ce nouveau sujet sur les compteurs geiger à mi chemin entre le DIY et la programmation. Le but est de simplifier au maximum l'électronique avec ce qui peut être traité par un programme afin de rendre le projet beaucoup plus accessible.
Aujourd'hui, nous verrons la plaque "haute tension" qui est nécessaire à tout tube Geiger Müller, réduite au strict minimum.
L'objectif final est de produire un appareil qui compile toutes les fonctions "modernes" d'un compteur geiger/dosimètre" : affichage temps réel des coups, des débits, de la dose, enregistrement des logs sur carte (micro) SD, communication avec un PC, etc. bref un appareil qui présentera tout ce que l'on peut tirer d'un tube Geiger, mais réparable à tous les niveaux.
Enfin, je souhaitais ajouter la possibilité d'utiliser deux tubes GM à la fois, afin de les tester l'un contre l'autre car, comme vu dans le topics sur les tubes; ils présentent tous des variations intrinsèques.
En effet, il n'est possible de comparer les tubes entre eux qu'à paramètres équivalents. Électroniquement, il faut exactement le même circuit, mais par la nature stochastique des mesures, il faut réaliser la mesure sur la même temporalité.
C'est ce que permet l'Arduino Uno/Nano (de base) avec ses deux broches d'interruption. Au moment où je rédige ce post, je travaille aussi en parallèle sur un circuit qui utilise un tube SBM20 pour la radioactivité "usuelle" et le LND714 pour les environnements fortement contaminés, et un basculement automatique de l'un à l'autre.
Pour les purs et durs du bricolage analogique, n'hésitez pas à voir du côté du topic Un projet de compteur geiger à transistors
La simplification
Je sentais depuis quelques temps le besoin de simplifier et uniformiser ce projet au niveau électronique car il y a deux principaux écueils qui amha empêchent la plupart des intéressés de se lancer :
- le transformateur élévateur HT. C'est une pièce non standard dans l'ensemble des circuits. Il est quasiment impossible d'avoir une référence et encore moins d'assurer son approvisionnement. La plupart des bidouilleurs se trouvaient obligés de bricoler le leur et donc d'ajouter une phase de prototypage. Ici, je vais vous proposer un circuit uniformisé avec des composants stables et faciles à trouver, même en récup. Au lieu du transformateur, j'utilise en effet une inductance 10mH. On peut prendre un peu plus ou un peu moins voire bobiner un truc sur un barreau ferrite.
J'ai pensé le générateur HT comme un module indépendant de l'Arduino. On lui donne 5V, il alimente/gère le tube et fournit les impulsions sur une broche. Il n'y aura que trois fils.
Il aurait été possible de simplifier un peu le circuit en délégant plusieurs fonctions à l'Arduino, comme générer des impulsions pour piloter le transistor de charge et réguler la HT, mais cela impliquait d'une part de monopoliser deux broches de plus des cartes Arduino (signal HF OUT et régulation IN), mais aussi d'ajouter du code qui risque de ralentir voire de rendre instable le programme (le générateur HF perturbe et est perturbé par le fonctionnement par interruptions des Arduino.
Le tout avec le risque de se tromper et brancher la HT directement sur Arduino et tout cramer.
Avec un circuit dédié, on sépare clairement la partie électronique et le code, ce qui rend amha l'ensemble plus résilient.
- La partie traitement du signal nécessite un gros investissement en connaissance, prototypage et bricolage si on souhaite la traiter avec de l'électronique pure. Par exemple la partie permettant de convertir les impulsions en débit de dose ( vue dans le topic le compteur/dosimètre numérique
) :
C'est une "simple" fonction, mais elle nécessite un circuit assez évolué du point de vue électronique :
Cette fonction peut être entièrement traitée par un programme, comme je l'avais suggéré ici : Arduino, programmation, résilience et librairie Olduvaï
Je déplace donc la difficulté sur l'informatique, qui est beaucoup plus souple et évolutive. Il suffira donc principalement de comprendre globalement le code et l'interface, mais pas nécessairement de savoir coder.
Comme vu dans le topic Arduino, programmation, résilience et librairie Olduvaï les modules Arduino se sont vraiment démocratisés. On trouve le module pour 5-10E et des kits complets pour rarement plus de 15E.
Dans ce projet, je vous propose de voir d'abord une petite partie électronique relativement simple à fabriquer, avec des composants usuels pour une poignée d'euros, puis d'aller sur la partie Arduino avec le code.
Idéalement, mon objectif est de produire :
- un circuit électronique simple et frugal, peu de composants, peu gourmand et fiable, capable de s'adapter à la plupart des tubes.
- un code évolutif
- un appareil capable de détecter la radioactivité, de proposer des stats (CPM, débit de dose, dose) et d’enregistrer tout ça sur une mémoire flash en format CSV afin d'extraire ces données.
- au appareil capable de fonctionner en mode dégradé : du pack complet avec la date, l'écran, le son, l'enregistrement... jusqu'au rudimentaire tube qui fait "tak-tak", sans que la panne d'une partie entraîne celle des autres. En gros, un appareil qui fonctionnera en toute circonstance.
Voici donc la partie électronique élémentaire :
Au niveau des composants, j'ai un peu testé dans tous les sens, quasiment tout est interchangeable avec des références génériques. Par exemple, les transistors petit signaux BC54x sont remplaçables par à peu près tout NPN de même catégorie, même du 2N2222. La consommation tourne autour de 1mA.
Je propose différentes versions de ce module, du plus rudimentaire à la version complète.
Version 1 : Le générateur n'est pas régulé. Il se contente de générer des pics de tension avec le transistor de charge, et le multiplicateur. On peut "ajuster" un minimum la haute tension via la résistance ajustable 47k (il faut partir de la plus haute valeur à ses bornes, puis la diminuer; cela va augmenter petit à petit la HT). Cela nécessite soit un multimètre haute impédance, soit de construire l'adaptateur HT soit, en environnement vraiment dégradé, de tester à l'oreille. Voir les trois version plus bas
La consommation non régulée tourne autour de 10mA.
Nomenclature :
Ici, l'essentiel repose sur le transistor T1 qui pilote l'inductance. Il faut théoriquement qu'il puisse supporter la tension inverse du pic généré (avant le multiplicateur de tension, donc moindre que la HT finale), donc quelques centaines de volts. Dans le séries usuelles on a le BF642 et très couramment le MPSA42 côté US.
Le plus simple est de récupérer la pièce dans une lampe fluocompacte...qui contiendra en fait quasiment tous les composants nécessaires à cette plaque : les transistors de charge, les diodes et les condos haute tension, ainsi qu'une inductance.
Ici une au pif de ma paillasse : j'ai un MJE 13003 (qui tient 450V), des diodes HT 2kV, des condos 600V et une self 5mH.
Nomenclature :
Version 2 : Le générateur est ajusté mais pas régulé : la haute tensions est écrêtée par les diodes Zener. Pour rappel, une zener 200V aura tendance à conduire un peu avant, vers 190V. Donc dans les montages à haute impédance, la somme de deux 200V sera proche de 380V (adapté au tube SBM20) et le total de 440V sera plutôt à 400V (adapté au ZP1400).
Nomenclature:
Version 3 : Le générateur est ajusté est régulé.
Les Zener ne drainent plus vers la masse la haute tension, mais arrivent sur deux transistors en darlington qui viennent réguler le générateur.
On est donc sur quatre transistors :
En l'état, on est déjà sur un petit "compteur Geiger" : cela ne "compte" pas, mais donne une idée de la radioactivité ambiante avec un écouteur haute impédance (style celui que l'on utilise sur les radio à galène), en série avec le tube côté Cathode. On lui ajoute en général une résistance 100kΩ en parallèle car la plupart des écouteurs agissent en condensateur, qui finissent par bloquer le passage du courant.
Nomenclature :
Tester la haute tension :
Le plus simple étant de se fabriquer un testeur haute impédance, cf l'article : Circuits Nomades
Tester le circuit sans aucun moyen.
J'écris tranquillement ce post dans un contexte relativement commode. Mais il n'est pas impossible que vous ayez besoin de le fabriquer dans un environnement dégradé avec peu de ressources : pas de multimètre, pas de résistance de haute valeur, etc. Alors comment savoir si on a bien une haute tension en sortie de générateur ?
Le premier réflexe est d'essayer de court-circuiter les bornes du dernier condensateur HT C5. Avec 47nF, il devrait y avoir déjà une belle étincelle. S'il n'y a rien, il faut revoir le circuit. Mais si cela claque, ce n'est évidemment pas suffisant.
On va donc tester directement à partir du circuit, comme vu plus haut, en ajoutant un écouteur haute impédance, comme dans l'article : Un Compteur Geiger Passif
Avec la V1, on obtient donc ce schéma :
On va donc diminuer petit à petit la valeur de RV1. Normalement, le tube ne fonctionnera vraiment pas en dessous de sa tension de plateau, qui est d'environ 360V pour le SBM20. Vous devriez entendre quelques coups par ci par là. En moyenne, ce tube produit entre 10 et 20 coups par minute sur son plateau, et moins de 8 en sous-tension.
Si la HT est trop élevée, le tube entrera en saturation et va faire tak tak en permanence, il faut la réduire.
La sortie signal (circuit Final) :
Dernière étape électronique : amplification du signal. Théoriquement, les Cartes Arduino sont capables de détecter avec une grosse impédance d'entrée, mais le signal est tellement fugace que je ne prends pas de risque et amplifie avec un petit transistor générique. Cela permet au passage de sortir le signal sur un écouteur usuel, de haute impédance (cristal) ou tout ce qui est au dessus de 32Ω, donc de se passer de l'Arduino si besoin.
Il s'agit d'une liaison simple directement sur transistor. On évite le classique circuit RC qui a tendance à allonger l'impulsion. D5 sert à protéger le transistor et l'entrée Arduino en cas de mauvais branchement ou de surtension.
Nomenclature
Premiers pas en programmation
Voici le code le plus rudimentaire pour récupérer les impulsions GM sur la broche 2 de l'Arduino Uno et Nano.
Pour rappel le code déclenché par l'interruption doit être le plus court possible ! On se contente d'incrémenter le nombre de coups et de changer un flag pour déclencher l'affichage sur le Moniteur Série.
- Code:
unsigned long int Coup=0; // compteur de coup
bool Coupcheck=0;
const byte geigerPin = 2; // broche où l'on récupère les impulsions Geiger
void setup() {
pinMode(geigerPin, INPUT);
attachInterrupt(digitalPinToInterrupt(geigerPin), coupGeiger, FALLING); // Interruption signal descendant (Collecteur transistor sur la masse)
Serial.begin(9600);
}
void loop() {
if (Coupcheck==1)
{ Coupcheck=0;
Serial.println(Coup);
}
}
void coupGeiger()
{
Coup++; // on incrémente la somme des impulsions
Coupcheck=1; // flag pour déclencher l'affichage
}
On devrait obtenir dans le Moniteur la suite de nombres à raison d'environ 10-20 par minute. S'il n'y a rien, tester la HT puis avec l'écouteur. Si ça défile à toute vitesse, il y a un mauvais branchement.
Bons bidouillages à tous !
________________________________________________________
L'expérience est une lumière qui n'éclaire que ceux qu'elle a déjà brûlés. Cédric Dassas
Récapitulatif des projets électroniques - [Chroniques du Bunker de L'Apocalypse] - Projet Geiger - Culture ethnobotanique en France - 甩葱歌 - 古箏 - Distant Pulsar - Un Mauvais Fils - 25 Years of Zelda - Machinarium
tarsonis- Administrateur
- Nombre de messages : 10770
Age : 38
Localisation : Grand Est
Loisirs : Trek, ethnobotanique, électronique DIY, nucléaire, médecine, post apo.
Date d'inscription : 21/05/2008
victor81 aime ce message
Sujets similaires
» Un module pour votre Compteur Geiger : le compteur/dosimètre numérique (sans microcontrôleur & co)
» Application Geiger Bot, compteur Geiger, mesure de sources, de bruit de fond et autres stats.
» Compteur Geiger de Ngiu
» Tarif avantageux compteur geiger
» Avis compteur Geiger
» Application Geiger Bot, compteur Geiger, mesure de sources, de bruit de fond et autres stats.
» Compteur Geiger de Ngiu
» Tarif avantageux compteur geiger
» Avis compteur Geiger
Olduvaï :: Faire face aux situations de crise (réservé aux membres s'étant présentés) :: Matériel, outils divers, vêtements & accessoires (les trouver, les fabriquer, les utiliser, etc) :: Matériel électronique & informatique
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum