ロボット開発や研究プロジェクトにおいて、高性能ブラシレス関節モーターを迅速かつ安定して制御することは、開発者にとって重要な課題です。
本チュートリアルでは、Arduino 開発ボードとMCP2515 CAN モジュールを組み合わせ、ジョイスティックを使用して CubeMars AK45-36 ロボット関節モーターを高精度に制御する方法をご紹介します。
本チュートリアルを通じて、ハードウェア配線の基本、MIT 制御モードの設定、制御ロジックの実装方法を理解し、CubeMars モーターをロボットプロジェクトへ簡単に統合できるようになります。
開始する前に、以下のハードウェアとソフトウェアをご用意ください。
ハードウェア:
Arduino 開発ボード(例:Arduino Uno)
MCP2515 CAN モジュール
2軸ジョイスティックモジュール
DC 電源およびジャンパーワイヤ
ソフトウェア:
Arduino IDE
mcp_can ライブラリ(事前にインストール)
正しい配線は安定した通信の基盤となります。
以下の3つの主要な接続ポイントを確認してください。
MCP2515 と Arduino(SPI 通信): MCP2515 モジュールを標準 SPI インターフェース(CS、SO、SI、SCK などのピン)を使用して Arduino に接続します。
CAN バス接続(モーター側): MCP2515 モジュールの CAN_H および CAN_L ピンを、AK45-36 モーターの対応する CAN_H および CAN_L 配線へ接続します。
ジョイスティックと電源接続: ジョイスティックの X 軸信号ピンを Arduino のアナログ入力ピン(例:A0)へ接続します。
最後に、モーターへ適切な DC 電源を接続します。
注意:モーター電源ラインと CAN 信号線を逆接続しないでください。
ジョイスティック追従などの動的制御アプリケーションでは、MIT 制御モードの使用を強く推奨します。このモードでは、1つの CAN メッセージ内で位置、速度、トルク指令を同時に送信でき、高速な応答性能を実現します。
設定手順:
公式 CubeMars USB-CAN モジュールを使用してモーターを PC に接続し、上位ソフトウェアを起動します。
モーターの CAN ID(例:0x01)とボーレートを設定します。
(Arduino コードと一致させる必要があります。通常は 1Mbps) 「MIT Mode に入る」をクリックします。
設定完了後、モーター軸を手動で回転させると、明確な抵抗感が感じられます。これにより設定が正常に完了したことを確認できます。
Arduino 環境では、ジョイスティックによるモーター制御の実装はシンプルで、主に以下の3ステップで構成されます。
1. 入力値の取得: Arduino のアナログ入力ピン(例:A0)を使用して、ジョイスティックの値をリアルタイムで読み取ります。
一般的な範囲は 0〜1023 です。
2. データマッピング: プログラム内のマッピング関数(例:map 関数)を使用し、ジョイスティックの入力値を AK45-36 モーターが対応する目標位置または速度範囲へ線形変換します。
3. CAN メッセージ送信: CAN 通信ライブラリを使用して、変換後の目標データを標準 MIT モード CAN フレームへ変換し、対応するモーター CAN ID へ送信します。
ヒント:完全な Arduino サンプルコード、データ変換関数、および通信プロトコル資料については、弊社公式ダウンロードセンターをご確認ください。
設定が完了したら、モーターと Arduino の電源を投入します。ジョイスティックを操作すると、モーター軸がジョイスティックの動きに合わせてスムーズに正逆回転することを確認できます。
以下の動画では、実際の操作デモと詳細な解説をご覧いただけます。
Q1:電源投入後、モーターが反応しません。ジョイスティックを動かしても回転しません。
A:モーターが正常に Enable(有効化)コマンドを受信しているか確認してください。
MIT モードでは、モーターは初期状態で無効になっています。制御指令に応答させるには、まず特定の CAN メッセージを送信してモーターを有効化する必要があります。
Q2:ジョイスティック操作時にモーターが振動する、または応答が遅い。
A:これは通常、CAN バス通信品質に関係しています。CAN 信号線がモーター電源ケーブルと平行に束ねられていないことを確認してください。
通信距離が長い場合は、MCP2515 モジュールの DIP スイッチを操作して 120Ω 終端抵抗を有効にしてください。
AK45-36 は CubeMars 高性能モーターファミリーの一製品です。四足歩行ロボット、人型ロボット、ロボットアームなどの開発において、CubeMars はお客様のニーズに合わせた高性能・小型アクチュエータソリューションを提供します。
[CubeMars AK45-36 の仕様と寸法を詳しく見る]