Stackforce X シリーズモーター入門ガイド
この記事では、Stackforce シリーズモーターの使い始め方と、reComputer Jetson Super で C++ と Python を使用する方法を紹介します。

仕様
すべてのモーターモデルのパラメータが記載された完全な表は以下の通りです:
| パラメータ | 6010 | 8108 |
|---|---|---|
| 定格電圧 | 24V | 24V |
| 定格電流 | 10.5A | 7.5A |
| 定格電力 | 240W | 180W |
| 定格トルク | 5 Nm | 7.5 Nm |
| 最大トルク | 11 Nm | 22 Nm |
| 定格速度 | 120 RPM | 110 RPM |
| 最大速度 | 270 RPM | 320 RPM |
| ギア比 | 8:1 | 8:1 |
| 通信プロトコル | MIT Protocol | MIT Protocol |
| 制御モード | Position, Velocity, Torque Control | Position, Velocity, Torque Control |
| 外径 | 80 mm | 97 mm |
| 厚さ | 47 mm | 46 mm |
| 重量 | 392 g ±10% | 395 g ±5% |
| 相抵抗 | 0.48 Ω ±10% | 0.439 Ω ±10% |
| 相インダクタンス | 368 μH ±10% | 403 μH ±10% |
主な特徴
- 高トルク出力
- MIT モード制御
- 磁気エンコーダフィードバック
- コンパクトで軽量な設計
- 高速 CAN バス通信サポート
- 多用途アプリケーション
入門ガイド
使用前の準備
Windows システムの PC で
モーターの CANID と CANMode は両方ともシリアルポート経由で変更されます。モーターは、デフォルトの CANID が 0x01、CANMode が 1Mbps の CAN2.0 で出荷されます。
シリアルポート配線
V、G、T、R をそれぞれシリアル通信モジュールの VCC(3.3V)、GND、RX、TX に接続します(RX と TX はクロス接続する必要があります)。下図のように:

CANID の変更
シリアルポートのボーレートを 1Mbps に設定します。

送信する CANID は 0x** で、設定する ID は 0x** です。最大制限は 0x7F です。CANID の設定が成功すると、以下のログが出力されます:

CAN モードの変更
シリアルポート経由で CANMODE:0 または CANMODE:1 を送信します。
CANMODE:0 は CAN2.0 モード(1Mbps)を表し、CANMODE:1 は CANFD モード(5Mbps)を表します。
CAN モードの変更が成功した場合は、以下の図のように表示されます:


reComputer Mini Jetson Orin を使用したモーター制御
市場で最も一般的なモーター用 CAN 通信インターフェースは XT30(2+2) と JST コネクタ です。私たちの reComputer Mini Jetson Orin と reComputer Robotics デバイスには デュアル XT30(2+2)インターフェース と JST ベースの CAN インターフェース が搭載されており、シームレスな互換性を提供します。
reComputer Mini:

reComputer Robotics

CAN 使用に関するより詳細な情報については、この wiki を参照してください。
CAN インターフェースの有効化
ステップ 1: CAN0 と CAN1 を使用する前に、底面カバーを取り外し、2つの 120Ω 終端抵抗を ON 位置に設定してください。

モーターに内蔵された 120Ω CAN 通信終端抵抗のトグルスイッチをオフにします。

Recomputer Mini で 120Ω 終端抵抗を ON に設定していない場合は、モーターの CAN 通信終端抵抗のトグルスイッチをオンにすることができます。
ステップ 2: XT30(2+2)インターフェース経由でモーターを reComputer Mini の CAN0 に直接接続します。

reComputer Mini の CAN インターフェース設計 はモーターの CAN インターフェースとは逆になっているため、データラインを逆にするために手動でのはんだ付けが必要です。



モーターが必要とする高電圧・大電流を考慮すると、単一モーターを駆動するために reComputer Mini に電力を供給する 24V 300W 電源アダプターの購入をお勧めします。より多くのモーターを接続する必要がある場合は、要件に応じてより高出力の電源アダプターを購入できます。

この電源は単一モーターの学習とテスト専用です。複数のモーターの場合は、別途電源ボードを設計し、Jetson の電源をモーター電源から分離して、大電流が Jetson を直接通過することを避けてください。
Jetson CAN 通信の有効化
ターミナルを開き、以下のコマンドを入力して GPIO ピンをハイにして CAN0 を有効化します:
gpioset --mode=wait 0 43=0
JST インターフェースで CAN1 を使用する場合は、ピン 106 をハイにします。
gpioset --mode=wait 0 106=0
このターミナルを開いたまま、新しいターミナルを開始し、CAN0 を設定します。
sudo modprobe mttcan
sudo ip link set can0 type can bitrate 1000000
sudo ip link set can0 up
Python と C++ 環境のセットアップ
ステップ 1: SDK をクローンします。
git clone https://github.com/Seeed-Projects/Stackforce-Motor-SDK.git
ステップ 2: ドライバー SDK には以下の依存関係が必要です。Debian Linux では、以下のコマンドでインストールできます:
sudo apt-get install -y build-essential cmake
sudo apt install linux-modules-extra-5.15.0-1025-nvidia-tegra # For Jetson Jetpack 6.0
Python バインディングが必要な場合は、さらに Python 3、pip、pybind11 をインストールします:
sudo apt-get install -y python3 python3-pip python3-pybind11 python3-setuptools
依存関係をインストールした後、以下の手順に従ってドライバー SDK を C++ ライブラリまたは Python パッケージとしてインストールします。どちらも CMake を使用して C++ コードをコンパイルします。
C++ を使用した制御
cd build
cmake ..
make
コンパイルされた実行ファイルは build/sfmotor_control にあります。プログラムを実行します:
./sfmotor_control
プログラムはデフォルトで ID 0x01 のモーターを制御します。動作中は、キーボード経由で目標角度値(ラジアン単位)を入力できます。また、モーターの角度と角速度のフィードバックデータも受信します。
Python を使用した制御
Python スクリプトは script/ ディレクトリにあり、コンパイルなしで直接実行できます。
python main.py
プログラムはデフォルトで ID 0x01 のモーターを制御します。動作中は、キーボード経由で目標角度値(ラジアン単位)を入力できます。また、モーターの角度と角速度のフィードバックデータも受信します。
技術サポートと製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちの製品での体験ができるだけスムーズになるよう、さまざまなサポートを提供しています。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。