B3Mサーボモータを動かそう(C#下準備編)

Posted on 2015.12.19 in

 

【関連記事】

  第1回 B3Mサーボモータを動かそう(準備編(1))(改訂版)

  第2回 B3Mサーボモータを動かそう(準備編(2))

  第4回 B3Mサーボモータを動かそう(C#位置制御編)

  第5回 B3Mサーボモータを動かそう(Arduino制御編)(改訂版)

  第6回 B3Mサーボモータを動かそう(Python編(1))(改訂版)

 

 

 B3Mサーボモータをプログラムで動かす

B3M Manegerでは、1つのB3Mサーボモータを設定、動かすことができますが、複数のB3Mサーボモータを協調させて動かすことができません。

そこで、プログラムを作成し動かす方法を紹介いたします。

マイコンなどからコマンドを送信することもできますが、ライブラリが用意されているので、

Windowsのプログラムからであれば簡単に動かすことができます。

今回は、そのWindowsのライブラリの使い方とB3Mサーボモータを動かすまでのプログラム作成を解説いたします。

 

必要なもの

準備編で紹介したハードウェア一式

・Windows  7 / 8.1 / 10  (32bit/64bit) 搭載のパソコン

下記ソフトウェアの詳しい動作要件はMicrosoft社のホームページにて御確認ください。

・Visual Studio 2015

昔のバージョンでも動かすことができます。

無償版の Communityで動かすことができます。

プログラムの作成前にインストールを行っておいてください。

・B3Mライブラリ

PCからB3Mサーボモータへアクセスするにはコマンドは少ないのですが、メモリマップの構造等を理解し、1から作るのはとても困難です。

弊社では、これらのコマンドを簡単にプログラムできるよう、ライブラリを作成し無償配布しています。

こちらからライブラリ一式をダウンロードできます。

解凍して任意のフォルダに置いてください。

 

B3Mライブラリの使い方

B3Mライブラリを使うにはVisualStudioで作成したプロジェクトに組み込む必要があります。

使い方はVisualStudio2015 Communityを例に説明します。

(スクリーンショットで表示されている画面の配置はユーザによって変更できるので、実際表示されているところと異なる場合があります)

①Visual Studioでプロジェクトを新規に作成します

Visual Studioを起動させ、C#のWindowsフォームアプリケーションのプロジェクトを作成します。

(WPFでもできますが、フォームアプリケーションで解説します。)

②DLLファイルをわかりやすい位置にコピーします

ダウンロードし、解凍しておいたフォルダの中にB3MLib.dllおよびExtensions.dllがありますので、任意の位置にコピーします。

(今回は、プロジェクトを作成したフォルダに入れました)

③DLLファイルをプロジェクトで使えるようにします

ソリューションエクスプローラの中に参照設定があります。右クリックして、「参照の追加」を選択します。

参照設定1

右下の参照ボタンをクリックすると、下記ウィンドウが現れますので、コピーしたDLLファイルを選択します。

参照マネージャ

参照ファイルの選択

参照マネージャのOKボタンを押すと、ソリューションエクスプローラの参照の中にDLLファイルが読み込まれます。

参照後

通信の設定

プログラムからB3Mサーボモータにアクセスするには、Windows標準のSerialPortクラスを用います。まず、作成したプロジェクトのフォームのデザイン画面を開きます。ツールボックス内に「SerialPort」がありますので、作成されたフォームにドラッグアンドドロップします。

シリアルポートをドラックコメント付き

 

次に、SetialPortを設定します。

通信設定はB3Mサーボモータの出荷設定では下記のようになります。

プロパティ名 設定値 備考
BandRate 1500000 通信速度
DataBits 8bit 1byte送るときのbyte数

Parity

None(パリティなし) パリティ
PortName

RS485USB/シリアル変換アダプター

で認識されているCOM番号

COM番号
StopBit One(1bit) ストップビット
ReadTimeOut 500(0.5秒)

受信データが設定時間に来ない場合はエラーになります

 

上記表に応じ、配置したseriaPortの設定値を変更します。

下記は例として表記しています。COM番号は11になっていますが、実際にお使いのPCで接続された番号を入力してください。

 serialPort設定

今回、プログラムの起動と同時にB3Mサーボモータに接続されているserialPortを開き、

プログラムを閉じると同時にserialPortも閉じるようにします。

FormのLoadイベントを発生させ、その中にserialPortを開くよう下記記述します。

 

上記のプログラムは、serialPort1に設定したCOMを開こうとしています。

COM番号が見当たらない等のエラーによりCOMポートが開けない場合はメッセージボックスを表示し、アプリケーションを閉じるようにしています。

閉じる場合は、FormのFromClosingイベントを用い、その中でserialPortを閉じるようにします。

 

記述が終了したら、実行してエラーが出ないか確認します。

ここまででは、フォームが表示されるのみで特に何もおきません。

 

 

プログラムの設定

以降プログラムを書いていくのですが、ドラックアンドドロップしたSerialPortクラスは頻繁に使用します。

このクラスは正式にはSystem.IO.Ports.SerialPortになっています。

毎回、すべてを書くのは大変ですので、usingで定義をしておきます。

 

また、Extensionsの中にあるExtensions.Collections.ByteListも頻繁に使用します。

このクラスは動的配列と静的配列を混ぜたようなものになっています。

 

今回の内容はここまでになります。

下準備ということで、ライブラリの読み込みとB3Mサーボモータの通信設定を行いました。

次回について

 

次回は、実際にB3Mサーボモータを動かすプログラムを作成していきます。

 

第1回 B3Mサーボモータを動かそう(準備編(1))

第2回 B3Mサーボモータを動かそう(準備編(2))

第4回 B3Mサーボモータを動かそう(C#位置制御編)

 

B3M-SB-1040-Aの詳細をみる B3M-SC-1040-Aの詳細をみる B3M-SC-1170-Aの詳細をみる の詳細をみる RS485USB/シリアル変換アダプターの詳細をみる