日記；回すだけⅣ ① ラズパイ＋EPOS4、C++でプログラミング＜準備＞

　今までの実験から、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です。
![IMGP1102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/166439a0-5fdd-0f3b-e277-fc9dc1e733c2.png)

　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の裏面です。
![IMGP1104.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/1680a2cc-54f5-9103-7778-fc65c998c6d7.png)

　EPOS4 Module 24/1.5に、CANインターフェース付きEPOS4 Connector Board 24/1.5を差し込みます。これで、EPOS4 Compact 24/1.5 CANが2台になりました。

![IMGP1107.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/6b042bfc-e5c9-5356-aa32-8ba2a375b909.png)

### 構成

　Windows10とStudio 3.7は、モータのチューニングを行い、SDOのパラメタをEEPROMに書き込みます。CANopenのモーション用PDOの設定のためにも使います。

![EPOS4-raspai3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/0b92c324-90a1-006f-e4b2-3fed6a6ca21e.png)


　コネクタ類は純正がありますがケーブル長が長くて高価です。すべて[EPOS4 Module/Compact 24/1.5 Hardware Reference](https://www.maxongroup.co.jp/medias/sys_master/root/8884070449182/EPOS4-Module-Compact-24-1-5-Hardware-Reference-En.pdf)に型番が書かれているので個別に入手し、圧着ジグを使って組み立てました。ほとんどは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のままです。



<img width="500" alt="ファイル名" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/90d67f69-016c-d1b4-3c80-ff69ad90917e.png">


_
（注）CANインターフェース付きEPOS4 Connector Board 24/1.5単独では、SW1の工場出荷時のデフォルト・セットが行われていません。
（注）白色のコネクタは、AWG24のより線だと外皮が厚すぎて作業がしにくいです。AWG26が良いように思います。
（注）[STマイクロEVALKIT-ROBOT-1の使用記事](https://www.denshi.club/pc/modbus/getti.html)。
　　 モータ（Maxon [EC-i 40](https://www.maxongroup.co.jp/medias/sys_master/root/8839929921566/DE-266.pdf)にエンコーダENX 16 EASY）の主なスペック。

- 動作電圧　36V
- 回転数　3950rpm
- トルク　207mNm（ストール時3160mNm）
- 電流　2.72A（ストール時42.2A）
- エンコーダの電源電圧　5V
- エンコーダの動作電流　22mA
- エンコーダの発生パルス数　1024
- エンコーダの最大回転数　30krpm


##### 目次
- [① ラズパイ＋EPOS4、C++でプログラミング＜準備＞](https://qiita.com/jamjam/items/f6acf1128c6020b27059)
- [② ラズパイ＋EPOS4、C++でプログラミング＜車体の用意＞](https://qiita.com/jamjam/items/a9d400baaa5909bb0885)
- [③ ラズパイ＋EPOS4、C++でプログラミング＜モータのチューニング＞](https://qiita.com/jamjam/items/9266eb684d8a2bec7ac6)
- [④ ラズパイ＋EPOS4、C++でプログラミング＜モータのチューニング2＞](https://qiita.com/jamjam/items/93a57e9356bb1f9d1e6a)
- [⑤ ラズパイ＋EPOS4、C++でプログラミング＜ライブラリの準備＞](https://qiita.com/jamjam/items/be97d25e90c7aa9b92c5)
- [⑥ ラズパイ＋EPOS4、C++でプログラミング＜オブジェクト・ディクショナリを読み出す＞](https://qiita.com/jamjam/items/0cd6c5363c851c3c0e3c)
- [⑦ ラズパイ＋EPOS4、C++でプログラミング＜モータの回転 PPM＞](https://qiita.com/jamjam/items/725047121f582bb30937)
- [⑧ ラズパイ＋EPOS4、C++でプログラミング＜モータの回転 CSP その1＞ベータ版](https://qiita.com/jamjam/items/d58bf9affbd980e1735b)
- [⑨ ラズパイ＋EPOS4、C++でプログラミング＜モータの回転 CSP その2＞ベータ版](https://qiita.com/jamjam/items/ea611e552c5787ed5de0)