13.3.1.1. CLI openmv

Menginstal paket ini menambahkan executable openmv yang membuka viewer pygame yang terhubung ke kamera melalui USB. Tanpa argumen selain port serial, ia menjalankan skrip pengujian bawaan kecil, mengalirkan buffer bingkai hasilnya kembali, dan menampilkannya dengan skala serta anotasi laju bingkai saat ini:

openmv --port /dev/ttyACM0

Jalur port bergantung pada platform host. Di Linux, /dev/ttyACMx untuk USB CDC dan /dev/ttyUSBx untuk jembatan USB-ke-UART. Di macOS, /dev/tty.usbmodem... atau /dev/cu.usbmodem.... Di Windows, COMx.

Viewer adalah cara tercepat untuk memastikan paket terinstal, kamera dapat dijangkau, dan protokol berfungsi. Ini juga merupakan harness demo yang berguna selama pengembangan skrip -- ganti skrip pengujian bawaan dengan file MicroPython mana pun menggunakan --script dan lihat hasilnya tanpa meninggalkan terminal.

Esc, Ctrl+C di terminal, atau menutup jendela viewer semuanya keluar dengan bersih.

13.3.1.1.1. Menjalankan skrip kustom

--script mengarahkan CLI ke file sumber MicroPython di disk. File tersebut diunggah ke kamera, dieksekusi sebagai pengganti skrip pengujian bawaan, dan semua bingkai yang dihasilkan akan dialirkan kembali ke viewer:

openmv --port /dev/ttyACM0 --script my_script.py

Semua yang dicetak skrip ke stdout dicerminkan ke terminal host secara real time. Gunakan --quiet untuk menekannya, atau --debug untuk pencatatan protokol yang lebih rinci.

13.3.1.1.2. Mempratinjau saluran kustom

--channel NAME melakukan polling pada saluran data kustom yang didaftarkan oleh skrip sisi kamera yang sedang berjalan dan mencetak sepuluh byte pertama setiap pembaruan ke terminal:

openmv --port /dev/ttyACM0 --channel ticks

Skrip pengujian bawaan yang berjalan ketika tidak ada --script yang diberikan mendaftarkan saluran ticks yang mengembalikan uptime milidetik kamera, sehingga --channel ticks mendemonstrasikan permukaan saluran bidirectional yang dibahas secara rinci di Saluran kustom -- tanpa menulis kode apa pun di host atau kamera.

13.3.1.1.3. Mode benchmark

--bench mengganti skrip pengujian standar dengan benchmark throughput kompresi JPEG:

openmv --port /dev/ttyACM0 --bench

Kamera menangkap satu bingkai RGB565 QVGA, mengompresnya ke JPEG, lalu membuang buffer yang sama secara berulang dalam loop ketat. Viewer melaporkan laju data USB mentah daripada bingkai yang didekode secara langsung, sehingga angka yang ditampilkan adalah batas atas yang dapat dipertahankan oleh tautan ke host tersebut. Berguna untuk membandingkan kamera atau host tanpa variabilitas dari perubahan apa yang sebenarnya ditangkap.

13.3.1.1.4. Profiling

CLI dapat menampilkan overlay data profiler langsung pada bingkai yang dialirkan. Overlay hanya berguna ketika kamera menjalankan build firmware PROFILE_ENABLE=1 dengan saluran profile yang terdaftar; pada firmware standar, kontrol profiling tidak berpengaruh.

  • --firmware PATH -- memuat ELF firmware yang dijalankan kamera sehingga overlay dapat menyelesaikan alamat fungsi dalam catatan profil menjadi nama yang dapat dibaca manusia. Tanpanya, overlay menampilkan alamat mentah.

Tiga pintasan keyboard di viewer mengontrol profiler:

Tombol

Aksi

P

Siklus overlay profiler: nonaktif, performa, kejadian.

M

Alihkan mode profiler antara inklusif dan eksklusif. Pengukuran waktu inklusif membebankan waktu callee ke pemanggil; pengukuran waktu eksklusif tidak.

R

Reset penghitung profiler.

13.3.1.1.5. Flag penyetelan protokol

Flag di bawah ini mencerminkan parameter konstruktor pada openmv.Camera. Default berfungsi pada setiap kamera yang dikirimkan; timpa hanya saat men-debug build firmware kustom atau mensimulasikan kondisi tautan yang buruk.

  • --baudrate N -- default ke 921600 (nilai ajaib yang mengalihkan USB ke protokol OpenMV). Timpa hanya pada tautan UART.

  • --timeout SEC -- batas waktu per operasi dalam detik (default 1.0).

  • --max-retry N -- percobaan ulang sebelum tautan dinyatakan rusak (default 3).

  • --max-payload N -- ukuran payload maksimum dalam byte (default 4096). Kamera melakukan negosiasi ke bawah jika tidak dapat menangani sebanyak itu.

  • --crc BOOL -- aktifkan validasi CRC pada setiap paket (default true).

  • --seq BOOL -- aktifkan validasi nomor urut (default true).

  • --ack BOOL -- aktifkan pengakuan per paket (default true).

  • --events BOOL -- aktifkan notifikasi kejadian dari kamera (default true).

  • --drop-rate FLOAT -- tingkat simulasi packet-drop dalam [0.0, 1.0] (default 0.0). Hanya untuk pengujian.

Satu tombol penyetelan khusus CLI:

  • --poll MS -- laju polling untuk loop utama viewer, dalam milidetik (default 4).

13.3.1.1.6. Flag lainnya

Dua flag menyesuaikan cara viewer menampilkan stream tanpa mengubah perilaku sisi kamera:

  • --scale N -- faktor zoom tampilan (default 4). Berguna saat bingkai QVGA terlalu kecil untuk dibaca di layar 4K.

  • --raw -- meminta kamera mengirimkan buffer piksel tanpa kompresi, bukan dikompres JPEG. Berguna pada kamera tanpa dukungan JPEG hardware; Streaming bingkai mencakup trade-off-nya.

13.3.1.1.7. Apa yang dilakukan viewer

CLI itu sendiri adalah program openmv.Camera. Ia terhubung, memanggil stop() untuk menghapus skrip yang sedang berjalan, mengunggah skrip dengan exec(), mengaktifkan streaming dengan streaming(), lalu berulang memanggil read_frame() (untuk memperbarui tampilan), read_stdout() (untuk mencerminkan hasil cetak skrip), dan read_status() (untuk memantau setiap saluran terdaftar lainnya untuk aktivitas). Sumbernya ada di cli.py dan merupakan referensi kerja untuk aplikasi yang mengendalikan kamera dari ujung ke ujung.