« 2012年2月 | トップページ | 2012年10月 »

2012年5月

2012年5月17日 (木)

猿でもわかる無線システム その3

皆の者大儀。
3連投じゃ許せ。
さて、昨日の回路図で受信モジュールのピン数おかしくねぇ?と思った武将達よ。
するどい。
その1でお勧めしたモジュールなんだが、
・送信モジュール(315MHz)[RF315-9912] 販売価格: 350円 (税込)
・低電圧受信モジュール(315MHz)[RF315-9931A]  販売価格: 480円 (税込)
実は受信モジュールにこの子を使うと、たった1m離れると通信できないことがわかった。
本システム依頼主omo殿が、たまたま買っておいた違うタイプの受信モジュールでお試しになられたところ数十m離れて通信できると早馬報告があり。
その受信モジュールがこれだ
・受信モジュール(315MHz)[RF315-RXB12]  販売価格: 680円 (税込)
なお送信モジュールはRF315-9912をそのまま使ってみた。
やってみると。。。ほんとだわ
\200割り増しだがここは目をつぶって
見た目、コイルとクリスタルの違いがあるが、これが起因しておるのか。。。
皆のもの~!無線モジュールを買う時には選定に注意すべし!

さて、無線通信は315Mhz帯の微弱電流で行うわけだが、送受信ともアンテナつけないと距離はかせげない。
omo殿にレクチャーされたんだが、
1/4λ(ラムダー)という法則があるらしい。
以下計算式:
300 / Mhz = 波長 = λ
従って315 Mhz帯では、
300 / 315 = 0.9523(m)
1/4 λ = 0.9523 / 4 = 23.8cm
つまり24cmぐらいにしろということらしい。
モノポールアンテナというらしい。
いろいろ勉強になる。

Xbeeでいいんじゃねぇという武将達よ。
信頼性を高めるならそのとうりだが、まだ少し価格が高いな。
安いもので一個2000円前後、x2だからな。
それにこういう報告もあるから導入には気をつけるべし。

2012年5月16日 (水)

猿でもわかる無線システム その2

皆の者大儀。
さてブランク空きすぎのこの企画w。またレポートを開始したい。
赤外線通信から無線通信への対応として、不可欠でキーポイントとなるのは言わずと知れた無線送受信モジュールだ。
このモジュールとマイコンとの間の信号やり取りが重要となるわけだが、以下に実験過程でポイントとなった項目を列記したい。

ポイント1.
買ってきた送受信モジュールについてサイトの説明を見ると、
"送信モジュールの電源(Vcc, GND)を接続し、dataピンにHi/Lo のデジタル出力信号を与えます。受信モジュールの電源(Vcc, GND)を接続し、dataピンよりロジックレベルでHi/Lo のデジタル出力信号が出力されます。"
とあるがこれをこのまま信用するとえらいことになる。
まず、送信モジュールに入力する信号は周波数変調をかけないといけないようだ。
以下2チャンでの説明を抜粋しよう。
"その手のモジュールは、例えば、送りたいデータでFSK変調した信号を入力して使うとかする。つまり、送信側では、送りたいデータがHの時は○○Hz、Lの時××Hzでトグルする信号を送信モジュールに入力し、受信側では、受信モジュールの出力信号を周波数で弁別し、送信データがHかLかを判定する。"
なおFSK変調とは...(Wiki)
デジタル値をアナログ信号に変換する変調方式の一つで、周波数に値を割り当てる方式。異なる周波数の波を組み合わせ、それぞれの周波数に値を対応させて情報を表現する。
2値の場合は0のとき低周波数、1のとき高周波数といったように割り当てる。回路が比較的単純で済み、振幅変動の影響を受けにくい。アナログ回線で使われるモデムや、一部の携帯電話方式に利用される。

そうなんです。
単に送信モジュールにHIGH/LOWを入力するだけじゃ受信側で判断できんのです。
その辺の実験が、ここにも詳しく書いてあるので参考にされたし。
http://bikesalon.com/kousaku/pic/radio.html
そしてこの周波数はなんぼにするんやと突き詰めようかと思ったが、結果的に赤外線パルス周波数と同じ38Khzで動くようじゃw
だからこの周波数を採用することにした。
実はもっと効率いい周波数があるのかな?

ポイント2.
受信側だが、ポイント1を対応して信号は出てくるんだが、シリアル信号に対して論理が逆ででてくる。受信側ソフトは前回説明したようにシリアル受信しているだけなので、トランジスタで反転してからマイコンへ入力させる。

ポイント3.
受信信頼性を高めるため、受信データのうち固定値データのチェックを行う。本来はサムチェックを入れた方が良いがやってない。

ポイント4.
知り合いの武将の説によれば送信側の送り始めで息が切れると(送信から送信の間の時間があくと)、立ち上がりが悪い(コイルの充電?)のでデータにノイズがのる。
なので送信間隔が若干大きくなる最初だけ同じデータを二度送りする。連続で送り続けるシステムにおいてはこの処置は必要なし。

とりあえず今回はここまで!
ソフトと回路図はこれ。
「thermo_meter_lm74Ver9.c」をダウンロード

Prj12_2

※ソフト使用上の注意
ソフトは例によってMikroC Free版DemoLimitのため、送信プログラムと受信プログラムはコンパイルで切り替えること。ソース上にdefine定義。
それとコンパイル最適化レベル1以上でないと動きがおかしい(すまんなんでか知らんw)。
当たり前だけどまねするひとは生命維持装置とかにつかっちゃだめだよ

2012年5月15日 (火)

奇妙なLCDの発掘

皆の者大儀。
無線モジュール改造過程で数々の脱線はありながらも最新Verも運用上問題なさそうだ。
その後の進捗報告が遅れ申し訳ない。
"猿でもわかるシリーズ"、皆のものには忘れ去られとるであろう。
そして今回だが無線関係はまとめる時間がほしいしもうちょい待っちくれw

今日は無線改造の合間にやった、へんてこLCDについての体験レポートじゃ。
このLCDの名称はHT1603B、ご存知aitendoさんで売ってたもの。
見てのとうり表示内容がいかにも怪しい。
もとはあきらかに中国製品。。。
でも電池マークやアンテナマークがいいんじゃねぇ。
値段も150円。
破壊覚悟で買ってみる。
さっそくサンプルコードを元に、MikroCで作り直してみた。
7セグ部は、サンプルコードどうりであっさり表示できる。
これで任意の数値表現ができるわけだ。
さーて、期待のアイコン部をあっさりと表示してみっか。
と思ってから、ここでさっぱり進まなくなった。
英語のデータシートPCF8576を目を凝らして読み続けてもどうもIF仕様がはっきりせん。
ここで取り上げたのも、もし同じ問題を抱えておる武将がいたら何かの参考にしてほしいからじゃ。
なぜならネット上でこのLCDを使っている武将はいても7セグ部の制御のみだったからじゃ。
今日までの実験結果から理解したことは、マヤカシのLCDマッピングじゃと勘考致す。
どこに何がでるかはお楽しみみたいな

1.まずサンプルコードにある、write(0x48); がデータシート23ページ目の"MODE SET"コマンドを意味しているのは間違いないと思う(LOAD DATA POINTERコマンドはbit6がOFFだし、DEVICE SELECT/BANK SELECT/BLINKコマンドではbit4がONだから消去法で)。
つまり、M0=M1=0でMUX(4BP)モードとなる。
この4BPの4は、40x4bit RAMの4をあらわし、表示上は4ブロック目(7セグブロック)を意味すると当初理解した。

2.モードを変えてFFデータを送り続けて全アイコン全てをどうにかだせるようにはなったが、アイコン部分表示がどうもうまくいかない。

3.ここでネットの賢者武将へアドバイスを申し出たところ、モノもないのに見解を述べてくれた。この信長この場を借りてお礼申す。
さて賢者の諫言内容だが、40x4bit RAMということは20byteで、16セグ部で16byte使用しているから、残りのbitでアイコン部を制御しているのでは?
というもので、
この制御方法を元に写真1のような表示を得ることができたわけだ。
電池とアンテナマークがほしいわしとしては、これで十分なわけだが、左側のアイコンはMUX(4BP)モードでは"1"データを送っても出力できないようだ。

4.そこで、"MODE SET"コマンドのパラメータを変えて、出力データは同じものにした結果が次の写真である。
出力データは以下。
0xd7(数字0),0x03(数字1),0xb6(数字2),0xa7(数字3),0x63(数字4),0xe5(数字5),0xf5(数字6),0x07(数字7),0xf7(数字8),0x67(数字9),0x67(数字9),0xff(数字8+DP),0xff(数字8+DP),0xff(数字8+DP),0xff(数字8+DP),0xff(数字8+DP),0xff,0xff,0xff,0xff
どうじゃ。
全く同じデータ出力でありながらモードを変えるだけでこの有様じゃ。
しかもアイコン部だけ変更できるならまだしも、MUX(4BP)モード以外は互いにコモンになるようで影響しあうのはどうにかならぬか。

5.さらにわかったことだが、MUX(4BP)モードで7セグ部のDP部を点灯する時、物理的に存在しないDP(実は3桁目と13桁目のセグメントにしか存在しない)に対して"1"を書くと、設定値0x48の絵のアンテナと電池マークの下にある中国語アイコンがぞろぞろでてくる。

そんなこんなで全てを把握したわけではないが、体験レポートの終わりと致す。
中途半端で許せ。
上の写真の時のソースコードはこれじゃ。「HT1603B_LCD.c」をダウンロード

Ts3s0235

Modesetcmd

« 2012年2月 | トップページ | 2012年10月 »