遠隔から向きを変えられるWebカメラを開発しました。
動力はラジコン用サーボ GWS S03T 2BBMG
供給電圧 | 4.8 | V |
速度 | 0.33 | sec/60deg |
トルク | 7.40 | Kg-cm |
サーボの動作確認をしている様子
USB経由で制御
サーボが動いている様子。ちょっと見づらいですが、サーボホーンに貼った赤い三角の目印で軸が回転していることが確認できます。それとギア音も聞こえます。
2軸(パン、チルト)機構部分を作成しました。
まずはJWCADというフリーのCADを使って図面を書きました。でも、中学で習っただけですからいい加減極まりないものです。まあ、見たいという人はいないと思いますが、万が一見る場合は参考にとどめといてください。
材料はすべて近所のホームセンターにて調達。数量などこれもまたいい加減です。
品名 | 仕様 | 数量 |
---|---|---|
アルミ板 | t=1mm | 1枚 |
アルミ板 | t=2mm | 1枚 |
ジュラコン製スペーサ | Φ=7.6mm/4.3mm L=10mm | 適宜 |
ねじ、ワッシャ、ナット | M3 | 適宜 |
ねじ、ワッシャ、ナット | M2 | 適宜 |
真鍮パイプ | Φ=3.5mm | 適宜 |
あとは例によってひたすらガリガリ、ゴリゴリと。てなわけで、、、
マイコンは使い慣れたPIC16F876を使用することにしました。今回の目的のためには十分すぎるスペックですが、できたら後でテレビのリモコンでも操作できるように改造したいのでそのための余裕を持った選択です。
制御はUSB経由でパソコンから行えるようにします。USB部分はFT232RXモジュールを使いました。マイコン本体の電源はUSBから、サーボモーターの電源はUSBのバスパワーでは足りないので別途ACアダプターから供給します。
サーボ回路は1チャンネル余計ですがこれも将来?のために。それから、ジャンパーで装置番号を0から7まで設定できるようにしました。複数台を同時に使う場合に装置を識別するのに使おうと思います。
部品数を極力減らしたいのでパスコンやリセット用のCRなどは省略。
回路図
品名 | 型式 | 数量 |
---|---|---|
U1 | PIC 16F876 20SP | 1 |
U2 | FT232RX | 1 |
X1 | セラロック 20MHz | 1 |
R1 | 470Ω 1/4W | 1 |
R2,R3,R4 | 10KΩ 1/4W | 各1 |
CN1,CN2,CN3,CN4 | ピンヘッダの長いものをカット | 少々 |
JP1 | ピンヘッダの長いものをカット | 少々 |
LED | 5mmφ | 1 |
ICソケット | 20P、8P | 各1 |
基板 | ガラスエポキシ・ユニバーサル基板をカット | 1 |
今回は、さらに全体を収めるケースも作成しました。ケースの材料はフロッピーディスクのケースです。基台部分が100mmx100mmなのでちょうど良い大きさです。ただ、アクリルなのですぐに割れが入ってしまい思いのほか加工が難しかったです。
作成したWebカメラのマイコン基板
ファームウェア(マイコンのソフトウェア)とその動作確認のためのプログラムをパソコン側に作成しました。
コマンド文字 | 処理内容 |
---|---|
Q | このコマンドを受信すると本装置は次の一行をパソコンへ送信します。Homebrew<改行文字> |
P# | パン(首を左右に振る)。#は0から127までの値。 |
T# | チルト(首を上下に振る)。#は0から127までの値。 |
H | 初期位置へ戻す。P63 T63 と同じ。 |
S | このコマンドを受信すると本装置は次の一行をパソコンへ送信します。装置番号(0-7) 現在のパン位置(0-127) 現在のチルト位置(0-127)<改行文字> |
E | LEDを点灯します。 |
D | LEDを消灯します。 |
ファームウェアの開発環境はPICマイコンの開発元Microchip社のMPLAB IDE v7.40 (現時点で最新版)です。開発言語はこの開発環境に含まれているアセンブラ言語MPASMです。今回使用したPICはフラッシュマイコンなのでパソコンで作成したプログラムを最終的にマイコンに書き込まなければいけません。書き込みに用いたソフトウェアはPIC Writer for Windows Ver 2.37です。なお、フラッシュ書き込みに用いたハードウェア(PICライター)は自作です。
使用したPICライター
さらにパソコン側の動作確認用のプログラムはMicrosoft Visual Studio.NET C# 2005で作成しました。
パルス周期を15mS以下にすると電源投入時つまりUSBプラグを差し込んだ時サーボが発振してしまうので微調整しましたが、後は何のトラブルも無くこのとおり首を振るようになりました。
前面(カメラはまだ取り付けていない)
背面(電源とUSBコネクタ)
フルスイング 可動範囲一杯まで振る
クイックモーション スライダーでグリグリ
いよいよカメラを取り付けて最終確認です。今回使用したカメラはLogicoolのQcamR Communicate STX (QVC-70)です。
本体横の穴にあるネジ1本をはずせば簡単に左右に割れます。
用意したM5のネジにプラスチック部を傷めないようにゴムシートで作ったワッシャーを通します。このネジを下部にある穴の部分に挟み込みます。
このネジを使って首振り機構に取り付けます。この時、カメラ本体が丸いため滑りやすいので保護もかねてもう一度ゴムシートで作った座布団を間に当てます。
これが最終的な外観です。
カメラを取り付けた状態で問題なく首が振れるかどうか、試験用プログラムでもう一度試験です。問題なくきびき動いてますね。