ダウンロード » テクニカルガイド »


       

■シリアルサーボ制御方法(3) ソフト編

 
関連カテゴリー: ICS, テクニカルガイド

はじめに

ソフト編では、ICSコマンドをマイコンからサーボモーターに送るためのC言語のプログラムについて説明します。 ここでは説明を簡単にするため、シリアル通信に関しては1バイトのデータを受信する関数(char getchar())と1バイトを送信する関数(void putchar ())ができあがっていることにします。この2つの関数を元にして、シリアルサーボモーターのコマンドの仕組みと通信プログラムの作り方について説明します。 またポジション設定コマンドだけ扱いますので、他のコマンドについてはこれを参考にして作成してみてください。 プログラムは弊社製マイコンボード、KCB-1に付属しているSDK準拠で作成します。KCB-1ではICSコマンドはほとんど関数化されていますので、簡単にシリアルサーボモーターの制御ができます。KCB-1の詳しい情報についてはこちらをご覧ください。

 

ポジションコマンドの作成

ここではポジション設定コマンドを実行する関数としてset_posというC言語関数を作ってみます。

必要なデータをまとめる

まずICSの規格に沿って、ポジションコマンドを作成しましょう。ポジションコマンドの基本命令は次のようになっています。ポジションコマンドやその他のICSコマンドの詳細は前回の「シリアルサーボ制御方法(2) ICS編」で確認してください。

CMD POS_H POS_L

CMD=メインコマンド0b100XXXXXとID=0b000XXXXXを合わせたものです。この2つのデータを1バイトに合わせるには、論理和(C言語では「|」と書く)を使います。 POS_Hは3500~11500で指定できるポジションデータの上位7ビットで、POS_Lは下位7ビットデータです。

関数の引数と返値を決定する

set_pos関数に必要なデータは、ID番号とポジションデータです。ID番号は0~31までなので、unsigned char型で指定します。ポジションデータ範囲は3500~11500ですので、int型で指定します。 また、ポジションコマンドを送ると、現在位置データが返ってきますので、この関数の返値は現在位置データとします。 関数の基本構造は次のようになります。ここから中身を記述していきます。

int set_pos (unsigned char id, int pos)
{

  // これから関数の中身を記述 

}

送信コマンドを作成する

送信コマンドを作成するには3バイトのデータが必要です。バイトデータは0~255までのunsigned char型の3バイト配列「tx」として宣言します。送信するポジションデータの変数名(仮引数名)をposとします。

int set_pos (unsigned char id, int pos)
{
  unsigned char tx[3];

  tx[0] = 0x80 | id;
  tx[1] = (unsigned char)(pos >> 7 & 0x7F);
  tx[2] = (unsgined char)(pos & 0x7F);
}

CMDを作成するには、0×80=0b10000000でID番号idと論理和を取ることにより(この場合は単に足し合わせてかまいません)、CMD=0x100XXXXX(XはID番号)ができあがります。実際はid番号が0以上31以下であることを確認してからコマンドを作成した方がよいのですが、ここでは割愛しています。 tx[1]はPOS_Hです。引数のposの下位7ビットを捨てるため、右向きに7ビットシフトしています。またデータを7ビットに限定するために、0x7F(0b01111111)で下位7ビットのみ論理積で取り出しています。 tx[2]はPOS_Lですので、下位7ビットのみ論理積で取り出しています。 変数posはint型変数なので、unsigned char tx[]に型変換(キャスト)してから代入しています。 これで送信コマンドは完成です。

コマンドを送信して、返値を受け取る

上記でできたコマンドを3バイト繰り返して送信します。その後すぐにサーボモーターから返ってくる3バイトのデータを受け取ります。

int set_pos (unsigned char id, int pos)
{
  unsigned char tx[3]; // 送信用のデータ
  unsigned char rx[3]; // 受信用のデータ
  int i; // 繰り返し処理のためにつかう変数

  tx[0] = 0x80 | id;
  tx[1] = (unsigned char)(pos >> 7 & 0x7F);
  tx[2] = (unsgined char)(pos & 0x7F);

  for (i = 0; i < 3; i++)
  {
    putchar (tx[i]); // コマンドを1バイトずつ送信する
  }

  for (i = 0; i < 3; i++)
  {
    rx[i] = getchar (); // モーターからの返値を受け取り、rxに代入する
  }
}

マイコンのクロック数やサーボモーターの種類によっては、送信後にサーボモーターからデータが返ってくるまで少しタイミングをおいた方がよい場合がありますので注意してください。 この例ではマイコンとのデータ通信を想定していますので、受け取るデータは3バイトになりますが、PCで同じような関数を作成した場合は6バイト受け取るようにしてください(詳しくは次回)。

サーボから返ってきたデータから現在値を取り出す

最後にサーボから受け取ったデータから現在位置に変換します。

int set_pos (unsigned char id, int pos)
{
  unsigned char tx[3]; // 送信用のデータ
  unsigned char rx[3]; // 受信用のデータ
  int i; // 繰り返し処理のためにつかう変数
  int dat; // 現在位置を計算するための変数

  tx[0] = 0x80 | id;
  tx[1] = (unsigned char)(pos >> 7 & 0x7F);
  tx[2] = (unsgined char)(pos & 0x7F);

  for (i = 0; i < 3; i++)
  {
    putchar (tx[i]); // コマンドを1バイトずつ送信する
  }

  for (i = 0; i < 3; i++)
  {
    rx[i] = getchar (); // モーターからの返値を受け取り、rxに代入する
  }

  dat = (int)(rx[1] & 0x7F);
  dat = (dat << 7) + (int)rx[2];

  return dat;
}

16ビットマイコンのCコンパイラでは計算時に32ビット拡張を行わないものがあります。そのような場合8ビットデータを7ビットシフトした時点で8ビット以上の桁は全て0となってしまいますので、上記プログラムのように2段階に分けて、いったんint型変数に代入してからシフト演算をした方がよいでしょう。 計算結果はreturn命令で呼び出し元へ返します。これで関数の完成です。

set_pos関数を使うときには

下のプログラムはID番号が0~8までのシリアルサーボモーターをデイジーチェーン接続して、5000と10000のポジションを10往復する例です。細かい説明はしませんが、参考にしてください。 set_pos関数を繰り返して使う場合は、繰り返し間隔を適当に空ける必要があります。

int main ()
{
  int pos, r_pos; // セットするポジションデータと返ってきたポジションデータ
  int i, id;

  for (i = 0; i < 10; i++) // 10回繰り返す
  {
    pos = (pos == 5000 ? 10000 : 5000); // ポジションデータを切り替える

    for (id = 0; id <= 8; id++)
    {
      r_pos = set_pos (id, pos);
      printf ("[%d] pos = %d\n", id, r_pos);
    }
  }
}

 

次回は

次回はいよいよPCからサーボモーターを動かすプログラムをつくります。PCからシリアルサーボモーターを動かすには、近藤科学社製ICS USBアダプターまたはICS USBアダプターHSが必要です。ぜひ準備してお待ちください。

注意

ICS通信は半二重通信ですので、送信・受信のどちらかしか有効にならないようなプログラムを作成する必要があります。マイコンプログラミングでは、送信前に必ず受信禁止状態にしてください。送信後はすぐに受信可能状態に戻すようにしてください。 受信コマンド(getchar)では、仮に何らかのエラーでICSデバイスから返事が来なかったり、またはデータを受け取り損ねたりした場合の処理が必要となります。できれば受信時に適当なカウンター変数を用意して、ある程度カウントしてもデータが来なかった場合には受信エラー処理を行う用に作成すると、受信に失敗した時点でプログラム全体が停止してしまうのを防ぐことができます。

■この記事へのリンクはこちらです。
 

       

■シリアルサーボ制御方法(2) ICS編

 
関連カテゴリー: ICS, ダウンロード, テクニカルガイド

ICSコマンドについて

今回は弊社製シリアルサーボモーターを動かすためのICSコマンドについて説明します。

ICSとは「Interactive Communication System」の略で、近藤科学独自のデータ通信規格です。従来はPWM※でサーボモーターに角度の指令を送っていましたが、特性の変更や拡張などをより細かく制御するため、規格をシリアル通信に変更しました。

ICSバージョン2.0では主にサーボモーターの位置制御や特性の変更をするために使用されてきましたが、現在はその他のデバイスも接続できるように拡張されています。バージョン3.5ではサーボモーターのモーター温度などが読み込めるようになりました。

各種ICS規格については、詳細なリファレンスマニュアルが公開されています。下記リンクからお持ちのサーボモーターに該当するマニュアルをダウンロードいただき、今回の記事と併せてご利用ください。

ICSコマンドはICSデータ通信の規格に沿った命令のことを言います。通信規格など基本的な構造は次のようになります。

シリアル通信設定

通信速度 115200bps、625000bps※、1250000bps※(※ICS3.0以降)
データ長 8ビット
ストップビット長 1ビット
パリティ 偶数
フロー制御 なし

 

データ構造

バイト数 1(CMD) 2(SC) 3~N-1(DATA)
内容 コマンドヘッダ=
メインコマンド+ID番号
サブコマンド データ

コマンドヘッダ(CMD)部分は、メインコマンド4種類(ポジション、読み出し、書き込み、ID設定)とサーボモーターにセットされたID番号を連結したものです。下記のメインコマンド一覧にある数値で、「0b」がついているものは2進数での表記となっています。またこれ以降「0x」とついているものは16進数表記です。

ポジション(サーボモーターの回転角度を決める) 0b100XXXXX
読み出し(パラメーターを読み出す。種類はサブコマンドで決める) 0b101XXXXX
書き込み(パラメーターを書き込む。種類はサブコマンドで決める) 0b110XXXXX
ID(ID番号の読み込み、または書き出しを行う) 0b111XXXXX

XXXXXには5ビットのID番号が入ります。例えばID=12(5ビットの2進数で01100)のサーボにポジションをセットする場合は、ICSコマンド第1バイト目(コマンドヘッダ、CMD)は「0b10001100」となります。

サブコマンド(SC)は、メインコマンドのオプション設定で、サーボモーターのスピード、ストレッチ、電流値などがあります。ポジションコマンドにはサブコマンドはありません。下記一覧の※マークはICS3.5以降のサブコマンドです。

EEPROM
0x00
サーボモーターのROMデータに直接アクセスする
STRC
0x01
ストレッチデータを扱う
SPD
0x02
スピードデータを扱う
CUR※
0x03
電離位置を読み出す、または電流制限値を書き込む
TMP※
0x04
サーボモーターの温度を読み出す、または温度制限値を書き込む

データ(DATA)は読み出しの場合は指定しません。書き込みの場合にサーボモーターに書き込みたいデータを指定します。ポジションコマンドのデータ部分だけは特殊なデータ構造になります。下記データ構造を作る方法は「コマンド例」をご覧ください。

POS_H ポジションデータの上位7ビット
POS_L ポジションデータの下位7ビット

データ構造で特に注意するのは、第1バイト目以外は全てMSB(1バイトデータのもっとも上位にあるビットのこと、8ビット目のこと)を0にする必要があることです。ICS規格では、MSBが1のデータからコマンドヘッダとID番号を読み取ろうとしますので、サブコマンドやデータ部分のMSBが1の場合にはコマンドヘッダと間違えて誤動作する可能性があります。

 

コマンド例と返値について

スピードの変更

簡単な例として、ID番号が10のサーボモーターのスピードを変更するICSコマンドを作成してみます。リファレンスマニュアルから、設定できるスピード値は0~127(数値が小さいほど速度が下がる)であるので、ここでは100と設定します。

  • スピードをサーボモーターにセットするには書き込みコマンド(0b110XXXXX)を使います。
  • ID番号は10(2進数で0b00001010)です。
  • スピード設定サブコマンドは2です。

メインコマンドが「0b110XXXXX」で、ID番号は「0b00001010」ですので、CMDは11001010=202(0xCA)となります。

CMD SC DATA(SPD)
202(0xCA)
2(0x02)
100(0x64)

スピード変更などの書き込みコマンド実行時には、サーボモーターから次のような返事が来ます。

送信コマンドのループバック R_CMD SC DATA(SPD)

ここで「送信コマンドのループバック」とは、送った3バイトのデータがそのまま返ってくることを示しています。ICS規格では送信線と受信線が同じ(詳細は「シリアルサーボ制御方法(1) 回路編」を参照してください)であるため、データを送ると同時に受信してしまうからです。

普通のマイコンでは送信時に受信はできません(フロー制御がないとき)ので、ループバックは無視して3バイトのみの受信でかまわないのですが、パソコンなどのOSが搭載されているものでは、ループバックはバッファに自動的に保存されますので、サーボモーターから来た返事は6バイト受け取るようにしてください。

なお4バイト目のサーボモーターから返ってきたCMDはMSBが0となっていますので、この例では送信CMD=202(0xCA)に対して、R_CMD=74(0x4A)が返ります。

ID番号を読み出す

ID番号を読み込むコマンドは他のコマンドと構造が違います。サーボからIDを読み取る時には、CMD=0xFFとしてください(※IDが分からないサーボモーターからも読み込むため)。SCは0固定で、3回繰り返します。

CMD SC SC SC
255(0xFF)
0(0x00)
0(0x00)
0(0x00)

サーボモーターからは下のようなデータが返ってきます(PCで受信した場合のみ5バイト、そうでないなら1バイトのみ返る)。

送信コマンドのループバック R_CMD

R_CMDには、ID読み込みコマンド0b111XXXXXとサーボモーターのID番号0b000XXXXXが合わさった1バイトのデータで、MSBが0になったものが返ります。例えば読み出したサーボモーターのID番号が25(0b000110011)だった場合は、R_CMD=0b011110011(243=0xF3)が返ってきます。

サーボモーターのポジションを移動する

サーボモーターのポジションデータに指定できる値は3500~11500となります。ポジションデータに0を入れたときだけ特殊操作となり、サーボモーターが脱力します。7500がいわゆるニュートラル位置です。

CMD POS_H POS_L
0b100XXXXX+ID 16ビットデータの下位14ビットを7ビットずつ分解して、上位をPOS_H、下位をPOS_Lとする

ポジションの設定はすこし難しくなっています。コマンドヘッダ以外はMSBを0にしなければならない約束がありますので、2バイト(16ビット)データのうち、下位14ビットのみを使用します。取り出した14ビットを2分割して、上位をPOS_H、下位をPOS_Lとします。例えばニュートラル位置7500の場合は、7500=0b00011101_01001100(0b[00][011101_0][1001100])となりますので、POS_H=0b000111010=0x3A、POS_L=0b01001100=0x4Cとなります。

返値は現在位置データが送信コマンドと同じように、7ビットずつに分解されて返ってきますので、プログラムでデータを戻すには7ビットずつ取り出してつなぎ合わせる必要があります。

次回はICSコマンドをC言語で作ってみます。自作マイコンをターゲットにしていますので、プログラムできるマイコン(KCB-1でもかまいません)をお持ちの方はシリアル通信用端子から1バイト送信できる関数と、1バイト受信できる関数をあらかじめ用意してください。

用語説明

PWM
Pulse Width Modulationの略で、信号線をHIGHにする時間を調整することによりモーターの回転を制御する方法のこと。DC(直流電圧)モーターでは入力電圧を変えると回転速度も変わりますが、マイコンで計算した値をアナログ電圧に変換(DA変換)する必要があるため、様々なコストがかかります。そこで信号のONとOFFを細かく切り替えて見かけ上電圧を変える方式になりました。
ラジコンサーボではPWMで直接モーターを制御しているわけではなく、パルスの幅にモーターの位置情報という意味を持たせています。パルスを受け取ったモーターはその幅を位置情報に変換し、改めて内部でモーターの位置制御を行っています。
MSB
Most Significant Bitの略で、ビット列の中で位(くらい)が一番大きなビットのこと。1バイトデータの場合は8ビット目がMSBとなります。最も小さい位は LSB(Least Significant Bit)といいます。
2進数、16進数
一般に使われている数値は10進数と言います。9に1を足すと桁が上がり、「10」という書き方をします。使える数値は0~9までです。2進数では1に1を足すと桁上がりして「10」と書きます。使える数値は0と1だけです。16進数では0~9とA、B、C、D、E、Fを使います。A が10進数の10にあたり、Fは15です。Fに1を足すと桁上がりして、同じように「10」となります。
10進数では10を掛けたり割ったりすると桁が上下しますが、2進数では2を掛けると桁上がりして、2で割ると桁が下がります。同じように16進数では16を掛けたり割ったりすると桁が上下します。2進数と16進数は単にコンピューター上で数値をビット列とした扱うときに分かりやすいという理由で使われています。また、16進数は大きな数値も少ない桁数で扱えるので、コンピューターでは重宝します。
■この記事へのリンクはこちらです。
 

       

■シリアルサーボ制御方法(1) 回路編

 
関連カテゴリー: ICS, ダウンロード, テクニカルガイド

はじめに

近藤科学社製のロボット用サーボモーターは、ロボットコントローラーやPCから簡単に操作できるようなシステムになっています。今回より5回にわたって、近藤科学社製シリアルサーボモーターを制御する方法を紹介します。

回路編
自作マイコンでサーボモーターを制御するために必要な電気回路について説明します。
ICS編
ロボット用シリアルサーボモーターのICSコマンドについて詳しく説明します。
ソフト編
ICSコマンドを自作マイコンで使うためのテクニックについて説明します。
PCから直接制御編(その1)
Microsoft Visual Basicを使って、PCからICSコマンドを送信するための準備をします。
PCから直接制御編(その2)
Microsoft Visual Basicでスライドバーでシリアルサーボモーターを動かすプログラムを行います。

今回の「回路編」では弊社製サーボモーターを動かすための電気回路について説明します。

 

回路説明

下記回路図は近藤科学社製KCB-1マイコンボードのシリアルサーボモーターを駆動する部分のみを書き出したものです。回路図のSIOコネクタの番号は、1番が信号線、2番が電源線、3番がグランド線となっています。弊社製ロボット用シリアルサーボモーターは、電源電圧は10.8Vで、半二重シリアル通信により動作します。シリアル通信(信号)線はCMOSレベル(約3.3V以上でHIGHと認識される)の負論理となっています。

半二重通信を実現するために、マイコン側はシリアル通信用端子TXD(送信用端子)、RXD(受信用端子)を1本にまとめてSIOコネクタの信号線(1番)につないでいます。負論理回路にするため、信号線の信号電圧が5Vになるように、2.2kΩでプルアップ(R1)しています。RXDは入力用の端子ですので、ノイズや静電気が入るとCPUが壊れてしまう可能性があるため、直列に抵抗(R2)が入っています。

またKCB-1では降伏電圧5.6Vのツェナーダイオードがつながっています。回路図のようにダイオードの向きは信号線側にありますので、通常は信号線からグランド側に電気は流れませんが、5.6V以上の電圧がきたらグランド側へ流して、CPUに高い電圧がかからないようになっています。

2番端子には電源電圧(10.8V)、3番端子にはグランドをつなぎます。これで弊社製サーボモーターを動かす電気回路の準備は完了です。

 

用語説明

半二重通信
半二重とはデータを送る線と受け取る線が1本にまとまめて、送信または受信を交互に行う通信方式です。トランシーバーやタクシー無線などがこれにあたります。電話などのように送信と受信を同時に行うことができる方式を全二重通信といいます。 半二重通信は全二重通信に対して送信線、受信線が1本ですむこと、サーボモーターに固有のIDを付けておくと、信号線を共用できるメリットがあります。
負論理
信号がHIGHになると「1」と認識するのが正論理回路です。逆が負論理回路となります。近藤科学のシリアルサーボモーターと通信する場合は負論理回路を作ります。
プルアップ・プルダウン
マイコンの端子は何も設定していないと電圧は不定(浮いているという)となります。一般的にマイコンの端子はインピーダンスが高いため、微弱な電流でも高い電圧となることがあります(V=IR)。そこで電源線に抵抗を介して接続することで、マイコンの端子電圧を信号電圧(通常5V)に合わせることをプルアップ(電圧を引っ張り上げるという意味)といいます。逆に0Vにするためには抵抗を介してグランドと接続します。これをプルダウンといいます。
■この記事へのリンクはこちらです。
 

       

■KCB-1 アップデーター Ver.1.3.0 Rev.20100807

 
関連カテゴリー: KCB-1, KCBサポート, アップデート, ソフトウエア, ダウンロード, テクニカルガイド

KCB-1 SDKのアップデーター Ver.1.3.0 Rev.20100807をリリースします。今回のアップデートではICS3.5への対応、RCB-3/4に接続されたセンサーの読み取りや、RCB-3のCOMポートからKRCのボタンデータ(コントロール入力値)を書き換える関数、RCB-4に接続されているサーボモーターを一斉に動かす関数などが追加されています。詳しい内容は下記のようになっています。

 

<アップデート内容>

  • uart.h  UART1(COM)にタイムアウトを付けられるようにした
  • rcb3.h  RCB-3のADポート読み込み、exput関数の追加
  • rcb4.h  RCB-4のAD/PIOなどの設定など
  • ics.h   ICS3.5に対応

 

<追加サンプルプログラム>

  • ICS35_GetData:  ICS3.5対応のサーボモーターからデータを取り込む
  • RCB3_Exput: rcb3_exput_7Bcode関数のサンプルプログラム
  • RCB4_AD_READ: RCB-4のADポートからのデータ読み込み
  • RCB4_PIO: RCB-4のPIOポートからのデータ読み込み・書き出し
  • RCB4_Servos: RCB-4に接続されたサーボモーターを複数同時駆動する
  • RCB4_SingleServo: RCB-4でサーボモーターを単独で駆動する

 

<インストール前にご確認ください>

  • 圧縮ファイルを解凍するとEXEファイルがありますので、ダブルクリックしてインストールしてください。
  • インストールにはCD-ROMジャケットに記載されているシリアル番号が必要です。
  • インストールにはKCB-1 SDK Ver.1.2.0までがすでにコンピューターへインストール済みであることが必要です。

 

ダウンロードはこちらから KCB1SDK_V13020100807.zip ZIP File

■この記事へのリンクはこちらです。
 

       

■シリアルUSBアダプターをLinuxで使うには

 
関連カテゴリー: シリアル通信, ダウンロード, テクニカルガイド

準備

弊社製シリアルUSBアダプターシリーズはWindows OS以外での動作保証をしておりませんが、適切なドライバーを使うことで、Linuxでも使用できます。 Linuxで使用するときはusbserial.ko、ftdi_sio.koという2つのドライバー(正式にはカーネルモジュールと言います)が必要となります。このドライバーはUbuntu Linuxなどでは標準でインストールされています。例えばUbuntu Linux 10.04では「/lib/modules/2.6.32-21-generic/kernel/drivers/usb/serial」にインストールされています。

次にシリアルUSBアダプターHSを取り付け、下記コマンドでドライバーをセットしてください。modprobeコマンドでftdi_sioドライバーを取り付けると、自動的にusbserial.koドライバーも取り付けられます。

<rootユーザーの場合>

# modprobe ftdi_sio vendor=0x165C product=0007

<Ubuntu Linuxなど、sudoコマンドが必要な場合>

$ sudo modprobe ftdi_sio vendor=0x165C product=0007

 

テスト

上記コマンドを実行後、dmesgコマンドで確認をします。

-----
$ dmesg

...
[18188.873370] USB Serial support registered for FTDI USB Serial Device
[18188.874223] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter
detected
[18188.875151] usb 2-1: Detected FT232RL
[18188.875154] usb 2-1: Number of endpoints 2
[18188.875156] usb 2-1: Endpoint 1 MaxPacketSize 64
[18188.875159] usb 2-1: Endpoint 2 MaxPacketSize 64
[18188.875161] usb 2-1: Setting MaxPacketSize 64
[18188.892767] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0
[18188.892794] usbcore: registered new interface driver ftdi_sio
[18188.892796] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
-----

上記出力例のように「FTDI USB Serial Device converter now attached to ttyUSB0」というような表示が出ましたら、シリアルUSBアダプターHSはデバイス「/dev/ttyUSB0」として使用することが可能です。最近のLinuxではデバイスファイルは自動的に作成されますが、自動作成されなかった場合は次のようにデバイスファイルを作成する必要があります。 # mknod /dev/ttyUSB0 c 188 0 デバイスファイルに対してechoコマンドを使って適当な文字列を出力すると、シリアルUSBアダプターHSから文字列が出力されます。

$ echo "Hello World!" > /dev/ttyUSB0

標準状態でのパリティやボーレートの変更はsttyコマンドなどを使用してください。なおC言語でのプログラムではプログラム内でボーレートなどを設定してください。

 

その他

その他のドライバーを使用する場合

システムにドライバーがない場合やチップメーカーのFTDI社純正ドライバーを使用する場合は、FTDI社からドライバーをダウンロードしてインストールするか、カーネルをアップデートする必要があります。ドライバーは下記URLよりダウンロードしてください。FTDI社のドライバーにつきましては上記ドライバーと使い方が違います。また弊社では未検証ですので注意してご利用ください。

http://www.ftdichip.com/Drivers/D2XX.htm

その他のドライバーにつきましては、下記のようなものがあります。こちらも弊社では未検証です。

FTDI Linux USB full speed char driver http://sourceforge.jp/projects/sfnet_ftdifullspddrv/

FTDI USB Serial Converter Driver http://sourceforge.jp/projects/sfnet_ftdi-usb-sio/

その他のシリアルUSB変換器を使う場合

近藤科学株式会社のシリアル変換アダプターを使うには、生産者ID(VID)と製品ID(PID)番号が必要です。modporobeコマンドのオプションを下記リストを参考にして、適宜入れ替えて使用してください。

VID:165C (近藤科学USB製品共通)
-------------------------------------------------------------
PID  = デバイス名           (日本語でのデバイス名)
-------------------------------------------------------------
0001 = ICS USB ADAPTER     (ICS USB アダプター)
0002 = SERIAL USB ADAPTER  (シリアルUSBアダプター)
0006 = ICS USB ADAPTER HS  (ICS USB アダプター High Speed)
0007 = SERIAL USB ADAPTER HS(シリアルUSBアダプター High Speed)

 

その他の情報

KCB-3WLに付属のSDKにはシリアル通信でRCB-4やRCB-3を動かすライブラリとサンプルプログラムがあります。LinuxでRCB-4などを動かすシリアル通信プログラムをやってみたい人は、参考にしてみてはいかがでしょうか。

■この記事へのリンクはこちらです。
 

       

■KRS-403xシリーズマニュアル正誤表

 
関連カテゴリー: ICS, テクニカルガイド, 製品マニュアル

弊社ロボット用サーボモーター「KRS-403xシリーズ」 について、初期ロットに付属するマニュアルに一部誤りがありました。ご迷惑をおかけしたことをお詫びするとともに下記の訂正を行います。

■対象製品: KRS-4033HV、KRS-4034HV

■対象ロット:2010年5月出荷のもの

■正誤内容

製品付属B4紙マニュアルのオモテページ、「ICS項目の説明」の「ストレッチ1(SET1) ~ ストレッチ3(SET3)」の説明内容でサーボへの電源投入直後の動作について。


サーボへの電源投入直後はストレッチ1(SET1)が必ず呼び出されます。

 

:サーボへの電源投入直後は上記のストレッチで設定した値が必ず呼び出されます。

※マニュアルで「ストレッチ1(SET1) ~ ストレッチ3(SET3)」の説明内容の上に表記してある「ストレッチ」のことを指します。

 

20100609_KRS-403Xマニュアル正誤表

 

※画像をクリックすると大きくなります

該当するお客様は、恐れ入りますが、訂正をお願いいたします。


 

       

■この記事へのリンクはこちらです。
 

       

■サーボブラケットE(肘旋回ユニット)取り付け図

 
関連カテゴリー: オプション, ダウンロード, テクニカルガイド

サーボブラケットE(肘旋回ユニット)取り付け図を公開します。pdficon
PDFファイルをダウンロードしてご覧ください。

 

■この記事へのリンクはこちらです。
 

       

■KHR-3HVオプション搭載と設定マニュアル

 
関連カテゴリー: KHR-3HV, ダウンロード, テクニカルガイド

 

ロボットキット「KHR-3HV」への各種オプションの搭載と設定方法を記したマニュアルです。

KHR-3HVへのオプション搭載事例と、コントロールボード「RCB-4HV」、ソフトウェア「HeartToHeart4(HTH4)」の設定方法が記述されています。

RCB-4HVを単体でお買いあげいただいたユーザー様におかれましても、RCB-4HVへのオプション接続時にこれらマニュアルをご利用ください。

また、オプションの種類によってはサンプルモーションも公開しています。

 

 

【KHR-3HV無線の搭載と設定マニュアル】 2009.12.15公開 第1版

      

         KHR-3HVOptionManual_RADIO

                 (PDF-約1.8MB)

 

      ■対象製品       : 送信機「KRC-3 AD」受信機「KRR-1」、データ変換「KRI-3」

      ■オプションの役割  : 無線によるロボットのモーション再生など

      ■マニュアルの内容  :  ・KRI-3の設定確認と通信速度の変更

                       ・機器の配線接続図

                       ・KRR-1とKRI-3のKHR-3HVへの搭載

                       ・無線でモーションを再生させる

                       ・無線でモーションを分岐させる

                       ・トラブルシューティング

 

【KRI-3設定用ソフトウェア ”KRI3Manager” 】 2009.9.19公開 Ver1.00

      

         KRI3ManagerV100R20090919

                 (ZIP-約5.2MB) ※ダウンロード後解凍してご使用ください。

 

      ■対象製品       : データ変換「KRI-3」

      ■ファイルの内容  : KRI3Manager.EXE (設定用ソフトウェア)

                    KRI-3ManagerV100R20090919.PDF (ソフトウェアマニュアル)

      ■解説         : KRI-3のIDやボーレート(通信速度)を変更するためのソフトウェアです。

      ■ご注意:

KHR-3HV(RCB-4HV)に接続する場合、KRI-3のIDは必ず[31]である必要があります(※出荷時設定済み)

サーボなどのボーレート(ICS通信速度)とKRI-3のボーレートは同じ値に設定する必要があります。

※本ソフトウェアを使用するにはパソコンとICS機器用の通信アダプター「ICS-USBアダプターHS」を別途ご用意いただく必要があります。           

 

 

 

【KHR-3HVジャイロセンサーの搭載と設定マニュアル】 2009.9.28公開 第2版

      

          KHR-3HVOptionManual_KRG-4 

                 (PDF-約1.7MB)

 

      ■対象製品       : ジャイロセンサー「KRG-4」

      ■オプションの役割  : ロボットの姿勢安定

      ■マニュアルの内容  :  ・KRG-4のKHR-3HVへの搭載

                       ・KRG-4とRCB-4HVの接続

                       ・HTH4での初期設定(ミキシング機能)

                       ・HTH4のモーション内でのジャイロ設定

                       ・トラブルシューティング

 

【KHR-3HV加速度センサーの搭載と設定マニュアル】 2009.10.1公開 第1版

      

          KHR-3HVOptionManual_RAS-2 

                 (PDF-約1.4MB)

 

      ■対象製品       : 加速度センサー「RAS-2」

      ■オプションの役割  : ロボットの姿勢の検知(転倒方向の検知)

      ■マニュアルの内容  :  ・RAS-2のKHR-3HVへの搭載

                       ・RAS-2とRCB-4HVの接続

                       ・HTH4での動作確認

                       ・HTH4のモーション内でのアナログ分岐

                       ・トラブルシューティング

 

【オプション搭載版サンプルモーション】 2009.10.1公開 Pack1

      

          MotionPack1 

                 (ZIP-約4KB) ※ダウンロード後解凍してご使用ください。

  

      ■パッケージ内容  :

       ・「For Acceleration」フォルダ  (加速度センサーRAS-2モーション) 2009.10.1更新

           

■この記事へのリンクはこちらです。
 

       

■アルミフリーホーン2500A(PCDφ14-M2-オフセット0)仕様事例

 
関連カテゴリー: KHR-3HV, ダウンロード, テクニカルガイド

  サーボモーター用オプションパーツの使用事例をご紹介します。

これらオプションパーツを有効活用すれば、自作ロボットなどで創作の幅を広げることが可能です。

 

 ■製品名  :[No.02079] アルミフリーホーン2500A(PCDφ14-M2-オフセット0)

 ■対象製品:ロボット用サーボモーター KRS-2552HV 

ALFREE2500A_01 20090918-1(1)

  (画像:アルミフリーホーン2500A)                    (画像:KRS-2552HV)

 

 

   【製品の特徴】

 

 1,「関節を両軸支持に」

 サーボモーターのボトムケース軸に装着するフリーホーンです。

このパーツを用いることで関節を両軸支持にすることが出来、剛性を確保することが出来ます。

 

 2,「サーボアーム取り付け寸法がKRS-4000シリーズと互換に

 サーボの出力軸側にローハイトサーボホーン([No.01029]、[No.01042]、[No.01214]など)を装着することで、サーボアームの取り付け寸法がKRS-4000シリーズと互換になります。

これにより、従来KRS-4000シリーズで使用していたサーボアーム類がそのままKRS-2552HVで使えるようになります。

 

 3,「自作ロボットの製作を支援」

 KRS-2552HVにローハイトサーボホーンおよびフリーホーンを装着した状態の寸法図を公開中です。

PDFの他、DXFデータも公開していますので、大抵のCADでそのまま形状データが使用可能です。

    KRS2500_Scale

     ※ダウンロード後解凍してください 

 

 

   【製品仕様事例】

 

  株式会社イトーレイネツ製フレームとの組み合わせ事例をご紹介します。

 

 ALFREE2500A_02

    KRS-4000シリーズ用アーム SC-40A 

  KRS-4000シリーズ用のサーボアームがそのまま装着できます。 

■サーボ以外の使用パーツ:

  イトーレイネツ製サーボアーム 「KRS-4000シリーズ用アーム SC-40」 1個

  [No.02079] アルミフリーホーン2500A(PCDφ14-M2-オフセット0) 1個

    [No.01042] アルミローハイトサーボホーン(ガンメタリック) ※PCDφ14-M2-オフセット0 1個

※ネジ類はSC-40Aに付属

 

 

ALFREE2500A_03

  KRS-4000シリーズ用アーム SC-40A(クロス) 

 サーボアームを互い違いに接続することでクロス関節が作成できます。

■サーボ以外の使用パーツ:

  イトーレイネツ製サーボアーム 「KRS-4000シリーズ用アーム SC-40」 2個

  [No.02079] アルミフリーホーン2500A(PCDφ14-M2-オフセット0) 2個

    [No.01042] アルミローハイトサーボホーン(ガンメタリック) ※PCDφ14-M2-オフセット0 2個

  ※ネジ類はSC-40Aに付属

 

 

ALFREE2500A_04

  KRS-4000シリーズ用アーム SC-40A

           +

  KRS-2500シリーズ用ブラケット(SC-2500B1)

 サーボアームとブラケットを組み合わせることでサーボアーム同士とは別のクロス関節が作成可能です。

■サーボ以外の使用パーツ:

  イトーレイネツ製サーボアーム 「KRS-4000シリーズ用アーム SC-40」 1個

  イトーレイネツ製サーボブラケット「KRS-2500シリーズ用ブラケット(SC-2500B1)」

  [No.02079] アルミフリーホーン2500A(PCDφ14-M2-オフセット0) 2個

    [No.01042] アルミローハイトサーボホーン(ガンメタリック) ※PCDφ14-M2-オフセット0 2個

  ※ネジ類はSC-40AとSC-2500B1に付属

 

  

 

   

 

 

■この記事へのリンクはこちらです。
 

       

■ICS2.0サーボのデイジーチェーン接続時のご注意

 
関連カテゴリー: ICS, KHR-3HV, ダウンロード, テクニカルガイド

 RCB-4HV(KHR-3HV)では従来のICS2.0サーボも使用できますが、KRS-4014SHV、13HVのようにシリアルモードとPWMモードの自動切 り替え機能を持つサーボモーターと、KRS-2552HVなどのシリアル専用サーボモーターを混在して使用するためには、次の手順でKRS-40XXのICS設定でPWMモードを明示的に禁止にしてください

 

■対象製品: ロボット用サーボ KRS-4014SHV、KRS-4013HV

※ICS2.0サーボ(シリアルモードとPWMモードの自動切り替え機能を持つサーボ)

■対象事例:

RCB-4HV(KHR-3HV)でKRS-4014SHV、KRS-4013HVを使用する場合。

その他デイジーチェーン接続(サーボの数珠繋ぎ)でKRS-4014SHV、KRS-4013HVを使用する場合。

※特にICS3.0サーボと混在して使用する場合

 

PWMモードを禁止する手順は次の2通りです。

 

【1.ICS-USBアダプターを使用する方法】

■用意する物: ICS-USBアダプター(旧タイプ) 「No.01106」

                          または,ICS-USBアダプターHS 「No.02043」

■手順:

  1. サーボマネージャダウンロードページ「http://kondo-robot.com/sys/archives/153」にアクセスし、タイトル「■ICS2.0シリアルマネージャ」をクリックして「SerialManagerV1R1.exe」をダウンロードします。
  2. 同ページにあるPDFのマニュアルを参考にして、ICS USBアダプター、サーボモーターをPCへ接続します。
  3. SerialManagerV1R1.exeを起動し、ICS USBアダプターを接続したCOMポートを選び、IDの「What's Number」欄で一度プルダウンメニューを開き、「What's Number」を選択し直します。
  4. 正しいIDが表示されたら、マニュアル7ページを参考に呼び出しボタンを押します。
  5. 11ページを参考に、PWM禁止欄を「ON」にします。
  6. 7ページを参考に、「書き込み」ボタンで設定を書き込みして完了です。

 

【2.RCB-3HVのマネージャ機能を使用する方法】

■用意する物: RCB-3HV(RCB-3Jは対応していません)

■手順:

   ※RCB-3HVの操作については製品付属マニュアルをご参照ください。

  1. RCB-3HVの任意のチャンネルにサーボを接続します。サーボは必ず電源投入前に接続してください。
  2. RCB-3HVに電源を投入し、パソコンと接続します。
  3. HTH3のオプション設定画面でサーボを接続したチャンネルの設定でシリアルモードをONにします。
  4. オプション画面を閉じ、RCB-3HVをリセット(電源を再投入)します。
  5. HTH3のICS設定画面を開き、サーボの設定で「PWM禁止」を「ON」にします。
  6. ICS設定画面を閉じ、RCB-3HVの電源を切れば完了です。
■この記事へのリンクはこちらです。
 

3ページ中 1 ページ目を表示。1 2 3