====== 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.