pyb --- ボードに関連する関数

警告

pyb モジュールは非推奨です。 新しいコードではクロスポートの machine モジュールを使用してください。こちらは MCU ファミリに関係なくすべての OpenMV Cam で同じ機能を提供しますが、pyb は STM32 ベースのボードにしか存在しません。pyb は古いスクリプトとの後方互換性のために残されており、新機能は追加されず、将来のリリースで削除される可能性があります。

pyb モジュールには、ボードに関連する STM32 固有の関数が含まれています。

その他の関数

pyb.have_cdc() bool

USB がシリアルデバイスとして接続されている場合は True を、それ以外の場合は False を返します。

注釈

この関数は非推奨です。代わりに pyb.USB_VCP().isconnected() を使用してください。

pyb.hid(data: Tuple[int, int, int, int]) None

4 要素のタプル(またはリスト)を受け取り、HID マウス移動イベントを通知するために USB ホスト(PC)に送信します。

注釈

この関数は非推奨です。代わりに pyb.USB_HID.send() を使用してください。

pyb.info(dump_alloc_table: bool | None = None) None

ボードに関する多くの情報を表示します。

pyb.main(filename: str) None

boot.py の終了後に実行するメインスクリプトのファイル名を設定します。この関数が呼び出されない場合は、デフォルトのファイル main.py が実行されます。

この関数を呼び出すことに意味があるのは boot.py の中からのみです。

pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None

注釈

この関数は非推奨です。代わりに vfs.mount() / vfs.umount()vfs.AbstractBlockDev 派生のブロックデバイスを使用してください。

mountpoint の下にブロックデバイスをマウントします。device はレガシーな pyb ブロックデバイスプロトコルを実装している必要があります(これも非推奨です。最新のインターフェースについては vfs.AbstractBlockDev を参照してください)。

メソッド

目的

readblocks(self, blocknum, buf)

ブロック blocknum から始まる buf 分のバイトをデバイスからコピーします。buf の長さは 512 の倍数です。

writeblocks(self, blocknum, buf) (オプション)

ブロック blocknum から始まる位置に buf をデバイスに書き込みます。省略した場合、デバイスは読み取り専用でマウントされます。

count(self)

デバイス上の 512 バイトブロックの数を返します。

sync(self) (オプション)

キャッシュされた書き込みをすべてフラッシュします。

mountpoint はファイルシステムのルート内でデバイスをマウントするパスで、スラッシュで始まる必要があります。readonly は読み取り専用のマウントを強制します。mkfs はファイルシステムが存在しない場合に新しいファイルシステムを作成します。

pyb.repl_uart(uart: UART | None = None) UART | None

REPL が複製される UART オブジェクトを取得または設定します。

pyb.rng() int

30 ビットのハードウェア生成乱数を返します。

pyb.sync() None

すべてのファイルシステムを同期します。

pyb.unique_id() bytes

MCU の一意な ID である 12 バイト(96 ビット)の文字列を返します。

pyb.usb_mode(modestr: str | None = None, port: int = -1, vid: int = 0xf055, pid: int = -1, msc: Tuple = (), hid: Tuple = pyb.hid_mouse, high_speed: bool = False) str | None

引数なしで呼び出された場合、現在の USB モードを文字列として返します。

modestr を指定して呼び出された場合、USB モードの設定を試みます。modestr に指定できる値は次のとおりです。

modestr

設定内容

None

USB を無効にします。

'VCP'

VCP(仮想 COM ポート)のみ。

'MSC'

MSC(USB マスストレージクラス)のみ。

'VCP+MSC'

VCP と MSC。

'VCP+HID'

VCP と HID(ヒューマンインターフェースデバイス)。

'VCP+MSC+HID'

VCP、MSC、HID をまとめて。すべての OpenMV Cam でサポートされているわけではありません。

後方互換性のため、'CDC''VCP' を意味するものとして解釈されます('CDC+MSC' および 'CDC+HID' も同様です)。

port パラメータは整数(0、1、...)であるべきで、ボードが複数のポートをサポートしている場合に使用する USB ポートを選択します。値 -1 はデフォルトまたは自動的に選択されたポートを使用します。

vid および pid パラメータでは、VID(ベンダー ID)と PID(プロダクト ID)を指定できます。pid の値が -1 の場合、modestr の値に基づいて PID が選択されます。

MSC モードを有効にする場合、msc パラメータを使用して、マスストレージインターフェースに公開する SCSI LUN のリストを指定できます。例: msc=(pyb.Flash(), pyb.SDCard())

HID モードを有効にする場合、hid キーワードパラメータを渡して HID の詳細を指定することもできます。これは (subclass, protocol, max packet length, polling interval, report descriptor) のタプルを受け取ります。デフォルトでは USB マウスに適した値が設定されます。また pyb.hid_keyboard 定数もあり、これは USB キーボードに適したタプルです。

high_speed パラメータを True に設定すると、ハードウェアがサポートしている場合に USB HS モードが有効になります。

定数

以下の 2 つの定数は、どちらも次の形式の既製の 5 要素タプルです。

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

usb_mode()hid 引数として渡すのに適しており、OpenMV Cam をホストに対して USB HID デバイスとして見せることができます。subclass = 1 は「ブートインターフェース」を意味し、protocol はブートデバイスクラスを選択します(1 = キーボード、2 = マウス)。5 番目の要素は、ホストがデバイスを列挙するときに使用される HID レポートディスクリプタを保持する bytes オブジェクトです。

pyb.hid_mouse: tuple

相対的な X/Y 移動を持つ 3 ボタンのブートマウス用の組み込み済み HID ディスクリプタです。タプルは (1, 2, 4, 8, <mouse report descriptor>) です。すなわち、ブートサブクラス、マウスプロトコル、4 バイトの入力レポート(ボタンマスク + X + Y + ホイール)で、8 ms ごとにポーリングされます。組み込みのレポートディスクリプタは pyb.USB_HID().send((buttons, dx, dy, wheel)) で使用されるものです。

pyb.hid_keyboard: tuple

USB ブートキーボード用の組み込み済み HID ディスクリプタです。タプルは (1, 1, 8, 8, <keyboard report descriptor>) です。すなわち、ブートサブクラス、キーボードプロトコル、8 バイトの入力レポート(モディファイアバイト、予約済み 1 バイト、同時押し可能な 6 つのキーコード)で、8 ms ごとにポーリングされます。組み込みのレポートディスクリプタは標準の 8 バイト HID ブートキーボードレイアウトに一致するため、USB_HID.send() 経由で送信するレポートは (modifiers, 0, key1, key2, key3, key4, key5, key6) の形式の bytes であるべきです。

クラス