====== Capteur Geiger ======
Nous utiliserons un capteur Geiger de ce type :
{{:nomades:img_20191113_1003414_2.jpg?direct&200|}}
Nous allons connecter ce capteur à une carte arduino, puis la carte arduino à un ordinateur.
Les données du compteur Geiger vont donc être transmises à l'ordinateur via la arduino sur le port série en usb.
Nous allons par la suite les récupérer avec un patch pure Data.
===== Connection capteur Geiger vers arduino =====
Nous connectons les ports VIN du capteur Geiger au pin digital 2 de la arduino.
Et le GND du Geiger au GND du arduino.
On peut connecter le 5v du capteur Geiger au 5v de la arduino si on n'alimente pas le capteur Geiger avec le secteur(NB : le capteur Geiger s'allume en meme temps que la arduino; l'interrupteur n'étant plus utilisable car by-passé).
côté capteur Geiger
{{:nomades:img_20191113_1003506.jpg?direct&200|}}
côté arduino
{{:nomades:img_20191113_1004145.jpg?direct&200|}}
Les deux
{{:nomades:img_20191113_1003414.jpg?direct&200|}}
On connecte la arduino en usb sur l'ordinateur.
Maintenant il faut programmer la arduino et une réception, pure Data ici
==== Programmation Arduino ====
Voici le programme à uploader dans la carte arduino :
// This Sketch send a 0 for each pulse to the serial port.
// Connect the GND on Arduino to the GND on the Geiger counter.
// Connect the 5V on Arduino to the 5V on the Geiger counter.
// Connect the VIN on the Geiger counter to the D2 on Arduino.
unsigned long counts; //variable for GM Tube events
unsigned long previousMillis; //variable for measuring time
void impulse() { // dipanggil setiap ada sinyal FALLING di pin 2
counts = 1;
}
#define LOG_PERIOD 60 // count rate
void setup() { //setup
counts = 0;
Serial.begin(9600);
pinMode(2, INPUT);
attachInterrupt(digitalPinToInterrupt(2), impulse, FALLING); //define external interrupts
Serial.println("Start counter");
}
void loop() { //main cycle
Serial.println(counts);
Serial.write(counts);
counts = 0;
delay(30);
}
On notera le "pinMode(2, INPUT);" qui correpsond au numéro du PIN digital de la arduino.
==== Programmation Purr Data ====
Côté ordinateur on pourra réceptionner la pulsation via un patch de ce type :
{{:nomades:screenshot_2019-11-25_09-53-45.png?direct&200|}}
Ouvrez un fichier avec l'éditeur de texte nommé par exemple geiger.pd (NB:avec l'extension ".pd")
Copiez-collez le code suivant :
#N canvas 0 22 1280 953 10;
#X msg 478 187 close;
#X msg 477 156 devices;
#X msg 493 82 open 0;
#X obj 555 50 loadbang;
#X obj 546 192 comport 9600;
#X floatatom 660 241 5 0 0 0 - - -, f 5;
#X obj 607 301 change;
#X obj 448 528 bng 45 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 434 277 sel 10;
#X floatatom 758 318 5 0 0 0 - - -, f 5;
#X obj 726 408 sel 49;
#X floatatom 555 232 5 0 0 0 - - -, f 5;
#X obj 705 268 sel 13;
#X connect 0 0 4 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 8 0;
#X connect 4 0 11 0;
#X connect 5 0 6 0;
#X connect 5 0 12 0;
#X connect 8 1 5 0;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X connect 12 1 9 0;
Puis sauvegardez le fichier.
C'est le patch sur le screenshot ci-dessus.
Le bang doit se déclencher à chaque pulsation du capteur Geiger.