v4.0.1¶
A v4.0.1 é uma modernização completa que reconstrói o OpenMV IDE a partir de sua antiga base no Qt Creator 4.0.2 para o Qt Creator 10.0.1. Toda a pilha de plugins do OpenMV (visualizador de frame buffer, serial/protocolo, terminal, histograma, editores de limiar e de pontos-chave, ferramentas de vídeo e wrappers de gravação de firmware) é reaplicada sobre a nova base, junto a um par de temas refinados Flat Light/Flat Dark, realce de sintaxe Python com reconhecimento do OpenMV, uma caixa de diálogo unificada de carregamento de firmware e amplo suporte à detecção de dispositivos em ARM64 Linux e macOS. A mudança da base do Qt Creator é uma grande modernização interna, mas não quebra os projetos do usuário; alguns comportamentos padrão e definições de placas mudaram (veja Mudanças incompatíveis).
Destaques¶
Rebase no Qt Creator 10.0.1. O IDE migra do Qt Creator 4.0.2 para o 10.0.1: o Qt Creator upstream é reduzido ao essencial para compilação (98b95fd3b) e todo o plugin do OpenMV é readicionado sobre a nova base (0e8047372).
Temas Flat Light e Flat Dark. Um par refinado de temas claro/escuro acompanha estilos personalizados de realce de sintaxe do editor; o seletor de Tema é reexposto nas configurações Gerais, restrito apenas a esses dois, e o tema padrão agora é
flat-dark(21348924b, 13c3849e8).Terminal serial Raw-REPL. O terminal agora executa, interrompe, recarrega e cola scripts por meio de uma máquina de estados de raw-REPL do MicroPython (CTRL-A/CTRL-D) apropriada, lidando de forma confiável com scripts maiores (a7241079c).
Edição de Python com reconhecimento do OpenMV. Módulos, classes, funções, métodos e argumentos do OpenMV recebem realce de sintaxe a partir da documentação incluída, com autocompletar mais inteligente e um autoindentador que reconhece colchetes/dois-pontos (801eab8a8, 8e9f967e7, 9fdff9c6d).
Caixa de diálogo unificada de carregamento de firmware. A gravação agora exibe uma única caixa de diálogo contextual (Apagando Disco / Gravando Firmware / Gravando Bootloader) com uma barra de progresso e um log Mostrar/Ocultar Detalhes recolhível que memoriza o estado (5b51356f8).
Suporte à OpenMV Cam RT1062. Firmware, carregadores de DFU/flash, enumeração SDP/blhost e uma etapa de programação por queima de eFuse foram adicionados para a nova placa da classe i.MX RT1060 (a6595f5f7), que então recebe uma variante de placa Secure Bootloader (SBL) distinta (d2b11c6c8).
Novos recursos¶
Flags de automação. As flags
-auto_update(release/development/ caminho),-auto_erasee-auto_runpermitem que o IDE faça o bootload/apague o firmware e então execute o script aberto ao conectar; após uma reconexão do bootloader, o IDE aguarda até 10s para que a câmera seja reenumerada antes de continuar (b54affe79, f4e03d978).Flag ``-disable_stop`` e uma opção de menu
stop on connect/disconnectpermitem que os usuários desativem a interrupção do script ao conectar ou desconectar (02724ca7d).A opção Parar Script ao Conectar/Desconectar (ativada por padrão) desacopla conectar/desconectar da interrupção do script em execução; o Reconectar Automático agora vem desativado por padrão (a0e78057f).
Prompt de tipo de placa. Quando uma placa conectada relata uma arquitetura que não está no mapeamento de firmware, o IDE agora solicita ao usuário que escolha o tipo de placa (memorizando a última escolha) em vez de abortar com um erro “Unsupported board architecture!” (b7165eb3d).
Realce de sintaxe Python do OpenMV colore os módulos, classes, dados, funções, métodos e argumentos conhecidos do OpenMV usando listas de palavras-chave preenchidas a partir da documentação incluída (801eab8a8, b4d481bf5).
~300 definições de linguagem do KSyntaxHighlighting acompanham o editor, de modo que arquivos-fonte em muitas linguagens recebem realce prontamente (39674a4dc).
Scripts de exemplo do OpenMV incluídos (Hello World, snapshot, gravação de vídeo, fluxo óptico, câmeras de eventos, global shutter, FLIR Lepton e mais) agora são incorporados e distribuídos com o IDE (938ac6bbe).
Editor binário/hexadecimal está habilitado para que os usuários possam abrir e inspecionar arquivos binários, com sua barra de ferramentas reduzida para se adequar à interface do OpenMV (675bda966).
Comparação de documentos em memória. Novos arquivos e exemplos somente leitura agora recebem um arquivo temporário de apoio para que documentos não salvos possam ser comparados, e a caixa de diálogo de comparação de arquivos externos memoriza a última pasta utilizada (5281e5f6c, 2934d5216).
Plugin de editor com abas foi readicionado, dando ao IDE uma barra de documentos com abas; o código-fonte do plugin de minimapa foi readicionado, mas deixado desabilitado na compilação desta versão (0e8047372).
Gravação alternativa via DfuSe e pydfu foi restaurada para dispositivos DFU que não podem ser endereçados por número de série, com tratamento de apagamento automático sem caixa de diálogo durante a conexão (e42a5be7d).
Queima de eFuse do i.MX RT. A programação de firmware agora queima um eFuse (
efuse-program-once) para as placas da classe RT1060 (8053bb578, a6595f5f7).Página do assistente de Instalações Root no Linux permite que o usuário opte por participar ou não da instalação elevada de bibliotecas via apt e da instalação das regras udev, em vez de executá-las sempre (6bac80984).
Outras mudanças e melhorias¶
Varredura de portas seriais em segundo plano. A enumeração de portas foi movida da thread da interface para um worker dedicado
ScanSerialPortsThread, de modo que o IDE permanece responsivo durante a varredura (7be4dab26).Detecção de dispositivos mais ampla. A varredura de portas foi refatorada em um helper reutilizável
filterPorts()que incorpora dispositivos picotool e i.MX DFU e reclassifica portas seriais conhecidas de bootloader do Arduino (PIDs antigos de NRF/RPI e de loader) como dispositivos DFU (25a5d30fd).Mais alternativas de terminal. Ao iniciar as ferramentas de reprodução de vídeo incluídas (Reproduzir Arquivo de Vídeo / Reproduzir Stream RTSP) no Linux, o IDE agora recorre a
lxterminal,konsoleexfce4-terminalalém dextermegnome-terminal(df54007e0).Relatório de chaves de placa. O registro da câmera agora analisa uma resposta “Remaining N” para informar ao usuário quantas chaves de placa restam, e adiciona uma mensagem de erro distinta “Invalid Board Key for Board Type” (5759e73eb).
Downloads hospedados no GitHub. As verificações de versão e os downloads de recursos agora usam
raw.githubusercontent.com/openmv/openmv-ide-versione as releases deopenmv/openmv-ideem vez deupload.openmv.io(994109c28).HTTPS em tudo. Todas as requisições web do OpenMV (verificações de versão, registro de ID SWD, downloads de recursos e de firmware) agora usam
https://(54347cad0).Automação da configuração no Linux. O instalador detecta bibliotecas e regras udev ausentes e, se necessário, gera um
setup.shexecutável com os comandos exatos de instalação apt-get/pip e de regras udev (e umREADMEinstruindo o usuário a executá-lo) (c6dc705e6).Tolerância a placas lentas. O terminal serial aumenta seu tempo de espera por leitura de 1ms para 10ms e emite uma confirmação “OK” quando um script termina (c935e4489).
Progresso de gravação mais suave. As barras de progresso do carregador de firmware agora mudam de indeterminadas para 0-100% imediatamente, em vez de após o primeiro avanço de porcentagem, em todas as gravações via dfu-util, bossac, picotool e i.MX (19d947308, 86d021f92).
Recuperação de bootloader antigo foi readicionada por meio de um modo de bootloader não rápido que envia comandos de apagamento/gravação sem o preenchimento de sincronização por consulta do modo rápido (c20112c07).
Consoles de ferramentas mais limpos. Os terminais de gravação de firmware (bossac, dfu-util, picotool, imx, ferramentas de vídeo) agora rodam como processos de console autônomos com saída de comando mais bem formatada (8053bb578).
Aprimoramento do autocompletar. O autocompletar distingue classes, métodos e funções com dicas de argumentos separadas, usa ícones apropriados do modelo de código e respeita o escopo público/protegido/privado pelo prefixo de sublinhado; o processador de autocompletar por palavra-chave também ignora os espaços em branco iniciais antes do cursor ao ser invocado de forma explícita (manual) (8e9f967e7, 68b26b5fc).
Caixas de diálogo consolidadas. As caixas de diálogo improvisadas “Não mostrar novamente” do OpenMV – incluindo a caixa de diálogo informativa de inicialização
OpenMV Cam LED Colorse os prompts de atualização de firmware e de exemplos – foram unificadas em caixas de diálogoCheckableMessageBox“Não Perguntar/Mostrar Novamente”, um botão “Redefinir Caixas de Diálogo Não Perguntar/Mostrar Novamente” foi adicionado às configurações Gerais, e os marcadores de dobramento de código vêm desabilitados por padrão (9fdff9c6d).Identidade visual sensível ao tema. Telas de abertura em modo escuro, logos dos chips ST e NXP em versões escuro/claro na caixa Sobre, cores de tooltip em modo escuro e cores adequadas para os ícones de autocompletar foram adicionados (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).
Limpeza do visualizador de imagens. As ações de compartilhar, plano de fundo, contorno e “definir como padrão” foram ocultadas, uma ação de ajustar à tela foi adicionada, e o dimensionamento de imagens animadas foi corrigido (b37c55e25).
Limpeza do menu de contexto. As entradas “Show in File System View”, “Open Terminal”, “File Properties” e “Add/Delete UTF-8 BOM on Save” foram ocultadas (5d862c78e).
Terminal serial escuro. O terminal autônomo usa um tema escuro apropriado com barras de rolagem estilizadas, ícones de barra de ferramentas atualizados e recarregamento correto do ícone da barra de rolagem em alta DPI entre telas (5c3af6880).
Limpeza de Localizar/Buscar. O painel de resultados ganha um tema escuro, o seletor do mecanismo de busca é ocultado, os rótulos são simplificados, e o Localizar em Arquivos passa a usar por padrão a pasta Documentos/OpenMV (20a806550).
Identidade da aplicação. O IDE agora exibe o ícone correto do OpenMV na área de trabalho, na barra de título e na barra de tarefas (com tratamento de alta DPI no Windows), e o id do IDE foi alterado para
openmvide(8ad1eed1f).Tela de abertura em alta DPI exibe uma imagem de abertura 2x em telas Retina/com escala de 200% (626ff673e).
Reparo da barra de ações. A barra de ações à esquerda (Novo Arquivo, Abrir, Salvar, Desfazer, Refazer, Recortar, Copiar, Colar) foi reparada e recebeu ícones personalizados do OpenMV (b8479b5d0).
Logos da caixa de diálogo Sobre. Tanto o logo parceiro do Arduino quanto o do Edge Impulse agora são exibidos (o Edge Impulse estava antes oculto) com variantes 2x em alta DPI, e a arte de abertura incluída foi atualizada (
splash-small-2/splash-large-2) (5facd8d9a).Selecionar Palavra Sob o Cursor está habilitado; os comandos Ir para Início/Fim do Bloco (Ctrl+[ / Ctrl+]) e Selecionar Bloco Acima/Abaixo foram reabilitados brevemente (36ed5b1a8), mas deixados desabilitados na versão (626ff673e).
Entrada de área de trabalho do Linux ganha uma categoria Electronics, um Comentário de descrição e Palavras-chave de busca (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).
Migração de recursos. Os recursos do usuário foram movidos para um local versionado (a antiga pasta qtcreator é removida na inicialização), e avisos inofensivos de face de fonte do DirectWrite no Windows são suprimidos (a04af5351, 70765dc2a).
Opções internas ocultadas. As opções internas
-colore-themedo Core são ocultadas da saída de ajuda, e o modo de apresentação foi reabilitado (434c7b4cc).Personalizações de núcleo reaplicadas à barra de ações/widget de abas estilizado, ao gerenciador de mensagens/janela de saída, às ações proxy, ao realçador de sintaxe e ao editor de texto (0e8047372).
QCustomPlot 2.1.1. A biblioteca de plotagem incluída foi atualizada para compatibilidade com o Qt 6.4 e tratamento correto de DPI de exibição que muda dinamicamente (8801415fe).
Limpezas cosméticas da interface nos ícones de seta da barra de rolagem, na barra de status, nos botões de fechar da barra de abas de documentos e na largura do scroller do editor; o indicador “Display File Line Ending” do editor agora vem desativado por padrão (e0c4d2325, 6a26f4430, e130988fb).
Correções de bugs¶
Corrigida a detecção de VID/PID no Linux lendo
/sys/class/tty/<port>/device/ueventpara obter o VID/PID real do dispositivo, contornando oQSerialPortInfoque retornava os identificadores do hub USB, de modo que câmeras atrás de hubs sejam detectadas corretamente (28220b351).Corrigida a gravação de firmware do bootloader no Mac relaxando as asserções de tamanho de endpoint e anexando o pacote de consulta de sincronização somente quando uma gravação tem exatamente o tamanho de um endpoint USB (86d021f92).
Corrigidas as ferramentas de reprodução de vídeo no Linux: Reproduzir Arquivo de Vídeo / Reproduzir Stream RTSP agora ficam ocultas em Linux 32-bit e ARM (sem ffplay incluído), com uma alternativa via gnome-terminal quando o xterm está indisponível, e o binário ffmpeg do macOS foi restaurado a partir de um placeholder (d342649cc, d896f4225).
Aumentados os atrasos de início/fim do reset do bootloader de 0 para 5 para evitar a sobreposição de comandos de apagamento e gravação durante atualizações de firmware (fabc168b6).
Otimizada a recuperação do bootloader: forçar o bootloader para reparar uma câmera travada pula prompts redundantes, e após um reset do bootloader DFU o IDE tenta atualizar automaticamente em vez de pedir ao usuário para reconectar (12b924088).
Permitido que comandos de dump de frame buffer/buffer de TX serial sejam abortados no meio da transação (4a4afae1b).
Removido o contorno de desistência por travamento de leitura da porta serial que podia preencher respostas com bytes zero, melhorando a confiabilidade de transferências USB rápidas (0ee1d8e91).
Corrigidos a depuração por WiFi e o reconectar automático: portas WiFi atualizam seu timestamp de última detecção ao serem redescobertas, vários bugs de iterador-após-apagamento na desativação de portas WiFi e na detecção de DFU/bootloader foram corrigidos, e o reconectar automático agora aguarda até que o IDE não esteja ocupado antes de reconectar (cf0b67dc6).
Corrigido o conversor de vídeo para MJPEG para analisar a taxa de quadros a partir da saída do encoder e gravar o delta correto em milissegundos por quadro, de modo que os vídeos convertidos sejam reproduzidos na velocidade certa (4a7ad2057).
Corrigida a falha de inicialização da gravação de firmware e das ferramentas de linha de comando incluídas, forçando o backend do QProcess e corrigindo a proteção do laço de eventos do processo bloqueante (200fe9f3c).
Corrigidos os ícones de ramificação de expandir/recolher da árvore do editor de conjuntos de dados para serem renderizados corretamente em telas HiDPI, recarregando a folha de estilos de ícones quando a proporção de pixels do dispositivo muda (a0e78057f).
As atualizações de pacotes/recursos agora reiniciam automaticamente o OpenMV IDE em vez de apenas encerrá-lo após a instalação (178ee1b8e).
Corrigido o realce dos resultados de Localizar/buscar e feito com que as ações de resultado de busca/abertura de arquivo recorram ao primeiro editor visível quando não há editor atual (48c402dfc).
Corrigida a caixa de diálogo do carregador de firmware para que seu texto de aviso seja limpo e a janela seja redimensionada corretamente quando uma operação de gravação é concluída (c505c6ade).
Corrigidos vários bugs de interface no macOS: a barra de abas não emite mais erros excessivos de carregamento de ícones e aparece corretamente ao abrir um arquivo (9be8c58de, 5322cf968).
Corrigidos o estilo e o alinhamento de linha de base da barra de status / painel de saída no macOS e no Linux (4fc4545de, d29b2baa0, a440d5cd8).
Corrigida a impressão de código-fonte para que o cabeçalho com o título da página tenha margens superior e laterais adequadas em vez de tocar a borda da página (786d6012c).
Suporte de plataforma e ferramentas¶
Base do Qt Creator: 10.0.1 (reconstruída a partir da 4.0.2).
OpenMV IDE: 4.0.0 -> 4.0.1.
OpenMV Cam RT1062 (i.MX RT1060): o firmware inicial do RT1062, o flash-loader, as imagens assinadas, a entrada
imx.txte as chaves de configuraçãoblhostde secure-bootloader/eFuse foram adicionados na pasta de firmwareOPENMV5(a6595f5f7); a placa foi então consolidada em uma única pastaOPENMV_RT1060, e uma variante de placa Secure Bootloader (SBL) distinta (OpenMV_Cam_RT1062_SBL) foi adicionada (d2b11c6c8, 5baf28c6e).Toolchain de gravação incluído (blhost, bossac, dfu-util, dfuse + drivers STM32, picotool, sdphost, ffmpeg, drivers FTDI/Arduino) foi reempacotado para Windows/macOS/Linux, com os binários Linux marcados como executáveis (fbfa4903a, bfb6b32e2, 9551c64da).
DFU em ARM64 Linux: um
dfu-utilaarch64 incluído, mais a detecção arm64 na listagem de dispositivos e no download de firmware, habilita a gravação por DFU em hosts como o Raspberry Pi (16bc6fe0f, 470e5702e).A detecção de dispositivos i.MX agora funciona no Linux (analisando
lsusb) e no macOS (varrendoioreg), habilitando o carregamento de firmware i.MX RT nessas plataformas (e03ccbe71, 7cf505d09).Restrição por plataforma: o uso do i.MX é restrito a Windows/macOS/Linux-x86_64 com um erro crítico em outros casos, e a gravação de Portenta/Nicla em ARM/ARM64 Linux exibe um aviso “DFU Util may not be stable on this platform” (9513f6475).
OpenGL no Windows: a renderização por software foi restaurada incluindo
opengl32sw,Qt6OpenGLe o suporte OpenGL do Qt6Gui no pacote distribuído (aaaa1928f).Pastas/ids de placas Arduino renomeados. As pastas de firmware e os ids de placa em
boards.txtda Portenta, Nicla Vision e Nano 33 BLE Sense foram renomeados paraARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONeARDUINO_NANO_33_BLE_SENSE(a70d6562a); a pasta/id de placa da Nano 33 BLE Sense foi posteriormente convertida para minúsculas,arduino_nano_33_ble_sense, para corresponder ao nome de placa relatado pelo dispositivo (22750d8c7, a801a81de).Carregadores de flash do bootloader OPENMV_RT1060 (
blhost_flash_loader.bin,sdphost_flash_loader.bin) foram atualizados (5baf28c6e).QCustomPlot: 2.1.1 (biblioteca de plotagem incluída) (8801415fe).
Imagens de firmware em disco foram reempacotadas para todas as placas OpenMV/Arduino suportadas (
OPENMV1-4P,OPENMV4_PRO,OPENMVPT,ARDUINO_NICLA_VISION,arduino_nano_33_ble_sense,ARDUINO_PORTENTA_H7,ARDUINO_NANO_RP2040_CONNECT,OPENMV_RT1060,CYW4343, além do firmware WiFiWINC1500), com firmware e, quando aplicável, imagens de bootloader/uvc (fbfa4903a).
Mudanças incompatíveis¶
Estas são mudanças de fluxo de trabalho e comportamento visíveis ao usuário; o rebase para o Qt Creator 10.0.1 em si não quebra os projetos ou scripts do usuário.
Definições de placa i.MX RT1060 alteradas. As entradas
EVKBMIMXRT1060eOPENMV5foram substituídas por uma única placaOPENMV_RT1060(OpenMV Cam RT1062, mais uma variante SBL), e as antigas pastas de firmware foram removidas (d2b11c6c8).O tempo limite padrão de resposta a comandos é de 10000 ms (era 5000 ms na 4.0.0); o texto de ajuda de
-override_read_timeoutfoi atualizado para corresponder (4a4afae1b).Comportamento de conectar/desconectar alterado. O Reconectar Automático agora vem DESATIVADO por padrão, e conectar ou desconectar não interrompe mais o script em execução por padrão, a menos que a nova opção “Stop Script on Connect/Disconnect” esteja habilitada (ela vem ativada por padrão) (a0e78057f).
O fluxo de atualização reinicia o IDE. As atualizações de pacotes/recursos agora reiniciam o OpenMV IDE automaticamente em vez de encerrá-lo após a instalação (178ee1b8e).
Ids de placas Arduino renomeados. Os ids de placa em
boards.txte as pastas de firmware da Portenta, Nicla Vision e Nano 33 BLE Sense foram renomeados paraARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONeARDUINO_NANO_33_BLE_SENSE(este último posteriormente convertido para minúsculas,arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).