back to top

PicoBricks ile Mama Kabı Projesi

Selam makerlar. Bugün Raspberry Pi kit ve PicoBricks kullanarak otomatik bir evcil hayvan mama makinesi yapacağız. Gerekli 3D baskı dosyalarına ve Python kodlarını makaleden ulaşabilirsiniz. Haydi başlayalım.

Evcil hayvanlar, özellikle kediler ve köpekler, çok sık acıkırlar. Bazı zamanlar onların yemeğini doldurmak için çok tembel hissedebilirsiniz. Artık endişelerinize bir son verebilirsiniz. Mama kabı projemiz ile artık otomatik bir şekilde evcil hayvanlar yemeklerine ulaşabilecek.

Mama Kabı Projesi
Mama Kabı Projesi

Robot Özellikleri

  • Otomatik zamanlayıcı özelliği sayesinde, ayarladığınız aralıklarda mama bölmesini otomatik olarak doldurur.
  • Robot, mama bitince HC-SR04 (LDR) sensörü sayesinde algılar ve OLED ekranında bir uyarı belirir ve robot bir bip sesi çıkarır.
  • Evcil hayvanınız, mama verirken bip sesi çıkardığı için placebo etkisi geliştirebilir.

Mama Kabı Projesi Devre Şeması

Mama Kabı Projesi Gerekli Malzemeler

  • PicoBricks Ana Kart
  • OLED Ekran
  • LDR
  • Buzzer

Mama Kabı Projesi 3D Tasarım

Bu projenin en iyi yönlerinden biri 3D baskı imkanıdır. Bu sayede evinizde kendi evcil hayvan besleyicinizi ücretsiz olarak oluşturabilirsiniz.

STL dosyalarına ulaşmak için tıklayın! Tasarımı 3d yazıcınız ile oluşturduktan sonra kodları Raspberry Pi’ye BricksIDE veya Raspberry Pi’yi destekleyen herhangi bir uygulamadan kolayca yükleyebilirsiniz.

Mama Kabı Proje Kodları

# time_tracking.py

import time
from machine import Pin
from machine import I2C
from picobricks import SSD1306_I2C
from machine import PWM
from math import fabs
import utime

i2c = I2C(0, scl=Pin(5), sda=Pin(4), freq=200000)
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c)
pwm_1 = PWM(Pin(21))
pwm_1.freq(50)
buzzer = PWM(Pin(20))
trigger = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)
  
def getDistance():
   trigger.low()
   utime.sleep_us(2)
   trigger.high()
   utime.sleep_us(5)
   trigger.low()
   while echo.value() == 0:
      signaloff = utime.ticks_us()
   while echo.value() == 1:
      signalon = utime.ticks_us()
   timepassed = signalon - signaloff
   distance = (timepassed * 0.0343) / 2
   print("The distance from object is ",distance,"cm")
   return distance

def CalculateAngle(angle):
   angle = fabs((angle * (6000 / 180)) + 2000)
   angle = round(angle)
   return angle

# Configure the hardware timer
timer = machine.Timer()

# Define a global variable to store the elapsed time
elapsed_time = 0
# Function to be called by the timer interrupt
def timer_callback(timer):
    global elapsed_time
    elapsed_time += 1

# Configure the timer to call the callback function every second
timer.init(freq=1, mode=machine.Timer.PERIODIC, callback=timer_callback)

# Main loop
while True:
    pwm_1.duty_u16(CalculateAngle(0))
    # Print the elapsed time every 5 seconds
    oled.text("It'll give food",0,0)
    oled.text("in every",0,10)
    oled.text("12 hours?",0,20)
    oled.show()
    distance = getDistance()

    if distance < (5):
        oled.fill(0)    
        oled.text("FEEDING TIME",10,30)
        oled.show()

    else:
        oled.fill(0)
        oled.text("{}".format("Mama Bitti"), 0, 0)
        oled.show()
        #buzzer.freq(300)
        #buzzer.duty_u16(100)
        time.sleep(0.25)
        
    if elapsed_time % 10 == 0:
        pwm_1.duty_u16(CalculateAngle(30))
        time.sleep((5))
        print(elapsed_time)
        
    time.sleep((1))        
    oled.fill(0)

    # Sleep for a short duration to reduce CPU usage

Mama Kabı Proje Videosu

Projemizi bu şekilde tamamlamış olduk. Artık mama kabını doldurabilir ve kedilerinizin mutlu bir şekilde yemek yemelerini sağlayabilirsiniz.

Son Çıkan Yazılar

CEVAP VER

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