Un simulatore di Geiger

Dovendo fare una conferenza divulgativa sugli esperimenti che hanno fruttato il Premio Nobel a Enrico Fermi, nell’ottantesimo della sua attribuzione, ho deciso che avrei dovuto ripetere alcuni dei suoi fondamentali esperimenti in aula, in modo da spiegare bene quali furono le misure e i risultati che condussero il grande scienziato ad annunciare la scoperta del metodo per rendere radioattivi i materiali.

Fare esperimenti con materiali radioattivi in aula, però, non è solo vietato. È quanto meno inopportuno. Allora ho deciso che mi sarei avvalso di una simulazione: ma non di una “classica” simulazione al computer, bensì di una simulazione “concreta”.

Avevo bisogno di far vedere cosa succede quando si avvicina una sorgente radioattiva a un contatore Geiger. Ho quindi costruito un finto contatore Geiger usando una scheda Arduino, un sensore ultrasonico e un relay.

IMG_20180514_093515.jpg

Il sensore ultrasonico richiede quattro collegamenti: due servono per alimentarlo (GND e 5V), uno per il cosiddetto trigger e l’altro per l’eco. Inviando un impulso rettangolare abbastanza lungo (10 μs) al pin di trigger, il sensore ultrasonico emette un treno d’impulsi ad alta frequenza e misura il tempo che intercorre tra l’invio e la successiva rivelazione dello stesso treno d’impulsi. La rivelazione avviene quando gli impulsi sono riflessi da un ostacolo. Questo tempo è tanto più lungo quanto maggiore è la distanza tra il sensore e l’ostacolo.

Il relay è stato invece collegato a un terzo pin (oltre ai due necessari per l’alimentazione).

Tutto il sistema è stato alloggiato dentro un tubo di cartone (di quelli attorno ai quali è avvolta la carta da cucina) in modo tale che l’altoparlante e il microfono del sensore ultrasonico sporgessero lungo la superficie laterale a un estremo del tubo.

Il finto Geiger misura continuamente la distanza alla quale si trova un eventuale ostacolo e definisce una variabile trigger che dipende dalla distanza misurata al quadrato:

 unsigned long trigger = 1000./(d*d);

Quindi genera un numero random compreso tra 0 e 1000:

 unsigned long r = random(1000);

Se questo numero è minore di trigger fa cambiare stato del relay da chiuso ad aperto o viceversa:

if (r < trigger) {
  digitalWrite(CLIK, status);
  if (status == HIGH) {
    status = LOW;
  } else {
    status = HIGH;
  }
}

Il relay, cambiando stato, produce un rumorino che imita il click di un vero Geiger. Con questo codice la probabilità di far scattare il relay aumenta al diminuire della distanza di un ostacolo come 1/r2. Se l’ostacolo è molto lontano la probabilità di un click tende a zero. Avvicinando qualsiasi oggetto (radioattivo o meno) il numero di click per unità di tempo aumenta sempre di più esattamente come ci si aspetta nel caso reale. Per simulare ciò che avviene quando si avvicina una sostanza non radioattiva è sufficiente manipolare il campione in modo tale da avvicinarlo al Geiger senza metterlo di fronte al sensore ultrasonico.

 

Annunci

Un pensiero riguardo “Un simulatore di Geiger

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...