加速キッチンbasics
基礎講座 06 Detector

検出器のしくみ

目に見えない放射線を、どうやって「数」にするのでしょう。 検出器の中では、放射線が光に変わり、光が電気に変わり、電気が数値に変わる—— という小さなバトンリレーが起きています。この講座では、シンチレータ → SiPM → ADC → しきい値 → デッドタイムという 信号の流れにそって、放射線が1個ずつカウントされるまでを図解でたどります。実験を始める前の予習にどうぞ。
後半には、実機を使うための検出器マニュアル(OWAN v1・OHASHI v2)を収めています。

01

この検出器は何を測っている?

いまこの瞬間も、宇宙の彼方からやってきた粒子が、あなたの手のひらを毎秒2〜3個通り抜けています。 加速キッチンの検出器が主に数えているのは、この宇宙線ミュオンです。

宇宙空間を飛んでくる高エネルギーの粒子を一次宇宙線といい、その大部分は陽子(水素の原子核)です。 一次宇宙線が地球の大気に突入すると、大気中の分子と激しくぶつかってたくさんの粒子を生み出します。これを大気シャワー(空気シャワー)、 生まれた粒子を二次宇宙線と呼びます。このうち地上まで届く主役がミュオン(μ粒子)です。 宇宙線そのものについては宇宙線の基礎講座でくわしく扱っています。

一次宇宙線(陽子) 大気で衝突 π⁺π⁰π⁻ μ⁺ μ⁻ γ γ 地上 検出器
図1-1 1個の一次宇宙線が、大気の中でミュオンなどの二次粒子に姿を変え、地上の検出器に届く。AIR SHOWER → DETECTOR

ミュオンは電子の仲間(レプトン)で、電子の約207倍の質量を持つ粒子です。寿命は約2.2マイクロ秒(0.0000022秒)と非常に短いのに、 なぜ上空15 kmから地上まで届くのでしょうか。それは、ミュオンが光速に近い速さで飛んでいるため、 アインシュタインの特殊相対性理論高速で動く物体の時間はゆっくり進む(時間の遅れ)。ミュオンにとっての2.2 µsの間に、地上から見ると本来の何十倍もの距離を飛べる。による 時間の遅れの効果で、私たちから見るとずっと長生きして見えるからです。宇宙線は、相対論を「測れる」身近な題材でもあります。

~1個/cm²/分
地表に届く
ミュオンの量
1024段階
ADCがとる値
(0〜1023)
2.2µs
ミュオンの
寿命

到来頻度は何で変わる?

地表でのミュオンの到来頻度は、おおよそ1個/cm²/分(水平面・海面高度)。手のひら(約150 cm²)には毎秒2〜3個が通っている計算です。 ただしこの数は、測る場所や条件で変わります。

要因到来頻度への影響
高度高いほど多い(大気に吸収される前に届くため)。山の上では明らかに増える。
天頂角(角度)真上(天頂)からが最も多く、斜めほど少ない。およそ $\cos^2\theta$ の法則にしたがう。
気圧気圧が高い(=大気が厚い)と、到来頻度はやや減少する。
太陽活動太陽活動が活発な時期は、太陽磁場の遮蔽でやや減少する。
🧭 「ゆらぎ」も込みで読む

到来頻度は確率的なので、同じ条件でも数えるたびに数が上下します。「差があるのか、ただのゆらぎか」を見分けるには統計の考え方が必要です。くわしくは統計の基礎講座の $\pm\sqrt{N}$ のエラーバーを参照してください。

02

検出器が反応する放射線

この検出器はミュオンだけでなく、さまざまな放射線に反応します。放射線とは、高いエネルギーを持った粒子や電磁波の総称です。 種類によって「透過力」がまるで違うため、検出器での見え方も変わります。

種類正体透過力検出器での反応
α(アルファ)線ヘリウム原子核紙1枚で止まる検出されない(遮光テープを通過できない)
β(ベータ)線電子数mmのアルミで止まる検出される(ADC値は小さめ)
γ(ガンマ)線電磁波(光子)数cmの鉛で減衰検出される(CsI/GAGGで分光も可能)
ミュオン(μ)ミュオン数mのコンクリートも貫通よく検出される

放射線そのものの性質(種類・半減期・単位・人体への影響など)は放射線の基礎講座でくわしく扱っています。 ここで押さえておきたいのは、「透過力が小さいものは検出器の中まで届かない」という点。 α線は検出器をおおう遮光テープすら通れないので、原理的に見えません。

自然放射線(バックグラウンド)

私たちの身の回りには、いつも少量の放射線が存在しています。これを自然放射線(バックグラウンド放射線)と呼びます。 地面や建材にふくまれる放射性物質(カリウム40天然のカリウムにわずかに含まれる放射性同位体。食品や土壌、私たちの体の中にも存在し、γ線やβ線を出す。やラドンなど)からのγ線・β線、そして宇宙線由来のミュオンやγ線です。 検出器で測ると、これらは常に「バックグラウンド」として記録され続けます。

🤝 ミュオンだけを選び出す — コインシデンス測定

宇宙線ミュオンだけをバックグラウンドから選り分けたいときは、検出器を2台つかった同時測定(コインシデンス測定)が有効です。 貫通力の高いミュオンは2台を続けて通り抜けるので、両方が同時に光ったときだけ数えることで、あちこちから飛んでくるバックグラウンドのγ線・β線を排除できます。

03

シンチレータ — 放射線を光に変える

ここからが検出器の本番です。放射線は目に見えませんが、検出器の中で光 → 電気 → 数値と姿を変えていきます。 まずはその「全体像」を頭に入れておきましょう。

放射線 入射 シンチ レータ 光 SiPM 電気 ADC 数値 0–1023 しきい値 記録 イベント … 最後に「デッドタイム」を差し引いて、正しいレートを求める(7章)
図3-1 放射線が数値になるまでの流れ。3〜7章は、この一本の道すじを順にたどっていく。SIGNAL CHAIN

最初のバトンを受け取るのがシンチレータです。シンチレータとは、放射線が通過すると微弱な光(蛍光)を発する物質のこと。 放射線そのものは捕まえにくくても、いったん「光」に変えてしまえば、あとはその光を測ればよい——というのが検出器の基本アイデアです。 本検出器で使うシンチレータには、測りたいものに応じて次の種類があります。

シンチレータの種類特徴適した測定
プラスチック軽量で大面積にしやすい宇宙線(ミュオン)の測定
CsI(ヨウ化セシウム)密度が高くガンマ線の吸収効率が良いガンマ線・ベータ線の測定
GAGG密度が高くガンマ線の吸収効率が良いガンマ線・ベータ線の測定
💡 なぜ光るの?

放射線がシンチレータの中を通ると、原子の電子をいったん高いエネルギー状態に押し上げます(励起)。電子が元に戻るとき、余ったエネルギーが光として放出される——これが蛍光です。この「放射線が物質を光らせる性質(励起作用)」は放射線の基礎講座でくわしく扱っています。

04

SiPM — 光を電気に変える

シンチレータが発する光は、ほんのわずか。肉眼ではとても見えません。この弱い光を電気信号に変えて、しかも大きく増幅してくれるのが SiPM(Silicon Photomultiplier、シリコン光電子増倍管)です。

STEP 1 半導体 光子が当たる STEP 2 光電効果で 電子が飛び出す STEP 3 アバランシェ増倍 雪崩のように増える STEP 4 電流パルス 大きさ ∝ エネルギー
図4-1 SiPMのしくみ。1個の光子が、最後には測れる大きさの電流パルスになる。SiPM

SiPMのはたらきを、順番に追ってみましょう。

SiPMが光を信号に変える4ステップ

  • シンチレータが発した光(光子)がSiPMに当たる。
  • 光子が半導体の中で電子をたたき出す(光電効果)。
  • その電子がアバランシェ増倍(雪崩のような増幅)で、大きな電流パルスになる。
  • この電流パルスの大きさが、元の放射線のエネルギーに対応する。
🌡️ 温度も一緒に記録される

SiPMは温度によって特性が変化します(同じ光でも、暑い日と寒い日で信号の出方が変わる)。そのため検出器のデータには、温度計で測った温度も一緒に記録されています。データを正しく読むには、温度の影響も頭に入れておきましょう。

05

ADC — 信号を数値にする

SiPMから出てくるのは、電圧が連続的に変化するアナログ信号です。コンピュータで扱うには、これを数(整数)に翻訳しなければなりません。 その役目をするのがADC(Analog-to-Digital Converter、アナログ-デジタル変換器)です。

本検出器は10ビットADCを使っており、信号の大きさを0〜1023の整数値(=210=1024段階)に変換します。 この数をADC値と呼びます。

ADC値の読み方

  • ADC値が大きい= SiPMからの信号が大きい = より大きなエネルギーの放射線を検出した。
  • ADC値が小さい= 信号が小さい = エネルギーの小さな放射線、またはノイズ。
回数 ADC値 → 0 1023 ノイズ/低エネルギー 信号の山
図5-1 ADC値のヒストグラム(度数分布)。山の位置や形から、検出器の状態や放射線の傾向が読み取れる。ADC HISTOGRAM

測定で得たADC値を、横軸にADC値・縦軸に回数をとって並べたものがヒストグラム(度数分布)です。 これを描くと、検出器が正常に動いているかの確認や、どんなエネルギーの放射線が多いかといった傾向を一目で調べられます。 ヒストグラムの読み方やゆらぎの扱いは、統計の基礎講座とあわせて読むと理解が深まります。

06

しきい値(トリガー)

検出器は常にSiPMの信号を見張っていますが、ノイズも含めてすべてを記録するわけではありません。 ある大きさを超えた信号だけを「これは本物のイベントだ」と判断して記録します。この判断の基準がしきい値(トリガー閾値)です。

時間 → 信号 Sig(記録開始) Res(リセット) ベースライン(ノイズ)
図6-1 信号が Sig を超えた瞬間に記録を開始し、Res を下回ると次のイベントに備える。小さなノイズはしきい値を超えず無視される。TRIGGER THRESHOLD

本検出器には、役割の違う2つのしきい値があります。

2つのしきい値

  • Sig(Signal Threshold):この値以上のADC値が出たら、イベントとして記録を開始する。
  • Res(Reset Threshold):信号がこの値を下回ったら、次のイベントの検出にそなえる。
🎚️ しきい値は起動時に自動で決まる

しきい値は、検出器の起動時に自動設定されます。起動直後に信号のベースライン(ノイズの下限)を10回測定し、その最小値に一定のオフセットを足した値がしきい値になります。これにより、「ノイズはまたがず、本物の信号だけを拾う」ちょうどよい高さに調整されるわけです。

07

デッドタイムと正しいレート

最後のバトンは「数え方」です。検出器が1つのイベントを処理している間は、次のイベントを受け付けられない短い時間があります。これをデッドタイム(不感時間)と呼びます。

検出器がイベントを記録するときには、ADC値の読み取り・データのシリアル送信・OLED画面の更新といった処理が走ります。 この間に別の放射線が来ても、検出器は気づけません。つまり、ほんのわずかですが「目をつぶっている時間」があるのです。

測定時間の帯(左から右へ) イベント 生きている時間(数えられる) デッドタイム(数え落とす) ← この粒子は見落とす
図7-1 処理中(赤)に来た粒子は数えられない。正しいレートは「生きていた時間」で割って求める。DEAD TIME

デッドタイムは検出器のデータに記録されています。正確な到来頻度(レート)を求めるには、ただ経過時間で割るのではなく、 デッドタイムを差し引いた実効測定時間で割る必要があります。

Rate $R = \dfrac{N}{\,T - T_{\text{dead}}\,}$

ここで $R$ はレート、$N$ はイベント数、$T$ は経過時間、$T_{\text{dead}}$ は累積デッドタイムです。 通常のレート(〜1 cnt/s 程度)なら、デッドタイムの影響はごくわずかです。しかし高レートの測定や精密な解析では、この補正をきちんと入れないと、本当の数より少なく見積もってしまいます。

📐 「数えた数」と「本当の数」

レートのように「測定値から本当の値を見積もる」とき、必ずつきまとうのが統計的なゆらぎと系統的なずれです。デッドタイム補正は後者(系統誤差)を正すための一例。誤差の考え方の全体像は統計の基礎講座でまとめています。

実習 Manual

検出器のマニュアル

ここからは、実機を使う編です。検出器が手元に届いてから最初の測定まで、PC につなぐ、同時測定、データの解析、トラブル対応、組み立てまでを、 OWAN(v1)と OHASHI(v2)の手順に分けて説明します。前半で学んだ「光 → 電気 → 数値」が、実機のどこで起きているかも確かめられます。

機種
English

検出器が届いてから最初の測定まで、そのあとのデータ解析、困ったときの対処、組み立てまでをまとめました。手元の機種が OWAN(v1)か OHASHI(v2)かを選ぶと、その機種の手順だけが表示されます。

対象:OWAN(v1)/ OHASHI(v2)(v2.1 は準備中のため含みません)・2026-10-24 版(改訂履歴)
写真つきの原本:Google ドキュメント「検出器マニュアル」

困ったとき(09 トラブルシューティング)相談するときに伝えること用語集

v1 のケース。縦長の箱で、上の面に画面の窓と小さな丸い穴がある
OWAN のステッカー。お椀の絵で、地は若草色

v1OWAN 縦長の箱

上の面に、画面の小窓と小さな丸い穴があります。マイコンは Arduino Nano、USB は Mini-B です。

v2(OHASHI)のケース。ほぼ立方体で、横の面に画面の窓と丸い穴が 2 つある。上蓋は緑
OHASHI のステッカー。お箸の絵で、地は生成り色

v2OHASHI ほぼ立方体の箱

横の面に、画面の窓と丸い穴が 2 つ(ボタンと LED)あります。マイコンは Arduino Nano ESP32、USB は Type-C です。

01クイックスタート

検出器を受け取ってから、最初の測定に成功するまでの手順です。まずはこの順に進めて、宇宙線の検出を体験してみましょう。

  • 検出器と USB ケーブル:データ通信ができるケーブルを使います(充電専用では動きません)。v1 は Type-A から Mini-B のものが多いです。v2 は検出器側が Type-C です。
  • PC:Windows、macOS、Linux、Chromebook のどれか。ブラウザは Chrome か Edge です(Firefox と Safari は USB 接続に対応していません)。
  • インターネット接続:測定アプリのページを開くために使います。
  • v1 Windows では、CH341 ドライバを入れられる権限(手順)。
  • v2 任意:PC なしで記録するときは、FAT32 の microSD。Bluetooth でつなぐときは、Bluetooth に対応した PC。
  • 置き場所:測定中に動かさずに置ける、安定した場所。最初の測定は 5 分以上、そのままにします。
  1. 機種を確かめる箱の形で見分ける
  2. 開封する本体とケーブル
  3. PC につなぐUSB ケーブル(Windows はドライバ)
  4. アプリで測るChrome か Edge で 5 分
  5. 保存する.csv か .dat
  6. 確かめるレートと ADC を見る
  1. 機種を確かめる

    手元の検出器が OWAN(v1)か OHASHI(v2)かを見分けます。箱の上にステッカーがあれば、お椀の絵で若草色の地が OWAN、お箸の絵で生成り色の地が OHASHI です。ステッカーがないときは、箱の形で見分けます(上の写真、または 02 機種と各部のしくみ)。ページ上部の「両方 / v1 / v2」の切り替えで機種を選ぶと、その機種の説明だけが残ります。

  2. 開封して中身を確かめる

    箱には次のものが入っています。

    • 宇宙線検出器の本体
    • USB ケーブル(v1 は Type-A から Mini-B のものが多いです)(v2 は検出器側が USB Type-C です)

    組み立てキットの場合は、シンチレータの光学接着と遮光が必要です。手順は 10 組み立て を見てください。

  3. PC につなぐ

    • v1 Windows では先に CH341 ドライバを入れます(03 PC につなぐ)。macOS・Linux・Chromebook は、ふつう何も入れずに使えます。
    • v2 ドライバは要りません。つなぐだけで COM ポート(シリアルポート)として見えます。
    • 付属の USB ケーブルで検出器と PC をつなぎます。検出器の画面に情報が出れば、通電しています。画面のない機種は、そのまま次へ進んでください。
    • 充電専用のケーブルでは通信できません。つながらないときは別のケーブルを試してください。
  4. Web アプリで 5 分測る

    PC のブラウザは Chrome か Edge を使います(Firefox と Safari は USB 接続の仕組みに対応していません)。

    • v2 https://accel-kitchen.com/app/cosmicray-monitor/ を開きます。最初に機種の選択画面が出るので v2 を選び、「USBでつなぐ」から検出器のポートを選んで「接続」を押します。
    • v1 https://accel-kitchen.com/app/cosmicray-monitor/v1 を開きます。「USBでつなぐ」を押して、検出器のポート(例:COM3、/dev/tty.usbserial-XXXX)を選びます。
    • しばらくすると測定が始まり、グラフが動き出します。そのまま 5 分間待ちます。
    • ポートが一覧に出ないときは、USB ケーブルを差し直すか、別の USB ポートを試します。それでも出なければドライバ(v1 の Windows)を確かめてください。
  5. データを保存する

    • v2「保存フォルダを選ぶ」で自動保存を始めるか、「.dat で保存」「.csv で保存」で画面のデータを 1 つのファイルにします。
    • v1 「.csv で保存」(または「.dat で保存」)を押すと、ファイルが PC にダウンロードされます。保存フォルダを先に選んでおけば、自動で書き足すこともできます。
    • 保存したファイルをメモ帳や Excel で開いて、データが入っていることを確かめます。列の意味は 06 データと解析 にあります。
  6. 正常に動いているか確かめる

    次の値が目安です。大きくはずれているときは 09 トラブルシューティング を見てください。

    プラスチックシンチレータ版(5 × 5 × 1 cm)の目安
    項目正常な範囲
    測定レート0.5〜2.0 cnt/s 程度
    5 分間のイベント数150〜600 イベント程度
    v1 ADC 値の分布0〜1023 のうち、大半が 20〜200 程度。まれに 300 以上の大きな値が出る
    v2 ADC 値の分布0〜4095。しきい値のすぐ上から数百までに身のまわりのガンマ線が多く、1000 付近に宇宙線の山ができる

    この範囲に入っていれば、検出器は正常に動いています。宇宙線の検出に成功です。はずれたときは、次の表で見当をつけてください。

    レートから見た判定(プラスチック版、5 × 5 × 1 cm)
    レート判定することは
    0.5〜2.0 cnt/sふつうそのまま測ります
    0.3〜0.5、2.0〜3.0 cnt/s正常の範囲そのまま測ります。気になるときは、遮光とコネクタを確かめます
    0.1〜0.3、3〜10 cnt/sはっきりしない検出器を再起動して、測り直します。変わらなければ、遮光(高いとき)かコネクタ(低いとき)を確かめます
    0.1 cnt/s 未満低すぎるしきい値が高すぎる、またはコネクタが外れています(09 トラブルシューティング)
    10 cnt/s 超高すぎる遮光不良の可能性が高いです(09 トラブルシューティング)

    この目安は、v1 で確かめた値です。v2 は、しきい値の決め方が少しちがうので、ずれることがあります(v2 の値は、実測してから見直します)。

    CsI シンチレータ版(1 cm 立方)は、受ける面積が小さいので、レートはもっと低くなります。宇宙線だけなら毎分 1 個ほどです。この表は当てはまりません。

  7. 次のステップ

    最初の測定に成功したら、探究活動の全体像をつかみましょう。

    わからないことは Discord でいつでも質問できます。週 1 回のオフィスアワーも使ってください。

02機種と各部のしくみ

この検出器は、ガンマ線・ベータ線・宇宙線のミューオンなどを数えられる放射線検出器です。

検出のしくみ

粒子がシンチレータを通ると、シンチレータが弱く光ります。その光を SiPM(シリコン光電子増倍素子)が電気の信号に変え、基板の回路で増幅します。マイコンがその信号の高さ(ADC 値)を読み取り、画面に出して PC に送ります。ADC 値が大きいほど、シンチレータで落としたエネルギーが大きかったことを表します。

  1. 粒子ミューオン・ガンマ線など
  2. シンチレータ通ると光る
  3. SiPM光を電気に
  4. アンプ信号を大きく
  5. ピークホールド頂点の高さを保つ
  6. マイコン数値(ADC)にする
  7. 表示・記録画面、USB、Bluetooth、microSD

宇宙線や検出器の仕組みを基礎から学びたいときは、先に、この講座の前半(1 章「この検出器は何を測っている?」から 7 章まで)を読んでください。

信号は、こう変わっていく

粒子が通ってから数字になるまでに、信号の形は 2 回変わります。SiPM の小さな信号をアンプで大きな短いパルスにして、そのあとピークホールドで頂点の高さをしばらく保ちます。保っているあいだに、マイコンがその高さを読みます。これが ADC 値です。

アンプの出力 ピークホールドの出力(A0) しきい値 頂点を保つ ← この高さが ADC 値 トリガー ADC を読む リセット
模式図(時間は実際の比ではありません)

ピークホールドの出力がしきい値を超えたときが「トリガー」です。そのあと ADC を読み、最後にリセットして次のパルスに備えます。リセットのしかたは機種で違います。v1 は、信号が自然に下がって Res を下回るまで待ちます。v2 は、マイコンの D8 から出す短いパルス(約 20 µs)で、強制的にリセットします。

名前とステッカー

v1 は OWAN(お椀)、v2 は OHASHI(お箸)という名前です。箱の上に貼るステッカーには、丸い紋の中に、降ってくる粒子とその道具が描いてあります。ステッカーがあれば、絵と地の色で機種を見分けられます。

OWAN のステッカー。丸い紋の中で、湯気の立つお椀が降ってくる粒子を受けとめている。下に OWAN の文字、Cosmic Ray Detector v1、加速キッチンのロゴ

v1 縦長の箱

OWANお椀

Online Watcher of Ambient Natural radiation

お椀の絵で、地は若草色。湯気の立つお椀が、降ってくる粒子を受けとめています。

OHASHI のステッカー。丸い紋の中で、降ってくる粒子を 1 つ、お箸がつまんでいる。下に OHASHI の文字、Cosmic Ray Detector v2、加速キッチンのロゴ

v2 ほぼ立方体の箱

OHASHIお箸

Online Hands-on Analyzer of Scintillation Hits, Individually

お箸の絵で、地は生成り(クラフト)色。お箸が、降ってきた粒子を 1 個だけつまみ上げています。

絵と文字は墨、略称の頭文字と右下の判は朱です。いちばん下に、加速キッチンのロゴがあります。ステッカーは、箱の上(上蓋)に貼ります。

v1 と v2 のちがい

項目v1v2
名前OWAN(お椀)OHASHI(お箸)
ステッカーお椀の絵。地は若草色お箸の絵。地は生成り(クラフト)色
箱の形縦長。上の面に画面の窓と小さな丸い穴ほぼ立方体。横の面に画面の窓と丸い穴 2 つ
マイコンArduino Nano(ATmega328P)Arduino Nano ESP32(ESP32-S3)
USB 端子Mini-BType-C
USB ドライバWindows のみ CH341 ドライバが必要不要
信号の大きさ(ADC)10 bit(0〜1023)12 bit(0〜4095)
環境センサ温度(TMP36)温度・湿度・気圧(BME280)
通信USB シリアル(9600 bps)USB シリアル(9600 bps)、Bluetooth LE
本体への記録なし(PC に保存)microSD に自動で記録できる
同時測定2 台。ケーブル 1 本で Master と Slave をつなぐOUT 1 つ、IN 3 つ。最大 3 台の外部検出器を同時に読む
画面・通知OLED、LEDOLED、LED、ブザー(振動モーターは後付け)
時間の単位ミリ秒(ms)マイクロ秒(µs)
測定アプリ…/cosmicray-monitor/v1…/cosmicray-monitor/

v2 の基板に v1 用のアプリやスケッチを使わないでください。出力の列の意味が 1 列ずつずれて、正しく読めません。

v1 の基板に Arduino Nano ESP32 を載せ替えた機体もあります。画面と配線は v1、通信は v2 に近くなります。この機体は、v1 とは別のスケッチで動いていて、ADC は 12 bit(0〜4095)、出力は Mode 列を含む 7 列で、しきい値の決め方、設定の保存、コマンドの長さ(47 文字まで)、同時測定の方式が、v1 とちがいます。この機体では、このマニュアルの v1 の数字や手順を、そのまま当てはめないでください(08 ファームウェア)。

v2 の各部

v2 を前から斜め上に見た写真。黒いテープで包んだシンチレータが基板にのり、手前に OLED が立っている。左にジャックが 4 つ、右に LED とボタンがある 1 2 3 4 5 6 7
  1. OLED の画面:計数(Cnt)とレート(Rate)などが出ます。
  2. LED:粒子を検出するたびに光ります。
  3. RESET ボタン:検出器を再起動します。
  4. ジャック:OUT と IN1〜IN3 の 4 つ。外部の検出器をつなぎます。
  5. シンチレータと SiPM:黒いテープで包んだ塊です。光が入らないように包んであります。
  6. テストポイント:GND1 と TP1〜TP4。オシロスコープを当てる場所です。TP2 が増幅した信号、TP3 がピークホールドの信号です。TP4 は、トリマの近くにあります。
  7. 支柱(スペーサー):基板を持ち上げて、下に Nano ESP32 を差す場所をつくります。

前から見たところ(試作機の写真)。

シンチレータを外した v2 の読み出し基板を裏から見た写真。Arduino Nano ESP32、microSD スロット、青いトリマ、支柱が見える 1 2 3 4 5
  1. Arduino Nano ESP32:USB Type-C の端子があるマイコン。基板の裏のソケットに差します。
  2. microSD スロット:FAT32 の microSD を差すと、検出器だけで記録できます。
  3. ゲイン調整のトリマ(青):アンプの増幅率を変えます。
  4. 支柱(スペーサー):基板を床から持ち上げます。
  5. ジャック:基板の縁にそろっています。

基板の裏側(シンチレータは外してあります)。

振動モーターは、後から付ける部品です。マイコンの端子(A7)に直接つなぐと、電流が大きすぎてマイコンを傷めます。A7 → 1 kΩ → NPN トランジスタ(2N3904 や S8050 など)か N ch MOSFET(2N7002)の順につなぎ、モーターと並列にダイオード(1N4148)を入れてください。D13 には付けないでください(microSD の信号と共用で、記録が壊れます)。モーターのノイズで、誤って数えてしまうこともあります。

v1 のつくりの図。上から、粒子で光るシンチレータ、光を電気信号にする SiPM、電気信号を処理する基板と Arduino Nano が重なっている
v1 のつくり(イメージ図)粒子(放射線)が通るとシンチレータが光り、その光を SiPM が電気信号に変えます。下の基板(Arduino Nano)がその信号を処理して、PC に送ります。

付属品と取り扱い

  • 検出器本体
  • USB ケーブル

測定中は、基板に直接触れないでください。遮光テープをはがしたまま、明るい場所で通電しないでください。外の光が入ると、正しく測れません。

仕様の目安

項目内容
シンチレータプラスチック 50 × 50 × 10 mm(「5 × 5 × 1 cm」)が標準です。CsI の 1 cm 立方の版もあります
v2 光センサSiPM(onsemi MICROFC-60035、6 mm 角)。40 mm 角の基板にのっています
v2 SiPM の電圧約 29 V(USB の 5 V から、基板の上で昇圧します)
信号の大きさ(ADC)v1:10 bit(0〜1023)v2:12 bit(0〜4095)
時間の単位v1:ミリ秒v2:マイクロ秒
通信USB シリアル(9600 bps)。Bluetooth LE も使えます
データの記録v1:PC に保存しますv2:PC に保存、または microSD(FAT32)に記録します
電源USB(5 V)から給電します

安全のために

  • はんだ付け(組み立てキット):換気のよい場所で、はんだごての先に触れないようにします。やけどに気をつけ、保護メガネを使うと安心です。作業のあとは、手を洗います。
  • 通電中:基板と SiPM のまわりに、触れないでください。v2 は、SiPM に約 29 V の電圧がかかります。基板をつなぎ替えるときは、USB を抜いてからにします。
  • 光:遮光テープをはがしたまま、明るい場所で通電しないでください。
  • 静電気:基板の部品に触る前に、金属のものに触れて、静電気を逃がします。基板は、縁を持ちます。
  • 放射線源:宇宙線と身のまわりの放射線を測るだけなら、線源は要りません。解析の例に出てくる Cs-137 や Co-60 などの線源を使うときは、学校や指導する人のルールに従い、許可を受けた人の指導のもとで扱ってください。

03PC につなぐ

USB ケーブルでつなぎ、PC が検出器を見つけられるようにします。

つなぎ方の全体像

検出器 v1 USB PC のブラウザ Chrome か Edge 測定アプリ ファイル .csv / .dat Windows は CH341 ドライバ
v1 は USB だけでつなぎます。Windows ではドライバが必要です。
検出器 v2 PC のブラウザ Chrome か Edge 測定アプリ USB Bluetooth スマホ BLE ターミナル Bluetooth ファイル .csv / .dat microSD PC なしで記録
v2 は USB のほかに Bluetooth もつかえます。microSD に記録すれば PC は要りません。

USB シリアルドライバ

v1 は、PC との通信に USB-シリアル変換(CH341 系)を使っていて、OS によってはドライバが要ります。v2 は Arduino Nano ESP32 が USB で直接つながるので、ドライバは要りません。

OSv1v2
WindowsCH341 ドライバのインストールが必要不要
macOS多くの場合は不要。認識されなければ CH341 の macOS 用ドライバを入れる不要
Linux不要(カーネルに含まれる)不要
Chromebook不要(Chrome の Web Serial API にそのまま対応)
v1Windows:CH341 ドライバをインストールする
  1. CH341SER.zip をダウンロードします。
  2. ダウンロードした CH341SER.zip を右クリックして「すべて展開」を選びます。展開先のフォルダがどこになるか、確認しておきます。
    CH341SER.zip を右クリックしたメニュー。「すべて展開」に赤い矢印が付いている
    右クリックのメニューで「すべて展開」を選びます。
  3. 展開先にできた CH341SER フォルダの中の SETUP.EXE を起動します。
    展開したフォルダの中身。SETUP.EXE に赤い矢印が付いている
    フォルダの中の SETUP.EXE(赤い矢印)を起動します。
  4. 表示された画面の INSTALL を押すと、インストールが始まります。
    DriverSetup の画面。INSTALL、UNINSTALL、HELP のボタンと、CH341SER.INF が見える
    この画面で INSTALL を押します。
  • INSTALL でエラーが出るときは、先に UNINSTALL を実行してから、もう一度 INSTALL を実行します。
  • インストールのあとは、PC を再起動すると確実です。
macOS:ポートを確かめる

検出器を USB でつないだあと、ターミナルで次のコマンドを実行します。

ls /dev/tty.*
  • v1 /dev/tty.usbserial-XXXX や /dev/tty.wchusbserial-XXXX のようなポートが出れば、認識されています。出ないときは、CH341 の macOS 用ドライバを入れてください。
  • v2 /dev/cu.usbmodem… のようなポートが出れば、認識されています。
Linux:ポートを確かめる

検出器をつないだあと、ターミナルで次のコマンドを実行します。

dmesg | grep tty

/dev/ttyUSB0 /dev/ttyACM0 などが出れば、認識されています。Web アプリからポートを開けないときは、ユーザーを dialout グループに加えてください。

sudo usermod -a -G dialout $USER

加えたあと、いちどログアウトして、ログインし直すと反映されます。

USB ケーブルでつなぐ

付属の USB ケーブルで、検出器と PC をつなぎます。検出器の画面に、次のような情報が出ます。画面のない機種では出ません。

v1 の画面(表示例)。番号は下の表と対応しています。
v2 の画面(表示例)。番号は下の表と対応しています。
v1 の OLED の写真。画面の項目に、Slave or Master、総カウント数、測定時間、レート、trigger threshold、clear threshold の説明が書き込まれている
v1 の画面(実物の写真)写真に書き込んだ名前のとおり、Sig が trigger threshold、Res が clear threshold です。
v1 の画面
表示意味
1Accel Kitchen :Master / :Slave2 台同時測定のときの役割です。単体で使うときは :Master と出ます(05 同時測定)
2Cnt:電源を入れてから検出した、総イベント数
3T:電源を入れてからの経過時間(時:分:秒)
4Rate:測定レート(回/秒)と、統計的な不確かさ(±)。数えられなかった時間(デッドタイム)を引いた時間で割っています
5Sigトリガー開始のしきい値(ADC 値)。信号がこの値を超えるとイベントとして数えます
5Res次の測定を始めるためのしきい値。ADC 値がこの値を下回ると、次のイベントを待ちます
v2 の画面
表示意味
1Cnt:電源を入れてから検出した、総イベント数
2T:電源を入れてからの経過時間(時:分:秒)
3Rate:測定レート(回/秒)と、統計的な不確かさ(±)。数えられなかった時間(デッドタイム)を引いた時間で割っています
4Thr:信号のしきい値(0〜4095)。信号がこの値を超えるとイベントとして数えます
5Duty:コンパレータ(比較回路)のしきい値をつくる PWM の値(0〜255)。Digital / Dual モードで使います
6温度・湿度・気圧BME280 の値。2 秒ごとに更新されます。センサが見つからないときは出ません

しきい値は、電源を入れるたびに自動で決まります。v1 は、起動の直後に A0 のノイズを約 0.1 秒測り、その最小値に 20(Sig)と 15(Res)を足します。v2 は、起動の直後に A0 のノイズを約 1 秒(100 回)測り、その最大値にマージン(初期値 50)を足します。

電源は、ふだんの組み上がった状態(遮光された状態)で入れてください。ノイズを測っている起動の直後の約 1 秒(v1 は約 0.1 秒)は、検出器を動かしたり、触ったりしないでください。起動のときに外の光が入ったり、ノイズが大きかったりすると、しきい値が高くなりすぎて、検出されなくなります(09 トラブルシューティング)。

電源を入れてから、数え始めるまで

  1. 電源を入れるUSB をつなぐ
  2. ノイズを測る約 0.1 秒(10 回)約 1 秒(100 回)
  3. しきい値が決まる最小値 + 20(Sig)最大値 + 50(Thr)
  4. ロゴと設定を表示約 2 秒
  5. 数え始めるCnt が増える

04測定する

測定用の Web アプリで、検出器からのデータをグラフにして、PC に保存します。

Web アプリは、PC の Chrome か Edge(Chromium 系のブラウザ)で開いてください。Firefox と Safari は、USB でつなぐ仕組み(Web Serial API)に対応していません。

v2 の検出器で測る

  1. アプリを開いて機種を選ぶ

    https://accel-kitchen.com/app/cosmicray-monitor/ を開きます。最初に機種の選択画面が出ます。手元の検出器の箱の形と見くらべて v2 を選びます。選んだ機種はブラウザが覚えているので、次からは接続画面から始まります。

  2. USB でつなぐ

    「USBでつなぐ」を押し、ブラウザの一覧から検出器のポートを選んで「接続」を押します。上の帯が「接続中 · USB」に変われば完了です。宇宙線が届くたびにグラフが伸びていきます。

  3. 測定して保存する

    最初は 5 分ほど測ってみます。保存は、「保存フォルダを選ぶ」で自動保存にするのがおすすめです。届いたデータが <検出器の名前>_<日付>.dat に書き足されていきます。画面のデータをまとめて 1 つのファイルにしたいときは、「ダウンロード」の下の「.dat で保存」か「.csv で保存」を押します。

機種を選ぶ画面

画面を横にスクロールできます →

測定アプリの機種を選ぶ画面。v1、v2、v2.1(準備中)の 3 つのカードが並び、それぞれに箱の絵と見分け方の説明がある 1 2 3
  1. v1:縦長の箱。上の面に、画面の小窓と小さな丸い穴。v1 用のページが開きます。
  2. v2:ほぼ立方体の箱。横の面に、画面の窓と丸い穴が 2 つ。このアプリの本体です。
  3. v2.1:四隅に柱のある平たい箱。画面は準備中で、まだ選べません。

選んだ機種はブラウザが覚えています。選び直すときは、接続の画面の見出しの横の「機種を選び直す」を押します。

アプリの最初の画面(つなぐ)

画面を横にスクロールできます →

測定アプリの接続の画面。USB でつなぐ、Bluetooth でつなぐ、デモで試す、の 3 つのカードが並んでいる 1 2 3 4
  1. USB でつなぐ:ケーブル 1 本でつなぎます。いちばん確実です。
  2. Bluetooth でつなぐ:無線でつなぎます。「検出器の名前」には、検出器の Bluetooth 名(最初は CosmicRay)を入れます。
  3. デモで試す:検出器がなくても、合成データで全部の機能を試せます。
  4. 保存先を先に選ぶ:つなぐ前に、保存するフォルダを決めておけます。

測っているときの画面

画面を横にスクロールできます →

測定アプリの計測画面。上に総イベント数と平均カウントレートと経過時間、左にエネルギー分布のヒストグラム、右にカウントレートの変化、右の欄に保存の設定がある 1 2 3 4 5 6 7 8 9 10
  1. 接続の状態:「接続中」と検出器の名前。イベントが届くたびに点が光ります。
  2. 記録を一時停止:届いたイベントを記録しません(検出器は数え続けます)。
  3. 切断:データは画面に残ります。
  4. オシロスコープ:信号の波形を見ます(見ているあいだは数えません)。
  5. 詳細設定:しきい値や、検出器の機能のオン・オフなど。
  6. 総イベント数・平均カウントレート・経過時間:レートは、デッドタイムを引いた時間で割った値です。
  7. エネルギー分布(ADC ヒストグラム):信号の大きさごとの数。左の低い山は身のまわりのガンマ線、右の山(ADC 1000 あたり)が宇宙線です。
  8. カウントレートの変化:レートの移り変わり。
  9. 温度・湿度・気圧、外部検出器、平均 ADC、デッドタイム、トリガー
  10. 保存:保存フォルダを選ぶと、自動で保存が始まります。形式とメモもここで決めます。

デモ(合成データ)の画面です。数値は実際の測定ではありません。

v1 の検出器で測る

  1. アプリを開いて接続する

    https://accel-kitchen.com/app/cosmicray-monitor/v1 を開き、「USBでつなぐ」を押します。シリアルポート(COMx など)を選ぶと、しばらくして自動で計測が始まります。

  2. グラフが動くことを確かめる

    画面にグラフが出て、検出器の画面の Cnt: が増えていくことを確かめます。

  3. 保存する

    測定が終わったら「.csv で保存」か「.dat で保存」を押して、データを PC にダウンロードします(保存フォルダを先に選んでおけば、自動で書き足されます)。.dat はタブ区切りで、# で始まる行は見出しとメモです。.csv はカンマ区切りで、1 行目が見出しです。メモ帳などで開いて、データが入っていることを確かめます。

    保存したデータファイルをエディタで開いた画面。日時、ADC などの数字が 1 行に 1 イベントずつ並んでいる
    保存したファイルを、エディタで開いたところです。これは測定アプリの古い版で保存したもので、列の並びが 06 データと解析 の表と同じではありません。1 行が 1 イベントであることを確かめてください。

v1 のページの最初の画面(つなぐ)

画面を横にスクロールできます →

v1 用の測定アプリの接続の画面。USB でつなぐ(接続オプションを開いたところ)、Bluetooth でつなぐ、デモで試す、の 3 つのカードが並んでいる 1 2 3 4
  1. USBでつなぐ:ケーブル 1 本でつなぎます。いちばん確実です。
  2. 接続オプション:ボーレート(ふつうは 9600)と、基板の種類(ふつうは「自動で判別」)。
  3. Bluetoothでつなぐ:無線でつなぎます。ESP32-S3 版の検出器だけが使えます。
  4. デモで試す:検出器がなくても、合成データで全部の機能を試せます。

v1 のページの、測っているときの画面

画面を横にスクロールできます →

v1 用の測定アプリの計測画面。上に総イベント数と平均カウントレートと経過時間、左にエネルギー分布のヒストグラム、右にカウントレートの変化、右の欄に保存の設定がある 1 2 3 4 5 6 7
  1. 総イベント数・平均カウントレート・経過時間:レートは、数えられなかった時間を引いた時間で割った値です。
  2. エネルギー分布(ADC ヒストグラム):信号の大きさごとの数です。ビン幅と対数の切り替えができます。
  3. カウントレートの変化:レートの移り変わりです。
  4. 基板の種類:つながっている検出器(Arduino Nano など)。左は平均の温度とデッドタイムです。
  5. モード:「単独(Master)」のとき、1 台で測っています。同時測定では Slave を選びます(05 同時測定)。
  6. 保存フォルダを選ぶ:ここから自動保存が始まります。
  7. .csv で保存:画面のデータを、まとめて 1 つのファイルにします(左は .dat で保存)。

デモ(合成データ)の画面です。数値は実際の測定ではありません。

保存のしかた

測定アプリの右の欄(狭い画面では、右下の「保存」ボタン)にまとまっています。保存フォルダを選ぶと、そこから自動保存が始まります。長い測定には、自動保存を使ってください(画面には、最大で 100 万件までしか残りません)。

測定アプリの「保存」のパネル。「保存フォルダを選ぶ」、形式、メモ、ダウンロードの「.dat で保存」と「.csv で保存」、「データを消去して最初から」が縦に並んでいる 1 2 3 4 5
  1. 保存フォルダを選ぶ:ここから自動保存が始まります。
  2. 形式:.dat、.csv、または両方。
  3. メモ:場所、向き、条件など。ファイルの先頭に # をつけて書き込まれます。
  4. ダウンロード:画面にあるデータを、まとめて 1 つのファイルにします。
  5. データを消去して最初から:検出器にも RESET を送り、番号と時間を 0 に戻します。保存済みのファイルは消えません。

v2 の画面です。v1 のページには、「ファイル名の頭につける文字」の欄もあります。v1 のページの「データを消去して最初から」は、画面のデータだけを消します(検出器には RESET を送りません)。メモは、v1 のページでは .dat にだけ書き込まれます。

  • ブラウザが書き込みの許可を聞いてきたら、「ファイルの編集を許可」を選びます。
  • 届いたデータは、<検出器の名前>_<日付>.dat に書き足されます。日付が変わると新しいファイルになり、ファイルがとても大きくなると _02、_03… に分けます。名前の前半は、検出器の Bluetooth の名前なので、台ごとに名前を変えておくと、ファイルも台ごとに分かれます(よくある質問)。
  • v1 のページでは、「ファイル名の頭につける文字」で、ファイル名の頭を決めます。
  • 「ダウンロード」で保存するファイルの名前は、<名前>_<年-月-日_時-分-秒>.dat(測り始めた時刻)です。
  • まだ書き込んでいないデータがあるときにタブを閉じようとすると、ブラウザが確認します。

オシロスコープで波形を見る

上の帯の「オシロスコープ」を押すと、検出器から届く信号の波形が見られます。信号が来ているか、しきい値が合っているかを確かめるときに使います。v2 は、12 µs ごとに 1 点を表示します。v1 のページにもあります。検出器は、60 秒間コマンドが来ないと自分で計数に戻りますが、v1 のページは、開いているあいだ 15 秒ごとに合図を送るので、戻りません。v1 の検出器は、Arduino Nano が 6.5 µs ごと、ESP32-S3 版が 12 µs ごとに 1 点です。Arduino Nano は、9600 bps では 1 秒に 2 本ほどしか波形を出せません。開いているあいだは、同時測定を含めて、計数がすべて止まります。

開いているあいだ、検出器は宇宙線を数えません。止まっていた時間は、デッドタイムとして引かれるので、平均カウントレートは正しいままです。「閉じて計数に戻る」(または Esc)で戻ります。v2 のページは、10 分間操作がないと、自動で閉じます。v1 のページは自動では閉じないので、見終わったら必ず「閉じて計数に戻る」を押してください。

「オシロスコープを開きますか?」の確認の画面。開いているあいだは計数が止まること、止まった時間はデッドタイムとして引かれることが書かれている
ボタンを押すと、まずこの確認が出ます。「開く」を押すと、画面がオシロスコープの表示に切り替わります。「次回からこの確認を表示しない」にチェックすると、次からは確認なしで開きます。

オシロスコープの画面

画面を横にスクロールできます →

オシロスコープの画面。明るい背景に、立ち上がってからゆっくり下がる波形が何本も重なって表示され、赤い点線のしきい値と、右端のつまみがある。上に、トリガーと連続の切り替え、各種の入力欄、操作のボタンが並び、下にピーク ADC などの数値が並ぶ 1 2 3 4 5 6 7 8 9 10 11 12
  1. 計数停止中:オシロスコープを開いている時間です。
  2. トリガー/連続:しきい値を超えたときに撮る(初期値)か、撮り続けるかの切り替えです。
  3. レート上限:1 秒に送る波形の数(1〜20、初期値は 3)。Bluetooth では、少なめにします。
  4. 再アーム(しきい値 −):次の波形を撮れる状態に戻す水準が、しきい値からいくつ下か(初期値は 5)。
  5. 残光:前の波形を、薄く重ねて残す本数です。
  6. 縦軸を自動で合わせる:初期値はオフです(この写真は、オンで撮っています)。
  7. 一時停止:いまの波形を止めて、ゆっくり見ます。
  8. クリア:重なった波形を消します。
  9. .wfm で保存:見えている波形を、ファイルにします。
  10. 波形:いちばん新しいものが、濃い線です。赤い点線がしきい値で、右端のつまみを上下にドラッグすると、離したところが検出器に設定されます(電源を入れ直すと、自動校正の値に戻ります)。これは、実際に数えるときのしきい値です。↑↓ キーでも動かせます(Shift で 10、PageUp/PageDown で 100)。青緑の点線は再アームの水準で、しきい値と一緒に動きます。
  11. ピーク ADC・波形の数など:いま見えている波形の数値です。
  12. 閉じて計数に戻る

デモ(合成データ)の画面です。

見えているのは、増幅した生のパルスではなく、ピークホールド回路の出力です。立ち上がって頂点で止まり、ゆっくり下がってからリセットされる形になります。生のパルスを見たいときは、オシロスコープを、基板のテストポイント(TP2)に当てます(10 組み立て)。

撮り方(トリガー/連続)と再アーム

  • トリガー(初期値):A0 がしきい値を超えたときだけ、波形を撮ります。1 本撮ると、A0 が再アームの水準以下に戻るまで、次を撮りません。
  • 再アーム:水準は「しきい値 − 入力欄の値」です(初期値は 5。しきい値が 120 なら 115)。波形の画面に青緑の点線で出て、しきい値の線をドラッグすると一緒に動きます。入力欄を空にして外へ出ると、初期値の 5 に戻ります。
  • 連続:トリガーを待たずに、いちばん新しい 161 点の窓を、レート上限の間隔で撮り続けます。ベースラインやノイズを見るときや、しきい値に届かない小さな信号を探すときに使います。トリガーの縦の点線はなくなり、横軸は「窓の中の時間」になります。

開いても、波形が 1 本も出ないとき:トリガーのままだと、A0 のベースラインが再アームの水準より下まで下がらない限り、波形は出ません。しきい値をベースラインより十分上に、再アームの入力欄の値をベースラインのゆらぎより小さくしてください。確かめるだけなら「連続」にすると、ベースラインが見えます。

v1 のページのオシロスコープにも、同じ「トリガー/連続」と「再アーム(しきい値 −)」があります。v1 の検出器では、更新したスケッチに書き込み直したときに使えます。

詳細設定

上の帯の「詳細設定」を押すと、右からパネルが開きます。上の目次で、節に飛べます。基板の設定は、検出器をつないでいるときだけ変えられます。「基板: …」の行は、検出器が今使っている値です(v1 のページの「詳細設定」には、「しきい値とモード」「ESP32-S3 の設定」「接続」「ヘルプ」があります)。

トリガーとしきい値

詳細設定の「トリガーとしきい値」のパネル。トリガーモードの切り替え、信号しきい値と「自動校正」、コンパレータしきい値と「Auto PWM」が縦に並んでいる 1 2 3 4 5
  1. トリガーモード:Analog、Digital、Dual。電源を入れたときは、いつも Analog です。
  2. 信号しきい値(0〜4095):Analog と Dual で使います。手で決めても、電源を入れ直すと、自動校正の値に戻ります。
  3. 自動校正:ノイズを約 1 秒(100 回)測り、その最大値にマージン(初期値 50)を足して、しきい値にします。光の入らない状態で押します。マージンを変えると、その値は保存されます。
  4. コンパレータのしきい値(PWM の duty、0〜255):Digital と Dual で使います。
  5. Auto PWM:しきい値を動かして、ノイズの反応が目標の回数以下になるところに合わせます(約 8 秒)。Digital か Dual に切り替えたら、一度実行します。

しきい値が低すぎるとノイズまで数え、高すぎると小さな信号を取りこぼします。迷ったら、Analog のまま、自動校正を使ってください。

詳細設定の「検出器の機能」のパネル。microSD への記録、外部検出器の読み取り、OLED、ブザー、振動モーターのスイッチが並んでいる
検出器の機能microSD への記録、外部検出器の読み取り、OLED、ブザー、振動モーターを、スイッチで入れたり切ったりします。使わない機能を切ると、数えられない時間(デッドタイム)が減ります。設定は検出器に残ります。
詳細設定の「音と振動」のパネル。ブザーの最低・最高の周波数と音の長さ、振動の最短・最長の長さと、それぞれのためし鳴らしのボタンがある
音と振動信号が大きいほど、高い音・長い振動になります(対数)。最低と最高の周波数、音の長さ、振動の長さを決めて、「鳴らしてみる」「振動させてみる」で確かめます。音は、数えるのをさまたげません。
詳細設定の「接続」のパネル。つながっている検出器の情報、Bluetooth の名前を変える欄、USB のボーレートの選択がある
接続どの検出器につながっているかの確認、Bluetooth の名前(1〜19 文字。保存すると、検出器が約 1 秒後に自分で再起動します)、USB のボーレート(ふつうは 9600)。

このほか、「表示」(グラフを描き直す間隔:1 秒、3 秒、10 秒、手動)と、「サーバー送信」、「ヘルプ」があります。

アプリのそのほかの機能

機能できること
解析(プロッター)上の帯の「解析」で開きます(v2 のページにあり、v1 のページにはこのボタンがありません)。保存した .dat / .csv(v1 のページで保存した .dat と、microSD のログも)を読み込んで、ヒストグラム、天頂角分布、エネルギー校正をします。検出器は要りません。ファイルは、この PC の中だけで読み、どこにも送りません(06 データと解析)。
サーバーへの送信v2 のページの、詳細設定の「サーバー送信」から、測ったイベントを観測サーバーへ送れます。正式な記録は、この PC への自動保存で、サーバーへの送信は複製です。今のサーバーの形式では、湿度・気圧・外部検出器(Dig1〜3、Ana1〜3)の列は送られません。
デモ検出器がなくても、合成データで全部の機能を試せます。デモのあいだは、上に斜線の帯が出て、保存するファイルの名前に DEMO_ が付きます。
v2 Bluetooth が切れたとき「切断」を押していないのに切れたときは、アプリが自動でつなぎ直します。1 秒から始めて、間隔を倍々にのばし(最長 30 秒、回数の制限はありません)、上の帯が点滅して「◯ 秒後に ◯ 回目の再接続」と数えます。自動保存は、同じファイルに続けて書きます。
ページの開き方Bluetooth は、file:// で開いたページでは使えません。https:// か、http://localhost で開きます。

この章にない細かい説明(全コマンド、ファイルの形式、ピン配置)は、測定アプリのマニュアルにあります。

測定中の注意

  • 測定中は基板に直接触れないでください。
  • USB ケーブルが抜けかけていないか、PC がスリープしていないかを確かめてください。データが途切れる原因になります。
  • 測定時間の目安と、一晩測るときの設定は 07 よくある質問 にあります。

v2PC を使わない測り方

  • microSD に記録する:FAT32 の microSD を差して電源を入れると、イベントを 1 行ずつ LOG0001.TXT のようなファイルに記録します(SD の記録は、初期設定でオンです)。屋外や、PC を持ち込みにくい場所で長く測るときに向いています。
  • Bluetooth でつなぐ:検出器の Bluetooth 名は、初期設定で CosmicRay です。測定アプリから Bluetooth でつなげるほか、スマートフォンの汎用 BLE ターミナル(iOS は Bluefruit Connect、Android は Serial Bluetooth Terminal か nRF Connect)で、UART モードにして、行を見たり、コマンドを送ったりできます。

05同時測定

2 台の検出器を重ねて置き、両方がほぼ同時に反応したイベントだけを選び出す測り方です。

同時測定(コインシデンス)とは

2 台の検出器を上下に重ねて置き、両方がほぼ同時に反応したときだけを記録します。シンチレータの中で起きるノイズや、自然放射線(ガンマ線など)は、片方にしか入りません。両方の検出器を貫いて通る宇宙線のミューオンだけを、効率よく選べます。

検出器 A 検出器 B ミューオン ガンマ線 ミューオン:A も B も通る → 両方が光る → 記録する ガンマ線・ノイズ:片方だけ → 記録しない
2 台を重ねて置いたときの考え方(模式図)

概要と接続の例は、解説動画も見てください。

1 台で測ったレートが約 1 cnt/s のとき、2 台の同時測定ではレートが大きく下がります(検出器どうしの距離や面積で変わります)。十分な数のイベントを集めるには、1 台のときよりずっと長く測る必要があります。0.01〜0.1 cnt/s 程度になることが多く、数時間かかることもあります。

v1Master と Slave をつなぐ

Master 自分のイベントを すべて記録 Slave 同時だったものだけ 記録 コインシデンス線 3.5 mm ケーブル USB で給電するだけ (PC は不要) PC Web アプリ(v1)
データは Slave から取ります。Master の役目は、自分が反応したことを線で知らせることです。

現行のやりかた

  1. 2 台の検出器を、付属のコインシデンスケーブルでつなぎます。
  2. Slave にする方の検出器を PC に USB でつなぎます。もう 1 台(Master)には USB から電源を入れます。PC につなぐ必要はありません。
  3. 測定用の Web アプリ(v1 のページ)の「詳細設定」→「しきい値とモード」で、「Slave(コインシデンス)」を選んで「設定」を押します。
  4. Slave 側の画面に :Slave、Master 側の画面に :Master と出ていることを確かめて、測定を始めます(Arduino Nano の Slave は、ロゴの表示が終わるまで、LED が約 3 秒光ります)。
旧式のやりかた(アプリに Slave の切り替えがない古い版)
  1. 2 台の検出器を、付属のコインシデンスケーブルでつなぎます。
  2. Slave 側の検出器を、PC に USB でつなぎます。
  3. 2 台のリセットボタンを同時に押して、離します。離してから 1 秒以内に、Slave 側のリセットボタンをもう一度押します。
  4. Web アプリで、Slave の測定になっていることを確かめます。
しくみ(ファームウェアの動き)
Master の信号 線(D6) Slave の信号 約 20 µs 読む Slave は、自分の信号の約 10 µs 後に線を読む → HIGH なら記録
Master と Slave のタイミング(模式図)
  • Master は、自分の信号がしきい値を超えると、コインシデンス線を約 20 µs だけ HIGH にして、Slave に知らせます。
  • Slave は、自分の信号がしきい値を超えたあと、約 10 µs 待って線を読みます。HIGH なら「同時」と判断して記録します。LOW なら記録しません。
  • つまり、Master のデータは Master が反応したすべてのイベントで、Slave のデータは同時だったイベントだけです。同時測定のデータを取るときは、Slave 側を PC につなぎます。
  • 役割は、電源を入れたときの線の状態で決まります。単体では、基板の抵抗で線が LOW になるので Master で起動します。Master は起動の直後、およそ 2 秒のあいだ線を HIGH にするので、その間に起動した検出器が Slave になります。Web アプリから Slave を選ぶと、この順番を気にせずに切り替えられます。

v2OUT と IN をつなぐ

v2 には Master と Slave の区別がありません。検出器が反応するたびに、OUT ジャックから 100 µs 以上の短いパルスを出します。そのあと約 50 µs 待って、IN1〜IN3 の状態を読み、ログの Dig1〜Dig3 の列に書きます。1 台のログに全イベントが残り、同時だったかどうかは、あとから Dig の列で選びます。

同時と判定される幅(相手の信号が来ていてよい時間差)は、コードから計算すると ±50 µs 程度です(実測した値ではありません)。偶然の同時(別々の粒子が、たまたま重なること)は、レートが高いほど増えます。

検出器 A 検出器 B OUTIN1IN2IN3 OUTIN1IN2IN3 A の OUT → B の IN1、B の OUT → A の IN1
3.5 mm のケーブルを 2 本使うと、両方のログに同時の印(Dig1 = 1)が残ります。
A の信号 A の OUT B の信号 B の OUT A が読む B が読む OUT は約 100 µs
タイミング(模式図)。どちらも、約 50 µs 後に相手の OUT を読みます。
  1. 2 台の検出器を、上下に重ねて置きます。
  2. 4 極の 3.5 mm ケーブルで、A の OUT を B の IN1 に、B の OUT を A の IN1 につなぎます。片方向だけでも使えます。その場合は、IN につないだ側のログにだけ印が付きます。
  3. 両方の検出器で、外部検出器の読み取り(EXT)がオンになっていることを確かめます。初期設定はオンです。オフにすると、読み取りだけでなく OUT のパルスも出なくなり、相手から見えなくなります。
  4. 測定したあと、ログの Dig1 が 1 の行を選ぶと、相手も同時に反応したイベントだけが残ります。3 台までなら IN2、IN3 も同じように使えます。

v1 など、5 V で動く機器の出力を v2 の IN につなぐときは、先に出力の電圧(3.3 V か 5 V)を、回路図で確かめてください。5 V のまま入れると、マイコンを傷めるおそれがあります。

06データと解析

保存したファイルの中身と、解析のはじめかたです。

データの中身

検出器は、イベントが 1 つ起きるたびに 1 行を出力します。空白で区切られた数字の並びです。

v1検出器が出力する行

### Event Time[ms] ADC[0-1023] SiPM[mV] Deadtime[ms] Temp[C]

この見出しの下に、1 イベントにつき 1 行、同じ並びの数字が空白区切りで続きます。

  • Event何番目のイベントか
  • Time[ms]経過時間(ms)
  • ADC[0-1023]信号の強さ
  • SiPM[mV]信号の大きさ(電圧)
  • Deadtime[ms]数えられなかった時間の累計
  • Temp[C]温度
列意味
Event検出器が反応するたびに 1 ずつ増える通し番号
Time[ms]電源を入れてからの経過時間(ミリ秒)
ADC[0-1023]SiPM で読み取ったアナログ値。信号の強さを表します(最小 0、最大 1023)
SiPM[mV]ADC 値から計算した、SiPM の信号の大きさ(ミリボルト)
Deadtime[ms]数えられなかった時間の合計(ミリ秒)。1 ミリ秒より短い処理の時間は切り捨てられるので、主に画面の書き換えと、オシロスコープを開いていた時間です
Temp[C]温度(℃)。2 秒ごとに更新されます

測定アプリが保存するファイル(.dat はタブ区切り、.csv はカンマ区切り)は、2 列目に PC の時刻(PC_Timestamp)が入り、末尾に Mode(0 が Master、1 が Slave)の列が付きます。そのため、3 列目以降は上の行より 1 列右にずれます。

v2検出器が出力する行

### Event Time[us] ADC[0-4095] Deadtime[us] Temp[C] Hum[%] Press[hPa] Dig1 Dig2 Dig3 Ana1 Ana2 Ana3
42 18732450 1940 1203000 24.3 48.2 1013.2 1 0 1 2448 112 2804

1 行の読み方です(色は、列の種類を表します)。

  • Event42何番目のイベントか
  • Time[us]18732450経過時間(µs)
  • ADC1940信号の強さ
  • Deadtime[us]1203000数えられなかった時間の累計
  • Temp[C]24.3温度
  • Hum[%]48.2湿度
  • Press[hPa]1013.2気圧
  • Dig11外部 1 も同時に反応
  • Dig20外部 2 は反応なし
  • Dig31外部 3 も同時に反応
  • Ana12448外部 1 の信号の強さ
  • Ana2112外部 2 の信号の強さ
  • Ana32804外部 3 の信号の強さ
列意味
Eventイベントの通し番号(電源を入れる、または RESET したところから 1, 2, 3…)
Time[us]電源を入れて(または RESET して)からの時間(マイクロ秒)
ADC[0-4095]この検出器のピークホールドの値。信号の強さです(0〜4095)。トリガーのあとに 1 回読んだ値で、測定した頂点そのものではありません
Deadtime[us]数えられなかった時間の累計(マイクロ秒)
Temp[C] / Hum[%] / Press[hPa]BME280 の温度・湿度・気圧。2 秒ごとに更新。センサがないと nan
Dig1〜Dig3外部検出器 1〜3 のデジタル入力(0 か 1)。1 は、そのとき相手も反応していたことを表します
Ana1〜Ana3外部検出器 1〜3 のアナログ入力(0〜4095)

測定アプリが保存するファイルは、2 列目に PC の時刻(PC_Timestamp、UTC)が入ります。そのため、3 列目以降は上の行より 1 列右にずれます。.dat はタブ区切り、.csv はカンマ区切りで、# で始まる行は、メモと見出しです。

microSD のログ(LOG0001.TXT など)は、形がちがいます。PC の時刻の列がなく(13 列です)、イベントの行のあいだに、起動のメッセージ(SD: ready、MODE:ANALOG など)やコマンドの応答の行が混ざります。ファイルは、起動のたびに新しくなります。測定アプリの解析ページは、そのまま読めます。Python で読むときは、13 項目の行だけを選びます(下のコード)。

カウントレートの出しかた

レートは、数えられなかった時間(デッドタイム)を引いた時間で割ります。受け取った行の数を、経過時間で割ってはいけません。

経過時間(Time) 数えている 数えている 数えている 数えている ライブタイム:数えていた時間 デッドタイム:数えられない時間
経過時間は、ライブタイムとデッドタイムでできています。

デッドタイムには、イベントを 1 つ処理しているあいだ、画面を書き換えているあいだ、オシロスコープを開いているあいだなどが入ります。v1 は、1 ミリ秒より短い処理の時間が切り捨てられるので、主に画面の書き換えとオシロスコープの時間です。レートは、イベントの数をライブタイムで割って出します。

レート [個/秒] = (終わりの Event − 始めの Event) ÷ ((終わりの Time − 始めの Time) − (終わりの Deadtime − 始めの Deadtime))

Time と Deadtime は、v1 ではミリ秒、v2 ではマイクロ秒です。単位をそろえてから計算してください。v2 は、RESET や再起動で Event・Time・Deadtime が減ったら、そこで区間を切り替えて足し合わせます。

ヒストグラムの見方

測ったデータを、信号の大きさ(ADC 値)ごとに数えてグラフにしたものが、ヒストグラム(エネルギー分布)です。プラスチックシンチレータでは、光の弱い側にガンマ線、強い側に宇宙線の山が分かれて見えます。

プラスチックシンチレータで取ったスペクトル。光の弱い側にガンマ線、強い側に宇宙線の山が分かれて見える
プラスチックシンチレータのスペクトル横は光の強さ(=落としたエネルギー)、縦は数えた回数です。青がガンマ線、ピンクが宇宙線の山です。
測定アプリの解析ページ。保存したファイルを読み込んで、ヒストグラムとイベント数、平均、中央値、標準偏差を表示している
解析ページの例Cs-137 を置いたことにした合成データです。保存したファイルを読み込むと、ヒストグラムや平均・標準偏差を見られます(測定アプリのマニュアル)。

解析ページには、あと 2 つのタブがあります。天頂角分布は、検出器を 15° ずつ傾けて測ったカウントレートを入れると、cosnθ でフィットします。エネルギー校正は、線源の既知のガンマ線のピークから、ADC の値を keV に直す式をつくります。1 つのファイルに複数の測定(RESET や再起動で区切られたもの)が入っていても、解析ページは、区切って足し合わせます。

解析ページの「天頂角分布」のタブ。角度ごとのカウントレートの表と、cos の n 乗でフィットしたグラフがある
天頂角分布(合成データ)
解析ページの「エネルギー校正」のタブ。線源のピークを選ぶ表と、ADC と keV の関係を表す直線のグラフがある
エネルギー校正(Co-60 の 2 本のピークを使った 1 次式の例。合成データ)

v2Python で読み込む

import pandas as pd

cols = ["event", "pc_time", "time_us", "adc", "deadtime_us",
        "temp", "hum", "press", "dig1", "dig2", "dig3", "ana1", "ana2", "ana3"]
df = pd.read_csv("CosmicRay_2026-10-22.dat", sep="\t", comment="#", names=cols)

live_s = (df.time_us.iloc[-1] - df.time_us.iloc[0] - (df.deadtime_us.iloc[-1] - df.deadtime_us.iloc[0])) / 1e6
rate = (df.event.iloc[-1] - df.event.iloc[0]) / live_s
print(f"{rate:.2f} cnt/s")

.csv で保存したときは、見出し行があるので pd.read_csv("ファイル名.csv", comment="#") で読めます(sep と names は要りません)。

ファイル名は、保存したものに合わせて変えてください。

microSD のログは、PC の時刻の列がなく、ほかの行も混ざるので、次のように 13 項目の行だけを選んで読みます。

import pandas as pd

cols = ["event", "time_us", "adc", "deadtime_us", "temp", "hum", "press",
        "dig1", "dig2", "dig3", "ana1", "ana2", "ana3"]
rows = [l.split() for l in open("LOG0001.TXT") if not l.startswith("#")]
rows = [r for r in rows if len(r) == 13 and r[0].isdigit()]
df = pd.DataFrame(rows, columns=cols).apply(pd.to_numeric, errors="coerce")

v1Python で読み込む

import pandas as pd

# .csv(見出し行のあるカンマ区切り)で保存したとき
df = pd.read_csv("data.csv", comment="#")

# .dat(# の見出しとタブ区切り)で保存したとき
cols = ["event", "pc_time", "time_ms", "adc", "sipm_mV", "deadtime_ms", "temp", "mode"]
df = pd.read_csv("data.dat", sep="\t", comment="#", names=cols)

ファイル名は、保存したものに合わせて変えてください。

Google Colaboratory で解析する

Google Colaboratory は、ブラウザの上で Python を動かせる無料のサービスです。PC に Python を入れる必要はなく、Google アカウントがあればすぐ使えます。演習では、サンプルファイルを解析しながら、いろいろな宇宙線の解析を試せます。自分で測りながら進めると、自分の探究にどう使えるかがわかります。

ノートブックを自分の Google ドライブにコピーする

  1. 演習のリンクをブラウザで開きます。作業には Google アカウントでのログインが必要です。右上に Sign in と出ていたら、自分のアカウントでログインします。
    Google Colaboratory でノートブックを開いた画面。左に目次、右に各章の見出しが並んでいる
    ノートブックを開いたところ(ダークテーマの画面)。
  2. 左上のファイルメニューから Save a copy in Drive(ドライブにコピーを保存)を選びます。これで自分のドライブにコピーされ、自由に編集できます。
  3. データファイルの構造と解析の方法は、ノートブックの中に書いてあります。いろいろ試してみましょう。

Colab の基本操作

  • セルの実行:セルの左の ▶ ボタンを押すか、Shift + Enter を押します。
  • 上から順に:セルは上から順に実行します。途中のセルだけを実行すると、エラーになることがあります。
  • エラーが出たら:まず「ランタイム」→「ランタイムを再起動」を試し、上のセルから順に実行し直します。
  • データの読み込み:Google ドライブのデータを使うには、最初にドライブをマウント(接続)します。ノートブックの指示に従ってください。

解析のコードは、ChatGPT などの生成 AI に手伝ってもらえます。たとえば「Plotly でヒストグラムを作るコードを書いて」と頼むのは、よい使い方です。ただし、できたコードは必ず自分で読み、何をしているかを理解してから使ってください。わからないまま貼りつけると、エラーが出たときに直せず、結果の解釈もできません。各行が何をしているかを AI に説明してもらうのも、おすすめです。

演習のサンプルデータと自分のデータでは、列の並びや単位が違うことがあります。上の表で自分のデータの列を確かめてから、読み込んでください。

07よくある質問

探究を進めていて「よくわからない」「困った」というときは、まずここを見てください。

セットアップ編

USB ケーブルをつないでも、PC に認識されない

次を順に確かめてください。

  • ケーブル:充電専用のケーブルでは、データ通信ができません。別のケーブルを試してください。
  • USB ポート:別の USB ポートに差し替えてみてください。
  • ドライバ:v1 Windows では、CH341 ドライバが入っているか確かめてください(手順)。
  • PC の再起動:ドライバを入れたあとは、PC を再起動してみてください。

それでも解決しなければ、Discord でメンターに相談してください。

Web アプリで「接続」を押しても、ポートが表示されない
  • Chrome 系のブラウザ(Google Chrome、Microsoft Edge、Brave など)を使っていますか。Firefox と Safari は Web Serial API に対応していません。
  • 検出器は USB でつながっていますか。
  • v1 Windows では、ドライバが入っていますか。
  • ほかのアプリ(Arduino IDE のシリアルモニタ、アプリを開いた別のタブ)が、ポートを使っていませんか。閉じてからやり直してください。
ADC 値がすべて 0(または最大値)になる
  • すべて 0 のとき:検出器の上の基板(SiPM 基板)と下の基板(読み出し基板)をつなぐコネクタが、外れているかもしれません。ケースを開けて確かめてください。
  • すべて最大値のとき(v1 は 1023、v2 は 4095):遮光が足りず、外の光が SiPM に入っているかもしれません。アルミテープや黒いビニールテープで、遮光を強めてください。
レートが 0.5 cnt/s 以下(または 2.0 cnt/s 以上)で、正常かどうか不安
  • 正常なレートは、検出器の種類やシンチレータの大きさで変わります。まず検出器を再起動してみてください(USB ケーブルの抜き差し。v2 は RESET ボタンでも構いません)。
  • プラスチックシンチレータ版(5 × 5 × 1 cm)では、0.3〜3.0 cnt/s 程度なら正常に動いていると考えてよいでしょう(判定の目安の表は、01 クイックスタートにあります)。
  • レートが 10 cnt/s を大きく超えるときは、遮光不良の可能性が高いです。
  • レートが 0.1 cnt/s 以下のときは、しきい値が高すぎるのかもしれません。再起動しても直らなければ、メンターに相談してください。
  • CsI シンチレータ版(1 cm 立方)は面積が小さいので、もともとレートが低くなります。上の数字は当てはまりません。
Chromebook でも使えますか?

使えます。Chromebook は Chrome 系ブラウザの Web Serial API に対応しているので、ドライバを入れなくても、測定アプリからそのまま測れます。

測定編

何分測ればいいですか?

目的で変わります。目安は次のとおりです。

  • 動作確認:5 分ほどで十分です。
  • 2 つの条件を比べる測定:それぞれの条件で、少なくとも 400 イベント以上(相対不確かさ 5 % 以下)が目安です。レートが 1 cnt/s なら約 7 分ですが、余裕を見て 15〜20 分測るのがおすすめです。
  • 同時(コインシデンス)測定:レートが低い(0.01〜0.1 cnt/s 程度)ので、数時間かかることがあります。

詳しくは、講習資料の統計の基礎「ポアソン統計と ±√N」を見てください。400 イベントで相対誤差が 5 % になる理由も、そこで説明しています。

夜間に長く測りたいが、PC がスリープしてしまう

PC の電源設定で、スリープを無効にしてください。

  • Windows:「設定」→「システム」→「電源とバッテリー」→「画面とスリープ」で、スリープまでの時間を「なし」にします。
  • macOS:「システム設定」→「ディスプレイ」→「詳細設定」で、スリープを防ぎます。
  • ノート PC:電源につないだ状態で測ってください。バッテリー駆動だと、スリープや電源オフになることがあります。

PC の USB 電源管理で「USB のセレクティブサスペンド」が有効だと、USB ポートへの給電が止まることがあります。無効にすることをおすすめします。

2 台の同時測定がうまくいかない

v1 次を確かめてください。

  • つなぎ方:2 台がコインシデンスケーブルでつながっていますか。
  • 役割:検出器の画面で、Slave 側に :Slave、Master 側に :Master と出ていますか。出ていなければ、アプリで Slave を選び直してください。
  • PC につなぐ側:同時測定のデータは、Slave 側のシリアル出力から得られます。PC につなぎ、アプリで選ぶポートも、Slave 側です。
  • 電源の入れかた:役割は、電源を入れたときに決まります。Master の起動から約 2 秒以内に、Slave の電源を入れてください(間に合わなかったときは、Slave のリセットボタンを押します)。アプリで Slave を選べば、この順番は気にしなくて構いません。

v2 次を確かめてください。

  • つなぎ方:A の OUT と B の IN1(もう一方の向きも)が、ケーブルでつながっていますか。
  • 外部入力:両方の検出器で、EXT(外部検出器の読み取り)がオンですか。オフの検出器は、相手から見えなくなります。
  • 見る列:同時のイベントは、ログの Dig1 が 1 の行です。

くわしくは 05 同時測定 を見てください。

屋外で測りたいが、電源はどうすればいいですか?

検出器は、USB ケーブルからの給電で動きます。屋外では次の方法が使えます。

  • モバイルバッテリーとノート PC:いちばん一般的な方法です。
  • モバイルバッテリーにだけつなぐ:検出器の画面で動作は確かめられますが、データを記録するには、PC が必要です。PC か、microSD への記録が必要です。

モバイルバッテリーの注意:消費電力の小さい機器をつなぐと、自動で電源が切れる「低電力モード」や「自動オフ」がある製品があります。検出器は消費電力が小さいので、測定の途中で切れてしまうことがあります。事前に短い時間でテストして、切れないことを確かめてください。低電力モードを無効にできる製品や、常時給電のモードがある製品を選ぶと安心です。

v2 PC なしで測るとき:v2 は microSD に単体で記録できます。FAT32 の microSD を差して電源を入れてください(04 測定する)。

v1 PC なしで測るとき:v1 には SD カードがありません。データを記録するには PC が必要です。PC なしで記録したいときは、microSD に記録できる v2 を使います。

屋外で測るときは、場所の許可が必要かどうかを、事前に確かめてください。

測定中にデータが途切れた
  • USB ケーブルが抜けかけていないか確かめてください。
  • PC がスリープしていなかったか確かめてください。

検出器の設定編

検出器を再起動(RESET ボタン、USB の抜き差し、電源の入れ直し)すると、何が変わりますか?

再起動すると、検出器は最初から始め直します。

  • 0 に戻るもの:イベント番号、経過時間、デッドタイム。USB と Bluetooth の接続も、いったん切れます。
  • 測り直すもの:信号しきい値。起動のたびに、約 1 秒ノイズを測って決め直すので、手で設定した値は元に戻ります。光が入らない状態で、動かさずに起動してください。トリガーモードも、いつも ANALOG から始まります。オシロスコープの設定(レート上限、撮り方、再アーム)も、初期値に戻ります。
  • 新しくなるもの:microSD のログは、起動のたびに、新しいファイル(LOG0002.TXT など)に書きます。
  • 残るもの:コンパレータの PWM の値(Duty)、自動校正のマージン、機能のオン・オフ(microSD、外部検出器、OLED、ブザー、振動)、音と振動の設定、Bluetooth の名前。

Bluetooth の名前を変えて保存したときも、検出器は約 1 秒後に自分で再起動します。

検出器を何台も使います。区別するには、どうすればいいですか?

台ごとに、Bluetooth の名前を変えます。名前は、Bluetooth の一覧にも、保存するファイルの名前の頭にも使われるので、ファイルも台ごとに分かれます。

  1. 測定アプリの「詳細設定」→「接続」の「Bluetooth の名前」に、新しい名前を入れます(1〜19 文字の英数字と記号。大文字と小文字は区別されます)。保存するファイルの名前に使われるのは、英数字と -、_ だけで、ほかの文字は _ になります(「Lab 1」は Lab_1)。
  2. 「名前を変えて再起動」を押します。検出器は、約 1 秒後に自分で再起動します(接続は、いったん切れます)。
  3. Bluetooth でつなぐときは、「検出器の名前」に同じ名前を入れると、自分の検出器だけが一覧に出ます。

別の検出器につなぎ直すと、「別の検出器につながりました」と出ます。画面の計数率・経過時間・件数には、前の検出器の分も入っているので、測り直すときは「データを消去して最初から」を押してください。

microSD に、ログが記録されません
  • カードは、FAT32 で初期化されていますか。
  • 検出器の電源を入れる前に、カードを差してください。起動したあとに差したカードは、アプリの「詳細設定」→「検出器の機能」で、microSD をいったんオフにして、オンに戻すまで使われません。
  • 「検出器の機能」で、microSD への記録がオンになっていますか(初期設定はオンです)。
  • 起動のメッセージ(アプリの受信ログ)に SD: ready と SD: logging to /LOG0001.TXT が出ていれば、記録は始まっています。SD: init failed と出たときは、カードの形式、差しこみ、配線を確かめます。
  • 書き込みに失敗すると、そこで記録が止まります。止まったときも、microSD をいったんオフにして、オンに戻します。
  • ファイルは、起動のたびに(microSD をオフからオンに戻したときも)新しくなります(LOG0001.TXT、LOG0002.TXT…)。PC の時刻は入らないので、測り始めた時刻は、自分で控えておいてください。

用語集

OWAN/OHASHI
検出器の名前。v1 が OWAN(お椀)、v2 が OHASHI(お箸)です。箱の上のステッカーに、名前と絵があります。
シンチレータ
粒子が通ると、弱く光る物質。このマニュアルでは、プラスチックか CsI のブロックです。
SiPM
シリコン光電子増倍素子。とても弱い光を、電気の信号に変える部品です。
ミューオン
宇宙線が大気にぶつかってできる粒子。地上に降ってくる宇宙線の、主な成分です。
ADC
信号の高さを数字にしたもの。v1 は 0〜1023、v2 は 0〜4095。大きいほど、落としたエネルギーが大きかったことを表します。
ピークホールド
パルスの頂点の高さを、しばらく保つ回路。そのあいだに、マイコンが高さを読みます。
しきい値(トリガー)
「この大きさの信号から先を、粒子として数える」という線。超えたときが、トリガーです。
デッドタイム/ライブタイム
数えられなかった時間と、数えていた時間。レートは、ライブタイムで割って出します。
カウントレート(cnt/s)
1 秒あたりに数えたイベントの数。
コインシデンス(同時測定)
2 台以上の検出器が、ほぼ同時に反応したイベントだけを選ぶ測り方。
ヒストグラム
信号の大きさごとに、数を数えて棒グラフにしたもの。エネルギー分布とも呼びます。
Web Serial API
ブラウザが USB のシリアルポートを開く仕組み。Chrome と Edge が対応しています。
BLE(Bluetooth LE)
省電力の Bluetooth。v2 は、これで測定アプリとつながります。
ファームウェア/スケッチ
検出器のマイコンの中で動くプログラム。Arduino では、プログラムを「スケッチ」と呼びます。

08ファームウェア

「ファームウェア」は、検出器のマイコンの中で動いているプログラムです。信号の読み取り方、しきい値の決め方、データの出力形式は、すべてこれで決まります。

ふだんの測定(Web アプリで測って、データを保存する)だけなら、この章は読まなくて構いません。Arduino IDE を入れる必要もありません。

こんなときに読みます。

  • 出力データの各列が何かを、正確に知りたい → 06 データと解析
  • しきい値やレートの仕組み、異常なときの原因を知りたい → 「しきい値」
  • 検出器のプログラムを、書き換えたい・更新したい → 「書き込みの手順」

どのスケッチを書き込むか

機体マイコンスケッチ
v1 標準Arduino Nano(Mini-B)COSMICRAY_DETECTOR_v1.ino
v2Arduino Nano ESP32(Type-C)COSMICRAY_DETECTOR_ESP32-S3-Nano-v2.ino
v1 Nano ESP32 に載せ替えた機体Arduino Nano ESP32(Type-C)COSMICRAY_DETECTOR_ESP32-S3-Nano.ino(公開リンクはまだありません。必要なときはメンターか info@accel-kitchen.com へ)

測定アプリは、この表の v2 のスケッチに対応しています(測定アプリのマニュアルの末尾にも、「対応ファーム」として書いてあります)。

オシロスコープの「トリガー/連続」と「再アーム」は、2026-10-23 以降のスケッチが必要です。古いスケッチでも数えられますが、この 2 つの切り替えは効きません(v1 のページは、古いスケッチだと「このファームはオシロスコープに対応していません」と出します)。書き込むスケッチが新しい版かどうかを、確かめてください。

書き込みの手順

共通の準備

  1. Arduino IDE を入れる:Arduino のダウンロードページから入れます(Arduino IDE 2.x)。
  2. ライブラリを入れる:メニューの「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開き、次を検索して入れます。
機体入れるライブラリ
v1 Arduino NanoAdafruit SSD1306(1.0.1 以上)、Adafruit GFX Library(1.0.2 以上)、TimerOne(1.1.0 以上)
v2Adafruit SSD1306、Adafruit GFX Library、Adafruit BME280 Library、Adafruit Unified Sensor
BLE と Preferences と SD は、ESP32 の Arduino Core に入っています
v1 Nano ESP32 載せ替えAdafruit SSD1306、Adafruit GFX Library
v1Arduino Nano(Mini-B の古いタイプ)に書き込む
  1. ボード:「ツール」→「ボード」→「Arduino Nano」を選びます。
  2. プロセッサ:「ATmega328P(Old Bootloader)」を選びます(多くの場合これで動きます)。書き込みに失敗するときは、「ATmega328P」も試してください。
  3. ポート:「ツール」→「ポート」から、検出器がつながっている COM ポートを選びます。
  4. 書き込み:「スケッチ」→「マイコンボードに書き込む」を実行します。
v2Arduino Nano ESP32(Type-C の新しいタイプ)に書き込む
  1. ESP32 のボード情報を入れる:「ツール」→「ボード」→「ボードマネージャー」を開き、esp32(Espressif Systems)を検索して入れます。Core は 3.x が必要です。
  2. ボード:「ツール」→「ボード」で Arduino Nano ESP32 を選びます。ESP32S3 Dev Module を選んでも書き込めます。スケッチは、ピンを GPIO の番号で指定しています。迷ったときは ESP32S3 Dev Module が確実です。Arduino Nano ESP32 を選ぶときは、「ツール」の「Pin Numbering」を「By GPIO number」にします(スケッチのコメントによる説明で、実機での確認はこれからです)。公式でないクローン基板は、書き込みに失敗することがあります。
  3. USB CDC On Boot:「ツール」→「USB CDC On Boot」を Enabled にします。ここを間違えると、シリアルに何も出ません。
  4. ブートモードに入る:本体のリセットボタンをダブルクリックして、ポート番号が変わる(ブートモードに入った)ことを確かめます。入れないときは、ボードの BOOT を押したまま RESET を一瞬押します。
  5. ポート:「ツール」→「ポート」から、検出器がつながっているポートを選びます(Windows は COMxx、Mac は /dev/cu.usbmodem…)。
  6. 書き込み:「スケッチ」→「マイコンボードに書き込む」を実行します。
  7. シリアルモニタ(9600 baud)を開いて、Booting v2... と出れば完了です。

書き込み中は、測定アプリを閉じておいてください(ポートの取り合いになります)。

v1v1 の基板に Nano ESP32 を載せ替えた機体(上級者向け)

ボード、USB CDC On Boot、ブートモード、ポートの選びかたは、v2 の手順と同じです(Core は 3.x)。USB CDC On Boot が Disabled でも書き込めますが、シリアルが USB ではなく D0/D1 の端子に出るので、PC のシリアルモニタにも測定アプリにも、何も届きません。

この機体は、v1 とは別のスケッチ(COSMICRAY_DETECTOR_ESP32-S3-Nano.ino)で動き、次の点が v1 とちがいます。ADC は 12 bit(0〜4095)。出力は、Mode 列を含む 7 列。しきい値は「ノイズの最大値 + 60」で、Res は Sig − 20。設定のうち、マージン、Res との差、同時測定の方式と窓、波高のとり方、OLED、Bluetooth の名前は保存されます(信号しきい値は、起動のたびに測り直します)。コマンドは 47 文字まで。同時測定は別の方式で、コマンド SET_COINC、SET_WINDOW などを使います。この章の v1 の数字とコマンドは、そのまま当てはまりません。起動のときに、基板・ピン・I²C の診断(### で始まる行)がシリアルに出ます。OLED が映らないときは、コマンド I2CSCAN で接続を確かめられます。

v1 の基板は 5 V で動く Arduino Nano を前提にしていて、アンプの出力が分圧なしでマイコンの A0 につながっています。ESP32-S3 の入力は 3.3 V までなので、A0 と GND のあいだの分圧か、3.3 V へのクランプがないと、マイコンを壊すおそれがあります。コインシデンス線(D6)も同じです。5 V 動作の v1 とつなぐときは、レベルシフタを入れてください。3.3 V の ESP32 を Master にして 5 V の v1 を Slave につなぐと、出力が約 2.8 V にしかならず、Slave が読み取れないことがあります。

しきい値

しきい値は、「この大きさの信号から先を、粒子として数える」という線です。低すぎるとノイズまで数え、高すぎると小さな信号を取りこぼします。どちらも、電源を入れるたびに自動で決まります。

弱い 信号の大きさ(ADC 値) 強い ノイズ ガンマ線 宇宙線 1 2 3 1 低すぎる:ノイズまで数えてしまう 2 ちょうどよい:ノイズを除き、信号は数える 3 高すぎる:小さな信号は数えない
しきい値を置く高さによる違い(模式図)

③ のように高くすると、小さなガンマ線は数えなくなります。何を数えたいかで決めます。迷ったときは、自動で決まる値のまま使ってください。

v1Sig と Res

  • 起動の直後に、A0 の値を 10 回(10 ms おき、約 0.1 秒)測り、その最小値を求めます。Sig = 最小値 + 20、Res = 最小値 + 15 です。
  • A0 が Sig を超えたら、イベントとして記録します。ピークホールド回路が信号を保持している間は待ち、A0 が Res を下回ったら、次のイベントを受け付けます。
  • 手で変えるときは、コマンド SET_THRESH:<sig>,<rst> を使います(rst は sig より小さく、sig は 1023 以下)。

v2信号しきい値と、コンパレータのしきい値

  • 信号しきい値(OLED の Thr):起動の直後に、A0 を 100 回(10 ms おき、約 1 秒)測り、その最大値 + マージン(初期値 50)にします。たとえば、ノイズが 12〜44 なら、しきい値は 94 です。マージンは、AUTO_THRESH:<margin> や SET_AUTO_MARGIN で変えられ、変えた値は保存されて、次の起動のときも使われます。しきい値そのものは、手で設定しても、次に電源を入れ直すと、この自動校正の値に戻ります。
  • トリガーモード:初期設定の ANALOG は、A0 のピークホールドの値を、ソフトでしきい値と比べて判定します。DIGITAL は、外部のコンパレータの出力で割り込みをかけて判定し、信号しきい値は使いません。DUAL は、コンパレータで判定したあと、信号の大きさも信号しきい値と比べて、小さければ捨てます。電源を入れたときは、いつも ANALOG から始まります。
  • コンパレータのしきい値(OLED の Duty):D2 の PWM の値(0〜255)でつくります。DIGITAL と DUAL のときだけ使い、AUTO_PWM で自動調整します(約 7〜8 秒)。DIGITAL か DUAL に切り替えたら、一度実行してください。
  • 迷ったら、ANALOG のまま使ってください。しきい値を決め直したいときは、光の入らない状態で AUTO_THRESH を実行します。

コマンド

検出器にコマンドを送ると、設定を読み書きできます。測定アプリのボタンは、中でこのコマンドを送っています。手で送るときは、Arduino IDE のシリアルモニタ(9600 baud、改行は LF か CR)か、アプリの「詳細設定」を使います。1 行が 1 コマンドで、v1 は 31 文字まで、v2 は 47 文字までです。

v1 のコマンド
コマンド働き応答
SET_MODE:0 / SET_MODE:10 が Master、1 が SlaveMODE:0 / MODE:1
GET_MODE今の役割を読むMODE:0 / MODE:1
SET_THRESH:<sig>,<rst>Sig と Res を設定するTHRESH:<sig>,<rst>
GET_THRESH今のしきい値を読むTHRESH:<sig>,<rst>
AUTO_THRESHノイズを測り直して、しきい値を自動で決めるTHRESH:<sig>,<rst>
SET_SCOPE:ON / OFF、GET_SCOPEオシロスコープ(波形の表示)。ON の間は数えませんSCOPE:ON / SCOPE:OFF
SET_SCOPE_RATE:<1〜20> / GET_SCOPE_RATE波形を出す回数の上限(回/秒)SCOPE_RATE:<n>
SET_SCOPE_TRIG:NORMAL / FREE、GET_SCOPE_TRIGオシロスコープの撮り方。NORMAL はしきい値を超えたときだけ、FREE はトリガーなしで撮り続けます(初期値 NORMAL)SCOPE_TRIG:NORMAL / SCOPE_TRIG:FREE
SET_SCOPE_REARM:<0〜1023>、GET_SCOPE_REARM波形を 1 本撮ったあと、A0 が「しきい値 − この値」以下に戻るまで、次を撮りません(初期値 5)SCOPE_REARM:<n>

v1 v1 の設定は保存されません。電源を入れ直すと、しきい値は自動設定に戻ります。オシロスコープの設定(レート上限、撮り方、再アーム)も保存されず、電源を入れ直すと初期値に戻ります。オシロスコープは、60 秒コマンドが来ないと自分で OFF に戻って、計数を再開します(ただし v1 のページは、開いているあいだ 15 秒ごとに合図を送るので、この動作は働きません)。

v2 の主なコマンド
コマンド働き応答
GET_THRESH信号しきい値と PWM の値を読むTHRESH:<sig> DUTY:<duty>
SET_THRESH:<0〜4095>信号しきい値を設定する(次に電源を入れると、自動校正の値に戻ります)THRESH:…
AUTO_THRESH / AUTO_THRESH:<margin>ノイズを約 1 秒測って、自動で決める。光の入らない状態で実行します。<margin> を付けると、マージンを変えて(保存して)から実行しますTHRESH:…
GET_MODE / SET_MODE:ANALOG|DIGITAL|DUALトリガーモードMODE:ANALOG など
SET_PWM:<0〜255> / GET_PWM / AUTO_PWMコンパレータのしきい値(Digital・Dual 用)PWM:<duty>
SET_SCOPE:ON / OFFオシロスコープ。ON の間は数えません(その時間はデッドタイムに入ります)。状態が変わらないときは何も返さないので、GET_SCOPE で確かめますSCOPE:ON / SCOPE:OFF
SET_SD / SET_EXT / SET_OLED / SET_BUZZER / SET_VIB :ON|OFFmicroSD、外部検出器、OLED、ブザー、振動のオン・オフ(保存されます)SD:ON など
SET_BEEP:<min_hz>,<max_hz>,<ms> / BEEP_TESTブザーの音の高さと長さ(信号が大きいほど高い音)BEEP:500,4000,25
SET_AUTO_MARGIN:<n> / GET_AUTO_MARGIN自動校正のマージン(保存されます)AUTO_MARGIN:<n>
SET_VIB_MS:<min>,<max> / VIB_TEST振動の長さ(1〜500 ms、min < max)と、ためし振動VIBMS:<min>,<max>
SET_SCOPE_RATE:<1〜20> / GET_SCOPE_RATEオシロスコープで送る波形の数の上限(回/秒、初期値 3。保存されません)SCOPE_RATE:<n>
SET_SCOPE_TRIG:NORMAL / FREE / GET_SCOPE_TRIGオシロスコープの撮り方(初期値 NORMAL、保存されません)。FREE はトリガーなしで、最新の窓を撮り続けますSCOPE_TRIG:NORMAL / SCOPE_TRIG:FREE
SET_SCOPE_REARM:<0〜4095> / GET_SCOPE_REARM波形を 1 本撮ったあと、A0 が「しきい値 − この値」以下に戻るまで、次を撮りません(初期値 5、保存されません)SCOPE_REARM:<n>
SET_BLENAME:<名前> / GET_BTADDRBluetooth の名前を変える(保存すると、約 1 秒後に自動で再起動します)/基板のアドレスを読むBLENAME:… / BTADDR:…
RESETイベント番号・経過時間・デッドタイムを 0 に戻すRESET:OK

v2 残る設定:PWM の値、自動校正のマージン、機能のオン・オフ、ブザーと振動の設定、Bluetooth の名前。起動のたびに決め直される設定:信号しきい値(自動校正)と、トリガーモード(いつも ANALOG)。オシロスコープの設定(レート上限 3、撮り方 トリガー、再アーム 5)も、起動のたびに初期値に戻ります。コマンドを実行しているあいだは数えず、その時間はデッドタイムに入ります(自動校正は約 1 秒、AUTO_PWM は約 7〜8 秒)。コマンドは大文字と小文字を区別し、長すぎる行(47 文字を超えるもの)は捨てられます。全コマンドの一覧と、ピン配置は、測定アプリのマニュアルの付録にあります。

09トラブルシューティング

症状から原因と対処を探せます。解決しないときは、Discord でメンターに相談してください。

まず、症状から探す

  • レートが高すぎる(10 cnt/s 超)原因外の光が入っている対処遮光を強める。テープの隙間を探す。
  • レートが低すぎる(プラスチック版で 0.1 cnt/s 未満)原因しきい値が高すぎる対処光が入らない状態で、再起動する(USB の抜き差し)。
  • ADC がずっと 0原因上の基板(SiPM 基板)とのコネクタが外れている対処ケースを開けて、つなぎ直す。
  • ADC がずっと最大値原因遮光が足りない対処アルミテープや黒いテープで補強する。
  • データが途切れる・イベント番号が飛ぶ原因USB ケーブル、または PC のスリープ対処ケーブルを差し直す。スリープを無効にする。
  • ポートが見つからない対処下のチェックリストを、上から順に試す。

ポートが見つからないとき

  1. USB ケーブル充電専用ではなく、データ通信ができるケーブルですか。別のケーブルを試してください。
  2. USB ポート別の USB ポートに差し替えてみてください。
  3. ドライバ(v1 の Windows)CH341 ドライバは入っていますか。入れたあとは、PC を再起動してください(手順)。
  4. ブラウザChrome か Edge で開いていますか。Firefox と Safari では、ポートの一覧が出ません。
  5. ほかのアプリArduino IDE のシリアルモニタや、アプリを開いた別のタブが、ポートを使っていませんか。閉じてからやり直してください。
  6. メンターに相談するDiscord で、症状と、ここまで試したことを伝えてください。

ハードウェアのトラブル

症状原因対処
v1 Sig が 1023 になり、検出されない上の基板と下の基板をつなぐコネクタが外れているケースを開けて確かめ、外れていたらつなぎ直す
v2 Thr が 4095 に張りつき、検出されない起動のときに測ったノイズが大きすぎた。SiPM 基板とのコネクタの外れ、または遮光不足が考えられるケースを開けてコネクタを確かめ、遮光を見直してから再起動する
v1 Sig が 100 以上になっている外光の混入、またはノイズ遮光をし直す。基板が外部のものに触れていないか確かめる
v2 Thr が 100 前後よりずっと大きい(数百以上)外光の混入、またはノイズ(起動時のノイズ + 50 で決まるため)遮光をし直して、再起動する(RESET ボタン、または USB の抜き差し)
レートが異常に高い(10 cnt/s を超える)遮光不良で、外光が SiPM に入っているアルミテープなどで遮光を強める。テープに隙間がないか確かめる
v2 レートが異常に高い(遮光は十分)しきい値(Thr や Duty)が低すぎる。ピークホールドのリセット線(D8)が効いていない。コンパレータの出力(D0)にノイズが乗っているAUTO_THRESH や AUTO_PWM をやり直す。基板の配線とグラウンドを確かめる
レートが極端に低い(プラスチック版で 0.1 cnt/s 未満)しきい値が高すぎる、または信号が弱い検出器を再起動する(しきい値は起動時に自動で決まる)。改善しなければメンターに相談する
OLED の画面が表示されないI²C の接続不良、またはディスプレイの故障ケースを開けて、ディスプレイのコネクタを確かめる。v2 は、アプリの「検出器の機能」で OLED がオンか確かめる。OLED のアドレスは 0x3C です(出荷のファームウェアは 0x3C 固定で、0x3D の画面は表示されません)。改善しなければメンターに相談する
同時測定で Slave(または受け側)が反応しないケーブルの接続や接触不良。役割がずれている画面の :Master / :Slave を確かめ、ケーブルを差し直す。アプリで Slave を選び直す。OUT と IN1 のつなぎ方と、EXT がオンかを確かめる。
v1 温度が異常な値になる温度センサを積んでいない機種、または接触不良機種を確かめる。解析のときに、温度の列を使わないようにする
v2 温度・湿度・気圧が --(または nan)のままBME280 が見つかっていないI²C のアドレス(0x76 か 0x77)と配線(SDA = A4、SCL = A5)を確かめる。BMP280(温度と気圧だけ)では、湿度は出ない
v2 Dig1〜Dig3 がずっと 0(または 1)外部検出器の読み取りがオフ。または出力の電圧(3.3 V か 5 V)が合っていないアプリの「検出器の機能」で、両方の検出器の外部検出器の読み取りがオンか確かめる。外部検出器の出力の電圧と、プルアップ・プルダウンの要否を、回路図で確かめる
v2 シリアルに何も出ない(Booting が出ない)ボードの設定、またはボーレートの違いボードが Arduino Nano ESP32、USB CDC On Boot が Enabled、ボーレートが 9600 か確かめ、書き込み直す。BOOT を押しながら RESET を押すと、書き込みモードに入れる
v2 microSD にログが記録されないカードの形式(FAT32 ではない)。起動したあとにカードを差した。microSD への記録がオフFAT32 で初期化したカードを、電源を入れる前に差す。アプリの「検出器の機能」で、microSD への記録がオンか確かめる(手順)

ソフトウェアのトラブル

症状原因対処
Web アプリでポートが表示されないドライバが入っていない。ケーブルの不良。Chrome か Edge 以外のブラウザv1 の Windows は、ドライバを確かめる。別の USB ポートとケーブルを試す。Chrome か Edge で開く
「シリアルポートを開けませんでした」と出るほかのアプリがポートを使っているArduino IDE のシリアルモニタや、アプリを開いた別のタブを閉じてから、もう一度試す
v2 Bluetooth の一覧に検出器が出ない名前が合っていない。電源や距離の問題。ほかの機器とつながっているアプリの「検出器の名前」が、検出器の名前(初期設定は CosmicRay)と同じか確かめる(大文字と小文字も区別します)。ほかのスマートフォンや PC とつながっていないか確かめる。つながったあとに切れたときは、アプリが自動でつなぎ直します(1 秒から倍々に、最長 30 秒間隔。自動保存は同じファイルに続きます)
オシロスコープを開いても、波形が 1 本も出ないトリガーのまま、A0 のベースラインが、再アームの水準(しきい値 − 再アームの値)より下まで下がらない。しきい値が高すぎる。古いスケッチしきい値の線を、ベースラインの十分上へ動かし、再アームの値を、ベースラインのゆらぎより小さくする。確かめるだけなら「連続」にする(撮り方)。「トリガー/連続」が効かないときは、2026-10-23 以降のスケッチに書き込み直す
保存したファイルが見つからないダウンロード先が違うブラウザのダウンロード履歴から、場所を開く。保存先の設定を確かめる
Google Colab でエラーが出るランタイムにつながっていない。セルの実行順が違う画面上部の「ランタイム」→「すべてのセルを実行」を試す。それでもだめなら「ランタイムを再起動」して、上のセルから順に実行する
データに欠けがある(途中でイベント番号が飛ぶ)USB 接続が不安定。PC がスリープしたケーブルを差し直す。長く測るときは、PC のスリープ設定を無効にする
測定中に、データが突然止まるUSB ケーブルが抜けた。PC がスリープしたケーブルのつながりを確かめる。PC の電源設定で、スリープを無効にする

相談するときに伝えること

解決しないときは、Discord でメンターに相談してください(info@accel-kitchen.com でも受けつけています)。次のことを書いてもらえると、早く答えられます。

  • 機種:v1 か v2 か。箱の形や、検出器の画面に出ている文字。
  • PC:OS(Windows、macOS など)と、ブラウザの種類。
  • 症状:どの手順で、何が起きたか。エラーの文言か、画面の写真。
  • 試したこと:ケーブルや USB ポートの差し替え、再起動、ドライバなど。
  • データ:保存したファイル(あれば)。測った場所と条件。

10組み立て

組み立てキットを組み立てる手順です。完成品を受け取った場合は、読まなくて構いません。

組み立ての動画があります(一部、古い内容を含みます):YouTube

手順の写真は、原本(Google ドキュメント)のものです。「検出器組み立て方法」も見てください。

はんだ付けを始める前に、「02 機種と各部のしくみ」の「安全のために」を読んでください。基板をつなぎ替えるときは、USB を抜いてからにします。

組み立ての流れ

  1. シンチレータ包む → グリス → 遮光
  2. ディスプレイ垂直にはんだ付け
  3. メイン基板低い部品から。Arduino は角から
  4. 基板をつなぐねじ止め
  5. オシロで確認TP1〜TP3
  6. 書き込んで完成スケッチ → ケース
  1. シンチレータ包む → グリス → 遮光
  2. ソケットなど手ではんだ付け
  3. 基板を組むスペーサーで重ねる
  4. Nano と OLEDソケットに差す
  5. 動作確認OLED とアプリ
  6. ファームArduino IDE
  7. ケース印刷して組む
組み立てキットの中身。黒いケース、基板、OLED、Arduino Nano、ピンヘッダ、USB ケーブルなどが並び、箱に COSMICRAY DETECTOR ASSEMBLY KIT と書かれている
組み立てキット(v1)の中身の例です。

シンチレータと SiPM 基板(v1・v2 共通)

遮光テープ どの部分も 2 層以上 アルミホイル 光沢の面を内側に。中央に窓 シンチレータ 光学グリス SiPM SiPM 基板 スペーサー・6 ピン端子 テープから出す
重ねる順番の模式図(厚みの比は実物と違います。遮光テープは、実際には全体にぐるぐる巻きます)
  1. シンチレータをアルミホイルで包む

    光沢のある方の面を内側にして、全体を包みます。片方の面の中央は、SiPM を当てるために空けておきます(写真よりも広めにあけるのがおすすめです)。

    アルミホイルで包んだシンチレータが 2 つ。左は片面の中央に四角い窓をあけてある
    左:SiPM を当てる側(窓をあけてあります)。右:反対側の面。
  2. SiPM 基板にコネクタとスペーサーを付ける

    基板に 6 ピンのコネクタをはんだ付けしたあと、スペーサーをねじ止めします。

    SiPM 基板が 2 枚。左は SiPM のある面、右は 6 ピンのコネクタと 2 本のスペーサーを付けた面
    左:SiPM のある面。右:6 ピンのコネクタとスペーサーを付けた面。
  3. SiPM に光学グリスを塗る

    SiPM の受光面にグリスを塗り、シンチレータの空けた窓に合わせて当てます。

    窓をあけたシンチレータと SiPM 基板が並んでいる。SiPM の受光面が見える
    窓をあけたシンチレータ(左)と、SiPM 基板(右)。
  4. 遮光テープで巻く

    遮光テープで、ぐるぐる巻きにして完成です。どの部分も 2 層以上になるように巻きます。スペーサーと 6 ピンの端子は露出させます。テープを巻いたあと、ドライバーなどで穴を開けてください。

    黒い遮光テープで巻いたシンチレータのブロックと、スペーサーと端子を出した SiPM 基板
    遮光テープで巻いたところ。右の SiPM 基板側は、スペーサーと 6 ピンの端子が出ています。

v1 のメイン基板

ディスプレイ

横から見て垂直になるように、はんだ付けします。

基板に対してピンを垂直に立てて持つ手と、OLED のモジュール
基板に対してピンを垂直に立てて、はんだ付けします(左)。右は OLED のモジュールです。

メイン基板

完成図(下の写真)を参考に、はんだ付けします。

v1 のメイン基板の完成図。緑の基板の上に、Arduino Nano、白い BNC コネクタ、ジャック、LED、リセットスイッチ、温度センサ、2 列 3 ピンのソケット、OLED 用の 4 ピンのソケット、テストポイントが付いている 1 2 3 4 5 6 7 8 9 10
  1. Arduino Nano:基板に刺して、はんだ付けします。
  2. USB 端子(Mini-B):Arduino Nano の端子です。
  3. LED(LED1):向きに気をつけます。基板の外に出して付けます。
  4. 3.5 mm ジャック:2 台をつなぐコインシデンスケーブルを差します。
  5. リセットスイッチ(RESET1)
  6. 温度センサ(TMP36):半月型で足が 3 本。向きに気をつけます。
  7. BNC コネクタ
  8. 2 列 3 ピンのソケット(J2):SiPM 基板の 6 ピンのコネクタを差します。
  9. OLED 用の 4 ピンのソケット
  10. テストポイント:TP1〜TP3 と GND1(右下に並んでいます)。

メイン基板の完成図です。

  • 表と裏、部品の向きに注意します。
  • 事前にセロハンテープなどで部品を固定してからはんだ付けすると、ずれません。
  • LED の+と-の向きに気をつけてください(+は電極が丸い形、-は電極が四角い形)。

Arduino

まず、Arduino が浮かないように付けます。ピンが傾くと基板に刺さらないことがあるので、基板に刺した状態で、表の 4 つの角、裏の 4 つの角の順に、1 ピンずつ傾いていないかを確かめながらはんだ付けします。そのあと、残りをまとめてはんだ付けします。

Arduino Nano を基板に差した状態を横から見た写真
横から見て、Arduino が浮いていないか確かめます。
Arduino Nano を基板に差した状態を上から見た写真。ピンが 1 本ずつ並んでいる
上から見て、ピンが傾いていないか、1 ピンずつ確かめます。
基板の裏側。Arduino のピンの先がはんだ付けされている
基板の裏側から見たところ。

そのほかの部品

  • 背の低い部品から付けます。
  • LED と温度センサ(半月型で足が 3 本の部品)の向きに注意します。

動作チェック

  1. SiPM 基板とメイン基板をつないで、ねじ止めします。
    シンチレータのブロックを手に持って、メイン基板につなぐところ
    シンチレータのブロックとメイン基板をつないで、ねじ止めするところ。
  2. オシロスコープで信号を確かめます。TP2 にプローブの先(心線)を、GND にグラウンドをつなぎ、パルス信号を見ます。TP1 は SiPM の生の信号、TP2 は増幅した信号、TP3 はピークホールドの信号です。
    テストポイントに赤と黒のプローブのクリップをつないだ基板
    TP2 に赤のクリップ、GND に黒のクリップをつなぎます。
    オシロスコープの画面。短いパルスが 1 つ出ている
    オシロスコープに出たパルス信号の例。
  3. 「08 ファームウェア」の手順でスケッチを書き込み、ケースに入れて完成です。
    マゼンタ色のケースに入った v1。窓から OLED が見え、Cnt や Rate が表示されている
    ケースに入れた v1 の例。画面に Cnt、Rate、Sig、Res が出ています。

v2 の読み出し基板

ケース 10 mm 17 mm 上蓋 シンチレータ 包んだもの SiPM 基板 40 × 40 mm 読み出し基板 63 × 63 mm Nano ESP32 基板の裏のソケット 底
v2 の構造(横から見た模式図。厚みの比は実物と違います)

v2 の基板は、小さな表面実装部品の多くが基板に実装された状態で届くことを想定しています。部品表(BOM)のうち、実装用の部品表に入っていない次の部品は、手ではんだ付けします。キットの内容は版によって違うので、実際に届いた基板で、どの部品が付いているかを確かめてください。

記号部品
U3Arduino Nano ESP32 用の 15 ピンソケット(2 個)
OLED1OLED 用の 4 ピンソケット
RESET1リセットスイッチ
J1、J22 列 3 ピン(6 ピン)のヘッダ。SiPM 基板と読み出し基板をつなぐのに使います(どちらも 6 ピンで、3 ピンではありません)
LED13 mm の LED(スルーホール)。部品表のどちらにも載っていないので、キットに入っているか確かめてください
  1. ソケットをはんだ付けする

    Nano ESP32 用のソケットは、浮かないように付けます。ピンが傾くと刺さらなくなるので、Nano ESP32 を刺した状態で、4 つの角を 1 ピンずつはんだ付けしてから、残りをまとめてはんだ付けします。OLED のソケット、リセットスイッチ、ヘッダも、基板の向きに合わせて付けます。

  2. 基板とシンチレータを組む

    読み出し基板(63 × 63 mm)は、M2 × 17 mm のスペーサー 3 本で支えます。SiPM 基板(40 × 40 mm)は、10 mm のスペーサーで支えます。シンチレータは、上の手順で包んだものを使います。

    SiPM 基板と読み出し基板は、USB を抜いた状態で、6 ピンのコネクタ(J1・J2)を差しこんでつなぎ、M2 のスペーサーとねじで固定します。シンチレータは SiPM にしっかり密着させ、遮光テープで、すき間なくふさぎます(すき間があると、蛍光灯の光でカウントが跳ね上がります)。

  3. Nano ESP32 と OLED を付ける

    基板の裏のソケットに Nano ESP32 を差し、OLED をソケットに差します。

  4. 動作を確かめる

    USB でつないで、OLED に Cnt と Rate が出ることを確かめます。測定アプリを開き、オシロスコープで波形が出ることも確かめられます(オシロスコープ)。ファームウェアは「08 ファームウェア」の手順で書き込みます。この確認は、Nano ESP32 にファームウェアが先に書き込まれているときだけできます。何も表示されないときは、先に書き込んでください。

3D プリントのケース

v2 のケースは、3D プリンタで作る、上蓋を外して組み立てる形です。外寸は 86 × 75 × 61.4 mm で、前面に OLED の窓、リセットスイッチの穴、LED の穴があります。側面には USB ケーブルの穴と、OUT・IN1〜3 のジャックをまとめた四角い開口があります。

ファイル用途
cosmic-ray-detector-v2-compact-base.stl本体と底板(1 個)
cosmic-ray-detector-v2-compact-lid.stlねじで固定する上蓋(1 個)
cosmic-ray-detector-v2-compact-lightpipe.stlLED の光を前面へ導く部品。任意、透明な素材で印刷

印刷は、0.4 mm ノズル、0.2 mm の積層、外周 4 本ほど、インフィル 20〜30 % が出発点です。本体と蓋は、STL の向きのまま印刷します。ジャックの四角い開口は幅 50 mm の橋渡しになるので、開口の上辺にサポートを付けてください。STL のデータの入手方法は、info@accel-kitchen.com へお問い合わせください。

  1. 底面の貫通穴から M2 × 6 mm のねじ 3 本を通して、M2 × 17 mm のスペーサー 3 本を床に固定します。LED の導光部品を使うときは、内側から取り付けます。
  2. リセットスイッチの軸を前面の穴に向けて、読み出し基板を入れ、スペーサーの上に M2 のねじ 3 本で固定します。SiPM 基板とシンチレータは、前の手順のとおりに取り付けます。
  3. USB プラグ、3.5 mm プラグ、microSD の抜き差しと、リセットスイッチの操作ができることを確かめます。
  4. 蓋の位置決めのリブを合わせて、M2 のねじ 4 本で固定します。

このケースの寸法は、3D モデルの上で基板や部品との干渉を確かめたものです。実物での試作の組み立ては、まだ行っていません。合わないところがあれば、メンターに知らせてください。

シンチレータのモデルには、包んだ厚みが入っていません。実物の、包んだブロックで合うかを確かめてください。蓋のねじは、PLA に直接ねじ込む形です(下穴は 2.2 mm)。リセットスイッチと LED の穴は 7.5 mm です。microSD は、ジャックの四角い開口から抜き差しします。

改訂履歴
  • 2026-10-24:機種の名前を OWAN(v1)・OHASHI(v2)とし、箱の上のステッカーと、ステッカーによる機種の見分け方(02「名前とステッカー」)を追加。
  • 2026-10-23:英語版を追加。測定アプリの画面(機種の選択、保存、オシロスコープ、詳細設定、v1 のページ)を追加。ファームウェアと照合して見つかった記述(しきい値の保存、microSD のログ、J2 のピン数、同時測定の EXT など)を修正。用意するもの、仕様の目安、安全、用語集、相談するときに伝えること、複数台の運用を追加。
  • 2026-10-22:初版。
08

関連リンク

この講座の前半は、検出器を手に取る前の予習用テキストです。後半の検出器マニュアルは、実機を使うときの手順書です。 より深く学びたいテーマは、姉妹講座へどうぞ。

  1. 放射線そのものを知る — 放射線の種類・性質・半減期・単位(Bq/Gy/Sv)・人体への影響まで。放射線の基礎講座 →
  2. 宇宙線そのものを知る — 宇宙線の正体・起源・エネルギー・空気シャワー・ミュオン・観測実験まで。宇宙線の基礎講座 →
  3. 測定を結論につなげる — $\pm\sqrt{N}$ のエラーバー、ヒストグラム、ポアソン分布、レートの誤差、系統誤差まで。統計の基礎講座 →
  4. 実機の中をのぞく — SiPM・ピークホールド・しきい値の入った検出器 OHASHI(v2)を、3D モデルとシミュレーションで見られます。OHASHI(Cosmic Ray Detector v2)→