2015年4月12日日曜日

フォトセンサテーブル改

以前作成したフォトセンサテーブルは変な挙動を示しているが,その後,フォトトランジスタの立ち上がりに依存するタイミングは避けた方がよいことハイパスフィルタを有するにもかかわらず外乱光の強度によって出力が変化することについて検討した.

問題は二点である.一つは外乱光強度に依存して立ち上がり時間が変化すると同時にハイパスフィルタにより減衰が進むことである.これに対してはピークホールドが有効に働くと思われるので,連続的にA/D変換を実行しソフトウェアで出力のピークをとれば良いと考えられる.立ち上がりが遅いときにも対応できるように連続的に20回A/D変換を繰り返し,その最大値を採用するようにした.20回のサンプリングに要する時間は60usであり,Pi:Coの場合はこれくらいが必要十分な時間となるようである.これによって安定度は格段に向上した.

もう一点は,直感で光軸合わせをした場合には反射光強度が強すぎて壁が近いときに飽和することである.これに対しては,光軸をわざとずらした.指向性の高いLED,フォトトラなのでなかなか簡単ではないが,適当な角度差にするとほどよい受光強度になる.

かなり時間がかかったが,ようやく使えそうな状態になってきた.結果今までの対数近似でほぼ大丈夫そうな特性になった.図中の緑のラインは2次関数+対数関数で近似した結果である.
dw = a0 + a1 s + a2 s2 + a3 ln(s)

2015年4月5日日曜日

PC不調

普段の作業はデスクトップPC,外へ行くときはvaio pro 11を使っているが,vaioさんの調子がすこぶる悪い.

昨年に台湾から帰る空港ではじめて発症した内蔵SSD認識できない病である.このディスクは元のWindowsさんには立ち退いていただいてLinuxに完全に入れ替えており,これが原因の可能性を完全には否定できないが,今回はBIOSが認識していないのでおそらく関係なく,わりとお手上げ状態である.これまでは認識しないことがあるという程度であったので地区大会や全日本大会でも問題にはならなかったが,今日はごくまれに認識することがあるもののOS起動完了までに読み取りエラーが出るというバックアップもとれない状態になってしまった.

というわけで,ついカッとなって裏蓋をはずした.軽量PCなのではずすのは厄介かと思ったが,ねじ9本はずせばパカッととれる.メンテナンスはかなりしやすいようだ.すばらしい.

右下にある長細い板がSSDであり,こいつがダメになっているのなら同規格のものを購入して換装ということになるが,とりあえず一度はずして特に何もせずつけなおした.

何か(Sタイマー?)がリセットされたのか接触不良だったのかわからないが,今のところ確実に起動するようになった.しばらく様子を見よう.

2015年4月3日金曜日

フォトセンサ回路

最近Pi:Coのフォトセンサをうまく使えなくて試行錯誤している.

今日はフォトセンサ回路について考える.Pi:Coのフォトセンサ回路について書くのはあまりおもしろくないので,BasicMouseのフォトセンサ回路がいかにすぐれているかを考える.実は昔説明文章を書いたことがあるらしい.その説明が正しいかどうかは知らない.

今改めて考えると,すぐれているのは「強力パルス発光」と「ピークホールド機能」である.

前回はフォトセンサの特性に触れたが,これを考慮するとハイパスフィルタ付きのフォトセンサを外乱光のある場で使うと次の図のような出力が得られるだろう.すなわち,周囲の明るさと壁との距離(反射光の強さ)で立ち上がりの速さが決まり,壁との距離で出力の極大値が決まる.ハイパスフィルタの影響で初期値は0であり,立ち上がり遅れの後は時間とともに出力が低下する.

この場合,外乱光の影響を避けるには,外乱光の強さに比べ十分強い反射光を得ること,出力のピーク値をA/D変換すればよいことがわかる.BasicMouseの回路は,パルス状にはLEDに5Vをそのままかけ大電流を流せるものの,定常的には電流が制限される比較的安全な構成になっている.そのため,ソフトウェアにバグによる回路破壊のリスクを避けつつ非常に強い発光をさせられる.また,ピークホールド回路のおかげで十分遅い時間にサンプリングすれば立ち上がり時間が多少異なっても影響を受けない.

知識のないときにはまねするしかないのでまねていたが,今思えば偉大であった.

2015年4月1日水曜日

Saturation of photo sensor

I put my photo sensor characteristics on the previous blog post. The curve shows that sensor output around 600 does not change with distance to wall. I have believed that this characteristics is caused by the geometry of emitter and detector because the parallel distance of them is relatively long.

When I wrote the answer in the comments, I came up with another possibility. Schematic of photo sensor response is shown below. In general, response of photo transistor is slow and it changes with light intensity. More intensity the received light is, faster the rising speed becomes.

When the sampling timing of A/D is set to B in the figure, A/D value is not affected by the response time. On the other hand, sampling is performed at timing A, A/D value is determined by the response speed. There is an advantage to sample at timing A, because saturation of current or output of opamp is avoidable owing to its low photo current. However, the response speed also saturates for very high intensity of light. This effect may cause the low sensitive curve in my photo sensor.

If this is true, the easiest solution is to change the value of register, but, anyway, I cannot change it by the rule for Pi:Co in this year.