13.1.4. Executando scripts

O botão iniciar – a seta verde abaixo do botão conectar, ou Ctrl+R – envia o script da aba do editor atual para a câmera conectada e o executa. Enquanto um script roda, o botão iniciar se transforma em um botão parar que o interrompe. Esses dois botões são o laço central de todo o desenvolvimento na câmera: editar, iniciar, observar, parar, editar de novo.

Dois detalhes desse laço importam. Primeiro, o script é enviado para a RAM da câmera e executado lá – iniciar um script não grava nada no armazenamento da câmera, e o script desaparece após um reset. Segundo, o que roda é a aba do editor atual, exatamente como mostrada, salva ou não. Não há uma etapa de upload separada nem uma cópia obsoleta na câmera que possa ficar dessincronizada com o seu editor.

Enquanto um script roda, sua saída de print() flui para o terminal serial e cada quadro que ele captura aparece no visualizador do frame buffer. Quando um script levanta uma exceção não tratada, o traceback é impresso no terminal serial e o IDE leva o editor até a linha problemática – para uma aplicação de múltiplos arquivos, ele primeiro abre o arquivo nomeado a partir do drive da câmera.

13.1.4.1. Tornando um script permanente

Para fazer a câmera executar um script sem o IDE – na inicialização, de forma autônoma, em campo – armazene o script na câmera como main.py. Tools → Save open script to OpenMV Cam (as main.py) grava a aba do editor atual no drive da câmera com esse nome, oferecendo no caminho a opção de remover comentários e comprimir os espaços em branco – o que reduz o arquivo, mas entrega uma cópia ilegível – e Tools → Reset OpenMV Cam reinicia a câmera para que ela inicialize no script armazenado. Juntas, elas constituem a etapa de deploy: a partir daí, a câmera executa o seu script sempre que tiver energia, com IDE ou não.

Enquanto uma câmera reiniciada está executando seu main.py armazenado, o IDE ainda pode se conectar a ela – com Stop Script on Connect/Disconnect ativado (o padrão), conectar interrompe o script armazenado e devolve o controle ao editor.

Ver também

Congelando scripts no firmware para o que main.py significa na sequência de boot da câmera, e para mover uma aplicação concluída inteiramente para fora do armazenamento editável.

13.1.4.2. O drive da câmera

O sistema de arquivos em flash da câmera (e o cartão SD, quando há um inserido) é montado no host como um drive flash USB. Tools → Open OpenMV Cam Drive folder o abre no seu gerenciador de arquivos. É aqui que você copia módulos de bibliotecas, arquivos de modelo e recursos que o script importa ou carrega, e onde você recupera as imagens e logs que ele salvou. O caminho do drive também aparece na barra de status.

Os arquivos que um script cria não aparecem no host imediatamente: o host faz cache do sistema de arquivos a partir do momento em que o drive é montado, de modo que um snapshot salvo pelo script em execução permanece invisível até que o drive seja remontado. Tools → Reset OpenMV Cam o remonta – a maneira rápida de acessar o que o script acabou de gravar.

Uma ressalva: a câmera e o host compartilham esse sistema de arquivos, e gravações simultâneas de ambos os lados podem corrompê-lo. Copie arquivos enquanto nenhum script estiver gravando no armazenamento, e ejete corretamente antes de retirar o cartão.