pyb — funzioni relative alla scheda¶
Avvertimento
Il modulo pyb è deprecato. Per il nuovo codice usa il modulo cross-port machine – offre le stesse funzionalità su ogni OpenMV Cam indipendentemente dalla famiglia di MCU, mentre pyb esiste solo sulle schede basate su STM32. pyb è mantenuto per compatibilità con gli script più vecchi, non verranno aggiunte nuove funzionalità e potrebbe essere rimosso in una versione futura.
Il modulo pyb contiene funzioni specifiche per STM32 relative alla scheda.
Funzioni varie¶
- pyb.have_cdc() bool¶
Restituisce True se l’USB è connesso come dispositivo seriale, False altrimenti.
Nota
Questa funzione è deprecata. Usa invece pyb.USB_VCP().isconnected().
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Prende una tupla di 4 elementi (o una lista) e la invia all’host USB (il PC) per segnalare un evento di movimento del mouse HID.
Nota
Questa funzione è deprecata. Usa invece
pyb.USB_HID.send().
- pyb.main(filename: str) None¶
Imposta il nome del file dello script principale da eseguire dopo che boot.py ha terminato. Se questa funzione non viene chiamata, verrà eseguito il file predefinito main.py.
Ha senso chiamare questa funzione solo dall’interno di boot.py.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Nota
Questa funzione è deprecata. Usa invece
vfs.mount()/vfs.umount()e un dispositivo a blocchi derivato davfs.AbstractBlockDev.Monta un dispositivo a blocchi sotto
mountpoint.devicedeve implementare il protocollo legacy dei dispositivi a blocchi di pyb (anch’esso deprecato – vedivfs.AbstractBlockDevper l’interfaccia moderna):Metodo
Scopo
readblocks(self, blocknum, buf)Copia
bufbyte dal dispositivo a partire dal bloccoblocknum. La lunghezza dibufè un multiplo di 512.writeblocks(self, blocknum, buf)(opzionale)Scrive
bufsul dispositivo a partire dal bloccoblocknum. Se omesso, il dispositivo viene montato in sola lettura.count(self)Restituisce il numero di blocchi da 512 byte presenti sul dispositivo.
sync(self)(opzionale)Scarica eventuali scritture in cache.
mountpointè il percorso nella radice del filesystem in cui montare il dispositivo; deve iniziare con una barra.readonlyforza un montaggio in sola lettura.mkfscrea un nuovo filesystem se non ne è presente alcuno.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Ottiene o imposta l’oggetto UART su cui viene replicato il 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¶
Se chiamata senza argomenti, restituisce la modalità USB corrente come stringa.
Se chiamata con modestr fornito, tenta di configurare la modalità USB. Sono riconosciuti i seguenti valori di modestr:
modestr
Configura
NoneDisabilita l’USB.
'VCP'Solo VCP (Virtual COM Port).
'MSC'Solo MSC (USB mass storage class).
'VCP+MSC'VCP e MSC.
'VCP+HID'VCP e HID (human interface device).
'VCP+MSC+HID'VCP, MSC e HID insieme. Non supportato su ogni OpenMV Cam.
Per compatibilità con il passato,
'CDC'viene interpretato come'VCP'(e analogamente per'CDC+MSC'e'CDC+HID').Il parametro port deve essere un intero (0, 1, …) e seleziona quale porta USB usare se la scheda supporta più porte. Un valore di -1 usa la porta predefinita o selezionata automaticamente.
I parametri vid e pid permettono di specificare il VID (vendor id) e il PID (product id). Un valore di pid pari a -1 selezionerà un PID in base al valore di modestr.
Se si abilita la modalità MSC, il parametro msc può essere usato per specificare una lista di LUN SCSI da esporre sull’interfaccia di mass storage. Per esempio
msc=(pyb.Flash(), pyb.SDCard()).Se si abilita la modalità HID, è possibile specificare anche i dettagli HID passando il parametro keyword hid. Prende una tupla di (subclass, protocol, max packet length, polling interval, report descriptor). Per impostazione predefinita imposterà valori appropriati per un mouse USB. Esiste anche una costante
pyb.hid_keyboard, che è una tupla appropriata per una tastiera USB.Il parametro high_speed, quando impostato a
True, abilita la modalità USB HS se supportata dall’hardware.
Costanti¶
Entrambe le costanti seguenti sono tuple di 5 elementi già pronte nella forma
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
adatte a essere passate come argomento hid di usb_mode() per far apparire l’OpenMV Cam all’host come dispositivo USB HID. subclass = 1 significa «boot interface» e protocol seleziona la classe del dispositivo boot (1 = tastiera, 2 = mouse). Il quinto elemento è un oggetto bytes che contiene il report descriptor HID usato quando l’host enumera il dispositivo.
- pyb.hid_mouse: tuple¶
Report descriptor HID predefinito per un boot mouse a 3 pulsanti con movimento relativo X/Y. La tupla è
(1, 2, 4, 8, <mouse report descriptor>): boot subclass, protocollo mouse, report di input di 4 byte (maschera dei pulsanti + X + Y + rotellina), interrogati ogni 8 ms. Il report descriptor integrato è quello usato dapyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
Report descriptor HID predefinito per una boot keyboard USB. La tupla è
(1, 1, 8, 8, <keyboard report descriptor>): boot subclass, protocollo tastiera, report di input di 8 byte (byte dei modificatori, un byte riservato, sei codici di tasto concorrenti), interrogati ogni 8 ms. Il report descriptor integrato corrisponde al layout standard della boot-keyboard HID a 8 byte, quindi il report inviato tramiteUSB_HID.send()deve essere unbytesdella forma(modifiers, 0, key1, key2, key3, key4, key5, key6).
Classi¶
- class ADC – conversione analogico-digitale
- class ADCAll – accesso a tutti i canali ADC
- class CAN – bus di comunicazione controller area network
- classe DAC – conversione digitale-analogica
- classe ExtInt – configura i pin di I/O per generare interrupt su eventi esterni
- classe Flash – accesso alla memoria flash integrata
- classe I2C – un protocollo seriale a due fili
- classe LED – LED integrato
- class Pin – controllo dei pin di I/O
- class PinAF – funzioni alternative dei pin
- class RTC – orologio in tempo reale
- class Servo – driver per servo hobby a 3 fili
- class SPI – un protocollo seriale pilotato da un controller
- class Timer – controllo dei timer interni
- class TimerChannel – configurazione di un canale per un timer
- class UART – bus di comunicazione seriale duplex
- class USB_HID – USB Human Interface Device (HID)
- class USB_VCP – porta di comunicazione virtuale USB