back to top

#8 PicoBricks (micro:bit) Night and Day Projesi

Okulda oynadığınız Gece Gündüz oyununu elektronik olarak oynamaya ne dersin? Öğretmen gece dediğinde kafamızı öne eğip masanın üzerindeki kolumuza yasladığımız, gündüz dediğinde başımızı kaldırdığımız bir oyundur gece-gündüz oyunu. Bu oyun dikkatini ve refleksini kullanacağın bir oyun olacak. Bu projede 0,96” 128×64 piksel I2C OLED ekranı kullanacağız. OLED ekranlar yapay ışık kaynağı olarak kullanılabildikleri için ekran üzerindeki karakterleri mercek ve ayna kullanarak büyütebilir ve istediğiniz düzleme yansıtabilirsin. Akıllı gözlükler ve otomobil camlarına bilgilendirme, yol ve trafik bilgisi yansıtabilen sistemler OLED ekranlar kullanılarak yapılabilmektedir.

Işık sensörleri bulundukları ortamın ışık seviyelerini ölçebilen, fotodiyot da denilen sensörlerdir. Işığa maruz kalan sensörün elektrik geçirgenliği değişmektedir. Biz de kodlayarak ışık sensörünü  kontrol edip, ışık miktarının etkilediği elektronik sistemler geliştirebilmekteyiz.

Önce oyuncunun oyuna başlaması için butona basmasını isteyeceğiz. Ardından  PicoBricks’in OLED ekranında  NIGHT ve DAY ifadelerini rastgele olarak 2’şer saniye boyunca gösterilmesini sağlayacağız. Oyuncu, eğer OLED ekranda yazan kelime NIGHT ise 2 saniye içinde LDR sensörünün üzerini eliyle kapatmalı, eğer OLED ekranda GÜNDÜZ kelimesi yazıyorsa LDR sensörünün üzerinden elini kaldırmalı. Oyuncunun her doğru tepkisi 10 puan kazanmasını ve Micro:Bit Matrix LED’lerinde tik (✓) ikonu oluşuturulması  sağlayacak, yanlış tepkide ise oyun bitecek, ekranda oyunun bitmesini bildiren yazılı ifade ve Matrix LED’ler de çarpı (X) ikonu yer alacak, buzzerdan farklı tonda bir ses çalacak ve OLED ekranda puan bilgisi yer alacaktır. Eğer oyuncu toplam 10 doğru tepki verip 100 puan elde ederse “Congrats!!!” yazısı OLED ekranda belirlenen konumlarda yazacaktır.

Bağlantı Şeması:

Bu projeyi PicoBricks Modüllerini uygun noktalardan kırarak hazırlayabilirsiniz. 

Proje Görselleri

Projenin MakeCode Kodları

Projenin Python Kodları

#Night and Day Projects
from microbit import *
from picobricks import *
import neopixel
import random
import music

# Pin Initialization
LDR_Pin = pin0
Button_Pin = pin2
RGB_Pin = pin8
Num_Leds = 3

# Function Initialization
oled = SSD1306()
oled.init()
oled.clear()
np = neopixel.NeoPixel(RGB_Pin, Num_Leds)

counter=0
falseValue=0

button = Button_Pin.read_digital()

while Button_Pin.read_digital()==0:
    oled.add_text(0,1,"Press BUTTON")
    oled.add_text(2,2,"to START!")
    
oled.clear()
while counter!=100 and falseValue==0:
    light = LDR_Pin.read_analog()
    rand=random.randint(1, 2)
    if rand==1:
        oled.add_text(0,0,"NIGHT")
    else:
        oled.add_text(0,0,"DAY")
    sleep(3000)
    light = LDR_Pin.read_analog()
    if light<60 and rand==1:
        display.show(Image.YES)
        counter=counter+10
    elif light>60 and rand==1:
        display.show(Image.NO)
        falseValue=1
    elif light>60 and rand==2:
        display.show(Image.YES)
        counter=counter+10
    else:
        display.show(Image.NO)
        falseValue=1
    oled.clear()
if counter==100:
    oled.add_text(0,0,"Congrats!!!")
    oled.add_text(0,1,"Top Score:")
    oled.add_text(5,2,str(counter))
    music.play(music.WEDDING)
else:
    oled.add_text(0,0,"Game Over")
    oled.add_text(0,1,"Score:")
    oled.add_text(5,2,str(counter))

Projenin MicroBlocks Kodları

Son Çıkan Yazılar

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz