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

寝ても覚めてもPSoC

電子工作とマイコンをやりはじめました。
ど素人ですので配信する情報の取り扱いには十分注意してください。

PSoCで方位センサーを使う[HMC6352]

2011年01月31日 | PSoC
今年の恵方は南南東だそうです。
南南東を向いて恵方巻きを食べると良いらしい。

そこで以前買っておいたデジタル出力の方位センサーHMC6352を使って方角を調べてみようと思いました
大げさで無理やり感たっぷりですが、使い道を考えてないのに好奇心だけで高いセンサーを買ってしまったと、今は反省しているww

HMC6352のインターフェースはI2CなのでI2Cmモジュールを使いました。
I2Cmで'A'コマンドを発行すると2バイトの方位データが出力させるので、それを読み込むだけです。とてもシンプル。

コンパスと比較するとなかなか良い具合に方角を示してくれます。
当たり前(?)ですが、磁石等の影響をけっこう受けます。
ちなみに更新レートを1Hzに変更してみたけど、なぜか反映されない。EEPROMにはちゃんと値が保存されているのに。はてさて、なんか手順を間違ってるのかな??(別に20Hzで更新されても問題ないけど...)

ってことで、だいたい160度を示した方角で恵方巻きを食べればOKかな




回路図です。



プロジェクトファイルです。
デザイナ: 5.0 SP6
デバイス: CY8C29466 5V
コンパイラ:ImageCraft
PSoC_HMC6352.zip


結論。方位を表示するだけだったら100円ショップで方位磁針(コンパス)を買ったほうが安くて小さく、電池いらずで断然お得ですwww
僕の作るのはだいたいこんな結末ですが、これが素人趣味って奴かな。

ImageCraftでsprintf

2011年01月28日 | PSoC
どうやらデザイナー5.0SP6からsprintfが使えるようになっていたらしい。
https://secure.cypress.com/?id=4&rID=43630

正直、シランカッタ....orz

csprintf( buf, "%d", value );
と数値を文字列に変換できる。

しかし、
csprintf( buf, "%04d", value );
のように桁指定や0フォーマットはダメのようだ。

僕は桁揃えをしたがるタイプなのでこの関数はあまり使わないだろうけど、無いとは大違いなので有難いのは確か。

とても残念なのはデフォルトでfloat(%f)を使えるようになってない事。

PSoCで距離センサーを使う[GP2Y0A21] その2

2011年01月24日 | PSoC
計測器を使ってみてわかった事は、うさちゃんはトイレでもくつろぐという事実www
以前はトイレにいる場面を見たことがなかったので、トイレはおしっこの時しか立ち寄らない場所だと思っていました。しかし実際はそうではなく、毛繕いをしたりしていた!(それでも全体的な割合は非常に少ないですが)
こうなるとオシッコ回数の計測は今の方法ではまるで正確性がありません。残念。

また、使ってみると問題も発生しました。
電池の持ちが悪いのです連続稼動させると8~9時間程度で動作しなくなります。
消費電流(DC-DCコンバーター後)は約65mA。エボルタが2000mAなので30時間は持つ計算に。
DCコンバーターの変換効率(?)というのがあるらしいので、それでもまぁ24時間は持つだろうと思っていましたが、甘かったようです。(配線効率?も良くない??)
消耗した電池の電圧を測ってみると0.9Vぐらい。あれれ、スペック的にはまだ100mAは供給できるはずでは?
電池からDC-DCコンバーターまでは100mA流れています。しかし、DCコンバーター以降は9.6mAしか流れていません...
うーむ、何かが間違っていそうだけど、わからんです。出力ラインに大き目のコンデンサでも付ければ少しはマシになりますかね~???

しょうがないのでとりあえずスイッチを付け、必要なときだけONにするようにしました。
まぁ確かに留守のときにブザーならしても意味が無いといえばそうだけど...。
なんかしっくりこないなぁ。

PSoCで距離センサーを使う[GP2Y0A21]

2011年01月20日 | PSoC
昨年末にウサギを飼うことになったw
チビうさちゃん、なかなか可愛いね! これからでかくなるらしいけどwww


で、現在トイレの躾けをしているのだが、なかなか時間がかかりそうだ...orz
そこで、トイレでおしっこしたらご褒美におやつを与え、その行為が良い事であると覚えてもらえれば少しは効率がよくなるのでは?と考えました。
問題はケージと居住空間の距離があるため、トイレでおしっこをするタイミングを何らかの方法でキャッチする必要があるということです。ずーーっとうさちゃんの行動を見続けるのは不可能。また、行動直後におやつをあげないと、なぜおやつがもらえたかがわからなくなるらしい。トイレに移動したら、離れた場所でその情報を素早く知りたい。

という事でPSoCの出番です!
センサーでトイレに移動したかを判定し、無線で手元の受信機に送信。音とLEDでお知らせする。ついでにトイレ回数もカウントすれば体調管理もできそう。

とりあえずセンサーが必要だけど何が良いかと手持ちの中からピックアップしてみた。
1.焦電型赤外線センサー
2.赤外線距離センサー
3.非接触温度センサー

1が良さそうだけど、今のところPSoCで扱えていません。アナログ難しいっす※アプリケーションノートを見つけたので近々やってみたい。
2は計測範囲が狭すぎるかもしれないが、扱いは割と簡単。
3は周りの温度に影響されそう(特に夏場。ウサギの体温は38℃~40℃らしい)。
結局2の赤外線距離センサー(GP2Y)を使うことにしました。
おしっこする場所によっては計測漏れしそうですが、当面これでいきます。

無線はお手軽のXBee
センサー側の電源はACから取る事にしました。ポリスイッチやダイオードをつけて対策していますが、長期稼動は不安です
赤外線距離センサーは右下で下向きに付いています(あたりまえかw)。一応距離を近似値で算出していますが使い物になりません テーブル作って補間した方が良いようです。
PSoC(CY8C27143)はディスプレイの下に隠れています。


モニター側は充電式のエボルタ1本です。DC-DCコンバータで3.3Vに昇圧しています。初めてDCコンバーターを使いました XBeeの50mAぐらいが大きいですが全体で100mAもいっていないと思います。


これでうさちゃんがトイレに入ったら音(電子ブザー)と光(LED)でお知らせしてくれます。ウホッ!嬉しい~w
この秋月で買った電子ブザーは3.3Vでも大きな音が鳴るのが良いですね


センサー側の回路図です。


モニター側の回路図です。


プロジェクトファイルです。
デザイナ: 5.0 SP6
デバイス: CY8C27143 5V,3.3V
コンパイラ:ImageCraft
PSoC_RabbitSensor.zip