fusion_hat.pin モジュール

ピン 操作 クラス

サンプル

自動 モード を 使用 した 簡単 な 例

>>> from fusion_hat.pin import Pin
>>> pin = Pin(17)
>>> pin.value() # read the pin input value
0
>>> pin.value(1) # output pin value to high
1

出力 モード

>>> from fusion_hat.pin import Pin
>>> pin = Pin(17, mode=Pin.OUT)
>>> pin.value(1) # output high
1
>>> pin.value(0) # output low
0
>>> pin.value() # read current value, not as input
0
>>> pin.on() # output high
1
>>> pin.off() # output low
0

入力 モード

>>> pin = Pin(17, mode=Pin.IN, pull=Pin.PULL_UP)
>>> pin.value() # read the pin input value
0

アクティブ 状態 。 LED が LOW で 有効 な 場合 、 active_state を 設定 する ことで 操作 が 簡単 に なります 。

>>> led = Pin(17, mode=Pin.OUT, active_state=Pin.ACTIVE_LOW)
>>> led.on() # output low but turn on the LED
0
>>> led.off() # output high but turn off the LED
1
>>> led.value() # read current value, not as input
1
>>> led.raw(1) # You can still set the raw value
1

また 、 ボタン が LOW で 有効 な 場合 は 、 active_state を Pin.ACTIVE_LOW に 設定 できます 。 同様 に 設定 可能 です 。

>>> button = Pin(17, mode=Pin.IN, pull=Pin.PULL_UP, active_state=Pin.ACTIVE_LOW)
>>> button.value() # read's pin low but return 1 as pressed
1
>>> button.raw() # You can still read the raw value
0

アクティブ または 非 アクティブ 状態 に 割り込み を 設定 する こと も できます 。

>>> button = Pin(17, mode=Pin.IN, pull=Pin.PULL_UP, active_state=Pin.ACTIVE_LOW, bouncetime=0.02)
>>> def on_press(pin: Pin) -> None:
...     print("press")
>>> def on_release(pin: Pin) -> None:
...     print("release")
>>> button.when_activated = on_press
>>> button.when_deactivated = on_release
pressed
release
class fusion_hat.pin.Mode(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[ソース]

ベースクラス: Enum

ピン の 方向

AUTO = None

ピン 方向 自動

IN

ピン 方向 入力

OUT

ピン 方向 出力

class fusion_hat.pin.Pull(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[ソース]

ベースクラス: Enum

ピン プルアップ / プルダウン

UP

ピン 内部 プルアップ

DOWN

ピン 内部 プルダウン

NONE

ピン 内部 プル なし

class fusion_hat.pin.Active(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[ソース]

ベースクラス: Enum

ピン アクティブ 状態

HIGH = True

ピン アクティブ 状態 HIGH

LOW = False

ピン アクティブ 状態 LOW

class fusion_hat.pin.Trigger(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[ソース]

ベースクラス: Enum

ピン 割り込み

FALLING

ピン 割り込み 立ち下がり

RISING

ピン 割り込み 立ち上がり

BOTH

ピン 割り込み 立ち上がり / 立ち下がり 両方

class fusion_hat.pin.Pin(pin: int, *args, mode: Mode = Mode.AUTO, pull: Pull = RPi.GPIO.PUD_OFF, active_state: Active = Active.HIGH, bounce_time: float = 0.02, **kwargs)[ソース]

ベースクラス: _Base

ピン 操作 クラス

RPi.GPIO の ピン ラッパー クラス です 。 Pi 5 では RPi.GPIO の 代わり に rpi.lgpio を インストール する 必要 が あります 。

パラメータ:
  • pin (int) -- Raspberry Pi の ピン 番号

  • mode (Mode, optional) -- ピン モード ( IN / OUT / AUTO ) 。 デフォルト は Mode.AUTO です 。

  • pull (Pull, optional) -- ピン プル ( Pull.UP / Pull.DOWN / Pull.NONE ) 。 デフォルト は Pull.NONE です 。

  • active_state (Active, optional) -- ピン の アクティブ 状態 。 True の 場合 、 ハードウェア ピン が HIGH の とき ソフトウェア ピン も HIGH に なります 。 False の 場合 、 入力 極性 が 反転 します 。 デフォルト は Active.HIGH です 。

  • bounce_time (float, optional) -- ピン 割り込み の バウンス 時間 ( 秒 ) 。 デフォルト は 0.02 です 。

  • *args -- fusion_hat._base._Base 用 の 追加 引数

  • **kwargs -- fusion_hat._base._Base 用 の 追加 キーワード 引数

OUT

Pin mode output

IN

Pin mode input

AUTO = None

Pin mode auto

PULL_UP

ピン 内部 プルアップ

PULL_DOWN

ピン 内部 プルダウン

PULL_NONE

ピン 内部 プル なし

ACTIVE_HIGH = True

ピン アクティブ 状態 HIGH

ACTIVE_LOW = False

ピン アクティブ 状態 LOW

IRQ_FALLING

ピン 割り込み 立ち下がり

IRQ_RISING

ピン 割り込み 立ち上がり

IRQ_RISING_FALLING

ピン 割り込み 立ち上がり / 立ち下がり 両方

close() None[ソース]

ピン を クローズ します

deinit() None[ソース]

ピン を 初期化 解除 します

setup(mode: Mode = Mode.AUTO, pull: Pull = RPi.GPIO.PUD_OFF, active_state: Active = Active.HIGH, bounce_time: float = 0.02) None[ソース]

ピン を 設定 します

パラメータ:
  • mode (Mode, optional) -- ピン モード ( IN / OUT / AUTO ) 。 デフォルト は Mode.AUTO です 。

  • pull (Pull, optional) -- ピン プル ( Pull.UP / Pull.DOWN / Pull.NONE ) 。 デフォルト は Pull.NONE です 。

  • active_state (Active, optional) -- ピン の アクティブ 状態 。 True の 場合 、 ハードウェア ピン が HIGH の とき ソフトウェア ピン も HIGH に なります 。 False の 場合 、 入力 極性 が 反転 します 。 デフォルト は Active.HIGH です 。

  • bounce_time (float, optional) -- ピン 割り込み の バウンス 時間 ( 秒 ) 。 デフォルト は 0.02 です 。

__call__(value: [<class 'bool'>, <class 'int'>] = None) int[ソース]

ピン の 値 を 設定 / 取得 します

パラメータ:

value (bool/int, optional) -- ピン 値 。 空 の 場合 は 値 ( 0 / 1 ) を 取得 します 。 デフォルト は None です 。

戻り値:

ピン 値 ( 0 / 1 )

戻り値の型:

int

raw(value: [<class 'bool'>, <class 'int'>] = None) int[ソース]

ピン の 生 値 を 設定 / 取得 します

パラメータ:

value (bool/int, optional) -- ピン 値 。 空 の 場合 は 値 ( 0 / 1 ) を 取得 します 。 デフォルト は None です 。

戻り値:

ピン 値 ( 0 / 1 )

戻り値の型:

int

例外:

ValueError -- ピン モード が IN の 場合

value(value: [<class 'bool'>, <class 'int'>] = None) int[ソース]

ピン の 値 を 設定 / 取得 します

パラメータ:

value (bool/int, optional) -- ピン 値 。 空 の 場合 は 値 ( 0 / 1 ) を 取得 します 。 デフォルト は None です 。

戻り値:

ピン 値 ( 0 / 1 )

戻り値の型:

int

例外:

ValueError -- ピン モード が IN の 場合

on() int[ソース]

ピン を オン ( HIGH ) に 設定 します

戻り値:

pin value(1)

戻り値の型:

int

off() int[ソース]

ピン を オフ ( LOW ) に 設定 します

戻り値:

pin value(0)

戻り値の型:

int

high() int[ソース]

ピン を HIGH ( 1 ) に 設定 します

戻り値:

pin value(1)

戻り値の型:

int

low() int[ソース]

ピン を LOW ( 0 ) に 設定 します

戻り値:

pin value(0)

戻り値の型:

int

irq(handler: Callable[[], None], trigger: Trigger = RPi.GPIO.BOTH) None[ソース]

ピン 割り込み を 設定 します

パラメータ:
  • handler (Callable[[], None]) -- 割り込み ハンドラ の コールバック 関数

  • trigger (Trigger, optional) -- 割り込み トリガ ( RISING 、 FALLING 、 RISING_FALLING ) 。 デフォルト は Trigger.BOTH です 。

例外:

ValueError -- if trigger is not valid

init_irq() None[ソース]

ピン 割り込み を 初期化 します

irq_handler(channel: int) None[ソース]

ピン 割り込み を 処理 します

パラメータ:

channel (int) -- ピン 番号

property when_activated: Callable[[], None]

押下 時 の ハンドラ を 取得 します

戻り値:

押下 ハンドラ

戻り値の型:

Callable[[], None]

property when_deactivated: Callable[[], None]

解放 時 の ハンドラ を 取得 します

戻り値:

解放 ハンドラ

戻り値の型:

Callable[[], None]