13.1.4. 스크립트 실행하기¶
시작 버튼 – 연결 버튼 아래의 녹색 화살표, 또는 Ctrl+R – 은 현재 편집기 탭의 스크립트를 연결된 카메라로 보내 실행합니다. 스크립트가 실행되는 동안 시작 버튼은 실행을 멈추는 정지 버튼으로 바뀝니다. 이 두 버튼이 카메라에서 이루어지는 모든 개발의 핵심 루프입니다. 편집하고, 시작하고, 지켜보고, 정지하고, 다시 편집합니다.
그 루프에서 두 가지 세부 사항이 중요합니다. 첫째, 스크립트는 카메라의 RAM으로 보내져 거기서 실행됩니다 – 스크립트를 시작해도 카메라의 저장소에는 아무것도 기록되지 않으며, 리셋 후에는 스크립트가 사라집니다. 둘째, 실행되는 것은 현재 편집기 탭으로, 저장 여부와 관계없이 화면에 보이는 그대로입니다. 별도의 업로드 단계가 없으며, 편집기와 어긋날 수 있는 오래된 사본도 카메라에 남지 않습니다.
스크립트가 실행되는 동안 그 print() 출력은 시리얼 터미널로 실시간 전송되고, 캡처되는 모든 프레임은 프레임 버퍼 뷰어에 나타납니다. 스크립트가 처리되지 않은 예외를 발생시키면 트레이스백이 시리얼 터미널에 출력되고 IDE는 편집기를 문제가 된 줄로 이동시킵니다 – 여러 파일로 구성된 애플리케이션의 경우 먼저 카메라의 드라이브에서 해당 파일을 엽니다.
13.1.4.1. 스크립트를 영구적으로 만들기¶
IDE 없이 – 전원이 켜질 때, 독립 실행으로, 현장에서 – 카메라가 스크립트를 실행하도록 하려면, 스크립트를 main.py 라는 이름으로 카메라에 저장하세요. Tools → Save open script to OpenMV Cam (as main.py)는 현재 편집기 탭을 그 이름으로 카메라의 드라이브에 기록하며, 그 과정에서 주석을 제거하고 공백을 압축할 것인지 묻습니다 – 이는 파일 크기를 줄이지만 읽을 수 없는 사본을 만듭니다 – 그리고 Tools → Reset OpenMV Cam은 카메라를 재시작하여 저장된 스크립트로 부팅되도록 합니다. 이 둘이 함께 배포 단계를 이룹니다. 그 이후로 카메라는 IDE 유무와 관계없이 전원이 있을 때마다 여러분의 스크립트를 실행합니다.
리셋된 카메라가 저장된 main.py 를 실행하는 동안에도 IDE는 여전히 그것에 연결할 수 있습니다 – Stop Script on Connect/Disconnect가 켜져 있으면(기본값), 연결 시 저장된 스크립트가 멈추고 제어권이 편집기로 돌아갑니다.
더 보기
카메라의 부팅 시퀀스에서 main.py 가 의미하는 바와, 완성된 애플리케이션을 편집 가능한 저장소에서 완전히 옮기는 방법에 대해서는 스크립트를 펌웨어에 프리징하기 를 참조하세요.
13.1.4.2. 카메라의 드라이브¶
카메라의 플래시 파일시스템(그리고 SD 카드가 삽입된 경우 SD 카드)은 호스트에 USB 플래시 드라이브로 마운트됩니다. Tools → Open OpenMV Cam Drive folder는 이를 파일 관리자에서 엽니다. 여기에 스크립트가 임포트하거나 로드하는 라이브러리 모듈, 모델 파일, 에셋을 복사하고, 스크립트가 저장한 이미지와 로그를 가져옵니다. 드라이브 경로는 상태 표시줄에도 나타납니다.
스크립트가 생성한 파일은 호스트에 바로 나타나지 않습니다. 호스트는 드라이브가 마운트되는 순간부터 파일시스템을 캐시하므로, 실행 중인 스크립트가 저장한 스냅샷은 드라이브가 다시 마운트될 때까지 보이지 않습니다. Tools → Reset OpenMV Cam은 이를 다시 마운트합니다 – 스크립트가 방금 기록한 것에 접근하는 빠른 방법입니다.
한 가지 주의 사항: 카메라와 호스트가 그 파일시스템을 공유하므로, 양쪽에서 동시에 쓰기를 하면 파일시스템이 손상될 수 있습니다. 어떤 스크립트도 저장소에 쓰고 있지 않을 때 파일을 복사하고, 카드를 빼기 전에 깨끗하게 꺼내세요.