OnSemiconductor LV8548MCSLDGEVK モータドライバモジュールキットを使ってみた

On Semiconductor(オン・セミコンダクター)社のモータドライバキット LV8548MCSLDGEVK を頂きました。
ずいぶん時間が経ってしまったのですが、昨年8月のMaker Fair Tokyo 2018でONSemi社ブースで「モータ駆動モジュール・ソリューション・キット・お試しプレゼントキャンペーン」に応募したところ当選して11月に頂いていました。ありがとうございます!

開梱には覚悟が要るかと思って先延ばししてましたら年を越してしまいました。すいません。今更使ってみたらあまりに簡単なので驚きました。重ねて申し訳ありません。
まずは同梱されていたステップモータとDCモータを回してみました。

モータドライバキット

LV8548MCSLDGEVK: Motor Driver Solution Kit for LV8548MC featuring simple DC motors and stepper drive
ケースに一式入っているのでどこへでも持ち運び可能。

モータドライバボード以外にArduino Micro、DCモータとステップモータ、ACアダプターやUSBケーブルも入っており、このまますぐに試せます。
ミニドライバが付いているのが助かります。精密ドライバ探さなくて済みます。モータのワイヤをドライバモジュールの端子に接続するために使います。

モータドライバ

4V~16V, 1Amaxです。

モータドライバの詳細仕様はこちら
LV8548MC: 12V 用低飽和駆動正逆モータドライバ
https://www.onsemi.jp/PowerSolutions/product.do?id=LV8548MC

マニュアル

同梱のUSBメモリ内にPDFファイルがドライバ、サンプルコードと共に格納されています。
LV8548_STEP_MANUAL_J.PDF (クイックスタートガイド)
LV8548_STEP_MANUAL_APPENDIX_J.PDF(別紙)

Webからもダウンロードできます。
https://www.onsemi.jp/PowerSolutions/evalBoard.do?id=LV8548MCSLDGEVK
マニュアル通りに進めれば問題なく動作しました。

ArduinoIDEのインストール

このキットではモータドライバの制御をArduinoで行いますのでまずは別紙を参考に、ArduinoIDEをインストールします。

IDE 1.8.4

USBにArduinoIDE 1.8.4が同梱されていますので、これをインストールしました。1.8.4の使用が指定されています。

APIライブラリのインクルード

詳細はスタートアップガイドを参照します。
1. ArduinoIDEを起動して、USBからzip形式の「LV8548_STEP_APILibrary」をインクルードします。
2. TimeOne ライブラリをインクルードします。

ボード Arduino/Genuino Microを指定

使用するArdunino Microに合わせて、「ツール」-「ボード」はArduino/Genuino Microを指定します。

GUIソフトのインストール

サンプルプログラムをArduinoにインストールすると、USB接続したArduinoを経由してPCのGUIソフトからモータを任意の方向、速度で操作することができます。

こちらもインストールexeがUSBに保存されているので、setup.exeを実行してインストールします。

ステップモータを動かす

接続

クイックスタートガイドに従い、モータドライバボードにArduinoを取り付け、CN5端子にステップモータを接続します。
ステップモータの線を間違わないように注意。

ACアダプタとUSBケーブルを接続し、ArduinoIDEを起動します。

OUT_A
OUT_B
OUT_C
OUT_D

LV8548_STEP_Program.ino

サンプルプログラム LV8548_STEP_Program.ino をビルドしてArduinoへ書き込みます。
コードを見ると本体はシリアルから受信したGUIからの命令をAPIライブラリに渡しているだけの様です。

#include 
#include 
#include 
#define TIMER 65

// ---------------------------------------------------
// ======        Sample Sketch for GUI         =======
// ---------------------------------------------------

Lib_LV8548Step lv8548Step;
int wdCounter;

void setup() {
  wdt_disable();
  Serial.begin(19200);
  lv8548Step.initLib();
  Timer1.initialize(TIMER); //micro Seconds
  Timer1.attachInterrupt(interrupt);
  wdt_enable(WDTO_8S);
}
void interrupt(){
  lv8548Step.timerFire(TIMER);
}


void loop() {
  wdCounter ++;
  if(wdCounter >= 5000){
    wdt_reset();
    wdCounter = 0;
  }
  lv8548Step.guiSerialRead();
}

GUIソフトでモータを操作

次にGUIを起動して、Arduinoの接続されているCOMポートに「Connect」してステップモータの場「LV8548Step」タブを開きます。
後は
方向: Direction: CW(時計回り)/CCW(反時計回り)
速度: Motor Speed: step/s /rpm
などパラメータを指定して、「Start」をクリックで起動します。

詳細はクイックスタートガイドを参照のこと

コマンドの保存

右側の「Log」ペインには送信した命令がログされます。「Generate Program」をクリックするとArduinoの*.inoファイルで保存されるので、必要な操作を実行してからファイルへ保存すれば、楽にプログラムが作成できます。

ログの例

#include 
#include 
Lib_LV8548Step Lib;
void setup()
{
  Serial.begin(19200);
  Lib.initLib();
  Timer1.initialize(65);
  Timer1.attachInterrupt(interrupt);
  delay(5000);
  Lib.setStepAngle(7.5);
  delay(0);//0msec
  Lib.motorRotationTime(10, 5, 0, 0);
  delay(0);//0msec
  Lib.motorRotationFree();
  delay(0);//0msec
  Lib.motorRotationDeg(5, 30.0, 1, 0);
  delay(0);//0msec
  Lib.motorRotationTime(5, 5.0, 1, 0);
  delay(0);//0msec
}
void interrupt()
{
  Lib.timerFire(65);
}
void loop()
{
}

DCモータを動かす

以下の3点を変更すればステップモータと同じ手順です。
・DCモータの線をCN5の端子に接続する。DCモータは2個接続可能。
・サンプルプログラム:LV8548_DC_Program.ino
・GUIソフトでは「LV8548DC」タブを選択する。

OUT_A Motor1 +
OUT_B Motor1 –
OUT_C Motor2 +
OUT_D Motor2 –

DCモータなので、速度と回転方向を任意に操作できます。

マニュアル

DCモータ用も同梱のUSBメモリ内にPDFファイルがドライバ、サンプルコードと共に格納されています。サンプルコードやモータの接続方法以外はステップモータと同じです。GUIソフトも共通で使用できました。
LV8548_DC_MANUAL_J.PDF (クイックスタートガイド)
LV8548_DC_MANUAL_APPENDIX_J.PDF(別紙)
https://www.onsemi.jp/PowerSolutions/evalBoard.do?id=LV8548MCSLDGEVK

記録したログの例

#include 
Lib_LV8548DC Lib;
void setup()
{
  Serial.begin(19200);
  Lib.initLib();
  delay(5000);
  Lib.setCtlVoltage(0, 10);
  delay(0);//0msec
  Lib.setCtlVoltage(0, 20);
  delay(0);//0msec
  Lib.setRotation(0, 0);
  delay(0);//0msec
  Lib.setStartFlag(0, 1);
  delay(0);//0msec
  Lib.setCtlVoltage(0, 50);
  delay(0);//0msec
  Lib.setStartFlag(0, 2);
  delay(0);//0msec
}
void loop()
{
}

まとめ

キット一式でモータを操作するならクイックスタートガイドを参考に進めればあっと言う間に完了します。とても簡単。

Lチカの次のステップとして何かモータを動かそうとすると、いきなり難易度が上がったりするので、キットを使うとモータの動かし方の理解が容易です。GUIで色々動かしてそのコードを記録して、それを基に要求する動きをコーディングすると早くできそうです。Excelのマクロを記録して改造するのと同じです。

それにしても LV8548MCSLDGEVK は何と呼べば良いのでしょう?ボードで愛称がないので仕方がないところですが、この文字数では覚えられないので 「えるぶい8548」で良いのかな?

さて何か工作しなければ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です