pyb — Funktionen rund um das Board¶
Warnung
Das pyb-Modul ist veraltet. Verwenden Sie für neuen Code das portübergreifende machine-Modul – es bietet dieselbe Funktionalität auf jeder OpenMV Cam unabhängig von der MCU-Familie, während pyb nur auf den STM32-basierten Boards existiert. pyb bleibt aus Gründen der Abwärtskompatibilität mit älteren Skripten erhalten, es werden keine neuen Funktionen hinzugefügt und es kann in einer zukünftigen Version entfernt werden.
Das pyb-Modul enthält STM32-spezifische Funktionen rund um das Board.
Verschiedene Funktionen¶
- pyb.have_cdc() bool¶
Gibt True zurück, wenn USB als serielles Gerät verbunden ist, andernfalls False.
Bemerkung
Diese Funktion ist veraltet. Verwenden Sie stattdessen pyb.USB_VCP().isconnected().
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Nimmt ein 4-Tupel (oder eine Liste) entgegen und sendet es an den USB-Host (den PC), um ein HID-Maus-Bewegungsereignis zu signalisieren.
Bemerkung
Diese Funktion ist veraltet. Verwenden Sie stattdessen
pyb.USB_HID.send().
- pyb.info(dump_alloc_table: bool | None = None) None¶
Gibt zahlreiche Informationen über das Board aus.
- pyb.main(filename: str) None¶
Legt den Dateinamen des Hauptskripts fest, das ausgeführt werden soll, nachdem boot.py abgeschlossen ist. Wenn diese Funktion nicht aufgerufen wird, wird die Standarddatei main.py ausgeführt.
Es ist nur sinnvoll, diese Funktion innerhalb von boot.py aufzurufen.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Bemerkung
Diese Funktion ist veraltet. Verwenden Sie stattdessen
vfs.mount()/vfs.umount()und ein vonvfs.AbstractBlockDevabgeleitetes Blockgerät.Hängt ein Blockgerät unter
mountpointein.devicemuss das alte pyb-Blockgeräteprotokoll implementieren (ebenfalls veraltet – siehevfs.AbstractBlockDevfür die moderne Schnittstelle):Methode
Zweck
readblocks(self, blocknum, buf)Kopiert
bufan Bytes vom Gerät, beginnend bei Blockblocknum. Die Länge vonbufist ein Vielfaches von 512.writeblocks(self, blocknum, buf)(optional)Schreibt
bufauf das Gerät, beginnend bei Blockblocknum. Wenn weggelassen, wird das Gerät schreibgeschützt eingehängt.count(self)Gibt die Anzahl der 512-Byte-Blöcke auf dem Gerät zurück.
sync(self)(optional)Schreibt alle zwischengespeicherten Schreibvorgänge zurück.
mountpointist der Pfad im Wurzelverzeichnis des Dateisystems, an dem das Gerät eingehängt wird; er muss mit einem Schrägstrich beginnen.readonlyerzwingt ein schreibgeschütztes Einhängen.mkfserstellt ein neues Dateisystem, falls keines vorhanden ist.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Ruft das UART-Objekt ab, auf dem die REPL gespiegelt wird, oder legt es fest.
- pyb.unique_id() bytes¶
Gibt eine Zeichenkette aus 12 Bytes (96 Bit) zurück, die die eindeutige ID der MCU ist.
- 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¶
Wenn ohne Argumente aufgerufen, wird der aktuelle USB-Modus als Zeichenkette zurückgegeben.
Wenn mit angegebenem modestr aufgerufen, wird versucht, den USB-Modus zu konfigurieren. Die folgenden Werte von modestr werden verstanden:
modestr
Konfiguriert
NoneDeaktiviert USB.
'VCP'Nur VCP (Virtual COM Port).
'MSC'Nur MSC (USB Mass Storage Class).
'VCP+MSC'VCP und MSC.
'VCP+HID'VCP und HID (Human Interface Device).
'VCP+MSC+HID'VCP, MSC und HID zusammen. Nicht auf jeder OpenMV Cam unterstützt.
Aus Gründen der Abwärtskompatibilität wird
'CDC'als'VCP'verstanden (und entsprechend für'CDC+MSC'und'CDC+HID').Der Parameter port sollte eine Ganzzahl (0, 1, …) sein und wählt aus, welcher USB-Port verwendet wird, falls das Board mehrere Ports unterstützt. Ein Wert von -1 verwendet den Standard- oder automatisch ausgewählten Port.
Die Parameter vid und pid ermöglichen es Ihnen, die VID (Vendor-ID) und PID (Product-ID) anzugeben. Ein pid-Wert von -1 wählt eine PID basierend auf dem Wert von modestr aus.
Beim Aktivieren des MSC-Modus kann der Parameter msc verwendet werden, um eine Liste von SCSI-LUNs anzugeben, die auf der Massenspeicherschnittstelle bereitgestellt werden sollen. Zum Beispiel
msc=(pyb.Flash(), pyb.SDCard()).Beim Aktivieren des HID-Modus können Sie die HID-Details auch durch Übergeben des Schlüsselwortparameters hid angeben. Er nimmt ein Tupel aus (Subclass, Protocol, maximale Paketlänge, Polling-Intervall, Report-Deskriptor) entgegen. Standardmäßig werden geeignete Werte für eine USB-Maus gesetzt. Es gibt außerdem eine
pyb.hid_keyboard-Konstante, die ein geeignetes Tupel für eine USB-Tastatur ist.Der Parameter high_speed aktiviert, wenn auf
Truegesetzt, den USB-HS-Modus, sofern er von der Hardware unterstützt wird.
Konstanten¶
Beide der folgenden Konstanten sind vorgefertigte 5-Tupel in der Form
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
geeignet zur Übergabe als hid-Argument von usb_mode(), damit die OpenMV Cam dem Host als USB-HID-Gerät erscheint. subclass = 1 bedeutet „Boot-Schnittstelle“ und protocol wählt die Boot-Geräteklasse aus (1 = Tastatur, 2 = Maus). Das fünfte Element ist ein bytes-Objekt, das den HID-Report-Deskriptor enthält, der verwendet wird, wenn der Host das Gerät enumeriert.
- pyb.hid_mouse: tuple¶
Vorgefertigter HID-Deskriptor für eine 3-Tasten-Boot-Maus mit relativer X/Y-Bewegung. Das Tupel ist
(1, 2, 4, 8, <mouse report descriptor>): Boot-Subclass, Maus-Protokoll, 4-Byte-Eingabe-Reports (Tastenmaske + X + Y + Rad), alle 8 ms abgefragt. Der eingebaute Report-Deskriptor ist derjenige, der vonpyb.USB_HID().send((buttons, dx, dy, wheel))verwendet wird.
- pyb.hid_keyboard: tuple¶
Vorgefertigter HID-Deskriptor für eine USB-Boot-Tastatur. Das Tupel ist
(1, 1, 8, 8, <keyboard report descriptor>): Boot-Subclass, Tastatur-Protokoll, 8-Byte-Eingabe-Reports (Modifier-Byte, ein reserviertes Byte, sechs gleichzeitige Tastencodes), alle 8 ms abgefragt. Der eingebaute Report-Deskriptor entspricht dem standardmäßigen 8-Byte-HID-Boot-Tastatur-Layout, sodass der überUSB_HID.send()gesendete Report einbytesder Form(modifiers, 0, key1, key2, key3, key4, key5, key6)sein sollte.
Klassen¶
- Klasse ADC – Analog-Digital-Wandlung
- Klasse ADCAll – Zugriff auf alle ADC-Kanäle
- class CAN – Controller Area Network Kommunikationsbus
- class DAC – Digital-Analog-Wandlung
- class ExtInt – E/A-Pins zum Auslösen von Interrupts bei externen Ereignissen konfigurieren
- class Flash – Zugriff auf integrierten Flash-Speicher
- class I2C – ein serielles Zweidraht-Protokoll
- class LED – integrierte LED
- class Pin – Steuerung von I/O-Pins
- class PinAF – alternative Pin-Funktionen
- class RTC – Echtzeituhr
- class Servo – 3-Draht-Hobby-Servotreiber
- class SPI – ein controllergesteuertes serielles Protokoll
- class Timer – interne Timer steuern
- class TimerChannel – einen Kanal für einen Timer einrichten
- Klasse UART – serieller Vollduplex-Kommunikationsbus
- Klasse USB_HID – USB Human Interface Device (HID)
- Klasse USB_VCP – virtueller USB-COM-Port