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
ピン 割り込み 立ち上がり / 立ち下がり 両方
- 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 の 場合
- 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
- property when_activated: Callable[[], None]
押下 時 の ハンドラ を 取得 します
- 戻り値:
押下 ハンドラ
- 戻り値の型:
Callable[[], None]
- property when_deactivated: Callable[[], None]
解放 時 の ハンドラ を 取得 します
- 戻り値:
解放 ハンドラ
- 戻り値の型:
Callable[[], None]