86Duino IDEはCoding 209以降、このライブラリを追加しました。Arduino/86Duinoの既存のサーボライブラリとの完全な下位互換性に加え、プレイヤーがRCサーボベースのロボット(プレイヤー型二足歩行ロボットや六足歩行ロボットなど)をより簡単に操作できるように、多くの新機能が追加されました。Servo86ライブラリを使用すると、ユーザーは以下のことが可能になります。
- 単一のサーボの角度と速度を指定し、複数のサーボが同時に動作するように設定します
- ロボットのすべてのサーボ角度を単一のアクションフレーム(フレーム)として保存でき、アクションフレームの再生時間間隔を自由に決めてロボットのアクションを再現または記録できます。
Servo86 ライブラリは、この記事で説明されているように、Arduino Servo ライブラリの PWM ジッターも改善します。
Servo86 ライブラリを使用して、ロボット モーション エディタを作成しました: 86ME (86Duino Motion Editor)。これを使用すると、ロボットのモーション フレームを編集し、Servo86 ライブラリを呼び出すスケッチ コードを自動的に生成できます。
Servo86 カテゴリ
Servo クラス
このカテゴリは、Arduino/86Duino の古い サーボ ライブラリ のサーボ カテゴリのすべての機能を提供し、サーボの動作フローと回転速度を制御するためのより高度な機能を追加します。
- Servo
- attach()
- attached()
- write()
- writeMicroseconds()
- read()
- readMicroseconds()
- setOffset()
- setVelocity()
- setPosition()
- setRealTimeMixing()
- run()
- pause()
- resume()
- stop()
- release()
- isMoving()
- angleMap()
- detach()
マルチサーボ同期動作機能
以下の機能は、サーボのバッチ処理機能であり、任意の指定数のサーボの同時動作を制御することができます。
ServoFrame クラス
市販のロボットモーション編集ソフトウェアの多くは、コンピュータアニメーションの分野におけるキーフレームの概念を用いてロボットの動作を表現しており、ロボットのポーズ、つまりロボット上のサーボの位置のリストはフレームと呼ばれます。Servo86ライブラリは、モーションフレームでロボットの動作を制御するという概念をサポートするためにServoFrameカテゴリを提供しており、このカテゴリではServo86ライブラリ専用のロボットモーションフレームファイルの読み込みと生成も可能です。
ユーザーは、ServoFrameのsave()関数を使って直接アクションフレームファイルを生成するだけでなく、86MEロボットアクションエディタを使ってアクションフレームファイルを編集・生成することもできます。その後、ServoFrameのload()関数を使ってアクションフレームファイルをプログラムに読み込むことができます。
ServoFramePololu クラス
これは ServoFrame の派生であり、Pololu のモーション エディター Maestro Control Center によって生成されたロボット モーション ファイルの読み取りをサポートし、Servo86 ライブラリで使用するためのロボット モーション フレームを生成します。
ServoFrameKondo クラス
これは ServoFrame の派生であり、KONOD のモーションエディタ HeartToHeart3 によって生成されたロボットモーションファイルの読み込みをサポートし、Servo86 ライブラリで使用できるロボットモーションフレームを生成します。さらに、KONDO サーボの現在の位置をリアルタイムでキャプチャする特別な機能も提供します。
ServoFrameInno クラス
これは ServoFrame の派生であり、Innovati の モーション エディター によって生成されたロボット モーション ファイルの読み取りをサポートし、Servo86 ライブラリで使用するロボット モーション フレームを生成します。
ServoFrameVstone クラス
これはServoFrameの派生であり、VstoneのアクションエディタRobovieMaker2で生成されたロボットアクションファイルを読み込み、Servo86ライブラリで使用できるロボットアクションフレームを生成することをサポートします。(このカテゴリは86Duino Coding 300でサポートされています。)
マルチモーションフレームモーションスムージング機能
86Duino Coding 300以降、Servo86ライブラリはCubic Splineモーションパス補間法をサポートしています。これにより、連続するフレーム間のモーションパンニングがよりスムーズになり、関節機構の振動が低減されます。以下の関数は、連続モーションフレームに対してこのスムーズな補間機能を有効にします。
ServoOffset クラス
Servo86ライブラリは、このような誤差を補正するためにサーボセンターオフセットの微調整をサポートしており、各サーボを正確に調整することができます。このカテゴリでは、サーボセンターオフセットの微調整値(Offset)をServo86ライブラリに定義、保存、読み込むことができます。
ServoOffsetKondo クラス
ServoOffset の派生であり、KONOD のモーション エディタ HeartToHeart3 によって生成されたロボット モーション ファイルからオフセット微調整値を読み取り、それを Servo86 ライブラリに提供してサーボの中心位置の誤差を補正することをサポートします。
ServoOffsetInno クラス
ServoOffset の派生製品であり、Innovati の モーション エディター によって生成されたオフセット微調整値ファイルの読み取りと、サーボ中心の位置誤差を補正するために Servo86 ライブラリへの提供をサポートします。
ServoOffsetVstone クラス
ServoOffsetの派生版で、VstoneのモーションエディタRobovieMaker2で生成されたモーションプロファイルからオフセット微調整値を読み取り、Servo86ライブラリに提供することでサーボの中心位置の誤差を補正します。(このカテゴリは86Duino Coding 300からサポートされています。)
使用制限
TimerOneライブラリとServoライブラリもタイマーを使用します。そのため、ライブラリ間の競合を避けるため、これら3つのライブラリのうち、一度に使用できるのは1つだけです。
86ME モーションエディター
86ME(86Duino Motion Editor)は、ロボットの動作をアニメーションのように編集できるオープンソースのロボットモーションエディタです。ServoFrameで読み込み可能なロボットモーションフレームファイルの生成をサポートし、86Duinoに直接書き込めるロボットモーションプログラムを自動生成できます。詳細は86MEユーザーマニュアルをご覧ください。
デモビデオ
ライブラリリファレンスホーム
86Duinoリファレンスのテキストは、Arduinoリファレンスを改変したもので、Creative Commons Attribution-ShareAlike 3.0ライセンスに基づいてライセンスされています。リファレンス内のコードサンプルはパブリックドメインとして公開されています。