Skip to main content

Stackforce X シリーズモーター入門ガイド

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

仕様

すべてのモーターモデルのパラメータが記載された完全な表は以下の通りです:

パラメータ60108108
定格電圧24V24V
定格電流10.5A7.5A
定格電力240W180W
定格トルク5 Nm7.5 Nm
最大トルク11 Nm22 Nm
定格速度120 RPM110 RPM
最大速度270 RPM320 RPM
ギア比8:18:1
通信プロトコルMIT ProtocolMIT Protocol
制御モードPosition, Velocity, Torque ControlPosition, Velocity, Torque Control
外径80 mm97 mm
厚さ47 mm46 mm
重量392 g ±10%395 g ±5%
相抵抗0.48 Ω ±10%0.439 Ω ±10%
相インダクタンス368 μH ±10%403 μH ±10%

主な特徴

  1. 高トルク出力
  2. MIT モード制御
  3. 磁気エンコーダフィードバック
  4. コンパクトで軽量な設計
  5. 高速 CAN バス通信サポート
  6. 多用途アプリケーション

入門ガイド

使用前の準備

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 OrinreComputer Robotics デバイスには デュアル XT30(2+2)インターフェースJST ベースの CAN インターフェース が搭載されており、シームレスな互換性を提供します。

reComputer Mini:

reComputer Robotics

CAN 使用に関するより詳細な情報については、この wiki を参照してください。

CAN インターフェースの有効化

ステップ 1: CAN0 と CAN1 を使用する前に、底面カバーを取り外し、2つの 120Ω 終端抵抗を ON 位置に設定してください。

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

tip

Recomputer Mini で 120Ω 終端抵抗を ON に設定していない場合は、モーターの CAN 通信終端抵抗のトグルスイッチをオンにすることができます。

ステップ 2: XT30(2+2)インターフェース経由でモーターを reComputer Mini の CAN0 に直接接続します。

tip

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

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

danger

この電源は単一モーターの学習とテスト専用です。複数のモーターの場合は、別途電源ボードを設計し、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 のモーターを制御します。動作中は、キーボード経由で目標角度値(ラジアン単位)を入力できます。また、モーターの角度と角速度のフィードバックデータも受信します。

技術サポートと製品ディスカッション

私たちの製品をお選びいただき、ありがとうございます!私たちの製品での体験ができるだけスムーズになるよう、さまざまなサポートを提供しています。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。

Loading Comments...