Renk Algılama
Robotumuza renk sensörü ile çok fazla veri toplaması istendi. Şimdi, bu veriyi kullanarak yalnızca bir değer yerine gerçek bir renk adı çıkarmasını sağlayalım!
Yaygın Renkleri Algılama Dokunma sensörü ile çalışırken if/else (eğer/değilse) ifadelerini nasıl kullandığımızı hatırlayın.
Öncelikle, farklı renkleri belirlemek için if/else ifadesinin iskeletini kurmamız gerekiyor:

Renk Algılama if/else İfadesi
Blokumuzu
ekledikten sonra, gereken "else if" parçalarını eklemek için dişli simgesine tıklayacağız. Yeterli sayıda renk için her birine, Mantık menüsünden bir
blok ekleyeceğiz. Ardından, her tarafına bir değişken
ve bir
blok ekleyebiliriz. Her if/else ifadesi için, robotumuzun okunan tonu belirli bir sayının ALTINDA olup olmadığını kontrol etmesini istiyoruz!

Okunan ton _'dan daha az mı? Son olarak, robotumuzun algıladığı bilgilere dayalı olarak Driver Hub'a bilgi göndermesi için telemetri ekleyeceğiz:

Eklenmiş telemetri blokları Her kontrol, belirtilen aralıkta bir renk için olacaktır. "Key" ifadesi, telemetri bloklarında "Renk" olarak değiştirilebilir. İlk olarak renkleri ekleyebiliriz:

Renkler eklenmiş if/else ifadesi Sonra, ton aralıkları için değerleri ekleyeceğiz. Örneğin, tonu 90-149 arasında olan bir renk yeşil olarak görünecektir.

Tamamlanmış if/else ifadesi Tam doğru ton değerleri biraz ayarlanabilir, ancak yukarıda kullanılanlar, HSV'den RGB'ye dönüşümde renkleri tanımlamak için varsayılan değerlerdir.
"Red" (kırmızı), 30'un altındaki ve 350'nin üzerindeki değerler için algılanır. Bu, kırmızının RGB spektrumunun başlangıç ve bitiş noktası olmasından kaynaklanmaktadır!
If/else ifadesini, "Alpha" telemetri çağrısından sonra döngümüze ekleyelim.

If/else ifadesi, tam programa eklendi OpMode'unuzu kaydedin ve deneyin! Değerleri, renkleri daha iyi yansıtacak şekilde veya odadaki ışık değişimlerine göre ayarlayabilirsiniz.
Last updated