v4.4.0#

A v4.4.0 adiciona uma API tf.regression(), suporte ao sensor térmico FLIR Lepton na OpenMV Cam H7 Pro, suporte ao coprocessador Cortex-M4 na Arduino Nicla Vision e MicroPython 1.19. Alguns módulos específicos de placa e comportamentos de WiFi/LCD foram alterados — consulte as alterações incompatíveis abaixo.

Destaques#

  • tf.regression() — executa modelos de regressão TensorFlow Lite com entrada/saída 1D.

  • Suporte ao sensor térmico FLIR Lepton na OpenMV Cam H7 Pro.

  • Arduino Nicla Vision — suporte ao coprocessador Cortex-M4, MicroSpeech funcional, LPUART1.

  • MicroPython atualizado para 1.19; ulab atualizado para 5.1.1.

  • Incompatível: os módulos lcd/tv da Nicla Vision foram desativados e o controlador WiFi do RP2040 Connect foi alterado — consulte as alterações incompatíveis.

Novas funcionalidades#

  • tf.regression(model, input_array) — nova função para modelos de regressão TensorFlow Lite com entrada/saída 1D, devolvendo uma lista de valores em vírgula flutuante.

  • Controlos GC2145sensor.set_auto_exposure() e sensor.set_auto_whitebal() passam a funcionar no GC2145 (a exposição automática e o balanço de brancos automático podem ser desativados; a exposição/ganho explícito ainda não é suportado).

  • Arduino Nicla Vision — suporte ao coprocessador Cortex-M4 (CM4) e o periférico LPUART1 foram ativados.

  • machine.Pin — o pino USB_VBUS está agora disponível para scripts do utilizador.

Outras alterações e melhorias#

  • MicroPython atualizado para 1.19; ulab para 5.1.1; o controlador WiFi cyw43 incluído foi atualizado.

  • As portas RP2 (Arduino Nano RP2040 Connect) e nRF (Arduino Nano 33 BLE Sense) passaram a utilizar o novo depurador baseado em TinyUSB para a ligação IDE/anfitrião.

  • O XCLK do OV7670 foi aumentado de 12 MHz para 24 MHz (conjunto de registos atualizado).

Correções de erros#

Câmara e sensores:

  • As estatísticas de temperatura de manchas no OpenMV Pure Thermal passaram a utilizar a imagem infravermelha em vez da imagem colorida, tornando a temperatura média por mancha correta.

  • Corrigido o tratamento de ROI e o escalonamento de área em draw_image() para uma saída escalada mais precisa.

  • A IMU é reinicializada após um reset por software, mantendo-se em funcionamento quando o barramento SPI da IMU está ativado.

Sistema:

  • Corrigidos problemas de comparação com/sem sinal na deteção de características FAST/AGAST, deteção de manchas, CLAHE e controladores LCD/TV; corrigida a desinicialização de câmara-GPIO / SPI / DAC no STM32, o mapeamento de pinos LPUART no H7, e o registo do módulo nn no STM32Cube.AI.

Arduino Nicla Vision:

  • O MicroSpeech passa a funcionar (buffer PDM duplicado, exemplo adicionado) e o modo de espera de baixo consumo foi corrigido.

Hardware e suporte de placa#

  • OpenMV Cam H7 Pro — suporte ao sensor térmico FLIR Lepton.

  • Arduino Nicla Vision — coprocessador CM4, LPUART1, MicroSpeech, modo de espera de baixo consumo.

Alterações incompatíveis na API#

Alterações da API visíveis pelo utilizador entre a v4.3.3 e a v4.4.0. Âmbito: módulos C Python em modules/ e bibliotecas Python em scripts/libraries/.

Cada alteração está marcada com o seu impacto:

  • menor — API restrita; afeta apenas scripts numa placa específica.

  • comportamento — 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, avance para a lista de verificação de migração no final. Cada hash de commit tem uma ligação para o seu diff no GitHub.

Módulos Nicla Vision e WiFi RP2040 (menor)#

Na Arduino Nicla Vision, os módulos lcd e tv foram desativados para libertar memória para o suporte ao coprocessador CM4 — os scripts que utilizavam esses módulos na Nicla Vision deixarão de os encontrar. O Arduino Nano RP2040 Connect passou da implementação WiFi/nina personalizada da OpenMV para o módulo/controlador NINA-W10 MicroPython upstream, cuja API é diferente.

Commits: f78d191e3, ddf01cb09

Tempo limite de socket WiFi e inversão vertical LCD (comportamento)#

Um tempo limite de socket WINC1500 devolve agora um erro não bloqueante (EWOULDBLOCK) em vez de ETIMEDOUT, pelo que os sockets com tempo limite expirado deixam de ser fechados inesperadamente — o código que capturava ETIMEDOUT deve ser atualizado. O shield SPI LCD display passa a lançar ValueError («Vertical flip requires triple buffering!») quando é solicitado um y_scale negativo sem o triple buffering ativado.

Commits: 1dc4bea88, 7e52cf751

Lista de verificação de migração#

Para uma migração limpa para a v4.4.0, o trabalho típico é:

  1. Na Nicla Vision, deixe de utilizar lcd/tv; no Nano RP2040 Connect, porte o código WiFi para o controlador NINA-W10 upstream (as alterações de módulo de placa).

  2. Atualize o código de socket WINC1500 para esperar EWOULDBLOCK no tempo limite, e ative o triple buffering para saída LCD com inversão vertical (as alterações de comportamento).