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 CAN2.0(1Mbps)で設定されています。
シリアルポート配線
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とモーターのPowerを分離して、大電流が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のモーターを制御します。動作中は、キーボード経由で目標角度値(ラジアン単位)を入力できます。また、モーターの角度と角速度のフィードバックデータも受信します。
技術サポート & 製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験ができるだけスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。