pyb — funkce související s deskou¶
Varování
Modul pyb je zastaralý. Pro nový kód použijte přenositelný modul machine – ten poskytuje stejnou funkcionalitu na každé OpenMV Cam bez ohledu na rodinu MCU, zatímco pyb existuje pouze na deskách založených na STM32. pyb je zachován kvůli zpětné kompatibilitě se staršími skripty, žádné nové funkce nebudou přidávány a v budoucí verzi může být odstraněn.
Modul pyb obsahuje funkce specifické pro STM32 související s deskou.
Různé funkce¶
- pyb.have_cdc() bool¶
Vrací True, pokud je USB připojeno jako sériové zařízení, jinak False.
Poznámka
Tato funkce je zastaralá. Místo ní použijte pyb.USB_VCP().isconnected().
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Přijme 4prvkovou n-tici (nebo seznam) a odešle ji USB hostiteli (PC) pro signalizaci události pohybu HID myši.
Poznámka
Tato funkce je zastaralá. Místo ní použijte
pyb.USB_HID.send().
- pyb.main(filename: str) None¶
Nastaví název souboru hlavního skriptu, který se spustí po dokončení boot.py. Pokud tato funkce není zavolána, spustí se výchozí soubor main.py.
Volat tuto funkci má smysl pouze zevnitř boot.py.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Poznámka
Tato funkce je zastaralá. Místo ní použijte
vfs.mount()/vfs.umount()a blokové zařízení odvozené odvfs.AbstractBlockDev.Připojí blokové zařízení pod
mountpoint.devicemusí implementovat starší protokol blokového zařízení pyb (rovněž zastaralý – moderní rozhraní vizvfs.AbstractBlockDev):Metoda
Účel
readblocks(self, blocknum, buf)Zkopíruje
bufbajtů ze zařízení počínaje blokemblocknum. Délkabufje násobkem 512.writeblocks(self, blocknum, buf)(volitelné)Zapíše
bufdo zařízení počínaje blokemblocknum. Pokud je vynecháno, zařízení je připojeno pouze pro čtení.count(self)Vrací počet 512bajtových bloků na zařízení.
sync(self)(volitelné)Vyprázdní veškeré zapamatované zápisy.
mountpointje cesta v kořeni souborového systému, kam zařízení připojit; musí začínat lomítkem dopředu.readonlyvynutí připojení pouze pro čtení.mkfsvytvoří nový souborový systém, pokud žádný není přítomen.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Získá nebo nastaví UART objekt, na kterém je opakován 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¶
Pokud je zavolána bez argumentů, vrací aktuální USB režim jako řetězec.
Pokud je zavolána s poskytnutým modestr, pokusí se nakonfigurovat USB režim. Rozumí se následujícím hodnotám modestr:
modestr
Konfiguruje
NoneZakáže USB.
'VCP'Pouze VCP (Virtual COM Port).
'MSC'Pouze MSC (USB mass storage class).
'VCP+MSC'VCP a MSC.
'VCP+HID'VCP a HID (human interface device).
'VCP+MSC+HID'VCP, MSC a HID dohromady. Není podporováno na každé OpenMV Cam.
Kvůli zpětné kompatibilitě se
'CDC'rozumí jako'VCP'(a obdobně pro'CDC+MSC'a'CDC+HID').Parametr port by měl být celé číslo (0, 1, …) a vybírá, který USB port použít, pokud deska podporuje více portů. Hodnota -1 použije výchozí nebo automaticky vybraný port.
Parametry vid a pid vám umožňují specifikovat VID (vendor id) a PID (product id). Hodnota pid rovná -1 vybere PID na základě hodnoty modestr.
Při povolení režimu MSC lze parametr msc použít k zadání seznamu SCSI LUN, které se mají vystavit na rozhraní mass storage. Například
msc=(pyb.Flash(), pyb.SDCard()).Při povolení režimu HID můžete také specifikovat detaily HID předáním klíčového parametru hid. Přijímá n-tici (subclass, protocol, max packet length, polling interval, report descriptor). Ve výchozím nastavení nastaví vhodné hodnoty pro USB myš. Existuje také konstanta
pyb.hid_keyboard, což je vhodná n-tice pro USB klávesnici.Parametr high_speed, nastavený na
True, povolí režim USB HS, pokud je podporován hardwarem.
Konstanty¶
Obě níže uvedené konstanty jsou hotové 5prvkové n-tice ve tvaru
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
vhodné pro předání jako argument hid funkce usb_mode() k tomu, aby se OpenMV Cam zobrazila hostiteli jako USB HID zařízení. subclass = 1 znamená „boot interface“ a protocol vybírá třídu boot zařízení (1 = klávesnice, 2 = myš). Pátý prvek je objekt bytes obsahující deskriptor HID reportu použitý při výčtu zařízení hostitelem.
- pyb.hid_mouse: tuple¶
Předpřipravený HID deskriptor pro 3tlačítkovou boot myš s relativním pohybem X/Y. N-tice je
(1, 2, 4, 8, <mouse report descriptor>): boot subclass, protokol myši, 4bajtové vstupní reporty (maska tlačítek + X + Y + kolečko), dotazované každých 8 ms. Vestavěný deskriptor reportu je ten, který používápyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
Předpřipravený HID deskriptor pro USB boot klávesnici. N-tice je
(1, 1, 8, 8, <keyboard report descriptor>): boot subclass, protokol klávesnice, 8bajtové vstupní reporty (bajt modifikátoru, jeden rezervovaný bajt, šest souběžných kódů kláves), dotazované každých 8 ms. Vestavěný deskriptor reportu odpovídá standardnímu 8bajtovému rozložení HID boot klávesnice, takže report odeslaný přesUSB_HID.send()by měl býtbytesve tvaru(modifiers, 0, key1, key2, key3, key4, key5, key6).
Třídy¶
- třída ADC – analogově-digitální převod
- třída ADCAll – přístup ke všem kanálům ADC
- třída CAN – komunikační sběrnice controller area network
- třída DAC – digitálně-analogový převod
- třída ExtInt – konfigurace I/O pinů pro přerušení při externích událostech
- třída Flash – přístup k zabudované flash paměti
- třída I2C – dvouvodičový sériový protokol
- třída LED – vestavěná LED
- třída Pin – ovládání I/O pinů
- třída PinAF – alternativní funkce pinu
- třída RTC – hodiny reálného času
- třída Servo – ovladač 3vodičového hobby serva
- třída SPI – sériový protokol řízený řadičem
- třída Timer – ovládání interních časovačů
- třída TimerChannel – nastavení kanálu pro časovač
- třída UART – duplexní sériová komunikační sběrnice
- třída USB_HID – USB Human Interface Device (HID)
- třída USB_VCP – USB virtuální komunikační port