空撮ドローンを製作しよう – ジンバルカメラの製作(1) –
今回からジンバルカメラの製作について記載します。ジンバルカメラの動作としては、慣性制御ユニット(IMU)モジュールでカメラの姿勢を検知し、エラー信号をアクチュエータ(モータ)にフィードバックを行ってカメラの振動を抑制・相殺して向きを一定に保つものだと理解しています。
フライトコントローラArdupilotでは、自作のためのPan-Tiltサーボモータを用いたジンバル制御機構を提供していますが、サーボモータはギアで減速していますので応答速度が遅いため、カメラの急激な姿勢変化には対応するには難しいと思います(サーボモータ形式のジンバルを試していないのでこちらの勝手な推測です)。市販のほとんどは応答速度が速く瞬時に高いトルクを発生することができるブラシレスモータを用いています。DJIもジンバルカメラ形状から察するところブラシレスモータを使用しているものと思います。よって、本検討でもブラシレスモータを用いたジンバルカメラを作製することとします。
ブラシレスモーター形式のジンバル機構の検討
ブラシレスモーター形式のジンバル機構は、カメラの姿勢をIMUでリアルタイムに読み込み、その姿勢変化をMPUでブラシレスモータの角度情報やPWM値に変換してモータを動かすことになります。このようにブラシレスモータやIMU、MPUだけでなくコントロールソフトが必要です。制御回路やコントロールソフトを0から手作りするのは大変(私の力量では不可能?)なのでネットでブラシレスモータ形式のジンバル機構の自作サイトがないか探してみました。いろいろ探しましたが、唯一、制御回路基板、コントロールソフト、パラメータ設定ソフトを自作している以下のサイトを見つけました。
このサイトでは、2タイプのジンバルコントローラを作製しています。コントローラ、モータドライバー、センサー、モニターの各基板を別々にしてそれぞれを独自の通信プロトコルを用いたRS232Cインターフェースで接続するバージョン(NTバージョン)とコントローラとモータドライバー同一基板にのせ、カメラ用のIMU搭載基板を別にしてI2Cでそれぞれを接続する旧バージョンです。それぞれの回路基板はEagleというPCB CADソフト(昔はCadsoft、現在はAutodeskから販売)で設計されたおり、Eagleのソースコード(回路図、PCBレイアウト)がフリーで公開されています(Wiki参照)。また、コントロールソフトはバイナリ形式、パラメータ設定ソフトはWindowsアプリとしてフリーでダウンロードできます。
このSTorM32-BCG v1.32 I2C版を用いたジンバルキットがAliexpressにありましたので試しに購入してみました。このキットは3軸(ヨー、ピッチ、ロール)コントローラ基板、ジンバル用ブラシレスモータ、取り付け金具等が付属しています。詳細はAliexpressの製品説明に掲載されています。
このキットを使い、カメラの替わりに重しを載せて試してみたのですが、IMUとコントローラ基板を繋ぐI2Cインターフェースのエラーが出たり出なかったりでうまく動作せずこのキットの使用を諦めました。I2Cエラーの原因は以下に点にあると推測されます。
- STorM32-BCG v1.32 I2C版ではコントローラ基板とIMUモジュールの3.3V電源を共用(コントローラから供給)している。
- コントローラ基板のI2C端子(SDA,SCL)およびIMUモジュールのI2C端子には2.2kΩのプルアップ抵抗計4個が3.3V電源ラインに接続されている。
- このためI2CのSDA,SCL信号がローレベルになったとき3.3V電源からそれぞれのプルアップ抵抗を通してパルス状の電流が最大6mA流れる。
- 3の電流パルスによりIMUモジュールの3.3V電源ラインにノイズが誘発され、I2Cエラーを起こす。
本「空撮ドローン」のジンバル機構としてNT版か旧I2C版のどちらにするか悩みましたが、NT版は複数の基板が必要ですし、配線の引き回しも大変そうなので、結局旧タイプのI2C版を採用し、2軸制御の小型化したコントローラを自作することとしました。IMUモジュール(MPU6050搭載)はAmazonで低価格で入手できるので、IMUモジュール基板を起こす必要が無くなり、コントロール基板のみを作製すればよく、配線もモータ配線とIMUモジュールのI2C配線だけになります。また、このIMUモジュールは5Vを供給しモジュール基板上でレギュレータにより安定した3.3V電源を生成するものですので、上記のI2Cエラーは無くなるのではないかと推測されます。
以上、本「空撮ドローン」のジンバル機構にはSTorM32-BCG v1.3 I2C版の改良版を自作することとし、ファームウェアはSTorM32-BCGのI2Cバージョンのバイナリバージョンを用いることとします。次回から実際にSTorM32-BCG v1.3の改良版コントローラの設計・作製、ジンバルカメラホルダーの設計・作製等を進めていきます。