何とかそれらしい表示が出るようになった。
上の写真がマントル無しの状態、下がマントル有りで、1分経過後のカウント数。
と言っても計算プログラムに問題がある。
LCDの右端にあるCPMは1分経過後に表示するようにし、それまでは2秒毎のカウント数を
加算して60秒で「CPM」を出している。
30個の配列変数に順番にパルス数を入れている。
31個目からはところてん方式で1個目のデータを捨て、31個目のデータを足してLCDに表示
させているつもり。
マントルの放射線は2~3秒に1個程度のパルス、仮に2秒間に1個のパルスをカウントしたと
してトータルは60CPMになる。
この後、同じ割合でパルスが入ってもところてんで最初のデータを捨てているのでほぼ60CPM前後
で飽和するのではないかと考える。
しかし、そのまま計測を続けるとなんと、表示数値がどんどん増えてしまう。
もう一つの検討事項はセンサからのパルスをタイマ0に入れカウントさせているが、overflowを
割り込みではなく if( bit_is_set(TIFR0,TOV0)) を使うつもりだが、これでうまくoverflow が
拾えるのか?(今はここはコメントアウトしてある)
実際にoverflowが起きるような状況は大問題、被曝してしまう。
もう一つはセンサーからパルスが来たときLED、ピエゾスピーカを鳴らしたいのだが、、、、
直実に進んでますね。
数値が増え続けるということですが、ひょっとして合計値を配列に入れてしまったりしていませんか?
違っていたら申し訳ありません。
タイマ0のオーバーフロー監視ですが、これはポーリングということでしょうか。
割込を使ったほうが楽だとは思いますが、ポーリングだと線量が高いときにどうなるかですね。
ランプとスピーカについては、これも割込でやりたいところです。
割込を使わないのであれば、タイマ(カウンタ)を監視し、値が変化していたらランプ、スピーカの処理を行うというのは如何でしょうか。
以上、あまり役にも立ちませんが、ご参考まで。
少しずつですが進んでいます。
配列の計算は自信がないのですが、もう一度確認してみます。
ところで、永遠の初心者さんのカウンタではアル値でほぼ飽和というのか、最大値が何時もこの辺になると言った良いのか、
如何でしょう?
タイマ0は割り込みを考えて見ます。
アルゴリズムをどうしたらいいのか、考えが纏まらず苦労してます。
ただ、コンパレータの閾値を調整する段階で3000CPMオーバーまでは見たような気がします。
キャプテンスタッグのマントル(未開封)では、120CPM近辺です。
>アルゴリズムをどうしたらいいのか、考えが纏まらず苦労してます。
私もいつもそこで苦労します。そんな時は別なことをして、プログラムを組みたくなるまで手をつけないようにしてます。
そうですね、堂々巡りになってしまったら、少し、離れた方がかえって、間違いを発見しやすくなりますね。
私は、PC上で確認可能な関数は極力PC上で検証を行っています。
アルゴリズムのコードは、多くの場合は機種に依存しません。
先日avrdudeをコンパイルした時に導入したPC用のgccを利用すれば、
文法上の違いも少なく、アルゴリズムを納得できるまでPC上で吟味
できます。こうして完成したアルゴリズム部分のコードは、そのま
まAVRマイコンで動作させることができます。
もちろん、8ビットマイコンの得意とする型を採用するなどの配慮は
必要ですが、マイコン上で修正と検証を繰り返すよりは効率が良い
と思います。
半導体を使ったポケットガイガーKIT といのがありますが、半導体出力を2段増幅して音声信号として入力しています。特定のレベルを超えたら1CPMとしてカウントします。レベルが小さいものはノイズとして無視しているようです。
きっとアルゴリズムで悩まれていることは本信号とノイズとの識別でしょうか。マイコンでもA/Dで入力できれば真似できるかもしれないですね。
台風の影響で時々雨が急に降ってくるはっきりしない日曜日です。
PC上のgcc、具体的には mingwのgccを使うことだと思いますが、どうでしょうか?
確かにAVR上でのデバッグは思うように行かず苦労してます。
すんさん、2秒のゲートタイムで30回計測しトータルをxxCPMで表示させる計算が思い通りにいっていないようです。
後はタイマ0の割り込み処理等、要するに初心者が故のつまずきです。
センサのパルスは比較的うまく出てきています。その後の処理がうまく行かないといった所です。
ラジオ少年さんは、既にMinGWを導入済です。そこで、それを利用して
アルゴリズム検証を行うことをお勧めします。
入出力が配列であれば、PC上のCコンパイラでデバッグできます。
さらに乱数などを利用すれば、疑似的に入力を用意できます。
また、printfや大量の繰り返しでも高速なので、開発効率を上げる
ことができます。
iPhoneなどは持っていませんが、パルスの音声出力なのでそれをAVRでカウントする予定です。
放射線源はヤフオクでラジウムボールと言うものを買いました。
あとはKITが届くのを待っています。2週間かかるということで、到着は9/14くらいでしょう。
KITを注文されたとのこと、PINフォトダイオードを沢山使っているものではないかと思います。
1個では感度が低くバックグランドの放射線は検出出来ないようです。
マントルで40~50CPM位ですね。
ウランビーズは1CPM程度です。ラジウムボールとはどんなものか分かりませんが、期待してます。
そらさんはプログラムはお手のものですから、すぐ結果が出るのではないでしょうか。