v1.3.0¶
A v1.3.0 reescreve a camada de comunicação com a câmera em torno de um protocolo estruturado de comando/resposta e adiciona atualização automática no próprio IDE, tanto para o IDE quanto para seus recursos empacotados. Ela é construída sobre o Qt Creator 4.0.2 e inclui o firmware 2.0.0 da câmera OpenMV. No macOS e no Linux, a gravação de firmware por DFU agora exige uma instalação única do Python mais libusb e pyusb; consulte Mudanças incompatíveis.
Destaques¶
Camada de comunicação reescrita. O código de depuração serial/USB foi reconstruído em torno de um protocolo estruturado de comando/resposta com tamanhos de resposta por comando e atrasos de espera de início/fim, para tornar mais confiáveis as operações de conexão, execução de script, frame buffer e bootloader.
Atualizador automático no IDE. O IDE agora verifica em
openmv.iose há uma versão mais nova e oferece um botão Download, além de baixar e instalar separadamente pacotes de recursos atualizados (exemplos, firmware, documentação) e, em seguida, solicitar a reinicialização.Atualização de firmware em um clique. A versão do firmware na barra de status agora é um botão clicável que compara a câmera conectada com o firmware empacotado e oferece uma atualização em um clique quando há uma versão mais nova disponível.
Gravação de firmware por DFU em todas as plataformas. O firmware agora pode ser gravado via DFU no Windows, macOS, Linux x86 e Linux x86_64, e o seletor de firmware aceita arquivos
.dfualém de.bin.Recurso automático de DFU. Quando o bootloader serial não pode ser alcançado durante uma atualização de firmware, o IDE agora oferece atualizar pelo bootloader DFU da câmera, orientando você na adição de um jumper
BOOT/RST.
Novos recursos¶
Atualizador no IDE. Verifica em
openmv.iose há uma versão mais nova do IDE e oferece um botão Download que abreopenmv.io/download, além de baixar, descompactar e instalar pacotes de recursosopenmv-ide-resources-X.Y.Z.zipdiretamente no IDE antes de solicitar a reinicialização (8a1f92bb1, 194acd828, b0be97e3e).Botão clicável de versão de firmware. O rótulo de versão na barra de status passou a ser um
QToolButtonconectado a um fluxoupdateCam()que lê ofirmware/firmware.txtempacotado, compara-o com a câmera conectada e oferece uma Firmware Update com apagamento opcional do sistema de arquivos interno quando há uma versão mais nova (b2ac8defe).Suporte a arquivos DFU. A caixa de diálogo de gravação de bootloader/firmware agora aceita arquivos
.dfualém de.bine força um apagamento completo do sistema de arquivos interno ao gravar um.dfu. O filtro do seletor de firmware foi ampliado paraFirmware Binary (*.bin *.dfu)e o fluxo de apagamento forçado para.dfufoi introduzido em4ad2be5f9, com a caixa de seleção de apagamento desabilitada e sempre marcada que alterna automaticamente conforme a extensão do arquivo escolhido, adicionada emb2ac8defe(4ad2be5f9, b2ac8defe).Recurso automático de DFU em caso de falha do bootloader. Quando uma atualização de firmware
.binnão consegue iniciar o bootloader serial, o IDE agora informaUnable to connect to the bootloader!e então oferece atualizar usando o bootloader DFU da câmera, avisando que o DFU apaga o sistema de arquivos da flash interna e orientando você na adição de um fio jumperBOOT/RSTe na reconexão antes de executarDfuSeCommand.exe(Windows) (4ad2be5f9).Exemplo de HoG. Adicionado um exemplo de visualização de Histograma de Gradientes Orientados (
09-Feature-Detection/hog.py) usandoimg.find_hog()(b03a707f7).
Outras mudanças e melhorias¶
Substituiu o antigo código improvisado de taxa de transmissão (baud rate)/pacotes por classes
OpenMVPluginSerialPortCommand/Result, opcodes__USBDBG_*e__BOOTLDR_*e auxiliarescommand()/commandResult()no lugar dewrite()/readAll()/isOpen()(b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).A instalação do driver de porta serial no Windows agora é silenciosa/sem intervenção, alternando os scripts de driver
openmv.cmd/pybcdc.cmdpara instaladores baseados emdpinstem vez do interativoInfDefaultInstall, e o instalador do Visual C++ Redistributable (vcr.cmd, executandovcredist_x86.exeevcredist_x64.exesilenciosamente) foi adicionado e corrigido (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
Correções de bugs¶
Corrigiu a quebra da gravação de firmware e da comunicação dentro de máquinas virtuais, e afrouxou vários tempos limite de comandos e o polling de frame buffer/buffer de transmissão para tornar a conexão e a execução mais robustas. A caixa de diálogo de reprogramação agora informa que “pode levar até 5 minutos” e o tempo limite do processo DFU foi aumentado de 240s para 300s em
324f243f9(c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).Corrigiu a comparação de atualização disponível de firmware/IDE para que uma versão de correção ou secundária mais nova não seja mais falsamente acionada quando um campo superior é igual, e exigiu que a caixa de diálogo do bootloader tivesse um arquivo selecionado válido antes da gravação (4ad2be5f9).
Fechou os identificadores de arquivo (lista de placas, arquivos de firmware/versão) após a leitura e corrigiu o preenchimento dos blocos de gravação de firmware para preencher até
FLASH_WRITE_CHUNK_SIZE, evitando identificadores vazados e blocos finais mal preenchidos durante atualizações de firmware (4ad2be5f9).Corrigiu o menu
Helpdo OpenMV e os painéis de saída: a entrada About OpenMV Cam não colide mais com o papel About da plataforma (AboutRole→ApplicationSpecificRole), e os painéis de saída não capturam mais os atalhosAlt/Cmd+ número (a0694eac7).Abrir links web externos do OpenMV (fóruns, download, suporte) agora exibe uma caixa de diálogo de erro “Failed to open” quando a URL não pode ser aberta, em vez de simplesmente não fazer nada (b0be97e3e).
Suporte de plataforma e ferramentas¶
Base do Qt Creator: 4.0.2.
Firmware empacotado da câmera: atualizado para 2.0.0, com novos
firmware.bin/openmv.bine os recém-adicionadosfirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfpara OMV2 e OMV7.Gravação por DFU no Windows adicionada usando um
DfuSeCommand.exeda ST empacotado, o pacote de driver USB ST DfuSe (DfuSe v3.0.4.0 no Win7/Win8, v3.0.5.0 no Win8.1) e um instalador de driverdfuse.cmd(4ad2be5f9).Gravação por DFU no macOS e no Linux migrou de binários
dfu-utilpré-compilados para um gravadorpydfu.pyempacotado, com o IDE exibindo os comandos de instalação necessários do libusb/pyusb. Oac248c0ecadicionou brevemente os bináriosdfu-util/dfu-prefix/dfu-suffixpara Linux x86_64, mas o324f243f9removeu todos eles em favor dopydfu.py. Nenhum bináriodfu-utilé incluído na versão final; ostatic.proempacota o diretório de dadospydfupara todos os hosts não Windows, enquanto o Windows usa o fluxo DfuSe empacotado (ac248c0ec, 324f243f9, 7837a07da).Regras udev do Linux atualizadas para usar correspondência por
SUBSYSTEM(cam VID 1209/PID abd1 tty e STM DFU 0483/df11) para que os links simbólicos do dispositivo e do DFU funcionem no Linux de 32 bits, e as requisições de rede com seguimento de redirecionamento foram protegidas para versões mais antigas do Qt (194acd828).
Mudanças incompatíveis¶
Os binários autônomos dfu-util empacotados para macOS e Linux foram removidos e substituídos por um gravador Python pydfu.py. No macOS e no Linux, a gravação de firmware por DFU agora exige uma instalação única do Python mais libusb e pyusb (o IDE exibe os comandos exatos do MacPorts/HomeBrew/apt-get). O Windows continua usando o fluxo empacotado baseado em DfuSe. Não há quebras na API de scripting, e a base do Qt Creator 4.0.2 permanece inalterada.