v1.1.0¶
v1.1.0 é a versão de arquitetura fundacional: elimina os módulos periféricos personalizados iniciais em favor dos built-ins do MicroPython, move a API de imagem para o módulo image e o relógio de taxa de fotogramas para time, e adiciona cascatas Haar integradas, get_pixel() / set_pixel(), suporte à placa OpenMV 2 e depuração por USB-CDC. É uma versão com muitas quebras de compatibilidade que define a API — leia as alterações de quebra de compatibilidade abaixo.
Destaques¶
Built-ins do MicroPython — os módulos personalizados
gpio/led/spi/socket/wlan/uart/file/selectforam removidos em favor dos módulospyb/machinedo MicroPython.Módulo
image—Image()/HaarCascade()/ os descritores estão agora no móduloimage.time.clock— o relógio de taxa de fotogramas foi movido para o módulotime.Cascatas Haar integradas —
HaarCascade("frontalface")/HaarCascade("eye")(sem necessidade de ficheiro).Suporte à placa OpenMV 2 e depuração por USB-CDC.
Quebra de compatibilidade: a estrutura de módulos foi redefinida — consulte as alterações de quebra de compatibilidade.
Novas funcionalidades¶
Image — adicionados
Image.get_pixel(x, y)/set_pixel()e acesso subscrito a pixels viaimg[i]; cascatas Haar integradas em flash (HaarCascade("frontalface")/HaarCascade("eye")) e um parâmetrostages=para limitar as fases da cascata;draw_string()funciona em imagens em escala de cinzentos.Sensor — adicionadas
sensor.set_colorbar(),sensor.set_saturation()e o tamanho de fotogramaQQVGA2.mlx—mlx.read(type)com saídamlx.RAINBOW/mlx.GRAYSCALE.Depuração — implementada depuração por USB CDC, consulta de versão de firmware
fw_version(), firmware por placa (OpenMV 1 / OpenMV 2), e scripts de autoteste / barra de cor; erros fatais/de análise são registados em flash.
Outras alterações e melhorias¶
Falta de memória levanta agora
MemoryErrorem vez deOSError; os scripts são executados com re-lançamento de exceções para que os erros sejam impressos em vez de causar falha; a taxa de baud série é configurável (padrão 921600); sistema de ficheiros em flash maior; o relógio de pixel do sensor foi reduzido para 54 MHz para estabilidade de captura;sensor.reset()depende apenas de um reset suave do sensor.
Correções de erros¶
Corrigidos o template matching,
find_features()a repetir o primeiro objeto, acesso atómico a registos SCCB/I2C, deteção de cartão SD, mapeamento de pinos soft-I2C,fast_cbrtf/ precisão de cor LAB, e o uso de memória pelo integral-image / filtro mediano no OpenMV 1 / 2.
Hardware e suporte a placas¶
Suporte à placa OpenMV 2 (STM32F427) (e design de hardware do OpenMV 3); MCO utilizado como relógio do sensor no OpenMV 2.
Alterações de quebra de compatibilidade da API¶
Alterações de API visíveis pelo utilizador entre v1.0.3-beta e v1.1.0. Âmbito: módulos C em Python em modules/ e bibliotecas Python em scripts/libraries/.
Cada alteração está marcada com o seu impacto:
major — afeta a maioria dos scripts que utilizavam a funcionalidade; será necessário portar o código.
behavior — mesma API, resultados diferentes; verifique novamente os scripts ajustados.
As alterações estão agrupadas por impacto nessa ordem. Se pretende apenas portar o seu código, aceda ao guia de migração no final. Cada hash de commit é uma ligação para o respetivo diff no GitHub.
Módulos periféricos personalizados removidos (major)¶
Os módulos personalizados iniciais clock / file / gpio / led / select / socket / spi / wlan / uart foram removidos em favor dos periféricos integrados pyb / machine do MicroPython. Porte os scripts para os equivalentes padrão do MicroPython (por exemplo, pyb.Pin / pyb.LED / pyb.SPI / pyb.UART).
Commits: 6d2fafa94
API de imagem movida para o módulo image (major)¶
Image(), HaarCascade(), e as funções de guardar/carregar descritores deixaram de ser built-ins simples — passam a residir no novo módulo image. Os scripts devem usar import image e utilizar image.Image / image.HaarCascade().
Commits: 54288c535
Relógio de taxa de fotogramas movido para time (major)¶
O módulo autónomo clock foi removido; o relógio de taxa de fotogramas passa a residir em time. Use import time e clock = time.clock() — o objeto devolvido continua a disponibilizar .tick() / .fps() / .avg() / .reset().
Commits: a8928ca3b
/flash e /sd deixaram de ser adicionados a sys.path (behavior)¶
As etiquetas de volume / diretório raiz foram corrigidas e /flash e /sd deixaram de ser adicionados automaticamente a sys.path. Os scripts que importavam módulos auxiliares pelo nome simples a partir dessas localizações devem adicionar o caminho explicitamente (ou colocar os módulos onde são encontrados).
Commits: 09e77b5da
Guia de migração¶
Para uma migração limpa para v1.1.0, o trabalho típico é:
Substituir os módulos personalizados
gpio/led/spi/uart/socket/wlan/file/selectpelos módulospyb/machinedo MicroPython (remoção dos módulos personalizados).import imagee prefixarImage()/HaarCascade()comimage.(a mudança do módulo image).Usar
import timeeclock = time.clock()(a mudança do relógio).Adicionar
/flash//sdasys.pathexplicitamente se importou módulos auxiliares pelo nome simples (a alteração do sys.path).
Todos os outros scripts funcionam sem alterações.