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

寝ても覚めてもPSoC

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

PSoCで温度送信機 成功[LM60 XBee]

2010年01月16日 | PSoC
計測に成功しました!

[2日目]
天気:雪
最低気温:-2.6
電源:単三6本

[3日目]
天気:曇
最低気温:-3.5
電源:単四3本

両日凍てつく寒さだった事がわかります。

消費電流を測ってみると、
計測時:79.6mA
スリープ時:4.3mA
でした。(20℃、レギュレータOUT端子の直後)
XBeeだけでも50mA程度使うらしい。
ちなみにGlobalResourceのAnalogPower、Op-Amp Bias、A_Buff_Powerを Low にすると、スリープ時は 0.4mA になりましたが、High の時と比べて温度が2℃近く差が出ました。
うーむ、回路が悪いのかな
まぁとにかく、今回は過酷な環境下で長時間稼働させる難しさを実感しました。(といっても電池で一晩だけどw)


■センサー側(PSoC XBee LM60)回路図

PSoC XBee LM60回路図


■受信側(XBee AE-UM232R(FT232RL))回路図

XBee AE-UM232R(FT232RL)回路図


プロジェクトです。
デザイナ: 5.0 SP6
デバイス: CY8C29466
コンパイラ:ImageCraft
PSoC_TempTransmitter[XBee_LM60.lzh


低温時のバッテリー電圧の変化が知りたくなった!次はこれを作ってみようかな!

※3.3V版のMiniProgが欲しいと思う。間違えてPowerCycleで書き込んでしまい、あやうくXBeeを壊すところだった...orz


PSoCで温度送信機 失敗[LM60 XBee]

2010年01月13日 | PSoC
寒い。寒いぞ!
しかも冬将軍が来ているらしい。厄介なことに雪が降るというのだ。
こりゃ氷点下になるな...

おっ!?
そういえば氷点下の温度もお手軽に測れる温度センサを買ったのを思い出した。
秋月で売っているLM60です。

いつも使っているLM35DZは、0℃までしか測れない。
しかし、こいつならマイナス温度を測れる!いいぞ、フラウボウ、否、LM60!
LM60は424mVのオフセット電圧があり、そこが0℃を示すらしい。
あとは6.25mV/℃でリニアに変化するのでLM35DZのように簡単に扱えそうだ。
ブレッドボードで作成すると、LM35が示す温度と多少違うけど、ICの特性という事でとりあえず了解w

さて、これを外に...と思ったけど、2つの問題点が発生。
1.結露が怖い
2.現在の気温が知りたいけど、外に出て確認するのは寒くて嫌だ

1は、やっぱ素人なので状況を予測できない。ケースってどれぐらいの密閉度があるんだろう。
という訳で、ヘタレな僕は車の中に入れることにした。
2は、これまた衝動買いしたXBeeモジュールを使って通信させる。これで家の中から計測値を取得することができる。通信距離は、まぁ大丈夫だろう。
念のため、最低温度をE2PROMモジュールを使用して記録するようにしておいた。

センサー側は、
・PSoC: CY8C29466
・温度センサ: LM60
・通信: XBee
・電源: 単四エボルタx3 TA48M033F
・備考: 5秒間間隔で計測し、計測時以外はモジュールをストップさせ、PSoCをSLEEP。XBeeも同様にSLEEP。

XBeeが3.3VなのでPSoCも3.3Vにして統一。
そうそう、LM60がLM35DZより優れているのは3.3Vでも動作可能って所もありりますね。(しかし、以前ColdFireでやったときは3.3VでLM35DZをむりやり使ってましたが...)

クライアントは、とりあえずPCを使う事にして、
・ターミナル: TeraTerm
・シリアル: FT232RL USBシリアル変換モジュール
・通信: XBee
・電源: USB
としました。
FT232RLモジュールは3.3Vを出力(PIN17)してくれるので、こいつをXBeeの電源へ。
TXRXはレベルシフトが必要だけど、XBeeからFT232RLへは直結。FT232RLからXBeeへは5.1Kと10Kの抵抗分圧にしました。
実はFT232RLのJP1を切り替えることで、IOの電圧を5Vと3.3Vの切り替えができます。ナイス!ですね。しかし、ここは男は黙って抵抗分圧(勉強のため)。

LM60 XBee
10cm程度の距離で通信確認をして、センサーブレッドボードを車内へ。うーさぶっ!
家に戻り、ターミナルを見ると(車内)温度が送信されてきている。
20℃程度から10℃ぐらいの場所へ一気に移動させたけど、温度の変化は思ったより緩やかですね。
これで、朝方にマイナス温度を記録するだろう。果たして、マイナス何℃なのか!?


が、計測は失敗に終わった。
最後に計測した温度は0.9℃だった。外は大雪。そんなはずは...
むむむ、一生懸命作った温度計が動作しないのは、何故だ!?
『坊やだからさ...』
ガルマが死んだのはそうかもしれないが、どうも解せない。
PSoCもXBeeもエボルタも氷点下でも稼動すると書いてある。
何故だ!

原因は....たぶん電池 (まぁ実際、車の中では氷点下にならないかもしれないけど)。
低温時は思った以上に消耗するらしい(電圧がかなり落ちる?)。
エボルタの説明には
----------------------------------------------------------------
●寒い場所での使用に強い!!
幅広い使用温度に対応。特に低温に強く、-20℃でもご使用いただけます。
(ただし、常温使用に比べると 電池の使用時間は短くなります。)
----------------------------------------------------------------
と書いてあるけど、零度近くから減りが極端に早くなってたりして。


明日は最低気温-4℃で雪のようだし、フル充電の単三エボルタ6本と計測1分間隔にしてやってみよう。車の窓も少し開けておくか。
なんとしても氷点下表示をキシリア様にお届けしたいのだ!

いやしかし、たかが温度計なのに思ったより大事(おおごと)になってるな~。
されど温度計ってことか...反省。

君は、氷点下を見る事ができるか!?


※プロジェクトファイル、回路図等は後日にします。



リンクを追加

2010年01月08日 | その他

ふと、ブログのリンク(ブックマーク)を見たら何か違和感を感じた。
うーむ......。

そうだ
まだ全くPSoC・電子工作というものがわかっていなかった頃、めちゃくちゃ参考になったサイトが無いのだ!
そのサイトとは『dinop.com』。
大変お世話になったサイトを忘れているとは....orz
ソースコード、設定も画像付きで説明されていて、
キタ━━━━━━(゜∀゜)━━━━━━ !!!!!
って感じでした。
このサイトが無ければ、PSoCを使っていなかったでしょう。挫折寸前でしたからw

という訳で、リンクしました



PSoCでDTMFデコーダIC[CM8870PI]を使う

2010年01月07日 | PSoC
年末に作成したやつです。
少し前にPSoCでDTMFエンコーダとデコーダをやりましたが、秋月を見ていたらDTMFのデコーダICを発見したのでPSoCでやってみました

回路図です。




DTMF信号の解析に成功するとCM8870PIのStD(pin15)がHighになるので、PSoCはGPIO割り込み(立ち上がり)で4bitデータを取得します。
実はICに付属している3端子の3.58MHzの発信素子の使い方がわからなくて、ICよりもこれに時間がかってしまったw
いやほんと、こういう基本的なものはすんなり使えるようにしておきたいものです
UPしたプロジェクトにはDTMFエンコードも入っていますが....
void main(void)
{
	const char *pcPhoneNumber = "987654321015739";
	
	M8C_EnableGInt;

	PGA_1_Start( PGA_1_HIGHPOWER );

	DTMFDialer_1_Start( DTMFDialer_1_HIGHPOWER );
	DTMFDialer_1_StartSamples();
	DTMFDialer_1_DialFromRom( pcPhoneNumber );
}

 
とりあえず鳴らすなら、モジュール配置して上のコードを書くだけ。
これでドラマ24でジャックバウアー達が使っている携帯電話のダイアル発信音が(発信間隔を倍速に設定すれば)再現できますwww
それにしてもCTUが使っている携帯端末ほしいなぁ。万能さに感激しました。それでいて電池の持ちも素晴らしい!
話が脱線しましたが、実用の際には発信音の長さや間隔を調整し、それにあわせてデコーダICの方もR1やC1を調整しなければならないようです。
僕は趣味で遊びレベルなのでこれでOKですけど。


プロジェクトです。
デザイナ: 5.0 SP6
デバイス: CY8C29466
コンパイラ:ImageCraft
PSoC_DTMF[CM8870].lzh





PSoCでグラフィックLCD[SG12864A] for ImageCraft

2010年01月04日 | PSoC
明けました!!

今年最初はグラフィックLCDです。そういえば、ブログの最初の記事もLCDだったw
前回の記事はコンパイラがHi-Techだったので、ImageCraft用に変更しました。
ついでに、VRAMをメモリで保持するようにしました。ドットを多く処理する場合は少し速く描画できます。そのかわり、メモリを多少使います。
処理内容によってはもっと最適化(まとめて描画して更新場所だけ転送等)できるので、速度は出せると思います

動画(YouTube)です。このブログはobjectタグで直接貼れないらしい...



※1/6追記
ブログパーツ化する事で表示可能でした。


回路図です。前回と変更ありません。


プロジェクトです。
デザイナ: 5.0 SP6
デバイス: CY8C29466
コンパイラ:ImageCraft
PSoC_SG12864AII.lzh

1年を振り返って

2009年12月28日 | PSoC
2009年も残り僅かとなりました。
今年からブログをやりはじめましたが、ここまで続くとは思いませんでした

ブログには書いてないけど、最初の頃はLCDやレギュレータなど、よく壊しました テスターも電流計の使い方がわからずヒューズを飛ばしました ショートがなんぼのもんじゃい!って思ってましたからねw
近くにパーツ屋がないので通販に頼るしかなく、慣れない頃は一つ部品を買うのも苦労しました。どれを買ったらいいんだ?レールってなんだ?表面実装?? 品物が届いて初めてわかる、どーすりゃいいんだよ、これ?ってww
おかげで最近は滅多に壊さなくなり、無駄な部品を買うことが”少なく”なりました。

ブログのネタ的にはPSoCを扱っている人から見れば、取るに足らないものばかりでしょう。
果たしてどれほど役に立っているかは不明ですが、『枯れ木も山の賑わい』の精神のもと、単に作っては壊すを繰り返すのではなく、なるべく公開していくようにしました。

正直なところ、半分は義務を感じていたのも事実。
誰のために?
教えてくれた先人たちへのお礼でもあり、これから電子工作に興味を抱いた人たちのために...そして自分のためでもある。
なんつってカッコいい事を書いてるけど、当の本人はオームの法則しかしらないド素人なんだから笑えるwwwww
OOの第一法則、第二法則?知りませんw いや、理解していませんw
しかしマイコンを使ったデジタル回路は、この程度の知識で”やりたい欲求”の近い事ができてしまう。それがマイコンの凄いところ
凄いんだが、凄い故に自分のアイデアの無さをも知ることになる。これは辛い。


さてさて、実際いつまで続けれるかは不明ですけどね。飽きるまでかな?www

よいお年を!

キーボードを打った情報をCOMポートへ送信するアプリ[FT232RL]

2009年12月25日 | PSoC
キーボードを押した情報を指定のCOMポートに送信するプログラムを作成しました。
シリアル通信は秋月のFT232RL USBシリアル変換モジュールを使用しています。
非常にコンパクトなので、PSoCも8PINのCY8C27143にする事でブレッドボード1枚で収まりました
USBから電源も取れるので電池も必要なしですね!

これでキーボードを打った回数を7SEGLEDで表示したり、グラフィックLCDで育成ゲームにしたり、音を出したり、
UPしたプロジェクトのように単純にLEDを光らせるだけwなどを作ることができます
本当は簡単な育成ゲームを作ろうと思いましたが、他に作りたいものができたのでやめました。

さて、PCからの一方通行では面白くないので、マイコンからPCへ特定の文字列を送信するとOSをシャットダウンまたは再起動させれるようにしました。
そう、PCの自爆スイッチが作成できるのです!www
回路図をみてもらうとスイッチがありますが、このプロジェクトではスイッチを押すとOSをシャットダウンするようになっています。

ただ問題が.....
シャットダウン後でもUSBの電源は生きているのです!ゾンビかお前は!
いやぁ初めて知りました。OSが起動していなくてもUSBの電源は使えるのですね~!!!!
うーむ困ったwww
どうしたらよいのでしょうか!?
※逆に言えば電源が入りっぱなし(=PSoC動作中)を利用して、24時間生きてる育てゲーなんかは良いかもしれないなぁ。


PC側アプリです。※詳しくはReadme.txtを参照してください
Kbd2Serial101.lzh
※Readme.txtに書き忘れましたが、連続して同じキーを押した場合は送信されません。キーリピートみたいな状態は送信されません。

PSoCプロジェクトです。
デザイナ: 5.0 SP6 (フォント:全てMSゴシック)
デバイス: CY8C27143
コンパイラ: ImageCraft
PSoC_kbd2serial27143.lzh
※このプロジェクトを使用する場合は、PCアプリの設定で”送信文字列の最後にCR(13)を付加する”にチェックを入れてください。

アクリル板イルミネーション(とりあえず)完成

2009年12月15日 | 電子工作
アクリル板イルミネーションパネルが(とりあえず)完成しました!\(^o^)/

アクリルは予定通り2枚重ねにしました。
1枚目はツリー、2枚目は飾りです。娘に絵を描いてもらいました。
フレーム(土台)をどうしようかと思いましたが、100均でフォトフレームのよさそうなのがあったのでスタンドと共に購入。
フレームの枠と内部の一部をホットカッターで切り取り、彫ったアクリルをホットボンドで固定しました。
あとはLEDを固定してできあがりです!
LEDは1枚目の下部中央に白色LED、2枚目の右上と左下にフルカラーイルミネーションLEDを取り付けました。
その際に気をつけたのは、LEDが5mmでアクリル板が3mmでLEDの方が大きいので、
光が別のアクリルに入らないようにマスキングした事です。
※黒色のビニルテープを買い忘れたのが一番失敗したと思ってるorz
アクリルLEDフレーム

そう。実はPSoCを使っていません。
試しにフルカラーイルミLEDを購入してみたところ、いい感じで光ってくれたんですよ、これが!
おぃおぃ、めちゃくちゃ楽チンやんか!wwww
PSoC基板を作成したり、フレーム内に装着する手間と時間を考えると、LEDだけでいくと決めるのにそんなに時間はかからなかった。

そして、光らせてみると....
アクリルLED

なかなかですね!
我ながら上出来です!
ちなみに、より現実に近づけるために画像のコントラストを調整しています。
写真そのままでは映りが悪いので

さて、あとはクリスマスが来るのを待つだけです

PSoCでDTMFエンコーダ/デコーダ

2009年12月08日 | PSoC
週末はDTMFモジュールで少し遊んでみました。
UMにはエンコーダ(発信)はありますがデコーダ(受信)がありません。
DTMFモジュールは本当に簡単にピポパ音を発信できて便利です。
デコーダはアプリケーションノートを検索すると AN2247 がよさそうです。
プロジェクトをDLして29466用にCloneし、実行してみました。

...が、うごかねー
もともと配線が違っていましたが、それだけではなさそう!?
ググってみると、ありました!!先人に感謝!

これで無事、PSoCでピッポッパッと発信した内容がPSoCで解読できました。

まぁ、何に使うかというと、別にないのですがww
一応は音の通信ができたってことで。

キーボードを打った回数をTwitterへ定期的に送信するアプリ

2009年12月02日 | その他
前回の記事でTwitterのAPIを使ってつぶやきを送信する仕組みがわかったので、
応用してWindowsアプリにしてみました。

TwitterKbdCnt100.lzh 

内容は、キーボードを打った回数を定期的にTwitterに送信します!
それだけです!まぢで!!

起動するとタスクトレイに常駐するので、右ボタンクリックで設定ダイアログを出し、
Twitterの認証設定と送信間隔を設定すればOKです
詳しくは Readme.txt を見てください。

今回は電子工作と関係ありませんが、次はこのプログラムのTwitter部分を
シリアル通信に切り替えて電子工作に結び付けていく予定です

※Readme.txtに書き忘れましたが、連続して同じキーを押した場合はカウントされません。キーリピートみたいな状態はカウントされません。