pyb — funções relacionadas com a placa¶
Aviso
O módulo pyb está obsoleto. Utilize o módulo portátil machine para novo código – este oferece a mesma funcionalidade em todas as OpenMV Cam independentemente da família de MCU, enquanto que pyb existe apenas nas placas baseadas em STM32. O pyb é mantido por compatibilidade retroativa com scripts mais antigos, não serão adicionadas novas funcionalidades e poderá ser removido numa versão futura.
O módulo pyb contém funções específicas do STM32 relacionadas com a placa.
Funções diversas¶
- pyb.have_cdc() bool¶
Devolve True se o USB estiver ligado como dispositivo série, False caso contrário.
Nota
Esta função está obsoleta. Utilize pyb.USB_VCP().isconnected() em alternativa.
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Recebe um tuplo de 4 elementos (ou lista) e envia-o ao host USB (o PC) para sinalizar um evento de movimento do rato HID.
Nota
Esta função está obsoleta. Utilize
pyb.USB_HID.send()em alternativa.
- pyb.main(filename: str) None¶
Define o nome do ficheiro do script principal a executar após boot.py terminar. Se esta função não for chamada, será executado o ficheiro predefinido main.py.
Só faz sentido chamar esta função a partir de boot.py.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Nota
Esta função está obsoleta. Utilize
vfs.mount()/vfs.umount()e um dispositivo de blocos derivado devfs.AbstractBlockDevem alternativa.Monta um dispositivo de blocos em
mountpoint. Odevicedeve implementar o protocolo legado de dispositivo de blocos pyb (também obsoleto – consultevfs.AbstractBlockDevpara a interface moderna):Método
Objetivo
readblocks(self, blocknum, buf)Copia
bufbytes do dispositivo a partir do blocoblocknum. O comprimento debufé um múltiplo de 512.writeblocks(self, blocknum, buf)(opcional)Escreve
bufno dispositivo a partir do blocoblocknum. Se omitido, o dispositivo é montado em modo de apenas leitura.count(self)Devolve o número de blocos de 512 bytes no dispositivo.
sync(self)(opcional)Liberta quaisquer escritas em cache.
mountpointé o caminho na raiz do sistema de ficheiros onde o dispositivo será montado; deve começar com uma barra diagonal.readonlyforça uma montagem em modo de apenas leitura.mkfscria um novo sistema de ficheiros se não existir nenhum.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Obtém ou define o objeto UART onde o REPL é repetido.
- 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 chamada sem argumentos, devolve o modo USB atual como uma string.
Se chamada com modestr fornecido, tenta configurar o modo USB. Os seguintes valores de modestr são reconhecidos:
modestr
Configura
NoneDesativa o USB.
'VCP'Apenas VCP (Porta COM Virtual).
'MSC'Apenas MSC (classe de armazenamento em massa USB).
'VCP+MSC'VCP e MSC.
'VCP+HID'VCP e HID (dispositivo de interface humana).
'VCP+MSC+HID'VCP, MSC e HID em conjunto. Não suportado em todas as OpenMV Cam.
Por compatibilidade retroativa,
'CDC'é interpretado como significando'VCP'(e de forma semelhante para'CDC+MSC'e'CDC+HID').O parâmetro port deve ser um inteiro (0, 1, …) e seleciona qual porta USB utilizar se a placa suportar múltiplas portas. Um valor de -1 utiliza a porta predefinida ou selecionada automaticamente.
Os parâmetros vid e pid permitem especificar o VID (identificador de fornecedor) e o PID (identificador de produto). Um valor de pid igual a -1 selecionará um PID com base no valor de modestr.
Se ativar o modo MSC, o parâmetro msc pode ser utilizado para especificar uma lista de LUNs SCSI a expor na interface de armazenamento em massa. Por exemplo
msc=(pyb.Flash(), pyb.SDCard()).Se ativar o modo HID, pode também especificar os detalhes HID passando o parâmetro de palavra-chave hid. Recebe um tuplo de (subclasse, protocolo, comprimento máximo de pacote, intervalo de polling, descritor de relatório). Por predefinição, definirá os valores apropriados para um rato USB. Existe também uma constante
pyb.hid_keyboard, que é um tuplo adequado para um teclado USB.O parâmetro high_speed, quando definido como
True, ativa o modo USB HS se for suportado pelo hardware.
Constantes¶
Ambas as constantes abaixo são tuplos de 5 elementos prontos a usar na forma
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
adequados para serem passados como argumento hid de usb_mode() para fazer a OpenMV Cam aparecer ao host como um dispositivo USB HID. subclass = 1 significa «interface de arranque» e protocol seleciona a classe de dispositivo de arranque (1 = teclado, 2 = rato). O quinto elemento é um objeto bytes com o descritor de relatório HID utilizado quando o host enumera o dispositivo.
- pyb.hid_mouse: tuple¶
Descritor HID pré-construído para um rato de arranque de 3 botões com movimento relativo X/Y. O tuplo é
(1, 2, 4, 8, <mouse report descriptor>): subclasse de arranque, protocolo de rato, relatórios de entrada de 4 bytes (máscara de botões + X + Y + roda), com polling a cada 8 ms. O descritor de relatório integrado é o utilizado porpyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
Descritor HID pré-construído para um teclado USB de arranque. O tuplo é
(1, 1, 8, 8, <keyboard report descriptor>): subclasse de arranque, protocolo de teclado, relatórios de entrada de 8 bytes (byte modificador, um byte reservado, seis códigos de teclas simultâneos), com polling a cada 8 ms. O descritor de relatório integrado corresponde ao esquema padrão de teclado HID de arranque de 8 bytes, pelo que o relatório enviado viaUSB_HID.send()deve ser umbytesda forma(modifiers, 0, key1, key2, key3, key4, key5, key6).
Classes¶
- classe ADC – conversão analógico-digital
- classe ADCAll – acesso a todos os canais ADC
- class CAN – barramento de comunicação da rede de área de controlador
- class DAC – conversão digital para analógico
- class ExtInt – configurar pinos de E/S para interrupção em eventos externos
- class Flash – acesso ao armazenamento flash integrado
- class I2C – protocolo série de dois fios
- class LED – LED integrado
- class Pin – controlo de pinos de E/S
- class PinAF – funções alternativas de pinos
- class RTC – relógio em tempo real
- class Servo – driver de servo de modelo com 3 fios
- class SPI – protocolo série controlado por controlador
- classe Timer – controlar temporizadores internos
- classe TimerChannel – configurar um canal para um temporizador
- classe UART – barramento de comunicação série duplex
- classe USB_HID – Dispositivo de Interface Humana USB (HID)
- classe USB_VCP – porta de comunicação virtual USB