v4.4.0#

A v4.4.0 adiciona uma API tf.regression(), suporte ao FLIR Lepton no OpenMV Cam H7 Pro, suporte ao coprocessador Cortex-M4 no Arduino Nicla Vision e o MicroPython 1.19. Alguns módulos específicos de placa e comportamentos de WiFi/LCD mudaram — leia as mudanças incompatíveis abaixo.

Destaques#

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

  • Suporte ao sensor térmico FLIR Lepton no 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 do Nicla Vision foram desabilitados e o driver WiFi do RP2040 Connect mudou — veja as mudanças incompatíveis.

Novos recursos#

  • tf.regression(model, input_array) — uma nova função para modelos de regressão do TensorFlow Lite com entrada/saída 1D, que retorna uma lista de saídas de ponto flutuante.

  • Controles do GC2145sensor.set_auto_exposure() e sensor.set_auto_whitebal() agora funcionam no GC2145 (a exposição automática / balanço de branco podem ser desabilitados; a exposição/ganho explícitos ainda não são suportados).

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

  • machine.Pin — o pino USB_VBUS agora está exposto aos scripts do usuário.

Outras mudanças e melhorias#

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

  • As portas RP2 (Arduino Nano RP2040 Connect) e nRF (Arduino Nano 33 BLE Sense) migraram para o novo depurador baseado em TinyUSB para a conexão com a IDE/host.

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

Correções de bugs#

Câmera e sensores:

  • As estatísticas de temperatura de blobs no OpenMV Pure Thermal agora usam a imagem IR em vez da imagem colorida, de forma que a temperatura média por blob fique correta.

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

  • A IMU é reinicializada após um soft-reset, de modo que ela continue funcionando quando o barramento SPI da IMU estiver habilitado.

Sistema:

  • Corrigidos problemas de comparação signed/unsigned na detecção de características FAST/AGAST, na detecção de blobs, no CLAHE e nos drivers de LCD/TV; corrigidas a desinicialização de GPIO de câmera / SPI / DAC no STM32, o mapeamento de pinos LPUART do H7 e o registro do módulo nn do STM32Cube.AI.

Arduino Nicla Vision:

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

Suporte a hardware e placas#

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

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

Mudanças incompatíveis na API#

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

Cada mudança é marcada com seu impacto:

  • minor — API restrita; afeta apenas scripts em uma placa específica.

  • behavior — mesma API, resultados diferentes; reveja scripts ajustados.

As mudanças são agrupadas por impacto nessa ordem. Se você só quer portar seu código, vá direto para o checklist de migração no final. Cada hash de commit aponta para seu diff no GitHub.

Módulos do Nicla Vision e WiFi do RP2040 (minor)#

No Arduino Nicla Vision, os módulos lcd e tv foram desabilitados para liberar memória para o suporte ao coprocessador CM4 — scripts que usam esses módulos no Nicla Vision não os encontrarão mais. O Arduino Nano RP2040 Connect migrou da implementação WiFi/nina customizada da OpenMV para o driver/módulo NINA-W10 oficial do MicroPython, cuja API é diferente.

Commits: f78d191e3, ddf01cb09

Timeout de socket WiFi e flip vertical do LCD (behavior)#

Um timeout de socket do WINC1500 agora retorna um erro não bloqueante (EWOULDBLOCK) em vez de ETIMEDOUT, de forma que sockets com timeout não são mais fechados inesperadamente — o código que capturava ETIMEDOUT precisa ser atualizado. O display do shield LCD SPI agora levanta ValueError (“Vertical flip requires triple buffering!”) quando um y_scale negativo é solicitado sem o triple buffering habilitado.

Commits: 1dc4bea88, 7e52cf751

Checklist de migração#

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

  1. No Nicla Vision, pare de usar lcd/tv; no Nano RP2040 Connect, porte o código WiFi para o driver NINA-W10 oficial (as mudanças de módulos de placa).

  2. Atualize o código de socket do WINC1500 para esperar EWOULDBLOCK no timeout e habilite o triple buffering para a saída de LCD com flip vertical (as mudanças de comportamento).