画像をクリックすると拡大表示されます。
拡大画像からはブラウザの「←戻る」ボタンで戻ってください。
前回、モデムIC「MN6127A」を使用して、無線データ通信の実験をしたのですが、見事に失敗しました。
今回は、市販されている、データ通信用のICを使ってみました。
データ通信用のICは、いろいろなパーツショップで、各種、販売されているようです。
受信ユニットと送信ユニット |
写真の左側が今回使用した受信ユニット、右側が送信ユニットです。
いろいろなパーツショップで、似たようなユニットが、各種、販売されています。
使用したものは、ストロベリーリナックスから購入したもので、送信ユニット、受信ユニット共、税込み単価500円で、
多分、最も安いものです。
315MHzのAM変調(ASK)です。
普通のAM変調は搬送波の振幅が変調信号によりアナログ的に変化しますが、ASKは変調データにより、搬送波がON又は
OFFの2値を取ります。
入力データがHの時は搬送波が出ていますが、Lの時は搬送波が出ません。
他メーカーの、もう少し高価なユニットは基板にパターンアンテナが配置されていたりしますが、このユニットには無いよう
ですので、外部アンテナで感度を稼ぐ必要があると思います。
使い方に関する資料が付いていないので、手探りで使わなければなりません。
送信機 |
PIC18Fを使うようになってから出番の少なくなったPIC16Fの在庫を減らす為に、手持ちのPIC16F876を使
しました。
電源電圧を4個のVRで分圧し、4CHのアナログ電圧をAD変換し、4桁のヘキサコードをキャラクタにしてRS232Cで
出力し、送信ユニットの変調データにしています。
回路図には液晶表示器が接続されていますが、デバッグの時、AD変換値を確認するのに使うだけですので、実際には使い
ません。
送信機の回路図
単なる実験ですので、ケースはチョコレートの空き缶を使用しています。
ソフトウエアはCCSCコンパイラを使用しました。
実験してみようと思う人がいるかもしれないので、ソースをUPしました。(ZIP圧縮されています。)
液晶用のサブルーチンはメインのファイルにインクルードされるので、同一のフォルダに置いてください。
使用したCCSCコンパイラのバージョンが古いので、コンパイルエラーが出るかもしれません。
その時は修正するか、コンパイル済みのHexファイルを使ってください。
ファームウエアのダウンロード
ソフトウエアはAD変換した4CHのデータを16進のキャラクタでRS232Cに出力しているだけです。
RS232C出力が送信ユニットのデータ入力となります。
受信側が単純な受信バッファですので、表示中に次のデータが来ると困る為、送信後、若干のアイドル時間を置いてから
、次回の送信を行います。
この間、送信を止めると面倒な事が起こるので、アイドル中はNULLコードを送信しています。(理由は後で説明)
受信機 |
受信機もPIC16F876を使用し、受信ユニットの出力をRS232CのRX端子に入力します。
受信機の回路図
受信割り込みで、受信バッファにキャラクタを積み込み、改行コードが来たらバッファの先端から順次、データを読み込んで
液晶に表示し、4CH分終了したら、バッファを初期化して、次のデータを待ちます。
この間に次ぎのデータが来ると困るので、送信側は、改行コードを送ってから、しばらくの間、NULLコードを送信して
います。
受信割り込みはNULLコードが来たら、何もしないで抜けます。
ファームウエアのダウンロード
受信表示 | 受信波形 |
左の写真は4CHの受信データが液晶に表示されたものです。
実験ですので、電圧に変換せず、単に変換コードを表示しただけです。
10ビットのAD変換ですので、表示は0000〜03FFまでとなります。
右の写真は、上側が送信データの波形、下側が受信データの波形です。
僅かなタイムラグがありますが、同じ波形が再現されています。
屋外で30m程度の距離は届きましたが、間に障害物のある場合は厳しくなります。
隣の部屋程度なら届くかもしれません。(部屋の構造にもよります。)
最初、裸のユニバーサル基板に20cm位のスズメッキ線をアンテナとして立てて実験しましたが、全く通信出来ません
でした。
金属ケース(チョコレートの空き缶ですが)に入れ、アンテナを付けたら、状況が大きく変わりました。
我々、素人には感動物ですが、アマチュア無線等で、通信機に親しんでいる人には常識的なことかもしれません。
このような、簡単なロッドアンテナでも、アンテナの威力は大きいです。
ただ、現状ではユニバーサル基板を使用し、送受信ユニットも、再利用を考え、ICソケットに挿してあるので、ベストの状況
ではありません。
もう少し、改善される可能性は、あります。
送信電波の無いときの受信データ(2mS/DIV) |
ASKでは送信データの無いとき(データが長時間Lレベルでも同じ)搬送波が送られてきません。
この時、受信ユニットもデータを出力しなければ良いのですが、実際には、写真のようにランダムな波形が出力され
ています。
これが、ノイズに反応しているのか、搬送波の無い場合、自分自身で出すのか、資料が無いので、判りません。
ただし、このままでは、RS232Cで滅茶苦茶なキャラクタを受信し、液晶に意味不明の表示が、されてしまいます。
その為、アイドル時にNULLデータを送り、搬送波が長時間、途切れる事が無いようにしています。
受信割り込みでは、NULLコードを受信しても、無視するようにしています。
送信データH固定の受信データ(20mS/DIV) |
今度は逆に送信データをHに固定してみました。
受信データはHに固定されず、やはり、パルスが出ています。
しかし、送信電波の無いときに比べ、パルス幅は、かなり広くなっています。
送信ユニットに加えるデータをトランジスタ1石のインバータで反転してみました。
同時に、受信データもインバータで反転し、PICのシリアル端子に加えて見ました。
今回のソフトでは、同じようにAD変換値を表示出来ました。
(最大通信距離の比較等は、していませんが。)
我々のように、無線通信と、あまり、縁の無い物にはピント来ませんが、無許可で電波を出す場合、その電界強度が
厳しく、規制されているとのことです。
短時間の実験ですので、何も意識せずに、送信ユニットの出力をアンテナに乗せましたが、常時、使用する場合、
注意が必要です。
尚、受信側のアンテナを立派にするのは、問題無い様です。
プリアンプ |
もともと、この実験をした目的は温室内の温度データを仕事部屋で監視したいということでした。
見通しの良いところなら30m位、届くのですが、仕事部屋と温室間では、ぐっと条件が悪くなります。
距離は15m程度ですが、直線で結んだ中間に、さらに二部屋ほどあります。
試したところ、全くデータが送れません。
しかし、文字化けしたデータが時々更新されるので、気配はあるようです。
送信出力を上げる訳にはいかないので、受信側の感度を上げるしかありません。
そこで、受信用のプリアンプを付けてみました。
プリアンプの回路図
1チップの広帯域アンプを使ったので回路は簡単です。
ただ、低域ノイズで不安定にならないように入力側に100MHzカットオフのハイパスフィルターを付けてあります。
フィルターソフトで定数を計算し、コイルは0.8mmのスズメッキ線で作りました。
インダクタンスは既知のコンデンサーと共振させ、ディップメーターで周波数を測定して合わせ込みました。
巻き幅を変えてインダクタンスを調整しました。
プリアンプの効果はあり、ロッドアンテナの向きを最適な方向にセットすれば、受信できるようになりました。
ただ、結構シビアでAMラジオのようにラフには扱えません。
実用的なシステムにするには受信アンテナを工夫するか、感度の良い受信モジュールを使うしか無いと思います。
今後の課題にしたいと思います。