pyb — funções relacionadas à placa

Aviso

O módulo pyb está obsoleto. Use o módulo multiplataforma machine para código novo – ele fornece a mesma funcionalidade em qualquer OpenMV Cam, independentemente da família de MCU, enquanto o pyb existe apenas nas placas baseadas em STM32. O pyb é mantido por compatibilidade com scripts mais antigos, nenhum novo recurso será adicionado a ele e ele pode ser removido em uma versão futura.

O módulo pyb contém funções específicas do STM32 relacionadas à placa.

Funções diversas

pyb.have_cdc() bool

Retorna True se o USB estiver conectado como um dispositivo serial, False caso contrário.

Nota

Esta função está obsoleta. Use pyb.USB_VCP().isconnected() em vez disso.

pyb.hid(data: Tuple[int, int, int, int]) None

Recebe uma tupla de 4 elementos (ou lista) e a envia ao host USB (o PC) para sinalizar um evento de movimento de mouse HID.

Nota

Esta função está obsoleta. Use pyb.USB_HID.send() em vez disso.

pyb.info(dump_alloc_table: bool | None = None) None

Imprime muitas informações sobre a placa.

pyb.main(filename: str) None

Define o nome do arquivo do script principal a ser executado após o boot.py terminar. Se esta função não for chamada, então o arquivo padrão main.py será executado.

Só faz sentido chamar esta função de dentro do boot.py.

pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None

Nota

Esta função está obsoleta. Use vfs.mount() / vfs.umount() e um dispositivo de bloco derivado de vfs.AbstractBlockDev em vez disso.

Monta um dispositivo de bloco sob mountpoint. O device deve implementar o protocolo legado de dispositivo de bloco do pyb (também obsoleto – consulte vfs.AbstractBlockDev para a interface moderna):

Método

Finalidade

readblocks(self, blocknum, buf)

Copia o equivalente a buf em bytes do dispositivo, começando no bloco blocknum. O comprimento de buf é um múltiplo de 512.

writeblocks(self, blocknum, buf) (opcional)

Escreve buf no dispositivo, começando no bloco blocknum. Se omitido, o dispositivo é montado como somente leitura.

count(self)

Retorna o número de blocos de 512 bytes no dispositivo.

sync(self) (opcional)

Descarrega quaisquer escritas em cache.

mountpoint é o caminho na raiz do sistema de arquivos onde o dispositivo será montado; ele deve começar com uma barra. readonly força uma montagem somente leitura. mkfs cria um novo sistema de arquivos se nenhum estiver presente.

pyb.repl_uart(uart: UART | None = None) UART | None

Obtém ou define o objeto UART no qual o REPL é repetido.

pyb.rng() int

Retorna um número aleatório gerado por hardware de 30 bits.

pyb.sync() None

Sincroniza todos os sistemas de arquivos.

pyb.unique_id() bytes

Retorna uma string de 12 bytes (96 bits), que é o ID único do MCU.

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, retorna 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

None

Desabilita o USB.

'VCP'

Apenas VCP (Virtual COM Port).

'MSC'

Apenas 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 juntos. Não suportado em todos os OpenMV Cam.

Por compatibilidade com versões anteriores, 'CDC' é interpretado como '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 usar se a placa suportar múltiplas portas. Um valor de -1 usa a porta padrão ou selecionada automaticamente.

Os parâmetros vid e pid permitem especificar o VID (vendor id) e o PID (product id). Um valor de pid igual a -1 selecionará um PID com base no valor de modestr.

Ao habilitar o modo MSC, o parâmetro msc pode ser usado para especificar uma lista de LUNs SCSI a serem expostos na interface de armazenamento em massa. Por exemplo msc=(pyb.Flash(), pyb.SDCard()).

Ao habilitar o modo HID, você também pode especificar os detalhes do HID passando o parâmetro nomeado hid. Ele recebe uma tupla de (subclasse, protocolo, comprimento máximo do pacote, intervalo de polling, descritor de relatório). Por padrão, ele definirá valores apropriados para um mouse USB. Há também uma constante pyb.hid_keyboard, que é uma tupla apropriada para um teclado USB.

O parâmetro high_speed, quando definido como True, habilita o modo USB HS se ele for suportado pelo hardware.

Constantes

Ambas as constantes abaixo são tuplas de 5 elementos prontas para uso, na forma

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

adequadas para serem passadas como o argumento hid de usb_mode() para fazer o OpenMV Cam aparecer ao host como um dispositivo USB HID. subclass = 1 significa “boot interface” e protocol seleciona a classe do dispositivo de boot (1 = teclado, 2 = mouse). O quinto elemento é um objeto bytes contendo o descritor de relatório HID usado quando o host enumera o dispositivo.

pyb.hid_mouse: tuple

Descritor HID pré-construído para um mouse de boot de 3 botões com movimento relativo em X/Y. A tupla é (1, 2, 4, 8, <mouse report descriptor>): subclasse de boot, protocolo de mouse, 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 embutido é o usado por pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Descritor HID pré-construído para um teclado de boot USB. A tupla é (1, 1, 8, 8, <keyboard report descriptor>): subclasse de boot, protocolo de teclado, relatórios de entrada de 8 bytes (byte de modificadores, um byte reservado, seis códigos de tecla simultâneos), com polling a cada 8 ms. O descritor de relatório embutido corresponde ao layout padrão de teclado de boot HID de 8 bytes, então o relatório enviado via USB_HID.send() deve ser um bytes na forma (modifiers, 0, key1, key2, key3, key4, key5, key6).

Classes