« LPFを通したあとの波形 | トップページ | IRセンサーのデータ解析 »

2010年11月20日 (土)

PSoCマイコンのCPU_Clock

IRセンサーの信号をPSoCマイコンで受け取っていたら、ブレッドボードの線を少し揺らすだけでPSoCマイコンが動作しなくなるという状況が起きました。

結局の原因を率直に言うと、CPU_ClockをSysClk/1にしていたからでした。
デフォルト設定はSysClk/8です。

CPU_ClockをSysClk/1にすると動作が不安定になることを確かめるため、次のような実験を行いました。
PSoCに電源が入ったらLEDを点灯させるだけのプログラムを入れました。デフォルト設定からCPU_ClockだけをSysClk/1に変更しました。電源を入れて、LEDが点灯します。そこで、ブレッドボードの線を少し揺らすといきなりLEDが暗くなりはじめて点灯したり消えたりするのです(大量にリセットがかかっていると考えられます)。
次に他は全く同じプログラムでCPU_Clockだけをデフォルト(SysClk/8)に戻します。電源を入れて、LEDが点灯します。それから、ブレッドボードの線を揺らしてもずっと点灯したままになるのです(正常な証拠)。

これらのことから、CPU_ClockをSysClk/1にするとかなり動作が不安定になる(というか動作不可能になる)ことが分かりました。ただ、なぜCPU_ClockをSysClk/1にすると動作不可能になるかは分かりません。なので、とりあえず、CPU_Clockはデフォルト設定のままにしておこうと思います。

 

今日、LPFやADCなしでIRセンサーの情報を読み取ることができました(今までのアナログブロックでの苦労はなんだったんでしょう・・?)。
IRM-3638を使い、PSoCマイコンでデジタル入力して演算しました。
ボールまで距離の誤差は+/-10cm以内くらいに収められました。(だいたいです)
このくらい正確に距離が分かれば制御もできそうです。
ボールがどこかに存在すればたとえボールがIRセンサー受光部の反対側にあってもIRセンサーは反応してしまいました。
でも、IRセンサー受光部の反対側にボールがあった場合、ボールまでの距離はかなり低く示される(光が弱いということ)ので大丈夫そうです(ちなみにIRセンサーは真正面の光によく反応し横からの光にはあまり反応しません。この性質はけっこう使えます)
まだ1つしかIRM-3638を買っていないので、これからやっていきたいと思います。

« LPFを通したあとの波形 | トップページ | IRセンサーのデータ解析 »

PSoCマイコン」カテゴリの記事

ロボットのハードウェア」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1389908/37760561

この記事へのトラックバック一覧です: PSoCマイコンのCPU_Clock:

« LPFを通したあとの波形 | トップページ | IRセンサーのデータ解析 »