Ionizační komora sledovaná Arduinem

Následující příspěvek stručně přibližuje jeden z exponátů předváděných na letošním setkání, které proběhlo v rámci akce Arduino Day na MFFUK v Praze.

Cílem bylo připravit ukázku, na níž by se dala demonstrovat jednoduchost a funkčnost detekce ionizujícího záření vycházejícho ze slabých „zářičů“, které jsou běžně dostupné. Pozornost asi nejvíc poutala provokativně umístěná výstražná tabulka označující místa výskytu ionizujícího záření, i když z hlediska intenzity byla aktivita vzorků zanedbatelná.

Základem ukázky je ionizační komora vyrobená z plechovky od konzervy (původně to byly fazole v chili omáčce). Dno plechovky je provrtané a do něj zalepená skleněná vf průchodka, ta tvoří izolaci, uvnitř plechovky je připájený tenký odizolovaný drát, který končí asi 1 cm od plechového víčka nasazeného do obruby na otevřeném konci konzervy. Víčko má pant z kousku lepicí pásky a těsně doléhá do otvoru.

Zesilovač s jedním tranzistorem BC517 (je to Darlington, takže vlastně dva tranzistory v jednom pouzdru) je zapojený „letmou montáží“ a ukrývá se pod stínícím krytem, to je ta malá kovová krabička od čehosi připájená ve třech bodech ke dnu konzervy. Šlo by použít třeba i malou plechovku od tuňáka nebo rajského protlaku. Čtyři vodiče procházejí vypilovaným otvorem pod krajem krytu.

Zesilovač má samostatné napájení baterií 9 V a bez změny zapojení lze použít i dvě baterie (18 V), to by zvýšilo citlivost, ale není to potřeba. Baterie má výhodu v tom, že její napětí je při naprosto nepatrném odběru stabilní, baterie jako samostatný zdroj je potřeba kvůli „plovoucímu“ výstupu vzhledem k zemi navazujícího Arduina. „Zářiče“ se vkládají přímo dovnitř komory za víčko. Schéma zesilovače je na následujícím obrázku.

ionizacni_komoraArduino Nano měří v pravidelných intervalech napětí na vstupu A0, referenční napětí pro AD převodník je standardní (napájení 5 V). Arduino generuje videosignál a zobrazuje jednak okamžitou hodnotu napětí číselně (bezrozměrný údaj braný z převodníku), jednak graficky ukazuje vývoj napětí v čase za posledních několik málo minut. Nejde o to přesně měřit intenzitu záření, jen o ukázku detekce a případně porovnání výsledků při různých „zářičích“ jako jsou třeba skleněné korálky barvené ochuzeným uranem nebo punčoška do plynové lampy.

IMGP3150bAby se dala nastavit citlivost zobrazení a graf vycházel úhledně, jsou na analogové vstupy Arduina A1 a A2 připojeny jezdce trimrů, jimiž se nastavuje napětí pro zobrazení dolní a horní meze grafu. Při seřizování se nejprve s práznou ustálenou komorou nastaví prvním trimrem výchozí proud „pozadí“ tak, aby byl vidět na grafu při dolním okraji, pak se s nejsilnějším používaným vzorkem nastaví zobrazení napětí těsně pod maximem rozsahu. A protože televize a monitory jsou dnes běžně vybaveny USB konektorem, je Arduino spojeno USB kabelem s televizí a takto získává napájecí napětí. Videosignál k televizi je pochopitelně veden samostatným koaxiálním kablíkem s konektory CINCH.

video1Program kvůli vysokému zarušení měří napětí v komoře 60x a spočte průměr, pak přepíše okamžitou hodnotu na displeji, posune grafickou část o 1 bod vlevo a vpravo vykreslí sloupec podle posledního měření. Není to nijak dlouhé ani složité, nešlo o komfort a dokonalé zpracování, jen o jednorázovou ukázku.

//video1 - predvedeni grafiky
#include <TVout.h>                        // knihovna TVout
#include <video_gen.h>
#include <fontALL.h>                      // vsechny fonty
TVout TV;                                 // objekt TV tridy TVout
unsigned int nap = 0;
unsigned int prumer = 0;
int y, spodni, horni;                     // hodnota vykresleni, meze vykresleni

void setup() {                            // nastaveni
  pinMode(13, OUTPUT);                    // kontrolka cyklu
  TV.begin(_PAL);                         // generovani signalu PAL
  TV.clear_screen();                      // smazani obrazovky
  TV.select_font(font6x8);
  spodni = analogRead(A1);
  horni = analogRead(A2);
}

void loop() {                             // smycka programu
  // vykresleni
  digitalWrite(13, HIGH);                 
  TV.shift(1, 2);                         // posun o 1 bod vlevo
  TV.draw_rect(0, 0, 127, 12, 1, 0);      // ramecek kolem napisu
  TV.print(5, 3, "Napeti v komore:");     // napis
  TV.print(103, 3, prumer);               // vypis prumeru
  TV.delay_frame(1);                      // sync
  y = map(prumer, spodni, horni, 95, 16); // prevod meritka grafu
  TV.draw_line(127, 95, 127, y, 1);       // vykresleni sloupce grafu
  delay (100);
  digitalWrite(13, LOW);

  // mereni 60 hodnot a prumerovani
  prumer = 0;
  for (int i = 0; i < 60; i++) {
    prumer = prumer + analogRead(A0);     // nacita napeti
    TV.delay_frame(1);                    // sync
  }
  prumer = prumer / 60;                   // spocteni prumeru
}

A jak vypadá výsledek? Na snímku obrazovky je nejprve komora prazdná (vlevo), pak je vložena punčoška do lampy a nakonec je opět komora prázdná. Že je to opravdu vliv záření a ne jen toho, že se něco vloží dovnitř, se dá snadno ověřit třeba pomocí složeného kapesníku nebo jakéhokoli jiného neaktivního předmětu v komoře. Krátké špičky nebo poklesy v okamžiku manipulace s komorou jsou normální, podstatný je ustálený stav.

IMGP3141b

IMGP3143b