Mündəricat:
- Addım 1: hissələr
- Addım 2: Prosedur
- Addım 3: Proqramlaşdırma
- Addım 4: Problemlərin aradan qaldırılması və dəyişdirilməsi
- Addım 5: Avadanlıq
Video: Dog Mood Detector (Raspberry Pi): 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
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
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
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
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
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
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ə:
Auto Dog Feeder: 6 addım
Auto Dog Feeder: Bu mənim Auto Pet Feeder layihəmdir. Mənim adım Parker, mən 11 -ci sinifdə oxuyuram və bu layihəni 11 Noyabr 2020 -ci ildə CCA (Kurs Sonlandırıcı Fəaliyyət) olaraq hazırladım və bu layihədə sizə Arduino UNO ilə Avtomatik Heyvan Besleyicisinin necə hazırlanacağını göstərəcəyəm
Mood Dinamik- Ətraf Mühitin İstiliyinə Bağlı Çalınacaq Mood Musiqisi üçün Güclü Dinamik: 9 Addım
Mood Speaker- Ətraf Mühitin İstiliyinə Bağlı Mood Musiqisi Çalınacaq Güclü Dinamik: Salam, MCT Howest Kortrijk-dəki məktəb layihəm üçün Mood Hoparlör hazırladım, bu fərqli sensorlar, LCD və WS2812b olan ağıllı Bluetooth dinamik cihazdır. Dinamik temperaturdan asılı olaraq fon musiqisi çalır, ancaq
Daha Təhlükəsiz Elektrikli Hot Dog Ocağı: 14 Addım (Şəkillərlə birlikdə)
Daha Təhlükəsiz Elektrikli Hot Dog Ocağı: Fizika ixtisası üzrə bakalavr təhsili alanda isti itləri birbaşa 120V prizinə qoşaraq bişirərdik. Bu, nisbətən təhlükəli bir əməliyyat idi, çünki uzatma kabelinin uclarını hortumlara daxil olan iki boltla bağladıq
Arduino Powered Dog Food Dispenser: 10 Addım (Şəkillərlə birlikdə)
Arduino Powered Dog Food Dispenser: Eviniz mənimki kimidirsə, tələsik olduğunuzda bəzi işlər unudula bilər. Ev heyvanınızın unudulmasına icazə verməyin! Bu avtomatlaşdırılmış it yemi dispenseri, lazımi miqdarda yeməyi lazımi anda çatdırmaq üçün bir Arduino istifadə edir. Hamısı
PoochPak: Cellular Connected Smart Dog Yelek: 4 addım
PoochPak: Cellular Connected Smart Dog Yelek: Avtomatlaşdırmada, kompüterlərin və insan zehninin bilişsel güclərindən faydalanmaq üçün tez-tez insanları mühəndislik üzərində qururuq. Ancaq itlər, insanların təsirli ola bilməyəcəyi müəyyən vəzifələrə çox uyğun gələn bir sıra bacarıqlara malikdir