14.5. Özet

Bir kameranın çalışan bir tezgah betiğinden sevk edilen bir ürüne geçiş yaşam döngüsünü baştan sona gezdiniz:

  • Özel aygıt yazılımı (firmware) derlemeleri – geliştirme ortamı, aygıt yazılımı imajını kaynaktan derleme, bir kameraya flash’lama ve aygıt yazılımı tarafında bir şeyler ters gittiğinde VS Code Cortex-Debug’dan komut satırı gdbrunner aracına uzanan hata ayıklama yolu.

  • Uygulamanın sevki – uygulama kodunu donmuş modüller aracılığıyla aygıt yazılımına gömme, varlıkları bir ROMFS imajına gömme ve çalışma zamanının önyükleme sırasında bir dosyanın hangi kopyasını gerçekten yüklediğini belirleyen arama sırası. Ortaya çıkan ayrım: REPL öncesi ortam kurulumu için boot.py, uygulamanın giriş noktası olarak main.py, giriş için donmuş main.py ve diğer her şey için ROMFS.

  • Üretim için sağlamlaştırma – bilinen bir yola yazılan logging kütüphanesi, ana döngü yinelemesi başına bir kez beslenen bir machine.WDT, çökmeleri sıfırlamalar yerine günlüğe kaydedilen olaylara dönüştüren üst düzey bir try / except, uygulama aylar boyunca sahada kayıt biriktirdikçe dosya işlemlerini hızlı tutan dosya sistemi hijyeni ve – ürün gerektirdiğinde – flash bellek okuma koruması.

  • İleri düzey malzeme – ağ hizmetleriyle kimlik doğrulaması yapması ve trafiği şifrelemesi gereken kameralar için TLS sertifikaları.

Sevk edilen bir kamerada bunların tümü yerindedir: uygulama kodu aygıt yazılımı imajından çalışır, gözlemci (watchdog) ana döngü yinelemesi başına bir kez beslenir, günlüğü SD kart üzerinde tarihli bir dizine düşer ve – ürün gerektirdiğinde – flash belleği okumaya karşı kilitlenmiştir.

14.5.1. Buradan nereye gidilir

Üretim, öğreticinin son bölümüdür. Buradan itibaren belgeler referans malzemesine ayrılır:

  • kütüphane referansı kameranın açığa çıkardığı her modülün – machine, logging, os, csi, image, ml ve geri kalanı – alfabetik “bu çağrının tam adı nedir” görünümüdür.

  • kart başına hızlı referans sayfaları OpenMV ürün serisindeki her kameranın ayrıntılarını kapsar – pin çıkışları, bağlanabilir veri yolları, kart kimlikleri, çevre birimi kullanılabilirliği ve uygulamanın belirli bir parçaya yerleşmesi gerektiğinde önemli olan küçük farklılıklar.

  • sensör referans sayfaları ve kalkan referans sayfaları bir kameranın taşıyabileceği bireysel görüntü sensörlerini ve eklenti kalkanlarını kapsar – bir derleme için sensör ve kalkan seçerken uygulamanın ihtiyaç duyduğu parça başına özellikler, pin çıkışları ve notlar.

  • MicroPython dil referansı dilin kendisini kapsar – CPython’dan sözdizimi farklılıkları, bir betik ikisi arasında geçiş yaptığında önemli olan uygulama ayrıntıları ve Python’un çok yavaş olduğu ender durumlar için satır içi derleyici referansı.

Öğretici, “elimde yeni bir kamera var” durumundan “bir ürün sevk ettim” durumuna giden yoldur. Buradan itibaren kamera, uygulamanın sorumlu olduğu daha büyük bir sistemin bir parçasıdır ve iş, uygulamanın kendisine aittir.