İçeriğe Geç

#10 PicoBricks ile Renk Projenizi Bilin

19 Nov 2023
#10 Know Your Color Project With PicoBricks

LED'ler genellikle elektronik sistemlerde kullanılır. Her düğmenin yanında her seçeneğin yanında küçük LED'ler bulunabilir. Tek bir LED'in farklı renklerde yanmasını sağlayarak birden fazla LED'in işini tek bir LED ile yapmak mümkündür. Bu tipte çalışan LED'lere RGB LED denir. Adını Kırmızı, Yeşil, Mavi renk isimlerinin baş harflerinden alır. Bu LED'in bir diğer avantajı da 3 ana rengin karışımıyla ışık verebilmesidir. Mor, turkuaz, turuncu…

Bu projede her programlama dilinde kullanılan rastgeleliği öğreneceksiniz. ile keyifli bir oyun hazırlayacağız. RGB LED'i, OLED ekran ve düğme Picobricks modülü.

Bu projemizde Picobricks'teki ışık sensörünü kullanarak gün ışığına göre ayarlanan zamanlayıcı alarm oluşturacağız.

Ayrıntılar ve Algoritma

Projede kuracağımız oyun kullanıcının renkleri doğru ya da yanlış bilmesi üzerine kurgulanacak. Picobricks üzerindeki RGB LED üzerinde kırmızı, yeşil, mavi ve beyaz renklerden biri rastgele yanacak ve bu dört renkten birinin adı rastgele olarak ekranın üzerine yazılacaktır. OLED ekran aynı zamanda. Kullanıcının cevap hakkını kullanabilmesi için 1,5 saniye içerisinde Picobricks butonuna basması gerekmektedir. Oyun 10 kez tekrarlanacak, renkler eşleştiğinde kullanıcı düğmeye basarsa veya eşleşmediğinde düğmeye basmazsa her tekrar 10 puan alacaktır. Kullanıcı renkler eşleşmediği halde butona basarsa 10 puan kaybedecektir. On tekrardan sonra kullanıcının puanı OLED ekranında görüntülenecektir. Kullanıcı dilerse butona basmayarak cevap hakkını kullanamaz.

Bileşenler

1X PicoBrick

Bağlantı şeması

Picobricks modüllerini kablolama olmadan kodlayabilir ve çalıştırabilirsiniz. Modülleri panodan ayırarak kullanacaksanız modül bağlantılarını grove kablolarla yapmalısınız.

PicoBricks'in MicroBlock Kodları

Mikrobloklar Çalıştır sekmesine görseli sürükleyerek veya butonuna tıklayarak projenin Mikroblok kodlarına ulaşabilirsiniz.

 

Mikroblok Çalıştırma Sekmesi

PicoBricks'in MicroPython Kodları

 


Pico'daki donanıma erişmek için makine içe aktarma Pininden,I2C,ADC,PWM #
picobricks'ten importSSD1306_I2C #OLED Ekran Kitaplığı
kullanım süresini içe aktar
picobricks importWS2812 #ws8212 kütüphanesinden

#OLED Ekran Ayarları
GENİŞLİK=128YÜKSEK=64

sda=machine.Pin(4)
scl=machine.Pin(5)
#dijital pin 4 ve 5'iOLED İletişimi için ÇIKIŞ olarak başlat

i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
neo =WS2812(pin_num=6, num_leds=1, parlaklık=0,3)#dijital pin 6'yı NeoPixel için bir ÇIKIŞ olarak başlat

oled =SSD1306_I2C(128,64, i2c)
ldr =ADC(Pin(27))#dijital pin 6'yı NeoPixel için bir ÇIKIŞ olarak başlat
düğme =Pin(10,Pin.IN,Pin.PULL_DOWN)#dijital pin 10'u düğme için bir INPUT olarak başlat
sesli uyarı =PWM(Pin(20, Pin.OUT))#dijital pin 20'yi sesli uyarı için bir ÇIKIŞ olarak başlat
buzzer.freq(1000)SİYAH=(0,0,0)BEYAZ=(255,255,255)
#RGB siyah beyaz renk kodu
oled.fill(0)
oled.show()

neo.pixels_fill(SİYAH)
neo.pixels_show()if ldr.read_u16()<4000:
    uyanma = Doğru
başka:
    uyanma = Yanlış

while Doğru:while up==Yanlış:
        oled.fill(0)
        oled.show()
        oled.text("İyi geceler",25,32)
        oled.show()
        #OLED'de göster ve "İyi geceler" yaz
        utime.sleep(1)if ldr.read_u16()40000:
        uyanma= Yanlış

    utime.sleep(1)
    #bir saniye bekle

PicoBricks'in Arduino C Kodları

 


makineden içe aktarma Pininden,I2Cpicobricks'ten importSSD1306_I2Cimport utime
urandom'u içe aktar
_thread'i içe aktar
picobricks'ten importWS2812WIDTH=128HEIGHT=64
sda=machine.Pin(4)
scl=machine.Pin(5)
i2c=machine.I2C(0,sda=sda, scl=scl, freq=1000000)
ws =WS2812(pin_num=6, num_leds=1, parlaklık=0,3)

oled =SSD1306_I2C(GENİŞLİK, YÜKSEKLİK, i2c)

düğme =Pin(10,Pin.IN,Pin.PULL_DOWN)KIRMIZI=(255,0,0)YEŞİL=(0,255,0)MAVİ=(0,0,255)BEYAZ=(255,255,255)SİYAH=(0,0,0 )

oled.fill(0)
oled.show()

ws.pixels_fill(SİYAH)
ws.pixels_show()

küresel Button_pressed
puan=0
Button_pressed = Yanlış

def random_rgb():
    küresel ledrenk
    ledcolor=int(urandom.uniform(1,4))if ledcolor ==1:
        ws.pixels_fill(KIRMIZI)
        ws.pixels_show()
    elif led rengi ==2:
        ws.pixels_fill(YEŞİL)
        ws.pixels_show()
    elif led rengi ==3:
        ws.pixels_fill(MAVİ)
        ws.pixels_show()
    elif led rengi ==4:
        ws.pixels_fill(BEYAZ)
        ws.pixels_show()

def rastgele_metin():
    küresel oledtext
    oledtext=int(urandom.uniform(1,4))if oledtext ==1:
        oled.fill(0)
        oled.show()
        oled.text("KIRMIZI",45,32)
        oled.show()
    elif oledmetin ==2:
        oled.fill(0)
        oled.show()
        oled.text("YEŞİL",45,32)
        oled.show()
    elif oledmetin ==3:
        oled.fill(0)
        oled.show()
        oled.text("MAVİ",45,32)
        oled.show()
    elif oledmetin ==4:
        oled.fill(0)
        oled.show()
        oled.text("BEYAZ",45,32)
        oled.show()

def Button_reader_thread():while True:
        küresel Button_pressed
        if butonu_basıldı == Yanlış:if butonu.değer()==1:
                Button_pressed = Doğru
                küresel puan
                küresel oledtext
                küresel ledrenk
                if ledrenk == oledmetin:
                    puan +=10diğer:
                    puan -=10
        utime.sleep(0,01)

_thread.start_new_thread(button_reader_thread,())

oled.text("Oyun Başlıyor",0,10)
oled.show()
utime.sleep(2)for i inrange(10):for j inrange(10):random_text()random_rgb()
    Button_pressed=Yanlış
    utime.sleep(1.5)
    oled.fill(0)
    oled.show()
    ws.pixels_fill(SİYAH)
    ws.pixels_show()
utime.sleep(1.5)
oled.fill(0)
oled.show()
oled.text("Toplam puanınız:",0,20)
oled.text(str(puan),30,40)
oled.show()

GitHub Proje Sayfası

 

Önceki Gönderi
Sıradaki Gönderi

Abone olduğun için teşekkürler!

Bu e-posta kaydedildi!

Görünümü satın alın
Seçenekleri Seçin

Seçeneği Düzenle

Stok Bildirimi

Karşılaştır

Ürün Stok KoduDeğerlendirmeAçıklama Kategori Uygunluk Ürün Tipi Diğer Detaylar
this is just a warning
Giriş Yap
Alışveriş Sepeti
0 Ürünler
Same Day Shipping No Extra Costs
Easy Returns Guarantee Return with Ease
Secure Checkout Secure Payment