İçeriğe Geç
Favoriler Sepet
0 eşyalar

#19 PicoBricks ile Aç Kumbara Projesi

08 Nov 2023
#19 Hungry Piggy Bank Project With PicoBricks

Ultrasonik sensörler kulağımızın algılayamayacağı frekansta ses dalgaları gönderir ve yansıyan ses dalgalarının geri dönüş süresini hesaplayarak mesafe bilgisi üretir. Biz programcılar ölçülen mesafeyi ve mesafedeki değişimleri anlamlandırarak projeler geliştiriyoruz. Araçların ön ve arka kısmında bulunan park sensörleri, ultrasonik sensörlerin günlük hayatta en yaygın olarak kullanıldığı yerlerdir. Bu yöntemle doğada yolunu bulan canlıyı biliyor musunuz? Yarasalar kör oldukları için çıkardıkları seslerin yansımaları sayesinde yollarını bulurlar.

Birçoğumuz para biriktirmeyi severiz. Azar azar biriktirdiğimiz paranın ihtiyaç duyulduğunda işe yaraması çok güzel bir duygu. Bu projemizde kendinize çok keyifli ve sevimli bir kumbara yapacaksınız. Kumbarayı yaparken servo motor ve ultrasonik mesafe sensörünü kullanacaksınız.

Ayrıntılar ve Algoritma

Bu projede HC-SR04 ultrasonik mesafe sensörü ve SG90 servo motor kullanılacaktır. Kullanıcı kumbaranın haznesine para koyarken mesafe sensörü yakınlığı algılayacak ve PicoBricks'e sinyal gönderecektir. PicoBricks servo motoru çalıştırıp kolu kaldıracak, parayı kumbaraya bırakacak ve ardından kol tekrar aşağı inecek.

Bileşenler

1X PicoBrick
1X HC-SR04 Ultrasonik Sensör
1X Servo Motorlu
Atlama Kabloları
Kolay Bağlantı Kabloları

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.

Projenin İnşaat Aşamaları

Projenin orijinal dosyalarına ve yapım aşamalarına tıklayarak ulaşabilirsiniz. Burada. Bu linkteki projeden farklı olarak HC-SR04 ultrasonik mesafe sensörünü kullanacağız. HC-SR04 ultrasonik mesafe sensörüne göre güncellenmiş 3 boyutlu çizim dosyalarını adresinden indirebilirsiniz. bu bağlantı ve 3D baskıya sahip olun.

1: Servo motorun plastik aparatını kumbara koluna 2 adet vida ile sabitleyiniz.

2: Kumbara kolunun ikinci kısmını M3 vida ve somun ile haznenin bulunduğu ilk kısma sabitleyin.

3: Servo motor kablosunu geçirip yuvasına yerleştirin.

4: Servo motoru ve yuvasını kumbaranın gövdesine yerleştirin. Burada sıcak tutkal kullanabilirsiniz.

5: Ultrasonik mesafe sensörünü kumbara gövdesine yerleştirin ve sıcak tutkalla sabitleyin.

6: Kumbara kolunu servo motora takın ve M3 vidalarla üst kapağa sabitleyin.

7: Kumbara kolunu M2 vidayla gövdeye sabitleyin.

8: Servo motor ve ultrasonik mesafe sensörünün kablolarını takın ve güç kablolarını bağlayın.

9: Devre şemasına göre servo motor ve ultrasonik mesafe sensörünün kablolarını picoya bağlayın.

10: Pico’nun USB kablosunu takıp kabloları tekrar birleştirip alt kapağı takın. Hepsi bu.

PicoBricks'in MicroBlock Kodları

Projenin Microblocks kodlarına görseli Microblocks Run sekmesine sürükleyerek veya butonuna tıklayarak ulaşabilirsiniz. düğme.

 

 

Mikroblok Çalıştırma Sekmesi

PicoBricks'in MicroPython Kodları

 

makineden içe aktarma Pimi, PWM
kullanım süresini içe aktar
#kütüphaneleri tanımla
servo = PWM(Pin(21, Pin.OUT))
tetikleyici = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)
#giriş ve çıkış pinlerini tanımlayın
servo.freq(50)
servo.duty_u16(6750)

def getDistance():
    tetikleyici.düşük()
    utime.sleep_us(2)
    tetikleyici.yüksek()
    utime.sleep_us(5)
    tetikleyici.düşük()
    while echo.value() == 0:
        signaloff = utime.ticks_us()
    while echo.value() == 1:
        signalon = utime.ticks_us()
    geçen süre = sinyal açık - sinyal kapalı
    mesafe = (geçen süre * 0,0343) / 2
    print("Nesneye olan uzaklık ", uzaklık, "cm")
    dönüş mesafesi
#mesafeyi hesapla

Doğruyken:
    utime.sleep(0,01)
    if int(getDistance()) <= 5: # mesafe değişkeni 5'ten küçükse
        servo.duty_u16(4010)
        utime.sleep(0.3) # bekle
        servo.duty_u16(6750)

PicoBricks'in Arduino C Kodları

 

#include 
#define trigPin 15
#define echoPin 14
//kütüphaneleri tanımlıyoruz
Servo servo;

geçersiz kurulum() {
  Seri.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  //giriş ve çıkış pinlerini tanımlıyoruz
  servo.attach(21); //servo pinini tanımlıyoruz
}

geçersiz döngü () {
  uzun süre, mesafe;
  digitalWrite(trigPin, DÜŞÜK);
  gecikmeMicroseconds(2);
  digitalWrite(trigPin, YÜKSEK);
  gecikmeMicroseconds(10);
  digitalWrite(trigPin, DÜŞÜK);
  süre = darbeIn(echoPin, YÜKSEK);
  mesafe = (süre / 2) / 29,1;
  //mesafeyi hesapla

  if (mesafe < 5) { //mesafe değişkeni 5'ten küçükse
    Seri.print(mesafe);
    Seri.println("cm");
    servo.write(179);
  }
  else if (mesafe > 5) { // mesafe değişkeni 5'ten büyükse
    Seri.print(mesafe);
    Seri.println("cm");
    servo.write(100);
  }
}
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

Aklında bir soru mu var?

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