ICS Library for Arduino ver.2を公開しました。
ICS変換基板と組み合わせてArduinoで動作するライブラリ『ICS Library for Arduino』のver.2を公開しました。
『ICS Library for Arduino ver.2』
今回は、SoftwareSerialに対応したライブラリを追加しました。こちらを使用することでデジタルI/Oをシリアル端子として使用し、KRSサーボなどICS機器と通信することができます。
●関連商品
●HardwareSerialとSoftwareSerialについて
Arduino Unoは、シリアル(HardwareSerial)端子を使用してPCと通信し、プログラムの書き込みやデータの送受信を行います。また、ICS機器も同様にシリアル(HardwareSerial)端子を使用します。そのため、サーボと通信するためにICS変換基板をシリアル(HardwareSerial)端子に接続すると、PC間の情報とICS機器間の情報と混在してしまう場合があります。Arduino UNOのHardwareSerialは、安定した通信ができる反面、端子が一つしかないことでPC間の通信とサーボ間との通信を同時に行うことができません。
そこで、ICS機器との通信をデジタルI/Oを使用してSoftwareSerialで疑似的にシリアル端子として使用することで、USBをPC間との通信に使用することができます。また、Arduinoで取得した情報をリアルタイムにPCへ送信することが可能になります。
ただし、SoftwareSerialはデータの取りこぼしが起こる可能性がありますので、安定した動作が必要な場合はHardwareSerialで通信することをお勧めします。
●サンプルプログラム
サンプルプログラムの内容は、HardwareSerial、SoftwareSerialで同じ内容の使用方法を紹介していますが、クラスの初期化方法が異なりますのでご注意ください。
・サンプル名:KrsServo1
setPos()関数を使用してIDとポジションデータを送信することで、簡単にサーボを制御することができます。
・サンプル名:KrsServoConvertAngle
ポジションデータを角度に変換したり、逆に角度をポジションデータに変換する方法をご紹介しています。変換したデータをsetPos()でサーボに送信します。
・サンプル名:KrsServoMasterSlave
ひとつのサーボの現在値を取得し、もう一つのサーボに送信することでマスタースレイブを行います。
・サンプル名:KrsServoGetParameter
サーボの電流値(getCur())、温度値(getTmp())、ポジションデータ(getPos() ※ICS3.6のみ)の関数を使用してデータを取得します。
・サンプル名:KrsServoSetParameter
ストレッチ(setStrc())、スピード(setSpd())の関数を使用して各パラメータの値を変更します。
・サンプル名:KrrButton
KRR-5FH受信機が送信機から受信したボタンデータをもとにサーボを動かします。getKrrButton()関数を使用することで簡単にデータを取得できます。KRC-5FHを使用したArduinoの無線操縦が可能です。
・サンプル名:KrrAnalog
KRC-5FHにはアナログ入力の端子が装備されています。ここに接続したセンサなどの情報をKRR-5FHが受信し、Arduinoで取得することができます。
詳細なご利用方法は、ライブラリ付属のマニュアルをご参照ください。
●サポート記事
ICS変換基板の詳しいご利用方法は下記のサポート記事をご覧ください。