class Pin -- I/O ピンの制御¶
Pin オブジェクトは STM32 上の単一の GPIO を表します。ピンのモード(入力、出力、代替機能、アナログ)やプル抵抗を設定し、デジタルレベルを読み取ったり駆動したりするためのメソッドを提供します。アナログサンプリングについては pyb.ADC を、代替機能の列挙については PinAF を参照してください。
すべてのヘッダーピンは pyb.Pin.board.<name> として事前定義されています。ほとんどの STM32 OpenMV Cam は I/O ヘッダーピン P0 ... P9 を公開しており、OpenMV Cam N6 は P18 までの追加ピンを公開しています:
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
基盤となる STM32 のポート/ピンは、pyb.Pin.cpu.<name> を通じて直接アドレス指定することもできます。名前はポートを表す文字に続けてピン番号を付けたものです(例: pyb.Pin.cpu.A0)。各 OpenMV ヘッダーピンと CPU ピンの対応関係はボードによって固定されています。
ピンは文字列名で選択することもできます:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
ユーザー定義の名前は Pin.dict() で追加できます:
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
そして取得して問い合わせることができます:
pin = pyb.Pin("LeftMotorDir")
あるいは、Pin.mapper() でカスタムマッピング関数をインストールすることもできます:
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
そのため、pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) の呼び出しは "LeftMotorDir" を直接マッパーに渡します。
名前が物理ピンにマッピングされる方法は、次の順序で決定されます:
Pinオブジェクトが直接渡される。ユーザー指定のマッパー関数がピンを返す。
ユーザー指定の辞書に一致するキーが含まれている。
文字列がボードのピン名(
P0、P1、...)に一致する。文字列が CPU のポート/ピン名(
A0、B7、...)に一致する。
pyb.Pin.debug(True) を呼び出すと、各オブジェクトがどのようにピンにマッピングされるかについての診断情報を表示します。
コンストラクタ¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
指定された
idに関連付けられた新しい Pin オブジェクトを作成します。追加の引数が指定された場合は、ピンを設定するためにPin.init()に転送されます。クラスメソッド¶
メソッド¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
ピンを初期化します:
mode には次のいずれかを指定できます:
Pin.IN- ピンを入力用に設定します;Pin.OUT_PP- ピンをプッシュプル制御の出力用に設定します;Pin.OUT_OD- ピンをオープンドレイン制御の出力用に設定します;Pin.ALT- ピンを代替機能(入力または出力)用に設定します;Pin.AF_PP- ピンをプッシュプルの代替機能用に設定します;Pin.AF_OD- ピンをオープンドレインの代替機能用に設定します;Pin.ANALOG- ピンをアナログ用に設定します。
pull には次のいずれかを指定できます:
Pin.PULL_NONE- プルアップまたはプルダウン抵抗なし;Pin.PULL_UP- プルアップ抵抗を有効にします;Pin.PULL_DOWN- プルダウン抵抗を有効にします。
ピンに
Pin.PULL_UPまたはPin.PULL_DOWNのプルモードが有効になっている場合、そのピンは内部抵抗(通常は数十 kOhm -- 使用している OpenMV Cam の STM32 データシートの電気的特性を参照)を通じてそれぞれ 3V3 または GND にプルされます。value が None でない場合、ピンを有効にする前にポートの出力値を設定します。
alt は、モードが
Pin.ALT、Pin.AF_PPまたはPin.AF_ODのときに、ピンに関連付けられた代替機能の 1 つのインデックスまたは名前を設定するために使用できます。この引数は以前はafと呼ばれており、必要であれば引き続き使用できます。
定数¶