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 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 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とモーターの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のモーターを制御します。動作中は、キーボード経由で目標角度値(ラジアン単位)を入力できます。また、モーターの角度と角速度のフィードバックデータも受信します。

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

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

Loading Comments...