Günümüzde önünden geçen bir cismin rengini algılayan sensörler, genellikle fabrikalarda iş gücünü hafifletmek için kullanılır. Örneğin üretim bandı üzerinde hareket eden bir birinden farklı ürünler renk algılayan sensörler sayesinde doğru banda yönlendirilebilirler. Bu özellik sayesinde birçok sektör fabrikalarında bu sensörlerin daha gelişmiş olanlarını kullanır.Bu projede kullanacağımız gesture modülü (APDS-9960 sensörü) sayesinde PicoBricks’in etrafındaki cisimlerin renklerini algılayabiliriz.
Gesture modülü, önündeki cismin renklerini algılarken R (RED), G(Green) ve B (BLUE) olarak 3 tane sayısal çıktı üretir. Bu çıktıları RGB LED’ değerleri olarak kullandığımızda tek bir renk değeri oluşur ve bu renkte gesture sensörünün önündeki cisimin rengidir.
NOT: Ortamın ışık miktarı cisme olan mesafe ve cismin opasite değeri gesture modülünün algılayacağı değeri değiştirebilmektedir. Önerilen uzaklık ortalama 5 cm olmalıdır.
Bağlantı Şeması:
Bu projeyi kablo bağlantısı yapmadan hazırlayabilirsiniz.
Proje Görselleri


Bu projede, renkli karton, renkli a4 kağıdı vb. materyalleri keserek oluşturduğumuz renk kartlarının, renklerini gesture modülü ile algılayarak RGB LED modülündeki 3 RGB LED’inde aynı renkte yanmasını sağlayacağız. Bunun için oluşturduğumuz bu renkli kağıtları gesture modülünün önüne tutalım.
Projenin MakeCode Kodları
PicoBricks – MakeCode bağlantısı ve eklenti yükleme işlemlerini yaptıysanız aşağıdaki görselde ilk projemiz için takip etmeniz gereken kodlama adımları ayrıntılı olarak belirtilmiştir.
Projenin Python Kodları
#Color Cards Project
from microbit import *
from picobricks import *
import neopixel
import gc
RGB_Pin = pin8 # Pin connected to the NeoPixel strip
Num_Leds = 3 # Number of LEDs in the strip
# Initialize the APDS9960 color sensor
apds = APDS9960()
apds.init_color_sensor()
gc.collect() # Collect garbage to free up memory
# Initialize the NeoPixel strip
np = neopixel.NeoPixel(RGB_Pin, Num_Leds)
while True:
# Read the RGB values from the color sensor
r_color = apds.color_value("red") or 0
sleep(100)
g_color = apds.color_value("green") or 0
sleep(100)
b_color = apds.color_value("blue") or 0
sleep(100)
print("red")
print(r_color)
print("green")
print(g_color)
print("blue")
print(b_color)
r=round(round( r_color - 0 ) * ( 255 - 0 ) / ( 1023 - 0 ) + 0)
g=round(round( g_color - 0 ) * ( 255 - 0 ) / ( 1023 - 0 ) + 0)
b=round(round( b_color - 0 ) * ( 255 - 0 ) / ( 1023 - 0 ) + 0)
# Set the color of the NeoPixels
np[0] = (r, g, b)
np[1] = (r, g, b)
np[2] = (r, g, b)
np.show() # Update the NeoPixels to show the new colors
sleep(100) # Wait for half a second before the next update
Projenin MicroBlocks Kodları
