pyb — функції, пов’язані з платою¶
Попередження
Модуль pyb є застарілим. Для нового коду використовуйте кросплатформний модуль machine — він надає однакову функціональність на кожній OpenMV Cam незалежно від сімейства MCU, тоді як pyb існує лише на платах на основі STM32. pyb збережено для зворотної сумісності зі старішими скриптами, нові функції не додаватимуться, і він може бути видалений у майбутньому релізі.
Модуль pyb містить специфічні для STM32 функції, пов’язані з платою.
Різноманітні функції¶
- pyb.have_cdc() bool¶
Повертає True, якщо USB підключено як послідовний пристрій, інакше False.
Примітка
Ця функція є застарілою. Натомість використовуйте pyb.USB_VCP().isconnected().
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Приймає 4-кортеж (або список) і надсилає його хосту USB (ПК) для сигналізації про подію переміщення миші HID.
Примітка
Ця функція є застарілою. Натомість використовуйте
pyb.USB_HID.send().
- 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)Копіює кількість байт, рівну
buf, з пристрою, починаючи з блокуblocknum. Довжинаbufкратна 512.writeblocks(self, blocknum, buf)(необов’язково)Записує
bufна пристрій, починаючи з блокуblocknum. Якщо не вказано, пристрій монтується лише для читання.count(self)Повертає кількість 512-байтних блоків на пристрої.
sync(self)(необов’язково)Скидає будь-які кешовані записи.
mountpoint— це шлях у корені файлової системи, де монтується пристрій; він повинен починатися з косої риски.readonlyпримусово монтує лише для читання.mkfsстворює нову файлову систему, якщо жодної немає.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Отримати або встановити об’єкт UART, на якому відтворюється REPL.
- 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 (Virtual COM Port).
'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 (ідентифікатор виробника) і PID (ідентифікатор продукту). Значення pid рівне -1 вибере PID на основі значення modestr.
Якщо увімкнено режим MSC, параметр msc може використовуватися для вказання списку SCSI LUN, що відображаються на інтерфейсі масового сховища. Наприклад,
msc=(pyb.Flash(), pyb.SDCard()).Якщо увімкнено режим HID, можна також вказати параметри HID, передавши ключовий параметр hid. Він приймає кортеж виду (підклас, протокол, максимальна довжина пакета, інтервал опитування, дескриптор звіту). За замовчуванням встановлюються відповідні значення для USB-миші. Також є константа
pyb.hid_keyboard, що є відповідним кортежем для USB-клавіатури.Параметр high_speed, встановлений у
True, вмикає режим USB HS, якщо він підтримується апаратним забезпеченням.
Константи¶
Обидві наведені нижче константи є готовими 5-кортежами вигляду
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
придатними для передачі як аргумент hid у usb_mode(), щоб OpenMV Cam відображалась для хоста як USB HID-пристрій. subclass = 1 означає «завантажувальний інтерфейс», а protocol визначає клас завантажувального пристрою (1 = клавіатура, 2 = миша). П’ятий елемент — це об’єкт bytes, що містить дескриптор звіту HID, який використовується при перерахуванні пристрою хостом.
- pyb.hid_mouse: tuple¶
Попередньо зібраний дескриптор HID для 3-кнопкової завантажувальної миші з відносним переміщенням X/Y. Кортеж має вигляд
(1, 2, 4, 8, <mouse report descriptor>): завантажувальний підклас, протокол миші, 4-байтові вхідні звіти (маска кнопок + X + Y + колесо), опитування кожні 8 мс. Вбудований дескриптор звіту використовується командоюpyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
Попередньо зібраний дескриптор HID для USB завантажувальної клавіатури. Кортеж має вигляд
(1, 1, 8, 8, <keyboard report descriptor>): завантажувальний підклас, протокол клавіатури, 8-байтові вхідні звіти (байт модифікаторів, один зарезервований байт, шість одночасних кодів клавіш), опитування кожні 8 мс. Вбудований дескриптор звіту відповідає стандартному 8-байтному HID-макету завантажувальної клавіатури, тому звіт, надісланий черезUSB_HID.send(), має бутиbytesвигляду(modifiers, 0, key1, key2, key3, key4, key5, key6).
Класи¶
- клас ADC – аналого-цифрове перетворення
- клас ADCAll – доступ до всіх каналів ADC
- клас CAN – шина зв’язку controller area network
- клас DAC – цифро-аналогове перетворення
- клас ExtInt – налаштування виводів введення/виведення для переривань від зовнішніх подій
- клас Flash – доступ до вбудованої флеш-пам’яті
- клас I2C – двопровідний послідовний протокол
- клас LED – вбудований світлодіод
- клас Pin – керування виводами введення/виведення
- клас PinAF – альтернативні функції виводів
- клас RTC – годинник реального часу
- клас Servo – драйвер хобі-сервопривода з 3-дротовим підключенням
- клас SPI – послідовний протокол, керований контролером
- клас Timer – керування внутрішніми таймерами
- клас TimerChannel – налаштування каналу для таймера
- клас UART – дуплексна послідовна шина зв’язку
- клас USB_HID – пристрій USB Human Interface Device (HID)
- клас USB_VCP – віртуальний COM-порт USB