2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

カテゴリー

ブログパーツ

無料ブログはココログ

« XBeeシリアルカメラにインターネットからアクセス(続き) | トップページ | XBeeの通信速度で(ちょっと)モヤモヤ »

2011年1月30日 (日)

XBeeネットカメラを組み立てる

前回試作したXBeeネットカメラが好調なので、実用試作をしてみました。
完成写真がこれです。本体はセブンスターを2個重ねたくらいのサイズ。なんかのオマケでもらったミニ三脚に載せてます。

Dscn1465  Dscn1464_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程度、これなら特に問題はないでしょう。

Dscn1469  Dscn1470

最後に回路図、ccscのプロジェクトはこれです。

回路図をダウンロード(PDF)
CCSC使用のMPLABプロジェクト「serialBridge2.zip」をダウンロード

VC#2008EEのプロジェクトは以前と同じですが、sirialPort1のプロパティを115200bpsに設定します。XBeeの通信速度も設定するのをお忘れなく。

« XBeeシリアルカメラにインターネットからアクセス(続き) | トップページ | XBeeの通信速度で(ちょっと)モヤモヤ »

花岡ちゃんのウィークエンド」カテゴリの記事

コメント

こんにちは。
以前、このカメラを使っていてカメラの通信速度を変更すると、
カメラ側のEEPROMの内容が化けて正常に動かなくなる問題がありました。

花岡さんの作例だと正常に動作しているようですね。
いつの間にか修正されたのかな?

こんにちは。

XBeeネットカメラ、面白いですね!

私も以前arms22さんと同様の現象に遭遇しました。
ボーレート設定コマンドを使った途端カメラが動作しなくなるという現象。
http://shinta-main-jp.blogspot.com/2010/11/linksprite-jpeg-color-camera-ls-y201.html
ファームウェアバージョンなど気になります。

arms22さん、shintamainjpさん、こんばんは

不勉強でそういう現象は知りませんでした。
カメラは昨年12月初旬にストロベリーリナックスから通販したものです。バージョンはどこでわかるのでしょう?スタートアップメッセージなどはダウンロードしたマニュアルと同じでしたが。

LSY201というテスト用のソフトでボーレートの変更、撮影サイズ、パワーダウンなどなどをマニュアルと引き合わせながら確認し、C#でテストプログラムを組んで再確認。その後、PICへの落とし込みと作業を進めましたが、動作しなくなるという現象には遭遇しませんでした。

ちなみにボーレートの変更は、パワーON→3秒待つ→ボーレート115K変更コマンドを送信、リプライを待つ→その後10mS待つ→PICを115Kに変更→撮影コマンド・・・というシーケンスで行ってます。

P.S. arms22さん、SoftModemTerminalありがたく使わせていただいてます!

あ、使用してるカメラのI/FはRS232レベルの奴ですか?
私が使ったものはTTLレベルのものでした。
その辺何か違いがあるのかもしれませんね。。

そうそうPICを使ったソフトモデムの記事、勉強になりました。
ありがとうございます。

こんばんは
スタートアップメッセージにバージョンがあるんですね。キャプチャしたメッセージはこれ↓です。

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台、スイッチさんに発注したので、それもテストしてみます。

むー。そうですか。
同じもののようですね。
PC用ソフトを使うと勝手にバージョンupされてるとかないのかな。ないない。。

こんばんは。
たびたびすみません。
ソースコードを拝見したのですが、
各コマンドの最後に必ず 0x0d を送信しているようですが、
これはXBee用でしょうか?
本来のカメラプロトコルではそのような仕様はなかったと思ったので。。

あ、そうですね。気がつきませんでした!
いつもCRをデリミタにしてたので、ウッカリ入れちゃったのだと思います。
カメラ側のファームがきちんとしているので、ゴミデータはちゃんと無視してくれているみたいですね。

こんにちは。

PICのソースコードを参考にこちらでもテストしてみました。
花岡さんのコードだと最初にINITコマンドを送っていないようでしたので、
同じようにINITコマンドは送らず、ボーレートの変更コマンドのみ送ってみました。
そしたら問題なく動いていました。
INITコマンドが関係しているか、どうかはわかりませんが、
とりあえず動いたの良しとします。

いろいろありがとうございました!

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1140145/38651940

この記事へのトラックバック一覧です: XBeeネットカメラを組み立てる:

« XBeeシリアルカメラにインターネットからアクセス(続き) | トップページ | XBeeの通信速度で(ちょっと)モヤモヤ »