このページでは、RADIATION WATCH 組込版ポケットガイガーType5を使った実用的なワイヤレス放射線量測定ガイガーカウンター(Geiger Counter)の製作方法を説明しています。より簡単で基本的な製作例については前作の「XBee ガイガーカウンター」を参照ください。前作のページではXBee子機側に外部マイコンを接続していなかったため、放射線パルスが発生するたびにデータ送信が行われていました。
本ページではArduino互換機であるseeed studuio製のSeeeduino Stalker v2.3を使用し、太陽電池、リチウムポリマー電池、防水ケースを組み合わせることで屋外で持続的にデータを送信し続ける子機を製作します。主に下図のような長期間にわたってのログ測定や放射線量の増大を監視したりすることが目的です。
なお、機器動作の信頼性や測定結果の信頼性について当方は一切の責任を負いませんので、十分にご注意ください。
XBeeとポケットガイガー Type 5を使ったワイヤレスガイガーカウンタの基本的な情報を前作のページ「XBee ガイガーカウンター」に掲載していますので、製作前にはそちらもご確認ください。
seeed studuioはホビー向けロボット用の電子部品を取り扱っている中国メーカーです。Seeeduinoは同社のArduino互換機です。Seeeduino StalkerはXBeeソケット、バッテリ充電機能、RTC(リアルタイムクロック)、SDカードを装備したロガー専用のArduino機です。Stalkerという名前に抵抗感はありますが、健全な使い方をしている限りは気にしないでよいでしょう。
さて、このStalker Ver2.3ですが製造元のサイトではVer2.1の資料しか充実しておらず、Ver2.3については回路図をもとに解析する必要があります。ボクが気づいた変更点は以下の通りです。同社の情報サイトにもそのうちに情報が開示されると思います。
部分
内容
| 充電IC
| ステータス(CHとOK)のArduinoへの接続が無くなりました。
| 充電IC
| 充電電圧とチャージ状態がADCへ接続されるようになりました。
| LED
| ポートがSDとCLKと同じポートになりました。SDへのアクセスが分かります。
| |
まず、バッテリの電圧測定機能を確認したところ、ADCの設定を標準の電源電圧から内部リファレンス電圧に設定しなければならないことに気づきました。ただしこの場合はチャージ状態が読みにくくなると思います。またバッテリ電圧を得るための変換式も自力で確認しなければなりませんでした。実験的に確認したところ、「(Value-500)/160+3.2」で電圧が求めれそうです(10ビットで入力した場合の式です)。バッテリ電圧が入力されているArduinoのポートはanalog pin 7です。Arduinoに出ていない端子ですが、正しく読むことが出来ました。(ピンに関しては製造元の情報ページに記載あり)
電池電圧
ADC値(基準電圧=初期値)
| ADC値(基準電圧=IC内部)
| (Value-500)/160+3.2
| 4.2 V
| 214
| 660
| 660
| 4.0 V
| 204
| 630
| 628
| 3.8 V
| 192
| 592
| 596
| 3.6 V
| 187
| 561
| 564
| 3.4 V
| 188
| 530
| 532
| 3.2 V
| 189
| 500
| 500
| 3.0 V
| 190
| 468
| 468
| |
今回はStalker v2.3のジャンパー切り替えのうち2か所を変更します。このほかにもSDやLEDをとめて省電力化を図る方法も考えられますが、今回は無視します。
変更点の一つ目は、RTCのINIT端子をArduinoに入力するジャンパーです。このジャンパーにハンダを少し盛って、ショートにします。次に、XBeeからArduinoをリセットするジャンパーをオープンにします。カッターナイフでジャンパーの中央の極細線を削り取ればオープンになります。誤って信号パターンまで剥がれないように注意してください。
今回の製作に必要な部品リストです。Seeeduino Stalkerのバージョンは2.3を使用しました。放射線カウンタの機能としては他のバージョンでも問題ないと思います。XBee USBエクスプローラは Seeeduino Stalker Waterproof Solar Kitに付属しています。この他にハンダや配線材料、絶縁テープ、両面テープなどが必要です。
親子
部品名
| 単価
| 数量
| 備考
|
| 子機
| Seeeduino Stalker | Waterproof Solar Kit 11,319円
| 1
| Arduino互換機・太陽電池等一式 | 右記のリンクから購入可能―→ 子機
| ポケットガイガー Type 5
| 6,450円
| 1
| www.radiation-watch.org
| 子機
| XBee ZB (S2) モジュール
| 1,700円
| 1
| Wireアンテナタイプを推奨
| 子機
| 16ホールユニバーサル基板
| 30円
| 3
| 連結しているもの
| 子機
| ピンヘッダ1×13ピン
| 15円
| 1
| 長いものを切断して使用
| 子機
| MOS FET IRLML6402
| 20円
| 1
| 10個単位で販売されている
| 子機
| 抵抗 1kΩ
| 10円
| 1
| 100個単位なら1本1円程度
| 親機
| パソコン
| -
| 1
| 開発用/ATコマンド解析ツール用
| 親機
| XBee USBエクスプローラ
| 1,280円
| 1
| 開発用/ATコマンド解析ツール用
| 親機
| XBee ZB (S2/S2B) PROモジュール
| 2,800円
| 1
| 親機XBeeモジュール
| |
ここでは下図のようなポケットガイガーをArduinoに接続するための変換基板を作成します。左に1本だけ出ている線はXBeeのSLEEP_RQ用です。中央下部の基板はArduinoのアナログ入力(J3)と、電源(J2)側に接続する変換基板、右がポケットガイガーType 5です。オーディオジャックはケースに入れる時に邪魔だったので取り外しています。(外さなくても入りますが、外した方が収まりが良好です)
ここで、ポケットガイガーをArduinoに接続するための変換基板を作成します。電源のスイッチのためのMOS FETが追加になります。下図は使用する部品です。ピンヘッダ13ピンと、小型基板(16ホールユニバーサル基板)、抵抗(1kΩ)、MOS FET(IRLML6402)の4点です。全て秋月電子から購入しました。
ハンダ付けした様子です。FETは少しだけ左に寄せるか左に傾けるとハンダを付けやすいです。見た目は傾けない方が良いです。
裏面の配線は下図のようになります。右上の6か所のリード線のハンダ付け部はポケットガイガーとXBeeに接続するための接続部です。基板のパターン面側から見て(写真のとおりの方向から見て)左側から@電源+V(赤)、AGND(橙)、B放射線パルスSIG(黄)、CGND(緑)、Dノイズ検出信号NS(青)、EXBeeへのSLEEP_RQ(緑)です。
AとCのGNDは表面にジャンパー線で配線しています。両面スルーホール基板なのでBのSIG信号とGNDがショートしないように注意が必要です。表面の抵抗の部分をGNDが交差する場所も若干の注意が必要です。
写真ではケーブルが偏っていますが、写真の右上の6箇所に1列に並んでハンダ付けしています。下表は上の写真の下部にあるArduino接続用の使用ピンのリストです。
#define
ポート
| 番号
| 役割
| ポケットガイガ/XBeeへの接続
| PIN_LED
| Digital 13
| 13
| 動作確認用LED
| −
| PIN_GEIGER
| Analog 0
| 14
| ポケガの電源制御(L=ON)
| FETを経由してポケガ@電源+Vへ
| PIN_PULSE
| Analog 1
| 15
| ポケガ放射線パルス信号
| ポケガB放射線パルスSIG
| PIN_NOISE
| Analog 2
| 16
| ポケガノイズ検出信号
| ポケガDノイズ検出信号NS
| PIN_XB_SLEEP
| Analog 3
| 17
| XBeeのスリープ端子
| SLEEP_RQ(XBee Pin 9)へ
| |
XBeeのスリープ端子SLEEP_RQに接続するジャンパー線はXBee側の端子に直接、ハンダ付けしてもかまいませんが、ピンソケットを使用すれば、後に他の用途に転用しやすくなります。
Seeeduino Stalker にXBeeを接続する前に、XBeeモジュールを「ZIGBEE END DEVICE API」に設定しておきます。必ず末尾が「API」のものを使用します。設定はデフォルトにしておきます。
Arduino IDEへのXBeeライブラリのインストールを未実施の場合はXBee用ライブラリ(xbee_arduino.zip)をダウンロードし、ZIP圧縮されたファイルを展開して、Arduino IDEの「libraries」フォルダにコピーしておきます。
また、RTC用のライブラリをseed studioからダウンロードして、同様にのArduino IDEの「libraries」フォルダにコピーします。RTCの時刻を設定したい場合はArduino IDEの「ファイル」→「スケッチの例」→「DS3231」→「Adjust」のサンプルソース日時を設定して書き込めば設定できます。
次にバッテリを防水ケースに収容します。バッテリは下側ケースの底に両面テープなどで張り付けます。バッテリの背面はドリルなどで開口しておくと爆発対策になります(詳しくは本ページの最後を参照)。
RTC用の電池も取り付けます。また基板のリード線などがバッテリに接触ないようにバッテリの中央にクッションを貼っています。ネジのスペーサ(4個)は、この段階でケースに接着しておくと良いでしょう。バッテリのコードの方向とスペーサの取り付け位置の関係は下の写真に合わせます。(ネジ穴6か所のうち2か所は使用しないので注意が必要です。)
いよいよArduino基板とポケットガイガの収容です。ポケットガイガは図の位置が、一番、収まりが良いと思います。こちらも両面テープなどで張り付けます。出来ればポリイミドテープなどで絶縁保護しておくと良いでしょう。なお、Arduino基板とポケットガイガー基板とが平行になると放射線が遮られたりノイズの影響を受けやすくなるかもしれません。図のように垂直に立っている方が影響を受けにくいと思います。RTCが近いので、もし影響があるようなら反対側でも良いでしょう。
送られてきた情報は「data」の部分に記されている5つの数字です。最初の「132230」は時刻です。13時22分30秒を表しています。次の「001」は今回の測定の放射線パルス数です。その次の「006」が放射線量で、1/100したものが「uSv/h」になります。その次の「346」は電池電圧で、こちらも1/100にします。3.46Vは電池が殆ど無くなった状態です。最後の「222」は温度で、1/10します。この例では22.2℃ということになります。
項目名
変数名
| 桁数
| 変換
| 単位
| 備考
| 時刻
| now
| 6
| hhmmss
| 秒
| RTCの初期設定が必要
| 放射線パルス数
| cpm
| 3
| 1/100
| 回
| 測定の累計(スリープ時にリセット)
| 放射線量
| uSvBuff
| 3
| 1/100
| uSv/h
| 時間が経過するほど精度が上がる
| 電池電圧
| battery
| 3
| 1/100
| V
|
| 温度
| temp
| 3
| 1/10
| ℃
| 発熱で気温よりも高くなります
| |
名前
内容
| stalking_geiger.zip
| Arduino XBee 親機用・子機用のスケッチ
| xbee_test.c
| パソコン XBee 親機 用 ATコマンド解析ツール(データ受信用)
| |
上表からスケッチのダウンロードが可能です。ZIPファイル内に「stalking_geiger」フォルダと「stalking_geiger2」フォルダがあり、「2」の方が新しいバージョンで、2つのスケッチが含まれています。「example62_geiger」はガイガーセンサ側(Seeeduino Stalker用)でXBee ZBモジュールはEnd Deviceとして使用します。「example63_log」はCoordinatorのXBee ZBを搭載した親機用です。
stalking_geiger(旧版) …………………………… ガイガーセンサ(Seeeduino Stalker)用
stalking_geiger2 ……+…… example62_geiger ガイガーセンサ(Seeeduino Stalker)用
|
+…… example63_log データ収集親機(Arduino+Shield)用
データ収集親機用のexample63_logにはArduino Wireless SD Shieldおよびmicro SDカードが必要です。
本機の内部に搭載したリチウムポリマー電池は40℃以下の環境で使用する必要があります。しかし、夏になると製作品の内部温度が45℃を超える可能性が高まります。朝や夕方にしか日光が当たらない場所や間接光で発電させるなど、工夫を行い40℃以下を維持できるようにします。
あるいは本機の裏側に放熱板を設けて、温度を下げる方法もあります。以下は、本体の裏面とリチウムポリマー電池にアルミ板を取り付けて、内部温度上昇の影響を受けにくする対策方法の一例について説明します。
使用するアルミ板は0.5mm厚程度のものにします。通常の金切ばさみで簡単に切断することが出来るからです。また、幅100mm程度のアルミ板が使いやすいです。あまり幅が広いと切断時にアルミが曲がりくねってしまいます。なお、切断時は手袋をするなど怪我に注意します。
必要なアルミ板のサイズは100mm×65mmと70mm×35mmの2枚です。
アルミ板をカットしたら必ず切断面のヤスリがけと角を丸めておきます。アルミ板の切断面と角は非常に鋭いので、怪我すると深くまで切ってしまい治りにも時間がかかります。
100mm×65mmのアルミ板は両面テープでケースの背面の外側全体に貼り付けます。また、70mm×35mmのアルミ板はケース内面に外部アルミ板と平行するように貼り付け、両面の2枚のアルミ板をビスで固定します。
ケース内面のアルミ板にリチウムポリマーを両面テープで固定します。また、基板との距離がアルミ板の厚みだけ接近しますので、両面テープが剥がれてきた場合やバッテリーが膨らんだ場合を想定し、クッションを取り付けて置いたり、基板側のリード線の飛び出しを切断し、切断部には耐熱性の絶縁保護テープ(ポリイミドテープ)を貼っておきます。
以上が最も基本となる放熱対策の説明です。この対策に加えて、防水タイプのペルチェ素子とヒートシンクを外側アルミ板に貼り、内部温度が40℃以上になると強制冷却する方法も考えられます。
さらに太陽電池をケース外に取り付けることで内部温度の上昇を大幅に改善することも可能と思います。しかし、付属の太陽電池は防水タイプではありませんので、少し、手間がかかるでしょう。また、表面はガラスでは無くプラスチック製です。ちょっとした衝撃や曲がりなどでシリコンが割れてしまう懸念もあります。ケースの外側に接着しようとすると、背面の出力端子や樹脂モールドが邪魔になります。この分をパネルに曲がりの力などがかからないように浮かすには補強版が必要です。このような手間がかかることから、ボクは今のところ防水ケースの中に太陽電池パネルを取り付けて使用しています。
しかし、地域などによっては冬に発電量が足りない場合があるかもしれません。そういった場合は、太陽電池をケース外に取り付けることで、ケースの透過損失20〜30%程度を向上させることも出来るでしょう。
掲載内容は全て自己責任でご利用ください。いかなる事故に関しても当方は一切の責任を負いません。注意事項を厳守していたにも関わらず、重大な事故が発生した場合も同様です。
リチウムポリマー電池の爆発対策について
リチウムポリマー電池をSeeeduino Stalker以外の回路で充電したり、他のリチウムイオン電池やリチウムポリマー電池をSeeeduino Stalkerで充電したりすることは極めて危険です。必ずSeeeduino StalkerのUSB5Vから5Vを供給して充電する、もしくは明るい場所で太陽電池を使用して充電します。充電中はLED「CH」が点灯します。
また電池の温度が45℃を超えた状態での充電も、大変、危険です。炎天下などに放置すると急速に内部温度が上昇することがあります。必ず温度が40℃以下に保てるよう、設置する場所には十分に注意してください、また実験後は涼しい場所で保管してください。
万が一、内部温度が45℃を超えてしまった場合は爆発する危険性が高まっています。爆発に対して十分な安全を確保したうえで速やかに燃えるものが周囲にない涼しい場所にSeeeduino Stalkerを退避します。温度が下がってからも30分以上は近づかないように注意します。
Waterproof Solar Kitに付属のケースは密閉構造となっており、爆発した時に破損した筐体が飛び散る恐れがあります。
万が一、電池が爆発、炎上した場合に備えて、バッテリ装着部の近くをドリルで開口しておきます。水の侵入が気になる場合は開口部をビニールテープなどで防水しておきます。また、周囲には燃えやすいものを置かないように注意します。バッテリは小型にもかかわらず非常に激しい炎上が継続する場合があります。紙屑などはもちろんのこと、木材やプラスチックなどに引火しますので、コンクリート、鉄などの金属、砂利などの燃えにくいものの上に置いてください。
測定について
本測定における永続動作や測定精度などの信頼性については一切の補償はありませんので、人命や健康障害に関わるような用途には使用できません。