Otomatik olarak açılan çöp kutuları yaklaşıldığında, dolduğunda ise çöpe hazır hale getirilen poşetler, maliyetinin çok üzerinde fiyatlarla alıcı buldu. Ayrıca otomatik dezenfektan makineleri ellerimizi altına tuttuğumuzda avuçlarımıza belli miktarda sıvı dökerek temassız hijyen sağlıyordu. Otomatik dezenfektan makineleri maliyetinin çok üzerinde fiyatlarla raflardaki yerini aldı. Bu iki ürün çalışma prensipleri açısından benzerlikler taşımaktadır. Otomatik dezenfektan makinelerinde sıvıyı elektrik motorlu veya servo motorlu bir pompa dağıtır. Otomatik çöp kutularında kapağı açan servo motor kullanılmış olup, el hareketini algılamak için kızılötesi veya ultrasonik sensörler kullanılmıştır.
Bu projemizde PicoBricks ile ultrasonik sensör ve servo motor kullanarak odanıza otomatik şık bir çöp kutusu yapacaksınız.
Ayrıntılar ve Algoritma
Bu projede HC-SR04 ultrasonik mesafe sensörü ve SG90 servo motor kullanılacaktır. Kullanıcı elini çöp kutusunun kapağının önüne koyduğunda mesafe sensörü yakınlığı algılayacak ve programa bildirimde bulunacaktır. Programınız daha sonra servo motoru çalıştırarak çöp kutusunun kapağını açacak ve kısa bir süre sonra tekrar kapatacaktır.
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 3 boyutlu çizim dosyalarını adresinden indirebilirsiniz. bu bağlantı ve 3D baskıya sahip olun.
1: Servo motor aparatının çöp kutusu kapağına vidalayarak sabitleyiniz.
2: Ultrasonik mesafe sensörünü sıcak tutkalla çöp kutusunun kapağına sabitleyin.
3: Ultrasonik mesafe sensörünün kablolarını kutudaki delikten geçirip PicoBricks devre şemasında gösterilen pinlere bağlayın, servo motoru yapın ve motor sürücüsü bağlantılar. 4: Servo motoru, PicoBricks'i ve motor sürücü parçalarını sıcak tutkalla kutuya sabitleyin.
Her şey yolunda gittiyse elinizi çöp kutusuna yaklaştırdığınızda kovanın kapağı açılacak ve çöpü attıktan sonra tekrar kapanacaktır.
PicoBricks'in MicroBlock Kodları
Projenin Microblocks kodlarına görseli Microblocks Run sekmesine sürükleyerek veya butonuna tıklayarak ulaşabilirsiniz. düğme.
PicoBricks'in MicroPython Kodları
makine içe aktarma Pininden, PWM
utime içe aktarma uykusundan
servo = PWM(Pin(21, Pin.OUT))
tetikleyici = Pin(15, Pin.OUT)
echo = Pin(14, Pin.IN)
servo.freq(50)
servo.duty_u16(1920) # 15 derece
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
Doğru iken:
uyku(0,01)
if int(getDistance()) <= 10:
servo.duty_u16(4010) # 70 derece
utime.sleep(0.3)
servo.duty_u16(1920)
PicoBricks'in Arduino C Kodları
#include
#define trigPin 14
#define echoPin 15
Servo servo;
geçersiz kurulum() {
Seri.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(21);
}
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;
if (mesafe < 80) {
Seri.print(mesafe);
Seri.println("cm");
servo.write(179);
} else if (mesafe < 180) {
Seri.print(mesafe);
Seri.println("cm");
servo.write(100);
}
}
GitHub Proje Sayfası