goo blog サービス終了のお知らせ 

王様の耳はロバの耳!

OCN blogzine からお引越ししました
でもやっぱり何も聞かなかったことにしてください(笑)

デジタルカラーセンサS9706

2008-10-12 22:30:21 | PSoCで遊ぼう

秋月で扱っているデジタルカラーセンサS9706で遊んでみました.浜松ホトニクス製,感度モードはHighとLowの2段階,12ビットデジタル出力,ということで,PSoCでなくても簡単に遊べるわけですが,ま,それはそれ(笑).

Pa120018s やはり秋月のSOP8-DIP変換基板に載せました.センサは90度時計回りに回っている状態です.左下がDIP配列の1番ピンになります.6ピンしか使わないので,DIPの4番ピンと5番ピンはNCです.

Pa120003s この前のセミナーで買ってきたCY3210-PSoCEVAL1に組み立てました.チップは27443.LCDの表示は,上段が4ケタづつのHEXで,R,G,B(12ビット値)と,センサの露光時間(単位は1/10msec)です.右側のLED1が点灯しているのは高感度モードを表しています.(低感度モードでは消灯.)

Pa120006s カラーセンサの結線の様子です.順番に説明します.

センサの1番ピンがDoutでデータの読み出し用.これはP0[3]に入っています.中でバッファリングしてP0[7]に出し,LED4を点灯させています.

2番ピンがVdd,3番ピンはGndです.

4番ピンが感度モードの切り替え.Hで高感度,Lで低感度.感度比は9:1です.P0[0]につなぎ,LED1でモニタリングしています.DigBufを使っているのは見逃してください(笑).手抜きです.ちゃんと気をつけて注意深くコーディングすれば不要のはず…

5番ピンはCKで,Doutからデータを読み出す時のクロックを与えます.P0[1]につないで,LED2でモニタリングしています.L→HでDoutにデータが出ます.もちろん普通のマイコンのようにHLHLと直接IOポートを叩いてクロックを作ってもいいですが,今回はSPIMモジュールを使用.以前PSoCライターを作ったとき,参照したApplication Note で読んで感動した覚えがあります.モード2にして,H→Lでデータを読むようにします.SPIMモジュールは8ビット単位の通信なので,今回は12×3=36bitの受信なのですが,40bit受信して36bit分使う,というプログラムになっています.

6番ピンはGateで,Hの間だけセンサが露光します.感度モードと露光時間によって,センサの感度範囲が決定されることになります.P0[2]につないで,LED3でモニタリングしています.PWM16をワンショットで使っています.時間が正確に出せるところがいいですね.(タイマー割り込みでIOポートを叩くときの遅れが…などと気にしなくてよいので.)

計測値のアンダーフローやオーバーフローを見て,感度モードと露光時間を調節することができるはずですが,やってみるとなかなか難しいです.ちゃんと考えないと,ちょこちょこっと適当にやるのではだめですね.ソースを置いておきます.よろしかったらお試しください.「S9706Demo_50.lzh」をダウンロード CY3210 + Designer 5.0 SP1 + 27443 です.

PSoC遊びは楽しいですね.時間があっという間に過ぎます.いろいろ遊びたいネタはあるのだけど,時間がなかなか作れなくて…すぐに疲れてしまうのもいけないです.やらないからますますやらないわけで,毎日ちょこちょこやればフットワークが軽くなるのは承知しているのですが,「フリーズ!」信号が脳内から発せられるともういけません…人にサービスする時間をもう少し減らして自分のために使いなよ,という深層心理からのサインなのかもしれません.まあぼちぼちゆるゆるでやりまっしょい>自分.