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).