PMXサーボを使ってみよう マイコンボードから制御「M5Stackから制御編」

Posted on 2024.08.23 in

 

PMXサーボは、UARTによるシリアル通信を持つ様々なマイコンボードから制御することができます。この記事では、M5Stackから制御する方法をご紹介します。

M5StackはArduinoIDEでプログラミングすることができます。弊社ではArduino向けライブラリを公開していますので、こちらを使用してPMXサーボを制御します。

※弊社では、M5Stack、及びプログラムに関連するお問い合わせは対応致しかねます。下記の記事は、使用事例として参考にご一読ください。

 

【関連記事】

  PMXサーボを使ってみよう マイコンボードから制御「準備編」

  PMXサーボを使ってみよう マイコンボードから制御「MemREAD編」

  PMXサーボを使ってみよう マイコンボードから制御「MemWRITE編」

  PMXサーボを使ってみよう マイコンボードから制御「MotorWRITE (位置制御)編」

  PMXサーボを使ってみよう マイコンボードから制御「MotorWRITE (組み合わせ制御)編」

 

●PMXサーボ商品ページ

 

この記事で解説するArduino向けライブラリ、及びサンプルプログラムは、下記のページからダウンロードしてください。

『PMX Library for Arduino』

 

PMXシリーズのサーボモータを制御するためのオンラインマニュアルを公開しています。PMXサーボを制御するための詳しい情報が記載されていますので、下記の解説と一緒にご一読ください。

『PMXサーボシリーズ オンラインマニュアル』

 

■必要な製品

・M5Stack(M5Stack Basic V2.7で動作確認しました)

RS-485変換基板

PMXサーボ

・バッテリー、または安定化電源(サーボの仕様に合わせてご用意ください)

HV電源スイッチハーネス(任意)

HV電源スイッチハーネスのコネクタは、弊社ラインアップのバッテリのコネクタに対応します。弊社のバッテリをご利用の場合は、カシメ作業などを省くことができますのでスイッチハーネスを使用した方が便利です。別途安定化電源などをご利用いただく場合は、RS-485変換基板に電源ケーブルAが付属しますのでこちらをご利用ください。

 

以下は市販品をご利用ください。

・ユニバーサル基板(10×20程度)

・L字アングルヘッダピン(2.54ピッチ)×15ピン

・ピンソケット(2.54ピッチ) 4ピン×2セット

・はんだ、はんだごて

・三端子レギュレーター(5V1A)
 こちらの例では秋月電子通商で販売している「低損失三端子レギュレーター 5V1A」を採用しました。

 

■基板を作成する

M5StackとRS-485変換基板をユニバーサル基板上でつなぎます。各端子をはんだ付けすればよいので非常に簡単です。

端子の接続先は下記の通りです。

M5Stack本体の右側の端子だけで全てつなぎ終えることができます。

表の「表記」は、本体裏側のシールに書いてある内容で、「端子名」は本体のボトムケースを外したときに露出する基板上のシールに書かれている名称です。

M5Stackは内部にバッテリを内蔵していますので、外部から給電をしなくても動作しますが、バッテリ容量が低いため、この例ではサーボの電源をM5Stackにも給電しています。ただし、「VOUT」端子から出力する電圧は電源-0.5Vの電圧(12Vであれば11.5V)であり、M5Stackに対しては過電圧になりますので、三端子レギュレータで5Vに降圧してからM5Stackの「5V」端子に接続しています。三端子レギュレータの回路は、素子付属の資料をご参照ください。

M5Stackへの給電はUSBバスパワーからも可能ですので、USBから給電する場合はM5の「5V」は接続しなくても動作します。

 

つなぎ終えると以下のような状態になります。

 

はんだ付けが終わった基板をM5Stackの右側に接続します。

 

RS-485変換基板を接続し、変換基板にサーボと電源を接続してください。

 

RS-485変換基板のスイッチを「実行」に切り替えます。

※シリアル端子はマイコンボードのUSBと併用していませんので「実行」のまま切り替える必要はありません。

 

■ライブラリを準備する

「PMX Library for Arduino」をダウンロードし、ダウンロードページの解説に従ってArduino IDEにインクルードしてください。

M5StackをArduino IDEでプログラミングするための準備は、『みんなのM5Stack入門』を参考にするとわかりやすいです。Arduino IDEからESP32ボードマネージャとM5Stackライブラリをインストールしてください。

 

■サンプルプログラムを実行する

公開中のArduino向けライブラリのサンプルプログラム『MemWRITE_MotorControl_Sample』を使用してサーボを動かします。サンプルプログラムは、Arduino Nano Everyに合わせてプログラムされていますので、以下の箇所を変更する必要があります。

 

M5Stackを使用するため、プログラムの最初でM5Stack.hをインクルードします。

 

今回ご紹介している方法では、M5StackのTXD2 / RXD2へ接続していますので、引数のシリアルポートの指定を「&Serial2」に変更します。

Enableピンは変わらずGPIO2へ接続していますので、変更する必要はありません。

サーボの通信速度、IDが初期値の115200bps、ID0のままでしたらこの個所も変更ありません。

※M5Stackの仕様により、通信速度は115200bps以下でご利用ください。

 

M5Stackを使用するため、setup()関数の中に上記を追記します。

以上でサンプルプログラムの変更は完了です。

 

変更したプログラムの全文は下記になります。動作中にサーボから受け取ったデータをM5StackのLCDに表示できるようにしました。ご参考にしてください。

 

M5Stackは、LCDやボタン、WiFiなど多彩な機能が一体になっており非常に便利なデバイスです。PMXサーボ搭載のロボットと組み合わせることで、サーボの状態確認や、指令を送ることもPCなしで実現できます。またネットワークからの指令も可能です。こちらの記事を参考に、ぜひご利用ください。

 

PMX-SCR-9203HVの詳細をみる PMX-SCR-9204HVの詳細をみる PMX-SCR-5203HVの詳細をみる PMX-SCR-5204HVの詳細をみる