XBeeネットカメラを組み立てる
前回試作したXBeeネットカメラが好調なので、実用試作をしてみました。
完成写真がこれです。本体はセブンスターを2個重ねたくらいのサイズ。なんかのオマケでもらったミニ三脚に載せてます。
まずはオシロで試作品各所の信号をチェックします。きちんと組んで実用的に使うなら、この段階で問題を修正しておかなくてはなりません。ブレットボードで作るのはあまり好きではないんですが、こう言う時は便利ですね、
その結果、致命的な欠陥が見つかりました。カメラとXBeeからのシリアル信号をダイオードORして、PICのシリアル入力としている部分で、Hレベルが2Vそこそこしかありません。いくらなんでも低すぎます。電源電圧が3.4Vくらいになるとスレショルドに達せず"1"として認識されなくなります。 回路をチェックすると、電源を切っている状態のカメラのシリアルポートが、GNDへの抵抗となって、ダイオードORのプルアップ抵抗に直列に接続、その結果、Hレベルの電圧が分圧されていることがわかりました。
そこで、PchMOSでカメラの+側をON/OFFしていたのを、NchでGND側を切るようにしました。これで電源OFFの時にカメラの回路はGNDから切り離されるので、前の問題は無くなります。
また、ダイオードORのプルアップ抵抗が大きすぎたので4.7Kに変更、ダイオードもショットキーに変更…したかったのですが、手持ちが無く、とりあえず昔懐かしいゲルマニウムダイオードを入れておきました。SD46です。これも順方向電圧降下が小さいので使えます。(でも、なんでゲルマダイオードなんか持っているんでしょう)
次に通信速度の改善です。前回の試作は38.4Kbpsで通信しています。これはカメラの電源投入時の通信速度がこれなので、それにあわせてあるからです。
今回は、PICの通信速度を動的に変えて、カメラを38.4Kbpsで初期化した後115.2Kbpsに設定し、以降XBeeとの通信もそのボーレートで行います。これでずいぶん高速化できるのでは?
試作品とPCをシリアルポートで直接接続して38.4Kbpsと115.2Kbpsを比較すると、劇的に高速になるのが確認できました。しめしめ、これはうまく行きそうです。ところが、XBeeの通信速度を115.2Kbpsに設定して無線テストすると、1~2秒ほどしか早くなりません。
いろいろ調べてみましたが、現在のうちの無線環境では、40Kbpsくらいの転送速度が関の山のようです。XBeeの通信速度は、あくまでもインターフェイスするデバイスとの速度で、XBee間の通信は、電波をどれだけぶんどれるかで決まるのですね。
ちなみに、ウチでは同じ2.4G帯の無線LANと、ブルーツゥースの無線マウス常時使用しています。
組み込みの様子はこんな感じです。ケースはタカチのSW-85、電源は単三電池2本です。この電池で4、5日間は連続で使えます。基板はブラケースにリブを立ててはめ込んであります。止めビスは使っていません。NchFETは手持ちのこれです。ゲート電圧が不足気味ですが、実測するとONした時のカメラとPICとのGNDの電位差は0.1V程度、これなら特に問題はないでしょう。
最後に回路図、ccscのプロジェクトはこれです。
回路図をダウンロード(PDF)
CCSC使用のMPLABプロジェクト「serialBridge2.zip」をダウンロード
VC#2008EEのプロジェクトは以前と同じですが、sirialPort1のプロパティを115200bpsに設定します。XBeeの通信速度も設定するのをお忘れなく。
« XBeeシリアルカメラにインターネットからアクセス(続き) | トップページ | XBeeの通信速度で(ちょっと)モヤモヤ »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
コメント
« XBeeシリアルカメラにインターネットからアクセス(続き) | トップページ | XBeeの通信速度で(ちょっと)モヤモヤ »
こんにちは。
以前、このカメラを使っていてカメラの通信速度を変更すると、
カメラ側のEEPROMの内容が化けて正常に動かなくなる問題がありました。
花岡さんの作例だと正常に動作しているようですね。
いつの間にか修正されたのかな?
投稿: arms22 | 2011年1月31日 (月) 11時35分
こんにちは。
XBeeネットカメラ、面白いですね!
私も以前arms22さんと同様の現象に遭遇しました。
ボーレート設定コマンドを使った途端カメラが動作しなくなるという現象。
http://shinta-main-jp.blogspot.com/2010/11/linksprite-jpeg-color-camera-ls-y201.html
ファームウェアバージョンなど気になります。
投稿: shintamainjp | 2011年1月31日 (月) 12時40分
arms22さん、shintamainjpさん、こんばんは
不勉強でそういう現象は知りませんでした。
カメラは昨年12月初旬にストロベリーリナックスから通販したものです。バージョンはどこでわかるのでしょう?スタートアップメッセージなどはダウンロードしたマニュアルと同じでしたが。
LSY201というテスト用のソフトでボーレートの変更、撮影サイズ、パワーダウンなどなどをマニュアルと引き合わせながら確認し、C#でテストプログラムを組んで再確認。その後、PICへの落とし込みと作業を進めましたが、動作しなくなるという現象には遭遇しませんでした。
ちなみにボーレートの変更は、パワーON→3秒待つ→ボーレート115K変更コマンドを送信、リプライを待つ→その後10mS待つ→PICを115Kに変更→撮影コマンド・・・というシーケンスで行ってます。
P.S. arms22さん、SoftModemTerminalありがたく使わせていただいてます!
投稿: ササガワ | 2011年1月31日 (月) 22時25分
あ、使用してるカメラのI/FはRS232レベルの奴ですか?
私が使ったものはTTLレベルのものでした。
その辺何か違いがあるのかもしれませんね。。
投稿: arms22 | 2011年2月 2日 (水) 14時40分
そうそうPICを使ったソフトモデムの記事、勉強になりました。
ありがとうございます。
投稿: arms22 | 2011年2月 2日 (水) 14時42分
こんばんは
スタートアップメッセージにバージョンがあるんですね。キャプチャしたメッセージはこれ↓です。
VC0703 1.00
Ctrl infr exist
User-defined sensor
625
Init end
マニュアルじゃなくてチュートリアルと一緒でした。これ↓です。
http://www.sparkfun.com/datasheets/Sensors/Imaging/JPEG_UART_camera_tutorial.pdf
僕のも皆さんと同じTTLタイプ、おそらくメッセージも一緒なのではないかと。
アタリハズレがあるのかも。別の作品用にもう1台、スイッチさんに発注したので、それもテストしてみます。
投稿: ササガワ | 2011年2月 2日 (水) 20時33分
むー。そうですか。
同じもののようですね。
PC用ソフトを使うと勝手にバージョンupされてるとかないのかな。ないない。。
投稿: arms22 | 2011年2月 4日 (金) 14時00分
こんばんは。
たびたびすみません。
ソースコードを拝見したのですが、
各コマンドの最後に必ず 0x0d を送信しているようですが、
これはXBee用でしょうか?
本来のカメラプロトコルではそのような仕様はなかったと思ったので。。
投稿: arms22 | 2011年2月18日 (金) 22時38分
あ、そうですね。気がつきませんでした!
いつもCRをデリミタにしてたので、ウッカリ入れちゃったのだと思います。
カメラ側のファームがきちんとしているので、ゴミデータはちゃんと無視してくれているみたいですね。
投稿: ササガワ | 2011年2月20日 (日) 11時01分
こんにちは。
PICのソースコードを参考にこちらでもテストしてみました。
花岡さんのコードだと最初にINITコマンドを送っていないようでしたので、
同じようにINITコマンドは送らず、ボーレートの変更コマンドのみ送ってみました。
そしたら問題なく動いていました。
INITコマンドが関係しているか、どうかはわかりませんが、
とりあえず動いたの良しとします。
いろいろありがとうございました!
投稿: arms22 | 2011年3月 3日 (木) 12時39分