Mündəricat:

Dog Mood Detector (Raspberry Pi): 5 addım
Dog Mood Detector (Raspberry Pi): 5 addım

Video: Dog Mood Detector (Raspberry Pi): 5 addım

Video: Dog Mood Detector (Raspberry Pi): 5 addım
Video: How to Check your mirrors at airbnb 2024, Noyabr
Anonim
Köpək Mood Detector (Raspberry Pi)
Köpək Mood Detector (Raspberry Pi)

Bu Təlimat, bir itin səslərini qəbul etmək və onlara LED -lərlə yaxınlaşıb -yaxınlaşmamaq lazım olduğunu təyin etmək üçün hazırlanmışdır. Köpək sahiblərinin çoxu ev heyvanlarını tanıyır və verdikləri siqnalları oxuya bilirlər, buna görə də bu təlimat əsasən köpəyinizlə təmasda ola biləcək kənar insanlara yönəlib.

Addım 1: hissələr

Hissələri
Hissələri
Hissələri
Hissələri
Hissələri
Hissələri

Sizə lazım olacaq:

  • Moruq Pi
  • Qırmızı/Yaşıl LEDlər (X2)
  • Ekran
  • USB ilə klaviatura/siçan
  • WiFi Dongle
  • Xarici USB Mikrofon
  • 330 ohm rezistor (X2)

İsteğe bağlı hissələr

  • Xarici Raspberry Pi Güc Təchizatı
  • İt yaxası

Addım 2: Prosedur

Prosedur
Prosedur

Bu layihəyə başlamağın ilk addımı, itinizlə əlaqəli davranışları və nümunələri müşahidə etməkdir. Axtarmaq lazım olan sadə bir bələdçi üçün BURAYA vura bilərsiniz. Mənim vəziyyətimdə, itim kimisə görməkdən həyəcanlandıqda və ya sevindikdə ağlayır və əsəbi və ya ağırlaşdıqda ara -sıra hürür. Növbəti bir neçə addımda, itinizin davranışlarına uyğunlaşmaq üçün proqramımı necə dəyişdirəcəyimi izah edəcəyəm.

Addım 3: Proqramlaşdırma

Proqramlaşdırma
Proqramlaşdırma

Aşağıda itim üçün istifadə etdiyim Python proqramıdır. Növbəti addımda köpəyinizin davranışı üçün proqramı necə dəyişdirəcəyinizi izah edəcəyəm. Proqramı hələ işə salmayın, çünki növbəti addımı atana qədər işləməyəcəkdir.

#!/usr/bin/pythonimport pyaudio idxal sistemi sys idxalı ipi, idxal zamanı yuxudan idxal edir, array idxal dizisi idxal edir RPi. GPIO olaraq GPIO olaraq

qabıq = 0

ahu = Yanlış tutma = 0 barkLength = 5 gecikmə = 0 gözləmə = 2 bayraq = 0 qırmızı = 7 yaşıl = 5 çıxışFlag = Yanlış

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (qırmızı, GPIO. OUT) GPIO.output (c, True) yuxu (10) GPIO.output (c, False) çap ("Qırmızı keçidli")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (yaşıl, GPIO. OUT) GPIO.çıxış (c, Doğru) yuxu (10) GPIO. çıxışı (c, Yanlış) çap ("Yaşıl keçidli")

def main ():

qlobal bark global howl global hold global barkLength global gecikmə qlobal bayraq global red global green

yığın = 8192

FORMAT = pyaudio.paInt16 KANAL = 1 RATE = 44100 eşik = 3000 max_value = 0 p = pyaudio. PyAudio () axın = p.açıq (format = FORMAT, kanallar = KANALLAR, sürət = RATE, giriş = Doğru, çıxış = Doğru, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (qırmızı, GPIO. OUT) GPIO.setup (yaşıl, GPIO. OUT) cəhd edin: "Algılama başlatıldı" yazarkən Doğru: cəhd edin: data = stream.read (yığın) IOError istisna olmaqla ex: if ex [1]! = pyaudio.paInputOverflowed: data = '\ x00' * yığın as_ints = array ('h', data) max_value = max (as_ints) isə max_value> eşik: gecikmə = 0 tut = saxla+1 cəhd et: IOError istisna olmaqla data: stream.read (chunk) ex: ex [1]! = Pyaudio.paInputOverflowed: data = '\ x00' * yığın as_ints = array ('h', data)) max_value = max (as_ints) hold>> barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (yaşıl) GPIO.cleanup () elif basıb saxlayın> 0 və saxlayın

əgər _ adı_ == '_ əsas_' olarsa:

əsas ()

Addım 4: Problemlərin aradan qaldırılması və dəyişdirilməsi

Problemlərin aradan qaldırılması və dəyişdirilməsi
Problemlərin aradan qaldırılması və dəyişdirilməsi
Problemlərin aradan qaldırılması və dəyişdirilməsi
Problemlərin aradan qaldırılması və dəyişdirilməsi
Problemlərin aradan qaldırılması və dəyişdirilməsi
Problemlərin aradan qaldırılması və dəyişdirilməsi

Qurmaq

Proqramı işə salmadan əvvəl PyAudio qurmaq üçün Terminala aşağıdakıları yazmalısınız:

sudo apt-get intall python-pyaudio

Bundan sonra proqramın düzgün işlədiyinə əmin olmaq üçün onu sınaqdan keçirə bilərsiniz.

Giderme

Aşağıdakı səhvlə qarşılaşa bilərsiniz:

IOError: [Errno Giriş daşdı] -9981

Bunu düzəltmək üçün, səhv görünməyənə qədər dəyişən parçaya təyin edilmiş sayını artırmaq kifayətdir.

Dəyişdirilir

BarkLength dəyişənliyi, səs -küyün artıq bir qabıq kimi deyil, ulama kimi görünməmişdən əvvəl proqramın neçə dəfə döndüyünü diktə edir. Köpəkləriniz ağlayır, ancaq bunu yalnız qısa bir müddətdə edərsə, bu sayını azaltmalısınız.

Qırmızı və yaşıl dəyişənlər LED göstəriciləri üçün istifadə ediləcək çıxış limanlarına aiddir. Bunlar ehtiyaclarınıza uyğun olaraq dəyişdirilə bilər.

Dəyişən gecikməni proqramımda fəal şəkildə istifadə etməsəm də, hürmə və ya ulamağın tezliyini göstərmək üçün müşahidə oluna bilər.

Dəyişən tutma, səs -küy səviyyəsinin eşikdən yuxarı olduğu və ağlamanın olub olmadığını müəyyən etmək üçün istifadə olunan proqramın neçə dəfə döndüyünü göstərir. Bu dəyişən heç bir şəkildə dəyişdirilməməlidir, çünki barkLength dəyişəninin manipulyasiyası ilə ulamalar aşkar edilir.

Qabıq çox yüksək deyilsə və ya köpəkdən gələn səs kimi yanlış təfsir edilə bilən səs -küy varsa, eşik dəyişənini aşağı salmaq olar.

Addım 5: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Məhz bu nöqtədə, aparatın nə edəcəyini ekranda göstərən tam işlək bir proqramınız olmalıdır. Layihənin bu nöqtəsi, bunun bir yerdə (məsələn, köpəyin normal olaraq ziyarət etdiyi və ya ziyarətçilərlə təmasda olduğu evdəki bir yer) sabit bir mikrofon olub -olmamasına qərar verməlisiniz. və itlə ünsiyyət quran şəxsə dərhal rəy vermək üçün itin yaxasına yapışdırılır.

Stasionar

Telləri ayıra biləcək heç bir hərəkət olmayacağı üçün hər şeyi çörək taxtasına buraxmaq ən asan şeydir. Qırmızı LED -lərin katotlarını 330 ohm müqavimət vasitəsi ilə və ya Raspberry Pi -nin 7 -ci pininə Raspberry Pi və Anodlardakı Yer pininə bağlayın. Yaşıl LED -lərlə də eyni şeyi edin, ancaq Anotları 5 pininə bağlayın. Proqramı işə salın və kodu ehtiyaclarınıza uyğun olaraq dəyişdirdikdən sonra tamamlanmış bir layihəniz olmalıdır.

Qeyri-Stasionar

Hər şeyin işlədiyinə əmin olmaq üçün əvvəlcə stasionar versiyanı tamamlamağı məsləhət görürəm və sonra itlərin hərəkətindən heç bir telin ayrılmaması üçün hər şeyi birlikdə lehimləyərək oradan irəliləməyi məsləhət görürəm.

LEDləri yaxasına bağlayın ki, hər ikisi də rahat vəziyyətdə olsunlar və yaxınlaşdıqda kimsə tərəfindən görülə bilsinlər.

Sonra BURADA gördüyünüz kimi xarici enerji təchizatınızı moruq pi -yə bağlayın və yaxasına it üçün rahat bir şəkildə bağlayın.

Hər şey yerində təmin edildikdən sonra davam edin və proqramı işə salın, yaxasını itə bağlayın və işiniz bitdi!

Tövsiyə: