PicoBricks Pass Box içerisinden çıkan ahşap parçaları ve PicoBricks modüllerini, kurulum adımlarına göre birleştirdikten sonra potansiyometre ve buton kullanarak doğru şifreyi girdiğinde kapısı açılan, kapıyı kapattıktan sonra kasanın içerisndeki LDR sensörü sayesinde otomatik olarak kilitlenen bir kasa yaptırmayı hedefleyen eğitsel bir proje kitidir.
PicoBricks SafeBox kitinde ahşap parçalar ile beraber kullanılması için PicoBricks modüllerinden; OLED ekran, POT & Button, motor sürücü, LDR sensörü modülü ve anakart modülü kullanılmaktadır.
Bu projede, kod içerisinde belirttiğimiz şifre değerini pot&but modülü ile ayarlayarak doğru şifreyi girdiğimizde servo motoru uygun konuma getirerek Pass Box’ın kilidini açan ve içerideki LDR modülü sayesinde Pass Box’ın kapağının kapatıldığı algılandığında servo motorun açısını eski konumuna getirerek kapağı kilitleyen kod bloklarını oluşturacağız. Pass Box projesinde PicoBricks OLED ekran modülü ve micro:bit matrix LED’leri sayesinde görüntü çıktısı elde edeceğiz.
Bağlantı Şeması:
Bu projeyi PicoBricks Modüllerini uygun noktalardan kırarak hazırlayabilirsiniz.

Proje Görselleri

Proje Kurulum Adımları










Projenin MakeCode Kodları
Projenin Python Kodları
#Safe Box Project
from microbit import *
from picobricks import *
# Pin Initialization
LDR_Pin = pin0
Pot_Pin = pin1
Button_Pin = pin2
# Function Initialization
oled = SSD1306()
oled.init()
oled.clear()
motor = motordriver()
display.show(Image.HAPPY)
password=[1,2,3,4]
userPass=[]
def startOLED():
oled.add_text(0,1,"Close the lid")
oled.add_text(0,2,"to lock the")
oled.add_text(0,3,"SafeBox")
def addList():
#counter=0
if counter>0:
oled.add_text(2,3,str(userPass[0]))
if counter>1:
oled.add_text(4,3,str(userPass[1]))
if counter>2:
oled.add_text(6,3,str(userPass[2]))
if counter>3:
oled.add_text(8,3,str(userPass[3]))
def controlLoop():
control=0
for i in range(4):
if password[i]!=userPass[i] :
control=1
if control==1:
display.show(Image.NO)
else:
display.show(Image.YES)
motor.servo(1,90)
sleep(3000)
oled.clear()
while True:
display.show(Image.HAPPY)
counter=0
startOLED()
light = LDR_Pin.read_analog()
pot = Pot_Pin.read_analog()
button = Button_Pin.read_digital()
print(light)
if light<50:
sleep(2000)
oled.clear()
motor.servo(1,180)
while counter<4:
pot = Pot_Pin.read_analog()
userNumber=round(round( pot - 0 ) * ( 9 - 0 ) / ( 1023 - 0 ) + 0)
oled.add_text(2,1,"Password:")
oled.add_text((2+(counter*2)),3,str(userNumber))
addList()
button = Button_Pin.read_digital()
if button==1:
userPass.insert(counter,userNumber)
counter=counter+1
sleep(200)
controlLoop()
sleep(500)
counter=0
control=0
Projenin MicroBlocks Kodları
