本稿ではBlocklyによるプログラミングで扱うことになるDobotAPI関連のブロックについて、関数の役割やパラメータの意味を説明いたします。
DobotAPIブロックの説明
以下blockly中での分類ごとに、順に説明いたします。パラメータを入力する部分は
関数名 {パラメータ}
のように波かっこで囲っています。また、生成コード中でパラメータにより変化する部分は斜体(イタリック)で表します。
Basic
- Home
生成コード: dType.SetHOMECmdEx(api, 0, 1)
説明: ホーム動作を行います。
- GetTime
生成コード: dType.gettime()[0]
説明: 現在のシステム時間[秒]を取得します。
- DelayTime {0}s
生成コード: dType.dSleep(0)
パラメータ: 時間[s]
説明: パラメータで定めた秒数ぶんの待ち時間を設定します。待ち時間中は次のコマンドを処理しません。
Config
- ChooseEndTools {SuctionCup}
生成コード: dType.SetEndEffectorParamsEx(api, 59.7, 0, 0, 1)
パラメータ: {SuctionCup, Gripper, Laser, Pen}より選択
説明: アーム先端アタッチメントの種類に応じたオフセット値を設定します。
- Set End Effector Params XBias{0} YBias{0} ZBias{0}
生成コード: dType.SetEndEffectorParamsEx(api, 0, 0, 0, 1)
パラメータ: (1)x軸方向 (2)y軸方向 (3)z軸方向 のオフセット値
説明: アーム先端アタッチメント部に関して、xyz各方向のオフセット値を設定します。
- SetMotionRatio VelocityRatio{20} AccelerationRatio{50}
生成コード: dType.SetPTPCommonParamsEx(api, 20, 50, 1)
パラメータ: (1)速度比 (2)加速度比
説明: PTPモードにおける速度比と加速度比を設定します。
- SetJointSpeed Velocity{20} Acceleration{50}
生成コード: dType.SetPTPJointParamsEx(api, 20, 50, 20, 50, 20, 50, 20, 50, 1)
パラメータ: (1)速度[°/s] (2)加速度[°/(s^2)]
説明: PTPモードにおける4つのジョイント部の速度と加速度を設定します。
- SetCoordinateSpeed Velocity{20} Acceleration{50}
生成コード: dType.SetPTPCoordinateParamsEx(api, 20, 50, 20, 50, 1)
パラメータ: (1)速度[mm/s] (2)加速度[mm/(s^2)]
説明: PTPモードにおけるデカルト座標系各軸方向、アーム先端部の速度と加速度を設定します。
- SetLinearRailSpeed Velocity{20} Acceleration{50}
生成コード: dType.SetPTPLParamsEx(api, 20, 50, 1)
パラメータ: (1)速度[mm/s] (2)加速度[mm/(s^2)]
説明: PTPモードにおけるスライドレールの速度と加速度を設定します。
- SetJumpHeight Height{20}
生成コード: dType.SetPTPJumpParamsEx(api, 20,100, 1)
パラメータ: 高さ
説明: JUMPモードでアームを持ち上げる高さを設定します。
- Set Lost Step Params {0}Degree
生成コード: dType.SetLostStepParams(api, 0)
パラメータ: 閾値[°]
説明: 位置ずれを検知する際の閾値を設定します。ここで設定した値を超えていれば、ステッピングモーターの脱調が起こったと判断します。
Motion
- JumpTo X{200} Y{0} Z{0}
生成コード: dType.SetPTPCmdEx(api, 0, 200, 0, 0, 0, 1)
パラメータ: (1)x座標の値 (2)y座標の値 (3)z座標の値
説明: JUMPモードでPTPコマンドを実行し、パラメータで指定した位置にアームを移動します。
- MoveTo X{200} Y{0} Z{0}
生成コード:
current_pose = dType.GetPose(api)
dType.SetPTPCmdEx(api, 2, 200, 0, 0, current_pose[3], 1)
パラメータ: (1)x座標の値 (2)y座標の値 (3)z座標の値
説明: MOVLモードでPTPコマンドを実行し、パラメータで指定した位置にアームを移動します。
- MoveDistance ΔX{0} ΔY{0} ΔZ{0}
生成コード: dType.SetPTPCmdEx(api, 7, 0, 0, 0, 0, 1)
パラメータ: (1)x軸方向 (2)y軸方向 (3)z軸方向 の移動距離
説明: MOVLモードでPTPコマンドを実行し、パラメータで指定した値のぶんだけアームを移動します。
- SetR {0}
生成コード:
current_pose = dtype.GetPose(api)
dType.SetPTPCmdEx(api, 1, current_pose[0], current_pose[1], current_pose[2], 0, 1)
パラメータ: r軸方向の回転角
説明: MOVJモードでPTPコマンドを実行し、パラメータで指定した角度になるよう先端アタッチメント部を回します。
- Check Lost Step
生成コード: dType.SetLostStepCmdEx(api, 1)
説明: ステッピングモーターの脱調を検出します。脱調が起こった際はコマンドの実行を一時中断する処理を行います。
- SetJointAngle Joint1{0} Joint2{45} Joint3{45}
生成コード:
current_pose = dType.GetPose(api)
dType.SetPTPCmdEx(api, 4, 0, 45, 45, current_pose[7], 1)
パラメータ: (1)ジョイント1 (2)ジョイント2 (3)ジョイント3 の角度
説明: 本体底部やアームの各関節をパラメータで指定した角度に回転します。
- GetCurrentCoordinate {x}
生成コード: dType.GetPoseEx(api, 1)
パラメータ: {x, y, z, r}より選択
説明: パラメータで指定した位置・角度を取得します。
- GetJointAngle {Joint1}
生成コード: dType.GetPoseEx(api, 5)
パラメータ: {Joint1, Joint2, Joint3, Joint4, L}より選択
説明: パラメータで指定した関節の角度またはスライドレールの位置を取得します。
- SuctionCup {ON}
生成コード: dType.SetEndEffectorSuctionCupEx(api, 1, 1)
パラメータ: {ON, OFF}より選択
説明: 吸着カップ(エアーポンプ)の状態を制御します。ONで吸引開始、OFFで吸引を終了します。
- Gripper {Disable}
生成コード: dType.setEndEffectorGripperEx(api, 1, 1)
パラメータ: {Disable, Release, Gripper}より選択
説明: グリッパーの状態を制御します。Disableは先端アタッチメント部を制御しない状態、Releaseはグリッパーを開いた状態、Gripperはグリッパーを閉じた状態に対応します。
I/O
- SetIOMultiplexing Type{Input 3.3V} EIO{EIO01}
生成コード: dType.SetIOMultiplexingEx(api, 1, 3, 1)
パラメータ:
(1) {Input 3.3V, Input AD, Output 3.3V, Output 5V, Output 12V, Output PWM}より入出力の形式を選択
(2) {EIO01, … , EIO20}より対応するアドレスを選択
説明: 複数の外部インターフェースを利用する際に、各入出力の形式を設定します。
- GetLevelInput EIO{EIO01}
生成コード: dType.GetIODI(api, 1)[0]
パラメータ: {EIO01, … , EIO20}より対応するアドレスを選択
説明: パラメータで指定した入力の状態(low / high)を取得します。
- GetADInput EIO{EIO01}
生成コード: dType.GetIOADC(api, 1)[0]
パラメータ: {EIO01, EIO05, EIO07, EIO09, EIO12, EIO15}より対応するアドレスを選択
説明: パラメータで指定したADC入力の入力値を取得します。
- SetLevelOutput EIO{EIO01} Value{0}
生成コード: dType.SetIODOEx(api, 1, 0, 1)
パラメータ:
(1) {EIO01, … , EIO20}より対応するアドレスを選択
(2) {0(low), 1(high)}より選択
説明: パラメータで指定した出力の状態(low / high)を設定します。
- Set5VOutput EIO{EIO10} IsEnabled{OFF}
生成コード: dType.SetIODOEx(api, 10, 0, 1)
パラメータ:
(1) {EIO10, EIO13}より対応するアドレスを選択
(2) {OFF, ON}より選択
説明: パラメータで指定した5V出力の状態を設定します。
- Set12VOutput EIO{EIO02} IsEnabled{OFF}
生成コード: dType.SetIODOEx(api, 2, 0, 1)
パラメータ:
(1) {EIO02, EIO03, EIO16/SW01, EIO17/SW02}より対応するアドレスを選択
(2) {OFF, ON}より選択
説明: パラメータで指定した12V出力の状態を設定します。
- SetPWMOutput EIO{EIO04} frequency{1} dutyCycle{40}
生成コード: dType.SetIOPWMEx(api, 4, 1, 40, 1)
パラメータ:
(1) {EIO04, EIO06, EIO08, EIO11, EIO14}より対応するアドレスを選択
(2) PWM周波数
(3) デューティー比
説明: パラメータで指定したPWM出力の設定を行います。
- SetMotorSpeed Motor{STEPPER1} Speed{10000}pulse/s
生成コード: dType.SetEMotorEx(api, 0, 1, 10000, 1)
パラメータ: (1) {STEPPER1, STEPPER2}よりモーターの選択 (2) モーターの速度
説明: 拡張モーターの速度を設定します。
- SetMotorSpeedAndDistance Motor{STEPPER1} Speed{10000}pulse/s Distance{10000}pulse
生成コード: dType.SetEMotorSEx(api, 0, 1, 10000, 10000, 1)
パラメータ:
(1) {STEPPER1, STEPPER2}よりモーターの選択 (2) モーターの速度 (3) 移動距離
説明: 拡張モーターの速度およびパルス数に応じたDobotの移動距離を設定します。
Additional
- Laser {ON} Power {50}
生成コード: dType.SetEndEffectorLaserEx(api, 1, 50, 1)
パラメータ: (1) {ON, OFF}より選択 (2) パワー
説明: レーザーの状態を設定します。Powerの値によってPWM出力のデューティー比を定めます。
- SetPhotoelectricSensor {OFF} Version{V1} Port{GP1}
生成コード: dType.SetInfraredSensor(api, 0, 0, 0)
パラメータ: (1) {OFF, ON}より選択 (2) {V1, V2}より選択 (3) {GP1, GP2, GP4, GP5}より選択
説明: 光電センサーのバージョン指定、接続ポート等の設定を行います。
- GetPhotoelectricSensor {GP1}
生成コード: dType.GetInfraredSensor(api, 0)[0]
パラメータ: {GP1, GP2, GP4, GP5}より選択
説明: パラメータで指定したポートに接続している光電センサの値を取得します。
- SetColorSensor {OFF} Version {V1} Port {GP1}
生成コード: dType.SetColorSensor(api, 0, 0, 0)
パラメータ: (1) {OFF, ON}より選択 (2) {V1, V2}より選択 (3) {GP1, GP2, GP4, GP5}より選択
説明: カラーセンサーのバージョン指定、接続ポート等の設定を行います。
- IdentifyColor {r}
生成コード: dType.GetColorSensorEx(api, 0)
パラメータ: {r, g, b}より選択
説明: パラメータで指定した色に対応するカラーセンサーの値を取得します。
- SetConveyor Motor {STEPPER1} Speed {50}mm/s
生成コード:
STEP_PER_CRICLE = 360.0 / 1.8 * 10.0 * 16.0
MM_PER_CRICLE = 3.1415926535898 * 36.0
vel = float(50) * STEP_PER_CRICLE / MM_PER_CRICLE
dType.SetEMotorEx(api, 0, 1, int(vel), 1)
パラメータ:
(1) {STEPPER1, STEPPER2}よりモーターの選択
(2) 速度
説明: コンベアの動作設定を行います。
- SetLinearRail IsEnabled {OFF} Version {V1}
生成コード:
dType.SetDeviceWithL(api, 0, 0)
main.process.emit(“CheckLinearRail”, “”)
パラメータ: (1) {OFF, ON}より選択 (2) {V1, V2}よりバージョン選択
説明: スライドレール利用時の設定を行います。
- MoveLinearRailTo {0}
生成コード:
current_pose = dType.GetPose(api)
dType.SetPTPWithLCmdEx(api, 1, current_pose[0], current_pose[1], current_pose[2], current_pose[3], 0, 1)
パラメータ: 移動距離
説明: パラメータで指定した値のぶん、スライドレール上を移動します。
解説は以上です。