このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

クラス Servo -- 3線ホビー用サーボドライバー

Servo オブジェクトは、3本のワイヤー(グラウンド、電源、信号)で接続される標準的なホビー用サーボモーターを制御します。pyboard 上には、このようなモーターを接続できるの4つの場所があります: ピン X1 から X4 は信号ピンであり、その隣には電源とグラウンドの4つのセットのピンがあります。

使用例:

import pyb

s1 = pyb.Servo(1)   # X1 のサーボオブジェクトを作成
s2 = pyb.Servo(2)   # x2 のサーボオブジェクトを作成

s1.angle(45)        # サーボ1を45度に移動
s2.angle(0)         # サーバ2を0度に移動

# サーボ1とサーボ2を同期させて、それぞれを1500ミリ秒かけて移動
s1.angle(-60, 1500)
s2.angle(30, 1500)

注釈

Servo オブジェクトは PWM 出力を生成するために Timer(5) を使います。Timer(5) を Servo 制御に 使うか、他の目的のために使うことはできますが、両方の目的のために同時に使うことはできません。

コンストラクタ

class pyb.Servo(id)

サーボオブジェクトを作成します。 id は1から4までで、それぞれ X1 から X4 のピンに対応します。

メソッド

Servo.angle([angle, time=0])

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

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

  • angle は度数で移動する角度です。

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

Servo.speed([speed, time=0])

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

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

  • speed は -100 から 100 の間の速度です。

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

Servo.pulse_width([value])

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

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

Servo.calibration([pulse_min, pulse_max, pulse_centre[, pulse_angle_90, pulse_speed_100]])

引数を指定しない場合、この関数は現在のキャリブレーションデータを、5つの項目を持つタプルで返します。

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

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

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

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

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

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