Daftar Isi:

Detektor Suasana Hati Anjing (Raspberry Pi): 5 Langkah
Detektor Suasana Hati Anjing (Raspberry Pi): 5 Langkah

Video: Detektor Suasana Hati Anjing (Raspberry Pi): 5 Langkah

Video: Detektor Suasana Hati Anjing (Raspberry Pi): 5 Langkah
Video: Jessica Dulu VS Sekarang 🤓 2024, November
Anonim
Detektor Suasana Hati Anjing (Raspberry Pi)
Detektor Suasana Hati Anjing (Raspberry Pi)

Instruksi ini dirancang untuk mengambil suara yang dibuat anjing dan menentukan apakah mereka harus didekati atau tidak dengan LED indikator. Sebagian besar pemilik anjing mengenal hewan peliharaan mereka dan dapat membaca sinyal yang mereka berikan sehingga Instruksi ini sebagian besar ditujukan kepada orang asing yang mungkin melakukan kontak dengan anjing Anda.

Langkah 1: Bagian

Bagian
Bagian
Bagian
Bagian
Bagian
Bagian

Anda akan perlu:

  • Raspberry Pi
  • LED Merah/Hijau (X2)
  • Memantau
  • Keyboard/mouse dengan USB
  • Dongle WiFi
  • Mikrofon USB Eksternal
  • Resistor 330 ohm (X2)

Bagian Opsional

  • Catu Daya Raspberry Pi Eksternal
  • Kerah Anjing

Langkah 2: Prosedur

Prosedur
Prosedur

Langkah pertama untuk memulai proyek ini adalah mengamati perilaku dan pola yang terkait dengan anjing Anda. Anda dapat mengklik DI SINI untuk panduan sederhana tentang apa yang harus Anda cari. Dalam kasus saya, anjing saya melolong setiap kali dia bersemangat atau senang melihat seseorang dan menggonggong sebentar-sebentar ketika gugup atau kesal. Dalam beberapa langkah berikutnya saya akan menjelaskan cara memodifikasi program saya untuk mengakomodasi perilaku anjing Anda.

Langkah 3: Pemrograman

Pemrograman
Pemrograman

Di bawah ini adalah program Python yang saya gunakan untuk anjing saya. Pada langkah selanjutnya saya akan menjelaskan cara memodifikasi program untuk perilaku anjing Anda. Jangan menjalankan program dulu karena tidak akan bekerja sampai Anda melakukan langkah berikutnya.

#!/usr/bin/pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO as GPIO

kulit kayu = 0

howl=False hold=0 barkLength=5 delay=0 wait = 2 flag = 0 red = 7 green=5 exitFlag = False

def toggleLightRed(c):

GPIO.setmode(GPIO. BOARD) GPIO.setup(red, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Red toggled")

def toggleLightGreen(c):

GPIO.setmode(GPIO. BOARD) GPIO.setup(hijau, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Green toggled")

def utama():

global bark global howl global hold global barkLength global delay global flag global red global green

potongan = 8192

FORMAT = pyaudio.paInt16 CHANNEL = 1 RATE = 44100 threshold = 3000 max_value = 0 p = pyaudio. PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, output=True, frames_per_buffer=chunk) GPIO.setmode(GPIO. BOARD) GPIO.setup(red, GPIO. OUT) GPIO.setup(green, GPIO. OUT) try: print "Detection initialized" while True: try: data = stream.read(chunk) kecuali IOError sebagai ex: if ex[1] != pyaudio.paInputOverflowed: raise data = '\x00' * chunk as_ints = array('h', data) max_value = max(as_ints) while max_value>threshold: delay= 0 hold=hold+1 try: data = stream.read(chunk) kecuali IOError as ex: if ex[1] != pyaudio.paInputOverflowed: raise data = '\x00' * chunk as_ints = array('h', data) max_value = max(as_ints) if hold>=barkLength: howl=True print "HOWL DETECTED" toggleLightGreen(hijau) GPIO.cleanup() elif hold>0 and hold

jika _name_ == '_main_':

utama()

Langkah 4: Pemecahan Masalah dan Modifikasi

Pemecahan Masalah dan Modifikasi
Pemecahan Masalah dan Modifikasi
Pemecahan Masalah dan Modifikasi
Pemecahan Masalah dan Modifikasi
Pemecahan Masalah dan Modifikasi
Pemecahan Masalah dan Modifikasi

Mempersiapkan

Sebelum menjalankan program, Anda perlu mengetikkan yang berikut ini ke Terminal untuk menginstal PyAudio:

sudo apt-get intall python-pyaudio

Setelah ini, Anda dapat menguji-jalankan program untuk memastikannya berfungsi dengan baik.

Penyelesaian masalah

Anda mungkin mengalami kesalahan berikut:

IOError: [Masukan Kesalahan meluap] -9981

Untuk memperbaikinya, cukup tambahkan nomor yang ditetapkan ke potongan variabel hingga kesalahan tidak lagi muncul.

Memodifikasi

Variabel barkLength menentukan berapa kali program berputar sebelum suara tidak lagi dilihat sebagai gonggongan, tetapi sebagai lolongan. Jika anjing Anda melolong tetapi hanya sebentar, Anda harus mengurangi jumlah ini.

Variabel merah dan hijau mengacu pada port output yang akan digunakan untuk indikator LED. Ini dapat diubah agar sesuai dengan kebutuhan Anda.

Meskipun saya tidak menggunakan penundaan variabel secara aktif dalam program saya, dapat diamati untuk menunjukkan frekuensi menggonggong atau melolong.

Variabel terus mengacu pada berapa kali program loop di mana tingkat kebisingan di atas ambang batas dan digunakan untuk menentukan apakah lolongan sedang berlangsung. Variabel ini tidak boleh dimodifikasi dengan cara apa pun karena lolongan terdeteksi melalui manipulasi variabel barkLength.

Variabel ambang batas dapat diturunkan jika gonggongan tidak terlalu keras atau dinaikkan jika ada kebisingan latar belakang yang dapat disalahartikan sebagai kebisingan yang berasal dari anjing.

Langkah 5: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Pada titik inilah Anda harus memiliki program yang berfungsi penuh yang menampilkan ke layar apa yang akan dilakukan perangkat keras. Poin dalam proyek ini adalah di mana Anda harus memutuskan apakah ini akan menjadi mikrofon stasioner yang dipasang di satu tempat (mis. tempat di rumah yang biasanya sering dikunjungi anjing atau bersentuhan dengan pengunjung) atau jika proyek akan diminimalkan dan dilekatkan pada kalung anjing untuk memberikan umpan balik langsung kepada orang yang berinteraksi dengan anjing tersebut.

Perlengkapan tulis

Hal termudah untuk dilakukan adalah meninggalkan semuanya di papan tempat memotong roti karena tidak akan ada gerakan yang dapat melepaskan kabel. Hubungkan katoda LED Merah ke pin Ground pada Raspberry Pi dan Anoda baik melalui resistor 330 ohm atau langsung ke pin 7 Raspberry Pi. Lakukan hal yang sama dengan LED Hijau tetapi hubungkan Anoda ke pin 5. Jalankan program dan Anda akan memiliki proyek yang selesai setelah Anda memodifikasi kode sesuai kebutuhan Anda.

Non-Stasioner

Saya akan merekomendasikan menyelesaikan versi stasioner terlebih dahulu hanya untuk memastikan bahwa semuanya berfungsi dan kemudian melanjutkan dari sana dengan menyolder semuanya bersama-sama sehingga tidak ada kabel yang terlepas dari gerakan anjing.

Pasang LED ke kerah sehingga keduanya berada dalam posisi yang nyaman dan dapat dilihat oleh seseorang saat mereka mendekat.

Selanjutnya sambungkan catu daya eksternal Anda seperti yang terlihat DI SINI ke raspberry pi dan kencangkan ke kerah dengan cara yang nyaman bagi anjing.

Setelah semuanya diamankan di tempatnya, lanjutkan dan jalankan program, pasang kerah ke anjing, dan selesai!

Direkomendasikan: