整数変数
表記:V00からV127までの128個
範囲:-32767〜32767
サーボ変数
表記:R01からR24までの24個
範囲:0から3000
1次元配列変数
表記:(VXX, (NXX, (SXX, (RXX
範囲:XXは0から722までの723個
計算を行う
代入項 = 演算項1 演算子1 演算項2
V00 = 100
V00 = V00 + 100
V00 = V00 + V01 + 100 / 3
(N100 = V00
16bit符号付整数の演算を行う。
右辺の演算結果を左辺に代入。
右辺の演算は左側から行われる。
演算子の優先順位、括弧などを用いた優先順位指定はない。
演算項と演算子は半角の空白で区切る必要がある。
演算項は整数変数、サーボ変数、1次元配列変数、固定整数値が使用できる。
演算子は+、-、*、/、AND、OR、EXORが使用可能。
コメント行
; コメント文
;コメント行の記述を行います。
;
;何も記述しなくてもよい(上記)
半角セミコロン「;」で開始
セミコロン以降は2バイト文字可
最大80文字まで記述可
ジャンプ先のラベル名を記述
:ラベル名
:START
:LOOP
:END
:BACK
半角「:」で開始
ラベル名は最大80文字まで、半角英数字に限らず日本語文字も利用可能
半角英数字が 使用可能
英字については大文字のみ使用可能
スクリプトに使用されているキーワード(予約語)は使用不可
サブルーチンコール
CALL ( ラベル名 )
CALL(SUBROUTINE01)
よく使う処理手続きをひとまとめ(サブルーチン)にし、呼び出して使用
最大16ネストまでサブルーチン呼び出し可能
サブルーチンから呼び出し元に復帰する場合はRETURN命令を使用
無条件分岐
JUMP ( ラベル名 )
JUMP(START)
JUMP(LOOP)
JUMP(END)
指定されたラベル行に無条件で分岐
条件分岐
JUMPIF ( 項1 , 条件 , 項2 , ラベル名 )
JUMPIF(V00,<,100,LOOP)
JUMPIF(V00,#,10,LOOP)
JUMPIF(V00,=,10,LOOP)
条件を指定し、条件が正立する場合のみ分岐
条件は=、>、>=、<、<=、#(NOT)
登録済みモーション呼出し命令
MOTIONCALL
(n)
(n:モーション管理番号)
MOTIONCALL(54)
登録済みモーションの管理番号を指定し、モーション再生を実行
指定されたモーション管理番号をもつデータが存在しない場合、正しく動作しないため番号指定には十分注意が必要
これを使うことはお勧めできません(Micono)
サブルーチン復帰
RETURN
CALL(SUBROUTINE01)
サブルーチンから呼び出し元へ復帰する場合に記述
ネスティングは自動的に処理されるので必ず呼び出しと復帰は対でなければならない。
モータースピード設定
MOTORSPEED (n)
MOTORSPEED(1)
MOTORSPEED(0)
V00=200
MOTORSPEED
モーターの動作速度を設定する
パラメータが0の場合、動作速度がリアルタイムになる
パ ラメータが1の場合、動作速度が3秒固定になる
通常、本コマンドは使用しないが、電源投入時など、起動時の挙動を抑えるために使用
パラメータは固定数値のみ
パラメータなしの場合、V00の値が5ms単位で実行速度になる
実行後、WAIT(10)程度の待ち時間の実行が必要である
サーボモータ動作制御
MOVE (サーボ1,...,サーボ24,速度)
;1秒でホームポジションに復帰する
MOVE(0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,2400)
;サーボ、時間には変数が使える
MOVE(0,0,0,0,0,0,0,0,0,0,V10,0,
0,0,0,V20,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,V00)
;サーボ1番のみ-30°動かす
MOVE(-300,X,X,X,X,X,X,X,X,X,X,
X,X,
X,X,X,X,X,X,X,X,X,X,X,2400)
サーボn :ホームポジションからの 相対角度 を0.1°単位で指定する 。
指定できる値の範囲は、-3000から+3000 であるが、ホームポジションの位置により有効範囲が異なる
。
つまり、
サーボの可動可能角度は-150.0°から+150.0°なので、もし
ホームポジションの位置が60°(600)だった場合、その角度からプラス方向には残り90°可動可能であり、マイナス方向には-210°可動可能である為、サーボ有効範囲は-2100から+900となる
。
変数指定の場合(V10等)その変数が持っている値が目標位置となる。 未指定(X)の場合、動作対象からはずれ、現在の位置を保持
サーボの値には、 定数値 、 V変数 、 未指定(X) を用いることができ、 変数指定の場合、その変数が持っている値が目標位置となり、未指定(X)の場合、現在の位置を保持、つまり動かない
速度 :時間指定で指定。 2400 を指定すると約1秒で動作が終了する速度で動く 。
有効値は、1 ~ 32000 である
が、サーボ自体がもつ最大速度以上のスピードにはならない。
速度の値には、
定数値
、
V変数
を用いることができる。
待機
WAIT (n)
n: 1〜200 (1=5ms)
WAIT(1)
WAIT(200)
時間待ちを行うためのコマンドであり、 待機時間は1カウントから200カウントまで指定できる。
1カウントは5ミリ秒であり、指定したカウント数の間、プログラムの実行が停止する。
値の指定は、
固定数値
のみ可能である。
サーボモータ位置指定移動
Ryy = m
Ryy = Ryy + n
yy: 1〜23のサーボ番号
m: -1500〜1500 (-0.1°単位)
n: -3000〜3000 (-0.1°単位)
R01 = 90
R01 = 180
R01 = 2500
R01 = R01 + 1500
R02 = R02 - 2500
サーボモータ変数に値を代入することで、
サーボの直接動作させることができる。
計算結果がサーボの動作範囲内でなくてはならない。
ホームポジション復帰
HOMEPOS
V00=200
MOTORSPEED
HOMEPOS
WAIT(200)
すべてのサーボモータの位置をホームポジションに戻す。
その動作速度はMOTORSPEEDであらかじめ設定しておくとよい。
ホームポジション定義
HOMESET (サーボ1,,,,,サーボ24)
サーボn:絶対値
HOMESET(600,1500,1500,1500,
1500,1950,2180,1050,600,1500,
1040,1500,1500,1960,1500,2400,
1950,820,1500,1500,1500,1500,
1500,2400)
24個のサーボのホームポジションの値を定義します。
この値を基準として、MOVEなどが動作します。
サーボモータ情報取得
GETSVSTATUS
(
n
)
n
: サーボ番号
GETSVSTATUS(1)
情報を取得したいサーボの番号で指定する。
取得するデータはサーボ内メモリアドレス2AHから35Hの値であり、取得した値はV00からV05までの変数に格納される。
V00(2A-2B):現在位置(下位)
V01(2C-2D):現在位置(上位)
V02(2E-2F):現在時間(下位)
V03(30-31):現在時間(上位)
V04(32-33):現在スピード(下位)
V05(34-35):現在スピード(上位)
モーターパワー設定
POWER
V01=1
V02=0
・
・
V23=1
POWER
WAIT(10)
モーターごとに駆動のON、OFFを指定する。
モータ1はV00、モータ2はV01、モータ24はV23に対応し、各変数にパラメータに1=ON、0=OFFを設定した後、POWERを実行する。
なお、実行後、WAIT(10)程度の待ち時間命令を実行する必要がある。
モータ位置情報一括読み出し
SVREAD
SVREAD
24個のサーボモータ位置情報を変数V00から23に読み込む。
TORQUESET
V01=100
V02=10
・
・
V23=50
TORQUESET
WAIT(10)
24個のモーターの最大出力を0〜100のパーセンテージで指定。
サーボ1〜24の出力値は、それぞれV00~23に設定し、TORQUESETをする。
なお、実行後、WAIT(10)程度の待ち時間命令を実行する必要がる。
ファイル間分岐
V00=
n
FJUMP
n : 5から63
V00 = 7
FJUMP
SDカードに保存されているファイル番号5〜63を番号を指定して実行する。
サブルーチンコールするこごはできません。
分岐先ファイル番号を変数V00に代入した後、FJUMPを実行する。
SDカードデータ読込み
SDREAD
V00=1
V01=6
V02=0
V03=0
SDREAD
SDカードに記録されているファイルの任意の位置からデータを読み込む。
V00-03に値を設定し、SDREADを実行
V00:読込み場所
V00=0の場合 V651から72個
V00=1の場合 V133から512個
V01:ファイル番号
V02-03:ファイル位置
V02:下位セクター
V03:
上位セクター
※1セクター=512バイト
SDカードデータ書き込み
SDWRITE
V00=1
V01=6
V02=0
V03=0
SDWRITE
データをSDカードのファイルの任意の位置に書き込みます。
V00-03に値を設定し、SDREADを実行
V00:書込むデータ
V00=0 V651から72バイト
V00=1 V133から512バイト
V01:ファイル番号
V01=6
V02-03:書込みセクター
V02 下位セクター
V03 上位セクター
※1セクター=512バイト
アナログ入力ポートデータ取得
Vxxx = INPUTADC (ADn)
ADn: 1〜7
V00 = INPUTADC(0)
V01 = INPUTADC(7)
アナログ入力ポートのデータを取得する。
入力ポートは
バッテリー電圧は3分圧された結果
※このポート情報はHSWB-3Fのもので4Fに関してこれと同じではありません。例えば4Fでは2番がバッテリー電圧です。
値範囲は0から5VのDCを8ビット分解能で処理され、5V=255、0V=0となる
拡張AD入力ポートを用いる場合:
デジタル入力ポートデータ取得
Vxxx = INPUTD
V00 = INPUTD
V00 = V00 AND 1
JUMPIF(V00,=,0,BIT0LOW)
デジタル入力ポートD7からD0の状況を変数に代入
入力結果はD7をMSB、D0をLSBとした符号なしバイナリーデータで変数に格納される。
赤外線発光ダイオード駆動
IRTX
V00 = 0 - 5120
V01 = 0 - 1
IRTX
変数V00及び変数V01に格納されている データ(有効長4バイト)を赤外線発光ダイオードから家電協フォーマットで送信する。
※HSEB-4Fには、赤外線出力のポートがない。
音声再生
SOUND
V00=62
V01=235
V02=0
V03=192
V04=0
SOUND
音声ファイルを再生する。
V00:音声ファイル番号
V01-02:再生開始位置(セクター)
V02: 下位2バイト
V03: 上位2バイト
V03-04:再生時間(セクター)
V03: 下位2バイト
V04: 上位2バイト
上記設定後、SOUND命令を実行。
1セクターの時間は約4.5ms
セクター値=n秒/0.0468
時間取得
(N127
Vxxx = (N127
(N127 = 0
JUMPIF((N127,>,100,JIKAN)
配列変数(N127は5ミリ秒ごとに1カウントアップされるタイマー変数になっている。
値を初期化する場合は任意の数値を代入。
値を呼び出す場合は通常の代入式、条件分岐を利用。
-32768~+32767
汎用符号付2バイト整数変数
サーボパラメータ設定に使われる&汎用
0-23はサーボのパラメータとしても使われる
無線受信機用端子からの値がセットされる。
タイマー変数
5m秒ごとに+1カウントされる
+32767を越えると-32768に戻り、カウントアップが継続される
初期値は1が代入されている。2以上を代入するとMOVE命令の実行速度が上がる
値は:1,2,4,8,16
タイマー変数
5m秒ごとに-1カウントされる
システム用なので書き込みは
禁止
新規の受信を行うためにはその都度、数値0を代入し、初期化する必要がある。
ROBOXEROの赤外線リモコンは130のみを使用しており、131は未使用で「0」
音声再生セクタ数のダウンカウンタ
音声再生中は1以上、再生終了時は0が代入される
SDREAD, SDWRITEの命令で V00=1 とした場合に使用する領域
2バイト単位でアクセスする。512バイト分256変数を使用
389:ON-OFF 0=OFF, 1=ON
390:ジャイロ0入力値;0-255
391:ジャイロ1入力値:0-255
392:ジャイロ2入力値;0-255
393:ジャイロ0中央値:通常128
394:ジャイロ1中央値:通常128
395:ジャイロ2中央値:通常128
396:係数0:サーボ17
397:係数1:
サーボ15
398:係数2:
サーボ8
399:係数3:
サーボ10
400:係数4:
サーボ6
401
:係数5:
サーボ18
402
:係数6:
サーボ14
403
:係数7:
サーボ7
404
:係数8:
サーボ11
405
:係数9:
サーボ19
406
:係数10:
サーボ6
407
:係数11:
サーボ24
408
:係数12:
サーボ1
オフセット=(入力値ー中央値)X係数
係数0−4がジャイロ0入力値を使用
係数5−8がジャイロ1入力値を使用
係数9ー12がジャイロ2入力値を使用
409-459までひとつのサーボごとに2変数x24個=48変数
サーボ出力軸の絶対値での指定
457から480の値が、サーボの1から24番のサーボのホームポジションの値を示している。
481-504の24個の変数に個々のサーボごとに動作速度を指定する
1=10m秒, 2=20m秒
505-648の変数には、ひとつのサーボごとに6変数x24サーボ=144の領域を利用
通信バッファー
パソコンとの通信の際、この649-720の72個の変数(144バイト)を使用する。
SDREAD, SDWRITEの命令で V00=0 とした場合に使用する領域でもある
※ここで書いた変種一覧のオリジナルデータは、 JO-ZEROのページ にあります。
端子
ディップスイッチ
ジャイロ端子
アナログ・デジタル入力端子
※RS405CBはコマンド方式とPWM方式両方に対応しているが、製品のコンセプトとしてはコマンド方式が主であるため”C”としている。
※RS405CBはコマンド方式とPWM方式両方に対応しているが、製品のコンセプトとしてはコマンド方式が主であるため”C”としている。
Under Construction...
Under construction...
Under Construction...