v2.4.0¶
A v2.4.0 é baseada no Qt Creator 4.0.2 e gira em torno do novo bootloader V3 (consulta do layout da flash QSPI durante o carregamento do firmware e apagamento durante um apagamento completo da data flash interna), do relatório ao vivo do sensor e da placa na barra de status, e de um novo protocolo de depuração USB de 32 bits compatível com o firmware empacotado. Ela também adiciona um guia de LED para a primeira execução e um grande conjunto de novos exemplos de TensorFlow, Modbus e WiFi. Como o protocolo de depuração mudou, as câmeras precisam executar o novo firmware empacotado para se conectar.
Destaques¶
Suporte ao bootloader V3 consulta o layout da flash QSPI externa de uma placa durante o carregamento do firmware e a apaga durante um apagamento completo da data flash interna (d953df62f).
Relatório de sensor e placa consulta o módulo de sensor da câmera conectada na conexão e o exibe na barra de status (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) junto a um novo rótulo de tipo de placa (0ffa82958).
Cópia de modelos TensorFlow permite copiar modelos
.tflitepara a câmera, não apenas arquivos de rede neural.network(ad1aa98f0).Erase Onboard Data Flash é um novo comando de
Toolsque apaga apenas a flash do sistema de arquivos interno da câmera, após um prompt de confirmação, sem regravar o firmware (d953df62f, 98686ac46).Guia de LED da primeira execução é uma nova caixa de diálogo
OpenMV Cam LED Colorsque explica os estados do LED interno e pode ser dispensada permanentemente (c2d00422f).
Novos recursos¶
Bootloader V3 consulta o layout da flash QSPI durante o carregamento do firmware e apaga a flash QSPI externa apenas durante um apagamento completo da data flash interna;
connectClickedsempre acionabootloaderQSPIFLayoutem placas V3, mas executabootloaderQSPIFErasesomente quandoforceFlashFSEraseestá definido (os comandos de escrita/memtest QSPI são implementados na camada de IO, mas não são exercitados pelo loader) (d953df62f).Status de sensor e placa consulta o módulo de sensor da câmera na conexão e o exibe (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) na barra de status, junto a um novo rótulo de tipo de placa, usando um novo mapa de id-para-nome
sensors.txt(0ffa82958).Guia de LED da primeira execução adiciona uma nova caixa de diálogo
OpenMV Cam LED Colorsque aparece após um curto atraso quandohelloworld_1.pyé o documento aberto na primeira execução, explicando os estados do LED interno (verde piscando = bootloader em execução, azul = executandomain.py, branco = pânico de falha de hardware); uma caixa de seleção “Don’t show this message again.” persiste a dispensa por meio de uma configuraçãoDONT_SHOW_LED_STATES_AGAIN(c2d00422f).Open OpenMV Cam Drive folder é um novo item do menu
Toolsque abre a unidade montada da câmera no navegador de arquivos do sistema (a49f54305).Erase Onboard Data Flash é um novo comando de
Toolsque apaga apenas a flash do sistema de arquivos interno, após um prompt de confirmação, sem regravar o firmware (d953df62f, 98686ac46).Cópia de modelos TensorFlow permite que a caixa de diálogo de cópia de modelos copie modelos
.tflitepara a câmera, além de arquivos de rede neural.network; o filtro da caixa de diálogo também ganhou entradasLabel Files (*.txt)eAll Files(ad1aa98f0, 0ffa82958, c0dbdd9e5).Chave de versão do protocolo de depuração divide os comandos seriais
GetAttribute,SetAttribute,FBEnableeJPEGEnableao conversar com firmware 3.5.3+ para maior confiabilidade (83b9ca18f).Novos exemplos empacotados adicionam scripts de janela deslizante para mobilenet do TensorFlow Lite e detecção de pessoas, além de um exemplo MNIST com STM32Cube.AI (
nn_stm32cubeai.py), uma nova pasta32-modbus(modbus_rtu_slave.py,modbus_apriltag.py), adições ao WiFi shield (http_client_ssl,static_ip,mqtt_pub/mqtt_sub), Arduino UART/SPI-slave e CAN (e26b90d79, 42ba8f5c4).
Outras mudanças e melhorias¶
Atualizou o protocolo de depuração USB para o novo firmware: as leituras de atributos usam o novo comando de 32 bits
ATTR_READ_2(0xCA), e os payloads de atributo, valor e habilitação do framebuffer são enviados como longs de 32 bits em vez de words de 16 bits (55d7cfe70).Renomeou Save open script to OpenMV Cam para Save open script to OpenMV Cam (as main.py) para esclarecer que ele grava
main.py(a49f54305).Renomeou Run Bootloader para Run Bootloader (Load Firmware) para esclarecer seu propósito (ad1aa98f0).
Os menus de exemplos agora são ordenados pelo prefixo numérico de pasta/arquivo, e os dígitos iniciais
NN-são removidos dos nomes exibidos (ad1aa98f0).Os terminais de saída e serial agora renderizam tabulações como espaços usando uma largura de tabulação de terminal serial configurável a partir das configurações do editor de texto, em vez de uma largura fixa de 8 (98686ac46).
A detecção de unidades no Linux agora também aceita sistemas de arquivos montados como
fuseblk(por exemplo, volumes exFAT/NTFS) ao associar a unidade da câmera (c0dbdd9e5).Atualizou o conjunto de documentação HTML do MicroPython empacotado (referência da biblioteca, tutoriais esp8266/esp32, páginas e imagens geradas) exibido na ajuda da IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).
Correções de bugs¶
Corrigiu um estouro numérico nas estatísticas do histograma (média, quartis, mediana, desvio padrão) ampliando os acumuladores de
intpara 64 bits, evitando estatísticas erradas em imagens grandes (55d7cfe70).Refez a desconexão/ejeção no Linux: o pouco confiável flush
syncfs/closedirfoi removido e a unidade agora é desmontada com um comandoumountsimples, sem caixa de diálogo de progresso (b86d5c62c, c0dbdd9e5, 30d4a7d2d).A unidade USB da placa agora só é associada quando o firmware é novo o suficiente ou quando um arquivo marcador
.openmv_diskestá presente, evitando que a IDE pegue a unidade removível errada (e464eaed4).Corrigiu a lógica de reconexão para que acionar uma operação de bootloader/apagamento enquanto conectado agora desconecte de forma limpa primeiro e depois tente novamente, evitando um estado de trabalho travado (d953df62f).
Reescreveu o removedor de comentários/espaços em branco usado ao enviar scripts para a câmera como uma máquina de estados ciente de strings, de modo que caracteres
#dentro de strings não sejam mais confundidos com comentários, e espaços em branco no final e docstrings sejam tratados (24dff1b2f).Corrigiu o tratamento de strings de tradução para várias mensagens de caixa de diálogo de conexão/terminal, de modo que os comandos de shell embutidos (
sudo adduser, etapas de instalação dopydfu) não façam mais parte do texto traduzível e sejam renderizados corretamente (b5705a57e).
Suporte de plataforma e ferramentas¶
Base do Qt Creator: 4.0.2.
Renomeou a placa/firmware OpenMV Cam H7 Plus de
OPENMV4RparaOPENMV4P(OMV4P_H7_32768_SDRAM) e empacotou seu firmware sob o novo nome (c0dbdd9e5).Corrigiu o nome de exibição da placa H7 Plus para usar sublinhados em vez de espaços (
OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).O firmware empacotado foi atualizado ao longo do lançamento, terminando na versão 3.5.2 para OPENMV2/3/4/4P (incremento final em 15c07498c; incrementos cumulativos anteriores em 42ba8f5c4 para 3.4.2, a99c2e3e1 para 3.4.3, e26b90d79 para 3.5.0 e 97b0f645a para 3.5.1).
Versões do firmware empacotado: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.
Versão da OpenMV IDE elevada de 2.2.1 para 2.4.0.
Mudanças incompatíveis¶
O protocolo de leitura de atributos de depuração USB foi alterado do antigo comando de 16 bits ATTR_READ (0x8A) para o novo comando de 32 bits ATTR_READ_2 (0xCA), e os payloads de atributo, valor e habilitação agora são enviados como longs de 32 bits; a IDE também consulta o ID do sensor da câmera na conexão. Isso requer um firmware que implemente o novo protocolo. O firmware empacotado 1.2.15 / 1.4.11 o fornece, portanto câmeras mais antigas precisam ser regravadas com o novo firmware para se conectar.