12. Ana Bilgisayar Protokolü

Her OpenMV kamera, kamerayı bir ana bilgisayar programına bir dizi adlandırılmış veri kanalı olarak sunan bir protokol yığını ile gelir. Ana bilgisayar programı, geliştiricinin dizüstü bilgisayarındaki bir Python betiği, bir masaüstü grafik arayüzü, bir UART’ın diğer ucundaki başka bir kamera veya bir kamera filosunu izleyen bir iş istasyonunda çalışan bir hizmet olabilir. Kamera hangisi olduğunu umursamaz – aynı çerçeveleme, aynı güvenilirlik mekanizması, aynı kanal soyutlaması hepsi için çalışır.

Bu, bir kamera projesi IDE’den çıktıktan sonra sürekli ortaya çıkan iki sorunun yanıtıdır:

  • “Kameranın gördüğünü dizüstü bilgisayarımdaki özel bir grafik arayüze canlı olarak nasıl aktarırım?”

  • “Bir operatörün, yeniden flash yazmadan, çalışma zamanında bir eşik değerini değiştirmesine veya bir ilgi bölgesi seçmesine nasıl izin veririm?”

Kamera tarafındaki protocol modülü ve ana bilgisayar tarafındaki openmv-python paketi, kameradaki bir Python sınıfının, ana bilgisayardaki bir Python sınıfının okuyabileceği, yazabileceği ve olaylarına tepki verebileceği bir kanal sunmasına izin vererek her iki soruyu da yanıtlar; tümü tek bir USB veya seri bağlantı üzerinden.

Bir ana bilgisayar PC'si USB üzerinden bir kameraya bağlanır; kamera üç kanal sunar -- görüntü verisi için bir çerçeve kanalı, denetim değerleri için bir yapılandırma kanalı ve print için yerleşik stdout kanalı -- ve ana bilgisayar betiği her birinden okur veya her birine yazar.

Bölüm her iki tarafı da öğretir. Kamera tarafı kodu kanalların nasıl kaydedileceğini ve besleneceğini gösterir; ana bilgisayar tarafı kodu ise nasıl bağlanılacağını, kanalların nasıl listeleneceğini, verinin nasıl çekileceğini ve komutların geri nasıl gönderileceğini gösterir. openmv-projects/tools/ dizininde gelen gerçek araçlar, tam olarak burada gösterilen desenleri kullanır.

Özet