class Servo -- 3 線式ホビーサーボドライバ

Servo オブジェクトは、3 本の線(グランド、電源、信号)を備えた標準的なホビーサーボモーターを制御します。

使用例:

import pyb

s1 = pyb.Servo(1)   # create a servo object on position P7
s2 = pyb.Servo(2)   # create a servo object on position P8

s1.angle(45)        # move servo 1 to 45 degrees
s2.angle(0)         # move servo 2 to 0 degrees

# move servo1 and servo2 synchronously, taking 1500ms
s1.angle(-60, 1500)
s2.angle(30, 1500)

注釈

Servo オブジェクトは Timer(5) を使用して PWM 出力を生成します。Timer(5) はサーボ制御に使用することも、独自の目的に使用することもできますが、両方を同時に使用することはできません。

コンストラクタ

class pyb.Servo(id: int)

サーボオブジェクトを作成します。id は 1 始まりのサーボチャンネル番号です。各チャンネルは固定のヘッダーピンに配線されており、チャンネル数は OpenMV Cam によって異なります:

カメラ

Servo(1)

Servo(2)

Servo(3)

OpenMV Cam M7 / H7

P7

P8

P9

OpenMV Cam M4 / H7 Plus / Pure Thermal

P7

P8

--

pyb.Servo は OpenMV Cam N6 では利用できません。

メソッド

angle(angle: int | None = None, time: int = 0) int | None

引数が指定されない場合、この関数は現在の角度を返します。

引数が指定された場合、この関数はサーボの角度を設定します:

  • angle は移動先の角度(度数)です。

  • time は、指定された角度に到達するまでにかける時間(ミリ秒)です。省略した場合、サーボはできるだけ素早く新しい位置に移動します。

speed(speed: int | None = None, time: int = 0) int | None

引数が指定されない場合、この関数は現在の速度を返します。

引数が指定された場合、この関数はサーボの速度を設定します:

  • speed は変更先の速度で、-100 から 100 の間です。

  • time は、指定された速度に到達するまでにかける時間(ミリ秒)です。省略した場合、サーボはできるだけ素早く加速します。

pulse_width(value: int | None = None) int | None

引数が指定されない場合、この関数は現在の生のパルス幅値を返します。

引数が指定された場合、この関数は生のパルス幅値を設定します。

calibration(pulse_min: int | None = None, pulse_max: int | None = None, pulse_centre: int | None = None, pulse_angle_90: int | None = None, pulse_speed_100: int | None = None) Tuple[int, int, int, int, int] | None

引数が指定されない場合、この関数は現在のキャリブレーションデータを 5 要素のタプルとして返します。

引数が指定された場合、この関数はタイミングキャリブレーションを設定します:

  • pulse_min は許可される最小パルス幅です。

  • pulse_max は許可される最大パルス幅です。

  • pulse_centre は中央/ゼロ位置に対応するパルス幅です。

  • pulse_angle_90 は 90 度に対応するパルス幅です。

  • pulse_speed_100 は速度 100 に対応するパルス幅です。