pyb — funkcje związane z płytką¶
Ostrzeżenie
Moduł pyb jest przestarzały. W nowym kodzie używaj wieloplatformowego modułu machine – zapewnia on tę samą funkcjonalność na każdej OpenMV Cam niezależnie od rodziny MCU, podczas gdy pyb istnieje tylko na płytkach opartych na STM32. pyb jest zachowany dla wstecznej zgodności ze starszymi skryptami, nie będą do niego dodawane nowe funkcje, a w przyszłym wydaniu może zostać usunięty.
Moduł pyb zawiera funkcje specyficzne dla STM32 związane z płytką.
Funkcje różne¶
- pyb.have_cdc() bool¶
Zwraca True, jeśli USB jest podłączone jako urządzenie szeregowe, w przeciwnym razie False.
Informacja
Ta funkcja jest przestarzała. Zamiast niej użyj pyb.USB_VCP().isconnected().
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Przyjmuje 4-elementową krotkę (lub listę) i wysyła ją do hosta USB (komputera PC), aby zasygnalizować zdarzenie ruchu myszy HID.
Informacja
Ta funkcja jest przestarzała. Zamiast niej użyj
pyb.USB_HID.send().
- pyb.main(filename: str) None¶
Ustawia nazwę pliku głównego skryptu uruchamianego po zakończeniu boot.py. Jeśli ta funkcja nie zostanie wywołana, wykonany zostanie domyślny plik main.py.
Wywoływanie tej funkcji ma sens tylko z wnętrza boot.py.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Informacja
Ta funkcja jest przestarzała. Zamiast niej użyj
vfs.mount()/vfs.umount()oraz urządzenia blokowego pochodzącego odvfs.AbstractBlockDev.Montuje urządzenie blokowe pod
mountpoint.devicemusi implementować starszy protokół urządzenia blokowego pyb (również przestarzały – nowoczesny interfejs opisujevfs.AbstractBlockDev):Metoda
Przeznaczenie
readblocks(self, blocknum, buf)Kopiuje
bufbajtów z urządzenia, zaczynając od blokublocknum. Długośćbufjest wielokrotnością 512.writeblocks(self, blocknum, buf)(opcjonalna)Zapisuje
bufna urządzeniu, zaczynając od blokublocknum. W przypadku pominięcia urządzenie jest montowane tylko do odczytu.count(self)Zwraca liczbę 512-bajtowych bloków na urządzeniu.
sync(self)(opcjonalna)Zapisuje wszelkie buforowane dane (flush).
mountpointto ścieżka w korzeniu systemu plików, pod którą zostanie zamontowane urządzenie; musi zaczynać się od ukośnika.readonlywymusza montowanie tylko do odczytu.mkfstworzy nowy system plików, jeśli żaden nie jest obecny.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Pobiera lub ustawia obiekt UART, na którym powielany jest 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¶
Wywołana bez argumentów zwraca bieżący tryb USB jako ciąg znaków.
Wywołana z podanym modestr próbuje skonfigurować tryb USB. Rozpoznawane są następujące wartości modestr:
modestr
Konfiguruje
NoneWyłącza USB.
'VCP'Tylko VCP (Virtual COM Port).
'MSC'Tylko MSC (USB mass storage class).
'VCP+MSC'VCP i MSC.
'VCP+HID'VCP i HID (human interface device).
'VCP+MSC+HID'VCP, MSC i HID razem. Nieobsługiwane na każdej OpenMV Cam.
Dla wstecznej zgodności
'CDC'jest interpretowane jako'VCP'(i analogicznie dla'CDC+MSC'oraz'CDC+HID').Parametr port powinien być liczbą całkowitą (0, 1, …) i wybiera, który port USB ma być użyty, jeśli płytka obsługuje wiele portów. Wartość -1 powoduje użycie domyślnego lub automatycznie wybranego portu.
Parametry vid i pid pozwalają określić VID (vendor id) oraz PID (product id). Wartość pid równa -1 wybierze PID na podstawie wartości modestr.
Jeśli włączasz tryb MSC, parametr msc może posłużyć do określenia listy jednostek SCSI LUN udostępnianych na interfejsie pamięci masowej. Na przykład
msc=(pyb.Flash(), pyb.SDCard()).Jeśli włączasz tryb HID, możesz również podać szczegóły HID, przekazując parametr nazwany hid. Przyjmuje on krotkę (subclass, protocol, max packet length, polling interval, report descriptor). Domyślnie ustawia odpowiednie wartości dla myszy USB. Istnieje również stała
pyb.hid_keyboard, która jest odpowiednią krotką dla klawiatury USB.Parametr high_speed, ustawiony na
True, włącza tryb USB HS, jeśli jest on obsługiwany przez sprzęt.
Stałe¶
Obie poniższe stałe to gotowe 5-elementowe krotki w postaci
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
odpowiednie do przekazania jako argument hid funkcji usb_mode(), aby OpenMV Cam zaprezentowała się hostowi jako urządzenie USB HID. subclass = 1 oznacza „boot interface”, a protocol wybiera klasę urządzenia boot (1 = klawiatura, 2 = mysz). Piąty element to obiekt bytes zawierający deskryptor raportu HID używany, gdy host wylicza urządzenie.
- pyb.hid_mouse: tuple¶
Gotowy deskryptor HID dla 3-przyciskowej myszy boot z względnym ruchem X/Y. Krotka ma postać
(1, 2, 4, 8, <mouse report descriptor>): podklasa boot, protokół myszy, 4-bajtowe raporty wejściowe (maska przycisków + X + Y + kółko), odpytywane co 8 ms. Wbudowany deskryptor raportu to ten używany przezpyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
Gotowy deskryptor HID dla klawiatury boot USB. Krotka ma postać
(1, 1, 8, 8, <keyboard report descriptor>): podklasa boot, protokół klawiatury, 8-bajtowe raporty wejściowe (bajt modyfikatorów, jeden bajt zarezerwowany, sześć jednocześnie wciśniętych kodów klawiszy), odpytywane co 8 ms. Wbudowany deskryptor raportu odpowiada standardowemu 8-bajtowemu układowi klawiatury boot HID, więc raport wysyłany przezUSB_HID.send()powinien być obiektembytesw postaci(modifiers, 0, key1, key2, key3, key4, key5, key6).
Klasy¶
- klasa ADC – konwersja analogowo-cyfrowa
- klasa ADCAll – dostęp do wszystkich kanałów ADC
- klasa CAN – magistrala komunikacyjna controller area network
- klasa DAC – konwersja cyfrowo-analogowa
- klasa ExtInt – konfiguracja pinów I/O w celu generowania przerwań przy zdarzeniach zewnętrznych
- klasa Flash – dostęp do wbudowanej pamięci flash
- klasa I2C – dwuprzewodowy protokół szeregowy
- klasa LED – wbudowana dioda LED
- klasa Pin – sterowanie pinami we/wy
- klasa PinAF – funkcje alternatywne pinów
- klasa RTC – zegar czasu rzeczywistego
- klasa Servo – sterownik 3-przewodowego serwomechanizmu modelarskiego
- klasa SPI – protokół szeregowy sterowany przez kontroler
- klasa Timer – sterowanie wewnętrznymi licznikami czasu (timerami)
- klasa TimerChannel – konfiguracja kanału dla timera
- klasa UART – dwukierunkowa magistrala komunikacji szeregowej
- klasa USB_HID – urządzenie interfejsu człowieka USB (HID)
- klasa USB_VCP – wirtualny port komunikacyjny USB