fusion_hat.pwm モジュール

単一 の PWM チャンネル を 制御 する PWM クラス

サンプル

50Hz 、 デューティ サイクル 50% で PWM チャンネル 0 を 制御 する シンプル な 例 。

>>> from fusion_hat.pwm import PWM
>>> pwm = PWM(0)
>>> pwm.freq(50)
>>> pwm.pulse_width_percent(50)

サーボ 用 に 周波数 50 Hz 、 周期 20000us 、 パルス 幅 500-2500us で PWM チャンネル を 制御 する 高度 な 例 。

>>> from fusion_hat.pwm import PWM
>>> pwm = PWM(0)
>>> pwm.freq(50)
>>> pwm.pulse_width(1500) # servo center position
>>> pwm.pulse_width(2500) # servo max position
>>> pwm.pulse_width(500) # servo min position
class fusion_hat.pwm.PWM(channel: int, freq: int = 50, *args, **kwargs)[ソース]

ベースクラス: _Base

単一 の PWM チャンネル を 制御 する PWM クラス

パラメータ:
  • channel (int/str) -- PWM チャンネル 番号 (0-11 / P0-P11)

  • freq (int, optional) -- PWM 周波数 。 デフォルト は 50Hz

  • addr (int, optional) -- I2C アドレス 。 デフォルト は 0x17

  • *args -- fusion_hat._i2c.I2C へ 渡す 追加 引数

  • **kwargs -- fusion_hat._i2c.I2C へ 渡す 追加 キーワード 引数

例外:

ValueError -- 無効 な チャンネル 番号

CHANNEL_NUM = 12
PATH = '/sys/class/fusion_hat/fusion_hat/pwm'
enable(enable: bool = True) None[ソース]

PWM チャンネル を 有効 / 無効 に する

パラメータ:

enable (bool, optional) -- 有効 または 無効 。 デフォルト は True

read_period() int[ソース]

周期 を ms 単位 で 取得 する

戻り値:

ms 単位 の 周期

戻り値の型:

int

write_period(period: int) int[ソース]

周期 を ms 単位 で 設定 する

パラメータ:

period (int) -- ms 単位 の 周期

read_duty_cycle() int[ソース]

デューティ サイクル を ms 単位 で 取得 する

戻り値:

ms 単位 の デューティ サイクル

戻り値の型:

int

write_duty_cycle(duty_cycle: int) int[ソース]

デューティ サイクル を ms 単位 で 設定 する

パラメータ:

duty_cycle (int) -- ms 単位 の デューティ サイクル

freq(freq: float | None = None) float[ソース]

周波数 を 設定 / 取得 する 。 空欄 の 場合 は 周波数 を 取得

パラメータ:

freq (float, optional) -- 周波数 (0-65535) (Hz) 。 デフォルト は 50Hz

戻り値:

周波数

戻り値の型:

float

prescaler(prescaler: int | None = None, raw: bool = False) int[ソース]

[非推奨] プリスケーラ を 設定 / 取得 する 。 空欄 の 場合 は プリスケーラ を 取得

period(period: int | None = None) int[ソース]

周期 を 設定 / 取得 する 。 空欄 の 場合 は 周期 を 取得

パラメータ:
  • period (int, optional) -- 周期 (0-65535) 。 デフォルト は 0

  • raw (bool, optional) -- 周期 を 直接 書き込む か どうか 。 デフォルト は False

戻り値:

周期

戻り値の型:

int

duty_cycle(duty_cycle: int | None = None) int[ソース]

デューティ サイクル を ms 単位 で 設定 / 取得 する

パラメータ:

duty_cycle (int, optional) -- デューティ サイクル

戻り値:

デューティ サイクル

戻り値の型:

int

pulse_width(pulse_width: int | None = None) int[ソース]

パルス 幅 を ms 単位 で 設定 / 取得 する

パラメータ:

pulse_width (int, optional) -- ms 単位 の パルス 幅

戻り値:

パルス 幅

戻り値の型:

int

pulse_width_percent(pulse_width_percent: float | None = None) float[ソース]

パルス 幅 の 割合 を 設定 / 取得 する 。 空欄 の 場合 は 割合 を 取得

パラメータ:

pulse_width_percent (float, optional) -- パルス 幅 の 割合 (0-100) 。 デフォルト は 0

戻り値:

パルス 幅 の 割合

戻り値の型:

float

close() None[ソース]

PWM チャンネル を クローズ する

__del__() None[ソース]

オブジェクト が 削除 さ れ た 際 に PWM チャンネル を クローズ する