v4.3.0

A v4.3.0 adiciona descodificação JPEG acelerada por hardware, modo de alta temperatura e deteção de modelo para o FLIR Lepton, novas conversões de espaço de cor JPEG, e MicroPython 1.18, além de um conjunto de correções de RTC e WiFi. A API do modo de medição do Lepton foi alterada — leia as alterações de ruptura abaixo.

Destaques

  • Descodificação JPEG por hardware em STM32 (H7) — descompressão JPEG mais rápida.

  • Modo de alta temperatura do FLIR Lepton (até ~600 °C no Lepton 3.5) e deteção automática de modelo (1.5–3.5).

  • Novas conversões JPEG — descodifica JPEGs YCbCr para escala de cinzentos e JPEGs em escala de cinzentos para RGB565.

  • MicroPython atualizado para 1.18.

  • Ruptura: o ioctl do modo de medição do Lepton foi alterado — consulte as alterações de ruptura.

Novas funcionalidades

  • Descodificação JPEG acelerada por hardware — o codec JPEG integrado no STM32 é agora utilizado para descompressão.

  • Conversões de espaço de cor JPEG — o descodificador consegue descodificar JPEGs YCbCr para GRAYSCALE e JPEGs GRAYSCALE para RGB565.

  • Modo de alta temperatura do Lepton — um novo modo de medição high_temp utiliza baixo ganho para alargar o intervalo até aproximadamente 600 °C no Lepton 3.5.

  • Arduino Nano RP2040 Connect — os módulos de driver onewire, dht e neopixel estão agora congelados no firmware.

Outras alterações e melhorias

  • MicroPython atualizado para 1.18.

  • O driver do FLIR Lepton deteta e reporta agora ao IDE o modelo específico do Lepton (1.5 / 1.6 / 2.0 / 2.5 / 3.0 / 3.5).

Correções de erros

Processamento de imagem:

  • Image.to_grayscale() / a conversão do canal L já não devolve valores L negativos para pixels RGB565 escuros; o descodificador JPEG já não falha (MemManage) em imagens com dimensões ímpares.

Câmara e sensores:

  • Corrigidos os rácios de subamostragem de janela do GC2145 e a ordem dos pixels Bayer para qualidade de imagem correta em resoluções abaixo de QVGA e no modo BAYER.

Rede e armazenamento:

  • Corrigido o tratamento de tempo limite de socket não bloqueante do WINC1500 e adicionado o mapeamento correto de errno do MicroPython para erros de socket; corrigido o tratamento de ficheiros no disco USB OpenMV STM32.

Relógio em tempo real:

  • Corrigida a seleção da fonte de relógio RTC / LSE-vs-LSI e a errata do oscilador LSE nas placas OpenMV Cam H7 Plus e Pure Thermal.

Suporte de hardware e placas

  • STM32 (H7) — descodificação JPEG por hardware.

  • OpenMV Cam H7 Plus / Pure Thermal — correções da fonte de relógio RTC.

  • Arduino Nano RP2040 Connect — drivers onewire / dht / neopixel congelados.

Alterações de ruptura na API

Alterações de API visíveis ao utilizador entre a v4.2.3 e a v4.3.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 que a utilizavam.

  • comportamento — mesma API, resultados diferentes; rever scripts ajustados.

Ambas as alterações de ruptura afetam apenas o sensor térmico FLIR Lepton. Cada hash de commit tem ligação ao respetivo diff no GitHub.

ioctl do modo de medição do Lepton (menor)

sensor.ioctl(SET_MEASUREMENT_MODE, ...) aceita agora um argumento opcional high_temp, e GET_MEASUREMENT_MODE devolve agora um tuplo de 2 elementos (enabled, high_temp) em vez de um único booleano. O código que lia o valor de retorno booleano anterior deve ser atualizado para desempacotar o tuplo.

Commit: 6b2cd1008

Intervalo de temperatura predefinido do Lepton (comportamento)

O intervalo de temperatura predefinido do FLIR Lepton foi alterado de −17,78 °C…37,78 °C para −10,0 °C…40,0 °C. O mapeamento de cores e as temperaturas reportadas para cenas que dependiam do intervalo predefinido antigo serão diferentes — defina um intervalo explícito se precisar do comportamento anterior.

Commit: bc07e0131

Lista de verificação de migração

Apenas os scripts para o FLIR Lepton são afetados: desempacote o novo tuplo GET_MEASUREMENT_MODE (enabled, high_temp) (a alteração do modo de medição) e defina um intervalo de temperatura explícito se depender do valor predefinido antigo (a alteração do intervalo predefinido). Todos os outros scripts funcionam sem alterações.