ICS変換基板の使用方法(3) 無線コントロール編

Posted on 2017.08.16 in

 

Exif_JPEG_PICTURE

【関連記事】

   ICS変換基板の使用方法(1) 準備編 

   ICS変換基板の使用方法(2) サーボ制御編

   ICS変換基板の使用方法(4) ID読み書き編

   ICS変換基板の使用方法(4-2) ID読み書き編(番外)

   ICS変換基板の使用方法(5) Arduino Nano EveryでKRSサーボを制御

 

前回までの記事では、ICS変換基板を使用してサーボの制御を行ってきましたが、今回は無線コントロールのご紹介です。

Arduino向けライブラリには無線コントローラKRC-5FHの受信機であるKRR-5FH用の関数が用意されていますので、接続することでArduinoを簡単にボタン操作による無線コントロールを行うことができます。

今回は、KRC-5FH&KRR-5FHの搭載方法とプログラムを解説します。

 

■KCR-5FH&KRR-5FHとは

03099

KRC-5FHは、ロボット用無線コントローラです。KXRシリーズやKHRシリーズに受信機KRR-5FHを搭載することによって、ロボットを無線コントロールできるようになります。

市販のゲームパッドに比べてボタンの数が多いため、より多くのモーションをボタンに割り当て、ワンプッシュで再生することが可能です。

また、コントローラ側にアナログ出力(5V)のセンサーを接続できますので、センサーの情報を元にロボットを動かすこともできます。

 

■用意するもの

KRC-5送受信機セット ×1

無線コントローラ(送信機)、受信機のセットです。ケーブルも付属しますので他に追加で用意するものはありません。

 

■準備:受信機の接続

●ICS変換基板に直接つなげる場合

一番シンプルな接続方法です。送信機付属のZH接続ケーブルBのZHコネクタ側を受信機のSIO端子に接続し、サーボコネクタ側をICS変換基板の空いている端子に接続してください。

ICS_Line201708103

 

 

●デイジーチェーン接続の途中に入れる場合

【ZHコネクタのサーボに配線する(KRS-2500/3200/3300)】

受信機は、前回配線したサーボのラインにつなげることができます。配線のイメージは下記のようになります。

ICS_Line20170810 

 

1)ICS変換基板に接続されているサーボの配線を一度外します。

2)KRR-5FHとICS変換基板をセット付属のZH接続ケーブルBで接続します。

3)KRR-5FHの空いている端子に、サーボのZH接続ケーブルAを接続し完了です。

 

【サーボコネクタのサーボに配線する(KRS-9000/6100/6000/5000/4000)】

KRS-4000シリーズ、6000シリーズなどサーボの端子がサーボコネクタタイプの場合は下記のように配線します。

ICS_Line201708102

1)ICS変換基板に二又ケーブルを接続します。 

2)KRR-5FHにZH接続ケーブルBのZHコネクタ側を接続します。

3)サーボの接続ケーブルと、KRR-5FHの接続ケーブルをそれぞれ二又ケーブルに接続すれば完了です。 

 

■KRR-5FHからのボタンデータについて

送信機KRC-5FHには、各ボタンに数字が割り当てられています。このボタンの数字をKRR-5FHが受信し、Arduinoで読み込むことが可能です。各ボタンの数字は下記のようになっています。
(画像と下記説明の数字は10進数です)

krc5_button_list

各ボタンは組み合わせることができます。例えば、↑と←を同時に押すと1と8ですので9になります。また、シフト1と↑を組み合わせると、512と1で513になります。

SP1、SP2はスペシャルボタンです。SP1は15、SP2は368が割り当てられています。

詳細はKRC-5FH&KRR-5FHのマニュアルをご覧ください。

 

■プログラム解説

サンプルプログラムの「KrrButton」を例にプログラムを解説します。

 

最初に記述されている内容は、サーボと同じです。シリアル通信の設定とsetup()のkrs.begin()で通信がスタートします。この箇所のみHardwareSerial、SoftwareSerialで記述方法が異なります。

●ライブラリ ver.2(HardwareSerialの場合)

 

●ライブラリ ver.2(SoftwareSerialの場合)

 

●ライブラリ ver.1(HardwareSerialの場合)

 

下記のloop()内で無線コントローラからのボタンデータを取得してswitch文で分岐しています。

 buttonData = krs.getKrrButton();は、KRR-5FHが取得したボタンデータを関数で読み出し、変数に代入しています。

if(buttonData != KRR_BUTTON_FALSE)の箇所でボタンデータが取得できているか確認しています。もし取得できていない場合は、KRR_BUTTON_FALSE(0xFFFF)が返ってきますので、これとは違う数字であればTrueになります。

switch(buttonData)からボタンデータの値による分岐です。

条件の「KRR_BUTTON_UP」は↑に該当します。ここでは、↑が押された場合の処理が記述されています。ここに数字を直接書いても問題ありません。↑は1ですので、1と書いても同じように処理されます。

ボタンの組み合わせは、KRR_BUTTON_UP | KRR_BUTTON_RIGHTのように表記します。

ボタンの予約後については、ライブラリ付属のマニュアルp.35をご参照ください。

 

以上で無線コントロールの作業は完了です。他にも送信機に接続したセンサーの情報を取得する関数もありますので、ライブラリ付属のマニュアルを参考にぜひお試しください。

 

 

ICS変換基板の詳細をみる KSBシールド2の詳細をみる ICS変換基板シールドの詳細をみる KXR用オプションボード搭載セットAの詳細をみる KRC-5FH 送受信機セットの詳細をみる KRR-5FH 受信機のみの詳細をみる KXR アドバンスセットA Ver.2の詳細をみる KXR-A5 アーム型 Ver.2の詳細をみる KXR-L4T-R カメ型・ローバー型 Ver.2(アカデミックパック)の詳細をみる KXR用オプションボード搭載セットBの詳細をみる