v3.6.8

A v3.6.8 adiciona a placa OpenMV Cam Pure Thermal, torna a inferência com tf cerca de 4× mais rápida ao migrar o TensorFlow para o CMSIS-NN, expande a biblioteca rpc de desktop com interfaces UART / Kvaser CAN / I2C / SPI e habilita o cartão SD no Arduino Portenta H7. O tratamento de partições do cartão SD e o import sensor em placas sem sensor mudaram — leia as mudanças incompatíveis abaixo.

Destaques

  • OpenMV Cam Pure Thermal — suporte a nova placa.

  • TensorFlow ~4× mais rápido — a inferência com tf agora roda no CMSIS-NN.

  • Biblioteca rpc — adicionadas interfaces UART, Kvaser CAN e I2C/SPI master/slave.

  • Cartão SD do Portenta H7 — suporte a cartão SD habilitado, com correções de clock de PLL1/HSE/ADC.

  • Incompatível: o boot do cartão SD agora detecta automaticamente a partição, e o import sensor agora gera erro quando nenhum sensor de imagem está presente — veja as mudanças incompatíveis.

Novos recursos

  • rpc — adicionadas interfaces UART, Kvaser CAN e I2C/SPI master/slave à biblioteca RPC de desktop (rpc_uart_master / rpc_uart_slave, rpc_kvarser_can_master / rpc_kvarser_can_slave e I2C/SPI master/slave).

  • Placas sem sensor — o firmware agora suporta placas sem um sensor de imagem (viabilizando a placa Pure Thermal).

  • Geometria JPEG — adicionada uma struct de configurações de leitura JPEG (jpg_w / jpg_h / jpg_size) para ler a geometria JPEG.

Outras mudanças e melhorias

  • O TensorFlow foi trocado para o CMSIS-NN para uma inferência com tf cerca de 4× mais rápida (configuração de imlib por placa ajustada); o exemplo de ulab usa ulab.numerical.mean / std; o exemplo de deep-sleep agora chama sensor.sleep(True) antes da escrita no registrador de bypass do regulador do OV7725.

Correções de bugs

Câmera e imagem:

  • Corrigido o carregamento de imagens JPEG do disco (a geometria JPEG era rejeitada como formato não suportado), feito com que sensor.reset() realize um hard reset para que o sensor se recupere após o desligamento do regulador, corrigida a configuração de função alternada / clock do SPI do FLIR Lepton nos OpenMV 4 / 4 Plus, e corrigida a atribuição do pino FSYNC nos OpenMV 4 / 4 Plus.

Conectividade e sistema:

  • Corrigida a escrita temporizada em pyb.DAC no H7, feito com que o WLAN.start_ap() do WINC1500 não exija chave para segurança OPEN, corrigido o compartilhamento do barramento I2C entre a câmera e periféricos do usuário no Portenta, e feito o marcador de framebuffer SWD do autoteste ser por placa para que ele não sobrescreva mais o bpp do framebuffer em placas sem ele.

Hardware e suporte a placas

  • OpenMV Cam Pure Thermal — nova placa.

  • Arduino Portenta H7 — cartão SD habilitado, com correções de PLL1 (400 MHz/40 MHz, USB/RNG no HSI48), HSE (25 MHz) e fonte de clock do ADC.

Mudanças incompatíveis na API

Quebras de API visíveis ao usuário entre a v3.6.7 e a v3.6.8. Escopo: C-modules Python em modules/ e bibliotecas Python em scripts/libraries/.

Ambas as mudanças incompatíveis são mudanças de comportamento (mesma API, resultados diferentes) — reverifique os scripts afetados. Cada hash de commit leva ao seu diff no GitHub.

Detecção automática de partição do cartão SD (comportamento)

O boot do cartão SD agora detecta automaticamente a partição em vez de sempre montar a partição 1. Cartões que dependiam do antigo comportamento de partição-1 fixa podem agora montar um sistema de arquivos diferente; reverifique cartões SD com múltiplas partições e a montagem esperada.

Commits: 1f7f003b8

import sensor gera erro em placas sem sensor (comportamento)

Para suportar placas sem um sensor de imagem, a verificação de inicialização do módulo sensor agora roda na importação, então import sensor gera um RuntimeError quando nenhum sensor de imagem é detectado (em vez de falhar depois). Em uma placa apenas térmica, proteja import sensor com try / except ou evite importá-lo.

Commits: 17b444ad1

Checklist de migração

Reverifique cartões SD com múltiplas partições contra a nova detecção automática de partição (a mudança do cartão SD) e proteja import sensor em placas sem sensor / apenas térmicas (a mudança de importação do sensor). Todos os outros scripts funcionam sem alterações.