86Duino Motion Editor v1.9
86Duinoモーションエディタ(86ME)は、86Duino開発ボードをサポートし、ロボットモーションの編集を大幅に高速化します。また、ロボットの操作と編集に必要な86Duinoプログラムを自動生成します。86MEコンセプトビデオ:
インストール手順
現在、86MEはWindows XP/Vista/7/8/10をサポートしています。Microsoft .NET Framework 4.0がインストールされている必要があります。86MEをダウンロードして解凍すると、「86ME」フォルダが作成されます。フォルダ内のファイルには、以下に示すように、86ME実行ファイル、必要なライブラリ、および説明書が含まれています。86MEを使用するには、サポートされている環境で86ME.exeを実行するだけです。
準備
したがって、オフラインモードではファイル編集と 86Duino プログラム生成のみがサポートされ、リアルタイムモーター制御はサポートされません。モーターの動作を直接制御するには、86DuinoのUSBデバイスをコンピュータのUSBポートに接続し、86Duinoが接続されているCOMポートを選択します(自動または既知のCOMポートを選択)。86Duinoが接続されているポートを確認するには、デバイスマネージャーで86Duinoと接続されているCOMポートを確認してください。以下の例では、86DuinoはコンピュータのCOM4に接続されています。86Duinoが接続されていない状態で自動モードを選択した場合、プログラムは実行中にオフラインモードに戻ります。 一般的に、オフラインモードは、ロボットの動作に既に慣れているユーザーに適しており、既存のファイルを簡単に編集して調整できます。自動モードでは、ユーザーは86MEを簡単に使い始めることができます。ただし、コンピュータに複数の86Duinoまたは複数の異なるCOMポートが接続されている場合は、混乱を避けるため、選択モードを使用することをお勧めします。COMポートの設定が完了したら、「スタート」ボタンを押して86MEのメインウィンドウを開くか、「終了」ボタンを押して終了してください。
機能説明
ここではまず、プログラミングインターフェースをいくつかのセクションに分けて説明します。
(1) 同期機能では、現在選択されているフレームをロボットに即座に同期させるかどうかを選択できます。
(2) スロットマシンでは、同期中のモーターの速度を設定できます。速度は5段階あり、右側が最も速く、左側が最も遅くなります。
(3) モーターを解放します。これにより、モーターは電力を出力しなくなります。
(4) キャプチャー。現在のモーター角度を読み取るために使用されます。現在サポートされているモーターは、Kondo、Hitec、およびFutabaシリーズのモーターです。キャプチャー機能は最初にすべてのモーターを解放するため、使用時にはご注意ください。ロボットが適切に支えられていない場合、落下する可能性があります。
(1) このアクションへの移動時間をミリ秒単位で設定します。
(2) 選択されたアクションがフレームの場合、アクションエリアに86Duinoフレームファイルの保存/読み込みボタンが2つ表示されます。「保存」ボタンは、現在選択されているフレームを現在のフレームに保存します。サーボの角度はテキストファイルに保存され、「読み込み」ボタンは、保存されたフレームファイルの値を現在のフレームに読み込みます。
- 86Duinoと86ME間のブリッジの確立: 86MEはFirmataライブラリを介して86Duinoにコマンドを送信します。そのため、86MEを使用する前に、86Duino Coding 210のサンプルプログラム([ファイル] -> [例] -> [Servo86] -> [MotionEditor])を86Duinoにダウンロードする必要があります。通信ブリッジが確立されると、86MEの操作を正式に開始できます。
- 接続方法と手順: 現在、86MEはコンピュータのCOMポートを介して86Duinoに接続し、モーション信号を送信することができます。86MEは最初に、86Duinoとコンピュータ間のインターフェースを選択するようにユーザーに求めます。接続の初期化には、自動、オフライン、および選択の3つのモードがあります。86ME.exeを実行する前に、これらのモードを理解しておく必要があります。図の–auto–オプションは、最後に追加されたCOMポートを開きます。COM4は、86MEがコンピュータの現在のCOMポートを検出したことを示します。 –offline– オプションはオフラインモードを示し、86Duino との通信をブロックします。
- このセクションには、「ファイル」、「オプション」、「ヘルプ」 の 3 つのドロップダウンメニューがあります。拡張オプションは以下のとおりです。
- (1) ファイルメニューの機能には、新規プロジェクトの追加、プロジェクトの読み込み、プロジェクトの保存、プログラムの終了などがあります。鋭い目を持つ読者の方は、多くのボタンが最初はグレー表示でクリックできないことにお気づきかもしれません。アクションを編集またはテストするには、まず「ファイル」->「新規プロジェクト」でプロジェクトを作成するか、「ファイル」->「プロジェクトを開く」で以前に保存したプロジェクトを読み込む必要があります。ファイル->プロジェクトを保存で現在編集中のプロジェクトを保存でき、ファイル->終了でプログラムを終了できます。では、新しいプロジェクトを追加するにはどうすればよいでしょうか。ファイル->新しいプロジェクトをクリックすると、ロボット設定ウィンドウが開き、ロボットに関する4つの設定を行うことができます。 (1) 86Duinoボード:ロボットが使用する86Duinoモデルを選択します。現在、ユーザーは86Duino One/Zero/EduCakeから選択できます。異なる86Duinoモデルを選択すると、ユーザーが設定できるSetServoピンの数が異なります。たとえば、86Duino Oneにはモーターを制御できるピンが45本あるため、SetServo 0-44が表示されますが、86Duino ZeroにはSetServo 0-13と42-44のみがあります。
- (2) IMU設定:ロボットが使用する慣性計測ユニット(IMU)を設定します。現在サポートされているIMUモデルには、86Duino One内蔵IMUとRM-G146が含まれます。 IMUモデルを選択し、接続モードに入ったら、「IMU初期化」ボタンで86Duinoに接続されたIMUを初期化し、「自動方向検出」ボタンで現在のIMUベースの方向を検出できます。これらの設定が完了したら、IMU補正機能を正しく使用してロボットのバランス調整を容易にすることができます。
- (3) SetServo:86Duinoに接続されたモーターの設定に使用します。モーターモデル、オフセット、ホームフレーム、モーターがサポートする最大値(Max)、最小値(Min)がユーザー設定用に提供されます。現在サポートされているモーターモデルは次のとおりです。
- モーターを選択後、以下のスクロールバーコントロールオプションを使用してオフセットと開始位置を調整できます。「同期」コントロールにチェックを入れると、オフセットと開始位置の角度がモーターに同期され、リアルタイム調整が可能になります。モーターの許容範囲は、モーターを選択すると自動的に変更されます。手動で調整するには、まず右上隅の最小/最大コントロールを確認する必要があります。IMUが設定されている場合は、「IMU Src」フィールドを設定してIMU補正を有効にし、補正ソースを選択して、「Gain」フィールドで補正係数を設定できます。2つ目の補正ソースを追加するには、「Src 1」アイコンをクリックして「Src 2」に切り替えます。
- (4) ロボット画像の読み込み:モーターの位置をロボットの各部にマッピングしやすくするために、ロボットの代表画像として画像を選択できます。詳細な使用方法については、次のセクションで説明します。
- オプションメニューには、ロボット設定オプションがあり、現在のロボット関連の設定を編集できます。内容は、「ファイル」->「新規プロジェクト」と同様です。
- 設定メニューでは、操作インターフェースの言語を選択できます。現在、英語、繁体字中国語、簡体字中国語、日本語をサポートしています。
- ヘルプメニューには、チュートリアルとバージョン情報があります。チュートリアルをクリックすると、86Duinoウェブサイトの86MEドキュメントにリダイレクトされます。バージョン情報をクリックすると、作者や公式リリースなどの86MEに関する情報が表示されます。 86Duino ファンページ。
- (1) ファイルメニューの機能には、新規プロジェクトの追加、プロジェクトの読み込み、プロジェクトの保存、プログラムの終了などがあります。鋭い目を持つ読者の方は、多くのボタンが最初はグレー表示でクリックできないことにお気づきかもしれません。アクションを編集またはテストするには、まず「ファイル」->「新規プロジェクト」でプロジェクトを作成するか、「ファイル」->「プロジェクトを開く」で以前に保存したプロジェクトを読み込む必要があります。ファイル->プロジェクトを保存で現在編集中のプロジェクトを保存でき、ファイル->終了でプログラムを終了できます。では、新しいプロジェクトを追加するにはどうすればよいでしょうか。ファイル->新しいプロジェクトをクリックすると、ロボット設定ウィンドウが開き、ロボットに関する4つの設定を行うことができます。 (1) 86Duinoボード:ロボットが使用する86Duinoモデルを選択します。現在、ユーザーは86Duino One/Zero/EduCakeから選択できます。異なる86Duinoモデルを選択すると、ユーザーが設定できるSetServoピンの数が異なります。たとえば、86Duino Oneにはモーターを制御できるピンが45本あるため、SetServo 0-44が表示されますが、86Duino ZeroにはSetServo 0-13と42-44のみがあります。
- 「設定の編集」セクションには以下の機能があります。
- アクションブロック、使用可能
- ヒントブロックは、アクションリストの追加方法やアクション実行時の注意事項など、操作のヒントを提供します。86MEを既に登録済みの場合は、使い慣れた操作方法で、思い通りにプログラミングできます。これらのヒントは主に初心者向けで、次のステップを示します。 モーションセクションは、ロボットのモーションを編集およびテストするために使用します。各モーションは「モーション名」で区切られます。例えば、歩行、パンチ、しゃがみなどのモーションを追加できます。「+」ボタンを押すと、以下に示すように「モーション名」を選択できるウィンドウがポップアップ表示されます。
「OK」を押してモーションを追加します。別のモーションを追加するには、「+」を押して同じ手順を繰り返します。既存のモーションを編集するには、「モーション名」フィールドのスクロールバーを使用します。右端にある歯車型のボタンをクリックすると、コピー、名前変更、削除、インポート、エクスポートなど、モーション管理機能が利用できます。
アクションリスト:
モーションを作成したら、アクションリストの編集を開始できます。例えば、アクションのレンダリングに4フレーム必要な場合は、アクションリスト内で右クリックして新しいアクションを追加します。
アクションリストの主な操作は以下のとおりです。
(1) アクションを追加する(アクションは全部で9種類あります)
(2) 選択したアクションを削除する
(3) 選択したアクションを1グリッド上に移動する
(4) 選択したアクションを1グリッド下に移動する
(5) フレームまたはホームフレームをコピーできます。次のセルでは、下の2つのボタンを使って上下に移動することもできます。
アクションリストには便利な機能もあります。フレームの直後に別のフレームが続く場合、新しいフレームを挿入する機能が有効になります。各モーターの角度は、前後2フレームの対応するモーターの角度の合計を2で割った値になります。この機能は、移動距離の大きい2フレームを編集する際に便利です。アクションパラメータの調整方法については、セクション6と使用例で説明します。
アクションリストを編集した後、86Duino に接続している場合は、再生ボタンを押してアクションリストをテストしてください。プロジェクトの最初から最後のアクションまで、この機能を使って動作をテストできます。
トリガー:
下部にある2つのボタンは、現在のプロジェクトを、プロジェクトに書き込めるプログラム(86Duino inoプログラムファイル)にエクスポートします。「86Duinoスケッチ生成(フレームファイル付き)」は、inoファイルと複数のモーション設定ファイルを生成し、「86Duinoスケッチ生成(オールインワン)」はすべての設定を1つのinoプログラムに書き込みます。生成されるファイルは、現在編集中のすべてのモーションに加え、各モーションのトリガーとプロパティに基づいています。トリガー設定は、モーションを選択し、「トリガー」タブで設定します。現在、自動、キーボード、Bluetooth、PS2コントローラー、加速度センサーの5種類のトリガーがサポートされています。
(1) Auto は、Always On、Always Off、Start Up の 3 種類に分かれています。Always On は常にこのアクションを表示し、Always Off は一度も表示しません。Start Up は 86Duino 起動時に一度だけ表示されます。
(2) Keyboard では、Key と Type を設定できます。Key は現在、A~Z、上、下、左、右、空白、ESC に対応しています。Type は、First Press、Pressed、Release に対応しています。Key と対応する状態が満たされると、モーションが実行されます。例えば、ロボットの歩行は Key A、Pressed に設定され、ロボットの起立は Key A、Release に設定されています。A キーを押すとロボットは歩行を続け、A キーを離すと起立状態に戻ります。より完璧な動作にするには、Key A と First Press を半歩の開始ステップとして追加することもできます。
(3) Bluetoothでは、1文字のキー入力、Bluetoothモジュールのモード、ボーレート、シリアルポートを選択できます。例えば、86DuinoのSerial1にBluetoothモジュールを組み込み、前進動作のキーをBに設定し、プログラムを生成して書き込むと、スマートフォンのアプリ(現在は1文字を送信するアプリのみに対応)から信号を送信してロボットを前進させることができます。モードオプションはOneShotとContinuousの2つに分かれています。OneShotモードはアクションを1回だけトリガーし、ロボットにパンチやキックなどの動作をさせることができます。Continuousモードはアクションを連続的にトリガーし、前進、後退などの動作をさせることができます。
(4)PS2コントローラーは、PS2ジョイスティックのボタンをキーとして選択でき、このボタンをトリガーするタイプをキーボードと同様に設定できます。また、PS2ジョイスティックを使用してロボットを制御する場合は、PS2と86Duinoを接続する4つのピン、つまりDAT(データ)、CMD(コマンド)、ATT(アテンション)、CLK(クロック)も設定する必要があります。これらの4つのピンは86Duinoのピンに対応しています。
(5) 加速度センサー機能では、加速度センサーのX、Y、Z軸の読み取り値をトリガー条件として選択できます。各軸の範囲と、読み取り値がその範囲内に留まる時間を設定するだけです。「自動検出」ボタンをクリックすると、現在の加速度センサーの読み取り値が自動的に検出され、ロボット設定ウィンドウでIMUが正しく初期化された後に、空白を埋めるための範囲が選択されます。
(6) WiFiカメラ(WiFi602)は、5V、GND、TX、RXの各ピンを備えたビデオストリーミングモジュールです。電源を入れると、WiFi APが確立されます。スマートフォンをこのWiFiに接続し、アプリを開いてストリームを取得します。さらに、シリアルポート経由でも使用できます。アプリのボタンステータスを送信するには、シリアルポートを選択する必要があります。現在サポートされているキーは、上、下、左、右、A、B で、アプリ内での位置は以下の通りです。
プロパティ設定は現在、以下の2つに分かれています。
(1) ブロックと非ブロックブロックモーションは、生成されたプログラム内の他のモーションによって中断されませんが、非ブロックモーションは他のモーションによって中断されます。
(2) モーションレイヤー:モーションが配置されるレイヤーを設定します。この機能により、異なるレイヤーのモーションを同時にトリガーできます。例えば、ヒューマノイドロボットが移動中にパンチモーションをトリガーできます。ただし、2つのモーションレイヤーで同じサーボが使用されている場合、優先順位の問題が発生します。この場合、レイヤー1のモーションがレイヤー0のモーションよりも優先されます。そのため、モーションをモーションレイヤー1に設定した後、ユーザーは下図に示すように、フレームプロパティで使用するサーボを確認する必要があります。このように、レイヤー0とレイヤー1のモーションが同時にトリガーされた場合、選択されたサーボCH 2とCH 3が優先的にレイヤー1で編集されたモーションを実行します。
(3) 軌道:モーション軌道の計画方法を設定します。現在、Linear、Constrained Cubic、Natural Cubicの3つの方式がサポートされています。2つのCubic方式は、Linear方式と比較して動作中に発生する振動を低減できますが、Natural Cubic方式は最も顕著な効果を発揮します。ただし、Natural Cubic方式はオーバーシュートが発生する可能性があり、動作の曲線が大きくなりすぎる可能性があります。Constrained Cubic方式はこの問題を回避できますが、振動低減効果はNatural Cubicほど顕著ではありません。2つのCubic方式は現在、すべてFramesであるアクションのみをサポートしています。つまり、Frames以外のアクションを含めることはできません。他のアクションが含まれている場合は、自動的にLinear方式に戻ります。使用時にはご注意ください。
(4) IMU補正範囲:IMU補正機能の有効角度を設定します(0~180度、0は補正機能がオフ)。IMUは(-設定値~+設定値)の角度内でのみ補正値を生成します。この機能は、補正の有効範囲を設定できます。補正を必要としないアクションがある場合は、0に設定して補正をオフにすることもできます。最終的に生成されるプログラムには2種類あり、書き込み方法が若干異なります。
INOプログラムを86Duinoに書き込むだけでなく、生成された設定ファイルフォルダを86Duino SDカード( 86Duino スケッチ生成(フレームファイル付き) href="http://www.86duino.com/index.php?p=3203&lang=TW">86Duino SD カード作成)が正しく動作するために必要です。86Duino スケッチ生成(オールインワン)では INO プログラムを 1 つだけ生成し、それを 86Duino に書き込むだけです。
使用例
この例は、86MEの操作方法をユーザーが理解できるようにするためのものです。86MEを用いて、3つのサーボモーターを搭載した6脚ロボットを操作します。これらの6ピンボードは、86Duino Zeroと3つのDMP_RS0263チップをベースにしています。左、中央、右のピンは、それぞれ86Duinoのピン11、ピン43、ピン44に対応しています。
ステップ 1:
ステップ 4: アクションリストの下の空白領域を右クリックし、最初のフィールドで「アクションを追加」を選択します。アクションを選択してリストに追加します。
アクションは9つあり、それぞれの機能は以下で説明します。
フレームを選択すると、事前に設定した3つのモーターを調整できるようになり、ユーザーが調整できるいくつかの機能が有効になります。
遅延 遅延を設定できます。この遅延は単なる一時停止であり、ロボットは動きません。
フラグとGoto
HomeFrame
HomeFrame を選択すると、変更できない初期位置を持つフレームが追加されます。HomeFrame の値は、「オプション」→「ロボット設定」でのみ変更できます。このオプションはホーミングを容易にするためのもので、ユーザーはホーミングアクションが実行される場所を特定できます。 GotoMotion
GotoMotionを使用すると、ロボットは他の動作機能を簡単に制御できます。目標動作とメソッドを設定するだけです。ただし、GotoMotionは生成されたプログラムのみを反映するもので、現時点では86MEの再生機能を使用したテストには対応していません。
If はアクション編集の柔軟性を提供します。現在、50 個の変数といくつかの便利なシステム変数が利用可能です。満たすべき条件を設定するだけで、アクションは指定されたフラグに移動します。
Computeは、単純な計算を実行し、指定された変数(V0~V49)に値を格納します。
リリースアクションを実行すると、すべてのサーボの出力が停止します。このアクションは設定を必要とせず、すぐに有効になります。ロボットが危険(落下など)に遭遇しそうになったときに、過度の力によるモーターの損傷を防ぐために使用できます。
ステップ 5:
目的のアクションを編集したら、「再生」、「一時停止」、「停止」ボタンを使ってテストできます。一般的な実行シーケンスは左下の画像に示されています。「Goto」アクションの場合は、右下の画像にシーケンスが示されています。
次に、別のプロジェクトの編集を続けるか(手順2に戻る)、別のアクション(手順3に戻る)を選択します。または、「プロジェクトを保存」(「ファイル」->「プロジェクトを保存」)を選択して.rbmファイルを生成します。次回「プロジェクトをロード」を選択する際には、以前に保存したプロジェクトを引き続き使用できます。
画像の追加:
この機能を使用すると、モーターのマッピングが簡単になり、プロジェクトをロードするたびにどのモーターがどのロボットの位置に対応しているかを覚えておく必要がなくなります。ロボット画像は、新規プロジェクトの作成時(「ファイル」->「新規プロジェクト」)またはプロジェクト構成の変更時(「オプション」->「ロボット構成」)に追加できます。「ロボット画像のロード」ボタンを使用して、PNG、JPG、またはGIFファイルをロボット画像としてロードできます。一度ロードすると、削除することはできません。設定が完了すると、アクションリストのフレームタイプのアクションでモーターを自由に動かし、モーターとロボットパーツ間の適切な位置合わせを実現できます。
画像を読み込んだ後に保存すると、保存された.rbmファイルはコンピュータ上の画像のパスを記憶します。そのため、画像の場所が変更または削除されると、次回プロジェクトを読み込んだ際に画像が見つからない場合がありますのでご注意ください。
ソースコード
86MEはオープンソースのアクションエディターです。ソースコードはGitHubで公開されています。ご興味のある方は、ぜひダウンロードまたは共有してください。このプロジェクトは、Windows 7/10とVisual Studio 2013 Community Editionで構築されています。
- このブロックは、アクションリスト内の各アクションの詳細(各フレームのモーター角度など)を変更するために使用されます。より詳細な方法については、以下でより詳細な例を示します。
- 86MEフォルダ内の86ME.exeをダブルクリックして実行します。
- COMポートに自動的に接続するには、「–auto–」を選択し、「Start」ボタンを押します。
- 「New Project」をクリックして新しいプロジェクトを作成します。「Robot Configuration」ウィンドウがポップアップ表示されます。
- 「86Duino Board」を、この例で使用する 86Duino モデルである 86Duino Zero に設定します。この例ではIMUがないため、「None」に設定してください。
- ピン11、43、44をDMP_RS0263サーボモーターに設定します。オフセット、ホームフレーム、最大値と最小値はユーザーのニーズに合わせてカスタマイズできます。この例ではデフォルト値を使用しています。IMU補正は「no」に設定してください。
- 「OK」を押してセットアップを完了します。
- プロジェクトを作成すると、「+」ボタンが点灯します。このボタンを使って新しいモーションを追加できます。「+」ボタンを押してください。
- 「新しいモーションの作成」ウィンドウがポップアップ表示されます。 「モーション名」フィールドに、追加したいアクションの名前を入力します。この例では「right」(右折)です。
- 「OK」を押してアクションの作成を完了します。
- Sync にチェックを入れると、ロボットは現在設定されている値に即座に反応します。Sync が選択されている間は、リールを動かしたり数字を変更したりすると、ロボットは即座に反応します。Sync の横にあるスロットマシンは、Sync が有効なときにモーターの速度を調整します。
- Free Motors ボタンは、出力状態にあるすべてのモーターを解放し、無効にします。
- Capture は、現在のモーターの角度を読み取るために使用されます。現在サポートされているモーターは、Kondo、Hitec、および Futaba シリーズです。Capture ボタンを使用してください。キャプチャ機能は全てのモーターを最初に解放するため、特にご注意ください。ロボットを適切に支えないと、落下する可能性があります。
- Play Time(再生時間)は、現在設定されているモーター角度まで移動するのにかかる時間(ミリ秒)です。数値を入力するだけで設定できます。0に設定すると動作がスキップされるため、必ずPlay Time(再生時間)を設定してください。
- モーターに送信するPWM信号値を設定します。スクロールするか、数値を入力することで設定できます。右端の円形ボタンをクリックすると、モーターを個別に同期させることができます。デフォルトでは、同期すると全てのモーターが指定された目標PWM値に従って回転し、緑色の「ON」アイコンが表示されます。このボタンをクリックすると、アイコンが赤色の「OFF」に変わり、モーターは電力出力を停止します。この機能により、現在編集されていないモーターを休止状態にすることができ、長時間の電力出力による焼損を防ぐことができます。
- Gotoとフラグを使用すると、長いフレームを記述することなく、ループ内でアクションをテストできます。フラグ名を設定し、アクションリスト内のフラグと同じ名前であるかどうかを確認します。同じ名前であれば、設定は成功です。
- Goto関数名の設定に加えて、ループ回数、トリガーの有無、Goto回数も設定する必要があります。また、無限にジャンプすることもできます。 Goto の詳細な動作は、再生モードでプログラムが Goto に到達すると、Goto を実行する必要があるかどうかを確認します。実行する必要がある場合、Goto に設定されたターゲットフラグ名を検索し、見つかった場合はそのフラグからアクションの実行を再開します。
- ターゲットフラグの名前を記述します。ここで、先ほど作成したフラグと同じ名前「test」を入力します。
- 実行するかどうかを設定します。
- Goto を無限に実行するかどうかを設定します。
- 実行回数を設定します。
- Target Motion:実行する動作です。目標動作を選択する際はご注意ください。 86MEは現在、自身や互いの呼び出しといった再帰呼び出しをサポートしていません。これらの状況は予期せぬ動作を引き起こす可能性があります。ご注意ください!
- 方法:対象モーションを呼び出す方法と、対象モーションにジャンプする方法の2種類があります。対象モーションを呼び出す方法は、対象モーション実行後も現在のモーションの残りのアクションを継続して実行します。対象モーションにジャンプする方法では、現在のモーションには戻りません。
- 左のサブ数式の変数を設定します。 「V0~V49」はユーザー定義変数です。これらの変数はすべてのアクションで共有されることに注意してください。その他のシステム変数には、「NowTime」(86Duinoの現在時刻(ミリ秒単位))、「Random」(乱数)、「Analog0~Analog5」(86DuinoのA0~A5の読み取り値)、「AccX/Y/Z」(加速度センサーのX軸、Y軸、Z軸の読み取り値)、「GyroRoll」および「GyroPitch」(ベース方向に対する現在のIMU傾斜角)などがあります。RollはX軸、PitchはY軸に対応します。
- 左変数と右変数の述語を設定します。等しい、等しくない、以上、以下、より大きい、より小さいがサポートされています。
- 述語の右辺を設定します。これは左辺と同じです。
- If文が真の場合にジャンプするターゲットを設定します。
- 左のサブ数式の変数を設定します。「V0~V49」を選択できます。
- 使用する数式を選択します。最初の数式では、2つの変数に対して加算、減算、乗算、除算、累乗、剰余、AND、OR などの演算を実行できます。2番目の数式では、1つの変数に対してNOT、平方根、指数、対数、絶対値、マイナス記号、sin、cos などの演算を実行できます。3番目の数式は単純な代入です。4番目の数式では、定数を指定できます。
- 数式を選択したら完了です。