HSWB-03F 双葉電子工業株式会社コマンドサーボ対応 ホビーロボットコントローラ
HSWB-03Fインタープリタ スクリプト記述方法
HSWB-03Fインタープリタ 変数について
HSWB-03Fインタープリタ コマンド一覧(さらに詳しい解説は製品添付の取扱説明書PDFを参照ください。)
コメント記述 ;
コメント行は半角英字のセミコロンで開始されます。
セミコロン以降は2バイト文字コードが使用可能です。
ラベル記述 :
分岐先などの指定のためのラベルを記述します。
ラベル名は最大80文字までの半角英数字が使用可能です。
英字については大文字のみ使用可能です。
スクリプトに使用されているキーワード(予約語)は使用することができません。
演算代入式 =
2バイト符号付整数の演算を行います。
左辺の演算結果を右辺の変数に代入します。
左辺の演算は左側から行われ演算子の優先順位、括弧などを用いた優先順位指定はありません。
演算項と演算子は半角の空白で区切る必要があります。
演算項は整数変数、シリアルサーボ変数、1次元配列変数、固定整数値が使用できます。
演算子は+、-、*、/、AND、OR、EXORが使用可能です。
無条件分岐 JUMP
指定されたラベルに無条件に分岐します。
条件分岐 JUMPIF
条件を指定し、条件が正立する場合のみ分岐を行います。
条件は=、>、>=、<、<=、#(NOT)が使用できます。
サブルーチンコール CALL
よく使う処理手続きをひとまとめ(サブルーチン)にし、呼び出して使用することができます。
最大3ネストまでサブルーチンを呼び出すことができます。
サブルーチンから呼び出し元に復帰する場合はRETURN命令を使用します。
サブルーチンリターン RETURN
サブルーチンから呼び出し元へ復帰する場合に記述します。
ネスティングは自動的に処理されるので必ず呼び出しと復帰は対でなければなりません。
CALL命令で呼ばれないままRETURN命令を実行するとマイコン自体が暴走する恐れがあるので注意が必要です。
デジタル入力ポート INPUTD
デジタル入力ポートD7からD0の状況を整数変数に代入します。
入力結果はD7をMSB、D0をLSBとした符号なしバイナリーデータで変数に格納されます。
アナログ入力ポート INPUTADC
アナログ入力ポートのデータを整数変数に代入します。
入力ポートは0から5までが外部入力、6は未使用、7はバッテリー電圧を監視することができます。
バッテリー電圧は3分圧された結果を入力しています。
入力範囲は0から5VのDC入力です。
入力は8ビット分解能で処理され、5V入力のとき、変数には255が代入され、0Vのときは0が入力されます。
待機コマンド WAIT
時間待ちを行うためのコマンドです。
待機時間は1カウントから200カウントまで指定でき、1カウントあたり5ミリ秒の間、スクリプトの実行を停止します。
固定数値指定のみ可能です。
タイマー変数 (N127
配列変数(N127は5ミリ秒ごとに1カウントアップされるタイマー変数になっています。
値を初期化する場合は任意の数値を代入してください。
値を呼び出す場合は通常の代入式を使用するか条件分岐を利用してください。
サーボモータ動作制御1 MOVE
ホームポジションの位置を基準として、サーボを動作(移動)します。
それぞれのサーボに指定する数値は、-3000から+3000 の指定ができますが、ホームポジションの位置により有効となる値が異なります。
例えばホームポジションが、絶対値0 の場合は、0 〜 3000 が有効です。
絶対値1500 の場合には、-1500 〜 +1500 ということになります。
速度:移動時間の指定です。1 〜 32000 が有効値です。760= 約1 秒となります。
ハードウエアによるスピード以上は意味を持ちません。
サーボnの動作量は数値による指定か変数による指定、未指定(動作対象からはずす)を選択できます。
数値指定の場合その数値が目標位置となります。(ホームポジションからの相対位置となります。)
変数指定の場合(V10等)その変数が持っている値が目標位置となります。(ホームポジションからの相対位置となります。)
未指定(X)の場合、動作対象からはずれ、現在の位置を保持します。
サーボモータ絶対位置指定移動 Rn
サーボモータに直接位置を指定して動作させるにはサーボモータ変数に値を代入します。R12=1000 等
サーボモータ相対位置指定移動 Rn
サーボモータに相対位置を指定して動作させるにはサーボモータ変数に式をもちいて値を代入します。R12=R112+500 など
ホームポジション定義コマンド HOMESET
ホームポジションを定義するコマンドです。
必要なパラメータは24個分のデータです。
手入力では大変手間がかかりますのでPROGRAM登録画面のHOMESETボタンを利用すると容易に入力できます。
通常では本コマンドを使用する必要はありません。
ホームポジション復帰コマンド HOMEPOS
すべてのサーボモータの位置をホームポジションに復帰します。
移動速度はサーボモータの最大速度になります。
FILE間分岐命令 FJUMP
スロット間のスクリプトで分岐を行います。
サブルーチンコールではありません。
分岐先ファイル番号を変数V00に代入し、実行します。
無線受信機接続時の処理方法
通信機は無線受信機接続端子に接続し
DSW2-1 OFF
DSW2-2 ON
DSW1-4 ON
上記の設定で電源を投入します。(電源投入中に切り替えしないでください。故障の原因となります。)
スクリプトの実行中のみ無線受信機からのデータを取り込みます。
汎用ホビーロボット無線装置接続時
正しく受信されると7バイトのデータが整数変数V120からV126に格納されます。
モータ位置一括読み出し命令 SVREAD
サーボモータ24個の位置情報を一括で読み出します。
サーボ番号1の位置情報はV00、サーボ番号2はV01、・・・サーボ番号24はV23と番号的には一つずつずれて格納されます。
なお、この位置情報はHSWB-03Fから指示している位置情報ではなく、サーボモータ側が検知しているコマンド実行時点の位置情報となります。
モータースピード設定命令 MOTORSPEED
モーターの動作速度を設定します。
サーボモータ パワー設定命令 POWER
モーターごとに駆動のON、OFFを指定します。
モータ1はV00、モータ2はVB01、モータ24はV23に対応し、各変数にパラメータを格納後、本命令を使用します。
サーボモータ トルク設定命令 TORQUE
モーターごとに最大出力値を0から100%まで1%単位で指定します。
モータ1はV00、モータ2はVB01、モータ24はV23に対応し、各変数にパラメータを格納後、本命令を使用します。
音声再生命令 SOUND
音声ファイルを指定し、音声再生を実行させます。
音声ファイル番号をV00に格納します。
再生開始位置(セクター)を下位2バイトをV01に代入し、上位2バイトをV02に格納します。
音声再生量(セクター数)を下位2バイトをV03に代入し、上位2バイトをV04に格納します。
上記設定後、SOUND命令を使用します。
1セクターの再生時間は約4.5ミリ秒です。
1秒間の再生を行う場合、21を指定します。
再生量に0を指定した場合、指定位置からファイルの最後までを再生します。
登録済みモーション呼出し命令 MOTIONCALL
登録済みモーションの管理番号を指定し、モーション再生を実行させます。
指定されたモーション管理番号をもつデータが存在しない場合、正しく動作しないので、番号指定には十分注意してください。
Program画面のMotionImportボタンを活用することをお勧めします。
サーボモータ情報呼出し命令 GETSVSTATUS
番号指定したサーボモータの情報を変数に複製します。
複製されるデータはRS304MDのアドレス2AHから35Hです。
複製先はV00からV05までの変数に格納されます。
赤外線発光ダイオード駆動命令 IRTX
変数V00及び変数V01に格納されているデータ(有効長4バイト)を赤外線発光ダイオードから家電協フォーマットで送信します。
SDカードデータ読込み命令 SDREAD
SDカードに記録されている任意のファイルの任意の位置のデータを読み出します。
読み出すバッファ種別はV00に格納し、0の場合、指定セクターの先頭から144バイトをV651から72個の変数に取り込み、1の場合は先頭から512バイト(1セクター分)を変数V133からV388に格納されます。
読み出すファイル番号は変数V01に格納します。
読み出し位置(セクター)は変数V02に下位2バイト、変数V03に上位2バイトを格納します。
SDカードデータ書き込み命令 SDWRITE
指定バッファのデータをSDカードに記録されている任意のファイルの任意の位置に書き込みます。
書き込むバッファ種別はV00に格納し、0の場合、V651からV722の変数情報を書き込み、1の場合は変数V133からV388の変数情報を書き込みます。
書き込むファイル番号は変数V01に格納します。
書き込み位置(セクター)は変数V02に下位2バイト、変数V03に上位2バイトを格納します。
システム変数エリア
HSWB-03Fインタープリタは変数エリアを通じてシステムにアクセスすることが可能になっています。
下記の変数一覧を参照してください。