This shows you the differences between two versions of the page.
— | nomades:capteur_geiger [2019/11/25 10:00] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Capteur Geiger ====== | ||
+ | |||
+ | Nous utiliserons un capteur Geiger de ce type : | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | 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' | ||
+ | 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' | ||
+ | |||
+ | |||
+ | côté capteur Geiger | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | côté arduino | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | Les deux | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | On connecte la arduino en usb sur l' | ||
+ | |||
+ | |||
+ | 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; | ||
+ | |||
+ | 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), | ||
+ | |||
+ | Serial.println(" | ||
+ | |||
+ | } | ||
+ | |||
+ | void loop() { //main cycle | ||
+ | |||
+ | Serial.println(counts); | ||
+ | Serial.write(counts); | ||
+ | counts = 0; | ||
+ | |||
+ | delay(30); | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | On notera le " | ||
+ | |||
+ | |||
+ | ==== Programmation Purr Data ==== | ||
+ | |||
+ | Côté ordinateur on pourra réceptionner la pulsation via un patch de ce type : | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | Ouvrez un fichier avec l' | ||
+ | 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. | ||
+ | |||
+ | |||