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

寝ても覚めてもPSoC

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

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

2011年02月03日 | PSoC
方位センサーといえば、もう一つ持っていることを思い出した
秋月電子で買った RDCM802 という方位センサーです。
このセンサーは方角を8方向であらわします。前回のHMC6352は360度なので、それと比べると見劣りしますが...
なんと8方向のくせに磁石を近づけると狂いますw えぇーい、この軟弱者!!(バシッ)
しかも、恵方の南南東の識別ができないジャマイカ

このICは基板にも問題がありました。いつものヘッダーピンをハンダ付けする穴がないので、軟弱な僕は使うのを敬遠していました。調べてなんとか取り付け方が判明し、ハンダしてブレッドボードに差し込めました。ピンがハの字に開いちゃったけど...
とにかく、このタイミングを逃したら一生使わないだろうという妙な感覚があったw

インターフェースは3bitパラレルです。HMC6352はI2Cでしたが更に簡単に扱えますね
回路図も必要ないぐらいで、RDCM802のD0をP0[2]、D1をP0[3]、D2をP0[4]に接続すれば終わりですw
ちなみに僕の環境下では、方角を一つずらすと良い感じになりました。(北東なら北、東を指したら北東って感じです)
それか方位境界あたりが正しい方角を示しているのかもしれません。

このセンサーは扱いは簡単だけど価格も高い(500円ぐらいと思ったら3400円もするorz)し精度も荒いしサイズも大きいので使い所が難しいと思いました。普通ならHMC6352の方を選択するのではないでしょうか。マイコンいらずで大まかな方角がわかるってのが最大の魅力?

文句は垂れたけど、方位がわかるのってなんか楽しいな~ww




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


うーん、それはそうと、そろそろデザイナー5.1にするかな~

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

PSoCでキャラクタLCDでカスタム文字を表示[SC1602B]

2010年12月01日 | PSoC
よくあるキャラクタLCD(SC1602Bシリーズ等のインターフェースICにHD44780を使っている物)には8個のCGRAM領域があります。そこにパターンを書き込んでやれば、独自のフォントを表示できます。
これをPSoCのLCDモジュールを使ってやってみました。
(LCDモジュールのバー表示も同じ処理でやっていると思います。)

...まぁ、これもネットでは散々出ているネタなので説明はググってください



シンプルなCGRAM用(5x8ドット)フォント作成ツールです。C言語のソース形式で出力できます。
LCD_MakeFont.zip

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

PSoCでカラーセンサ[S9706]

2010年10月19日 | PSoC
S9706というカラーセンサで試してみました。
何を試したかというと、
1.フルカラーLEDを点灯させる
2.その色をS9706で読み取る
3.読み取った色をLEDに反映させる
4.2に戻る
です。

とりあえず頭の中でどうなるか想像してみると、発色と読み取り誤差により、ゆらゆらと色が変わっていくのではないか?です。
つまり、極端ですがイルミネーションLEDみたいになるんじゃないかなぁと

ブレッドボード上に回路を作成し、いざ電源ON!!


しかし、結果は想像したそれとは違い、紫っぽい色でほぼ固定となってしまいました。
いつものようになんかミスってるだろうと思い、青色プレートを読み取らせると青色っぽくなった。

うーむ...

※追記
LEDとセンサーの間に白いフィルター(薄い紙)を入れると、それっぽい動きになりました。
LED拡散キャップだけではダメのようです。



回路図です。



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



ゲーム機完成~[SG12864A、Serial 7-Segment Display]

2010年09月21日 | PSoC
ケースをホットカッターで削ってGLCD(SG12864A)と7SEGLEDをはめ込み、ドリルで穴を開けてボタンとスイッチを付けました。
GLCD部分は隙間があきすぎたのでテープで隠したという作りの荒さwww 
うーむ、ケース加工は本当に難しい。作成過程で一番難しい。



完成してみて....残念ながら自分で思ったような出来にはならなかった。30点ぐらいかな
もっとスイッチや計器類をたくさんつけたかった。効果音も。
まぁ製作時間や技量の無さによってなんだけど、今回PSoCで一つ新しい機能を使うことができたのが救いかな~。
次回作るときはもう少し頑張りたい!

ちなみにゲームの中身は古典的名作と言われる『月面着陸』です

ゲーム機プロトタイプ[SG12864A、Serial 7-Segment Display]

2010年09月08日 | PSoC
とりあえずゲーム機のプロトタイプができました

ゲーム機プロトタイプ[LunaLander PSoC]

さて、これからこいつをケースに入れないかんのですが...面倒で腰が重いです。

アナログ感を出すためにシリアル7セグLEDを使ってみたのですが、やっぱ1線で制御できるのは楽でいいわぁ~ 自分で作ると、こんなに小さく作れないし。
その分、ちょっと高めですけど...

構成は、
PSoC x2
GLCD x2
7SEG x2
SW x3
LED x1
と豪華ですww
制御側のPSoCは4つのシリアルTXを使っています。こんな使い方できるのもPSoCならではでしょうか。