今までの実験から、BLDCモータをCANバス+CANopenプロトコルで位置決めができるようになりました。モータ制御はmaxonのEPOS4を使っていました。いろいろと寄り道をしてきたのですが、この連載では、ラズパイで、2台のBLDCを駆動する話に焦点を絞って実験を進めていきます。
EtherCATの記事でもEPOS4を使いました。ここでは、そのEtherCATコネクタ部分をCAN用に変更します。よって、CAN用EPOS4が2台用意できます。もちろん、新規に、用途に合ったモータとEPOS4 Compact xxx CANボードを用意すればOKです。
EPOS4 Compact 24/1.5 CANはEPOS4シリーズでは一番小さいモータを対象にしたボードです。電源は10~24V、出力電流は1.5Aです。
これから作っていくモータの取り付け台など、今回はあくまでも実験なので、実用的な機械強度が全く足りていない思います。
環境
- Raspberry Pi 4 Model B 2GB
- Raspberry Pi OS with desktop。Release date: April 4th 2022
- EPOS4 Compact 24/1.5 CAN 2台
- モータ EC-i 40 2台
- 3.3V RS485通信 CAN BUS バス モジュール HAT 拡張ボード
- Windows10
- (IXXAT USB-to_CAN V2 Compact)
- maxon EPOS Studio 3.7
EPOS4 Compact 24/1.5 CANの用意
1台は持ってました。EPOS4 Compact 24/1.5 EtheCATも1台持っています。写真左がその外観です。右はCANインターフェース付きEPOS4 Connector Board 24/1.5です。
EPOS4 Compact 24/1.5 EtheCATをコネクタ部部で分離します。左がEtherCATインターフェース付きEPOS4 Connector Board 24/1.5の裏面、中央がEPOS4 Module 24/1.5の裏面、右がCANインターフェース付きEPOS4 Connector Board 24/1.5の裏面です。
EPOS4 Module 24/1.5に、CANインターフェース付きEPOS4 Connector Board 24/1.5を差し込みます。これで、EPOS4 Compact 24/1.5 CANが2台になりました。
構成
Windows10とStudio 3.7は、モータのチューニングを行い、SDOのパラメタをEEPROMに書き込みます。CANopenのモーション用PDOの設定のためにも使います。
コネクタ類は純正がありますがケーブル長が長くて高価です。すべてEPOS4 Module/Compact 24/1.5 Hardware Referenceに型番が書かれているので個別に入手し、圧着ジグを使って組み立てました。ほとんどはRSコンポーネンツで入手したものです。
エンコーダ用コネクタは、2.54mmピッチの10ピン(2列)で、汎用的に使われているので、フラットケーブルが10cmほど圧着されているのを入手して、途中でつなぎます。
エンコーダ付きBLDCモータは、STマイクロのモータキットに付属していたのを流用しています。純正の約半額で入手できます。
CANのノードIDは、ボード上のSW1(ボード中央のDIPスイッチ)で設定します。デフォルトでは1番がONのID=1になっています。すごく見ずらいスイッチです。1と3をONにしてID=5、2と3をONにしてID=6に設定しました。6番はCAN automatic Bit Rate DetectionでデフォルトONです。7番はターミネータです。ID=5のボードはONにしました。ID=6はOFFのままです。

_
(注)CANインターフェース付きEPOS4 Connector Board 24/1.5単独では、SW1の工場出荷時のデフォルト・セットが行われていません。
(注)白色のコネクタは、AWG24のより線だと外皮が厚すぎて作業がしにくいです。AWG26が良いように思います。
(注)STマイクロEVALKIT-ROBOT-1の使用記事。
モータ(Maxon EC-i 40にエンコーダENX 16 EASY)の主なスペック。
- 動作電圧 36V
- 回転数 3950rpm
- トルク 207mNm(ストール時3160mNm)
- 電流 2.72A(ストール時42.2A)
- エンコーダの電源電圧 5V
- エンコーダの動作電流 22mA
- エンコーダの発生パルス数 1024
- エンコーダの最大回転数 30krpm
目次
- ① ラズパイ+EPOS4、C++でプログラミング<準備>
- ② ラズパイ+EPOS4、C++でプログラミング<車体の用意>
- ③ ラズパイ+EPOS4、C++でプログラミング<モータのチューニング>
- ④ ラズパイ+EPOS4、C++でプログラミング<モータのチューニング2>
- ⑤ ラズパイ+EPOS4、C++でプログラミング<ライブラリの準備>
- ⑥ ラズパイ+EPOS4、C++でプログラミング<オブジェクト・ディクショナリを読み出す>
- ⑦ ラズパイ+EPOS4、C++でプログラミング<モータの回転 PPM>
- ⑧ ラズパイ+EPOS4、C++でプログラミング<モータの回転 CSP その1>ベータ版
- ⑨ ラズパイ+EPOS4、C++でプログラミング<モータの回転 CSP その2>ベータ版