13.1.4. Ejecución de scripts¶
El botón de inicio –la flecha verde debajo del botón de conexión, o Ctrl+R– envía el script de la pestaña del editor actual a la cámara conectada y lo ejecuta. Mientras un script se ejecuta, el botón de inicio se convierte en un botón de detención que lo para. Esos dos botones son el bucle central de todo el desarrollo en la cámara: editar, iniciar, observar, detener, editar de nuevo.
Dos detalles de ese bucle importan. Primero, el script se envía a la RAM de la cámara y se ejecuta ahí –iniciar un script no escribe nada en el almacenamiento de la cámara, y el script desaparece tras un reinicio. Segundo, lo que se ejecuta es la pestaña del editor actual, exactamente como se muestra, guardada o no. No hay un paso de carga aparte ni una copia obsoleta en la cámara que se desincronice con tu editor.
Mientras un script se ejecuta, su salida de print() se transmite en directo a la terminal serie y cada fotograma que captura aparece en el visor del búfer de fotogramas (frame buffer). Cuando un script lanza una excepción no controlada, el rastreo (traceback) se imprime en la terminal serie y el IDE lleva el editor a la línea problemática –en una aplicación de varios archivos, primero abre el archivo nombrado desde la unidad de la cámara.
13.1.4.1. Hacer permanente un script¶
Para que la cámara ejecute un script sin el IDE –al encenderse, de forma autónoma, sobre el terreno– almacena el script en la cámara como main.py. Tools → Save open script to OpenMV Cam (as main.py) escribe la pestaña del editor actual en la unidad de la cámara con ese nombre, ofreciendo por el camino eliminar comentarios y comprimir los espacios en blanco –lo que reduce el archivo pero entrega una copia ilegible– y Tools → Reset OpenMV Cam reinicia la cámara para que arranque con el script almacenado. Juntos forman el paso de despliegue: a partir de entonces la cámara ejecuta tu script siempre que tenga alimentación, con IDE o sin él.
Mientras una cámara reiniciada ejecuta su main.py almacenado, el IDE aún puede conectarse a ella –con Stop Script on Connect/Disconnect activado (el valor por defecto), conectarse detiene el script almacenado y devuelve el control al editor.
Ver también
Congelar scripts en el firmware para saber qué significa main.py en la secuencia de arranque de la cámara, y para mover una aplicación terminada fuera del almacenamiento editable por completo.
13.1.4.2. La unidad de la cámara¶
El sistema de archivos flash de la cámara (y la tarjeta SD, cuando hay una insertada) se monta en el equipo anfitrión como una unidad flash USB. Tools → Open OpenMV Cam Drive folder la abre en tu gestor de archivos. Aquí es donde copias módulos de bibliotecas, archivos de modelos y recursos que el script importa o carga, y donde recuperas las imágenes y los registros que guardó. La ruta de la unidad también aparece en la barra de estado.
Los archivos que crea un script no aparecen en el anfitrión de inmediato: el anfitrión almacena en caché el sistema de archivos desde el momento en que se monta la unidad, por lo que una captura guardada por el script en ejecución permanece invisible hasta que la unidad se vuelve a montar. Tools → Reset OpenMV Cam la vuelve a montar –la forma rápida de acceder a lo que el script acaba de escribir.
Una advertencia: la cámara y el anfitrión comparten ese sistema de archivos, y las escrituras simultáneas desde ambos lados pueden corromperlo. Copia archivos mientras ningún script esté escribiendo en el almacenamiento, y expulsa la tarjeta de forma limpia antes de retirarla.