İçindekiler:
- Adım 1: Parçalar
- 2. Adım: Prosedür
- Adım 3: Programlama
- 4. Adım: Sorun Giderme ve Değiştirme
- Adım 5: Donanım
Video: Köpek Mood Dedektörü (Raspberry Pi): 5 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Bu Eğitilebilirlik, bir köpeğin çıkardığı sesleri almak ve bunlara gösterge LED'leri ile yaklaşılıp yaklaşılmaması gerektiğini belirlemek için tasarlanmıştır. Çoğu köpek sahibi evcil hayvanlarını tanır ve verdikleri sinyalleri okuyabilir, bu nedenle bu Eğitilebilir Kitap çoğunlukla köpeğinizle temas edebilecek yabancılara yöneliktir.
Adım 1: Parçalar
İhtiyacın olacak:
- Ahududu Pi
- Kırmızı/Yeşil LED'ler (X2)
- monitör
- USB'li klavye/fare
- WiFi Dongle'ı
- Harici USB Mikrofon
- 330 ohm Direnç (X2)
Opsiyonel Parçalar
- Harici Raspberry Pi Güç Kaynağı
- Köpek tasması
2. Adım: Prosedür
Bu projeye başlamanın ilk adımı, köpeğinizle ilgili davranış ve kalıpları gözlemlemektir. Ne aramanız gerektiğine dair basit bir kılavuz için BURAYA tıklayabilirsiniz. Benim durumumda, köpeğim ne zaman birisini gördüğüne sevinse ya da heyecanlansa uluyor ve gergin ya da sinirli olduğunda aralıklı olarak havlıyor. Sonraki birkaç adımda, köpeğinizin davranışlarına uyum sağlamak için programımı nasıl değiştireceğimi açıklayacağım.
Adım 3: Programlama
Köpeğim için kullandığım Python programı aşağıdadır. Bir sonraki adımda, köpeğinizin davranışı için programı nasıl değiştireceğinizi açıklayacağım. Programı henüz çalıştırmayın, çünkü bir sonraki adımı yapana kadar çalışmayacaktır.
#!/usr/bin/pythonimport pyaudio içe aktarma sys zaman dizisini içe aktarma uykuyu diziden içe aktarma diziyi içe aktarma RPi. GPIO as GPIO
havlama=0
uluma=Yanlış bekletme=0 barkLength=5 gecikme=0 bekle = 2 bayrak = 0 kırmızı = 7 yeşil=5 çıkışFlag = Yanlış
def toggleLightRed(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(kırmızı, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Kırmızı değiştirildi")
def toggleLightGreen(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(yeşil, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Yeşil geçişli")
tanım ana():
küresel havlama küresel uluma küresel tutma küresel havlamaUzunluk küresel gecikme küresel bayrak küresel kırmızı küresel yeşil
yığın = 8192
FORMAT = pyaudio.paInt16 KANALLAR = 1 ORAN = 44100 eşik = 3000 maks_değer = 0 p = pyaudio. PyAudio() akış = p.open(format=FORMAT, kanallar=KANALLAR, oran=ORU, giriş=Doğru, çıktı=Doğru, çerçeveler_per_buffer=yığın) GPIO.setmode(GPIO. BOARD) GPIO.setup(kırmızı, GPIO. OUT) GPIO.setup(yeşil, GPIO. OUT) deneyin: Yazdır "Algılama başlatıldı" iken True: deneyin: data = stream.read(öbek) IOError dışında örneğin: if ex[1] != pyaudio.paInputOverflowed: veriyi yükselt = '\x00' * yığın as_ints = dizi('h', veri) max_value = max(as_ints) iken max_value>eşik: delay= 0 hold=hold+1 try: data = stream.read(chunk) IOError dışında örneğin: if ex[1] != pyaudio.paInputOverflowed: upgrade data = '\x00' * stack as_ints = array('h', data) max_value = max(as_ints) ise hold>=barkLength: howl=True print "HOWL DETECTED" toggleLightGreen(green) GPIO.cleanup() elif hold>0 ve hold
eğer _name_ == '_main_':
ana()
4. Adım: Sorun Giderme ve Değiştirme
Kurmak
Programı çalıştırmadan önce PyAudio'yu kurmak için Terminal'e aşağıdakileri yazmanız gerekir:
sudo apt-get intall python-pyaudio
Bundan sonra, düzgün çalıştığından emin olmak için programı test edebilirsiniz.
Sorun giderme
Aşağıdaki hatayla karşılaşabilirsiniz:
IOError: [Errno Girişi taştı] -9981
Bunu düzeltmek için, hata artık görünmeyene kadar değişken yığınına atanan sayıyı artırmanız yeterlidir.
değiştiriliyor
barkLength değişkeni, bir gürültü artık bir havlama olarak değil, bir uluma olarak görülmeden önce programın döngü sayısını belirler. Köpekleriniz uluyor ama bunu sadece kısa bir patlama için yapıyorsa, bu sayıyı azaltmalısınız.
Kırmızı ve yeşil değişkenler, LED göstergeleri için kullanılacak çıkış portlarını ifade eder. Bunlar ihtiyaçlarınıza göre değiştirilebilir.
Gecikme değişkenini programımda aktif olarak kullanmamama rağmen, havlama veya uluma sıklığını gösterdiği gözlemlenebilir.
Tutma değişkeni, gürültü seviyesinin eşiğin üzerinde olduğu yerlerde programın kaç kez döngüye girdiğini belirtir ve bir uluma olup olmadığını belirlemek için kullanılır. barkLength değişkeninin manipülasyonu yoluyla ulumalar tespit edildiğinden, bu değişken hiçbir şekilde değiştirilmemelidir.
Havlama çok yüksek değilse veya köpekten çıkan gürültü olarak yanlış yorumlanabilecek arka plan gürültüsü varsa, eşik değişkeni düşürülebilir.
Adım 5: Donanım
Bu noktada, donanımın ne yapacağını ekranda gösteren tam işlevli bir programınız olmalıdır. Projedeki bu nokta, bunun tek bir yere yerleştirilmiş sabit bir mikrofon mu olacağına (örneğin, evde köpeğin normalde sık ziyaret ettiği veya ziyaretçilerle temas ettiği bir yer) mi yoksa projenin en aza indirilip mi küçültüleceğine karar vermeniz gereken yerdir. ve köpekle etkileşime giren kişiye anında geri bildirim sağlamak için köpeğin tasmasına takılır.
Sabit
Yapılması en kolay şey, kabloları koparacak hiçbir hareket olmayacağı için her şeyi bir breadboard üzerinde bırakmaktır. Kırmızı LED'lerin katotlarını Raspberry Pi ve Anotlardaki Topraklama pimine ya 330 ohm'luk bir direnç üzerinden ya da doğrudan Raspberry Pi'nin 7. pimine bağlayın. Aynısını Yeşil LED'ler için de yapın, ancak Anotları pim 5'e bağlayın. Programı çalıştırın ve kodu ihtiyaçlarınıza göre değiştirdikten sonra tamamlanmış bir projeniz olmalıdır.
Durağan Olmayan
Her şeyin çalıştığından emin olmak için önce sabit sürümü tamamlamanızı ve ardından her şeyi birbirine lehimleyerek oradan ilerlemenizi tavsiye ederim, böylece hiçbir kablo köpeğin hareketinden bağlantısız kalmaz.
LED'leri, hem rahat bir konumda olmaları hem de yaklaşırken birileri tarafından görülebilmeleri için yakaya takın.
Ardından, HERE'daki gibi harici güç kaynağınızı ahududu pi'ye bağlayın ve köpeğin rahat edebileceği şekilde tasmaya sabitleyin.
Her şey yerine oturduğunda, devam edin ve programı çalıştırın, tasmayı köpeğe takın ve işiniz bitti!
Önerilen:
Otomatik Köpek Besleyici!!: 4 Adım
Otomatik Köpek Besleyici!!: Kolay, Faydalı ve Sağlıklı
Otomatik Köpek Besleyici: 6 Adım
Otomatik Köpek Besleyici: Bu benim Otomatik Evcil Hayvan Besleyici projem. Adım Parker 11. Sınıftayım ve bu projeyi 11 Kasım 2020'de CCA (Kurs Bitirme Etkinliği) olarak yaptım.
LED Mesafe Göstergesi Köpek Koşum Takımı: 5 Adım (Resimlerle)
LED Mesafe Göstergesi Köpek Koşum: Köpeğim Rusio'yu genellikle güneş battığında yürüyüşe çıkarırım, böylece çok ısınmadan oynayabilir. Sorun şu ki, tasmasından kurtulduğunda bazen çok heyecanlanıyor ve düşük ışıkta ve diğer köpeklerle birlikte olması gerekenden daha fazla koşuyor
Köpek Köpek Eğitmeni: 5 Adım
Köpek Köpek Eğitmeni: AKC'ye göre, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) yemler köpekler için çok önemlidir ve kutunun boyutu köpeğin bir günde yiyebileceği yem sayısını da sınırlamıştır, “Veteriner
Raspberry Pi Otomatik Köpek Besleyici ve Canlı Video Yayıncısı: 3 Adım
Raspberry Pi Otomatik Köpek Besleyici ve Canlı Video Streamer: Bu benim Raspberry PI destekli otomatik köpek besleyicim. Sabah 11'den akşam 9'a kadar çalışıyordum. Köpeğimi zamanında beslemezsem çıldırıyor. Otomatik gıda besleyicileri satın almak için Google'da gezindi, Hindistan'da mevcut değiller ve pahalı ithalat