Isi kandungan:

Pengesan Mood Anjing (Raspberry Pi): 5 Langkah
Pengesan Mood Anjing (Raspberry Pi): 5 Langkah

Video: Pengesan Mood Anjing (Raspberry Pi): 5 Langkah

Video: Pengesan Mood Anjing (Raspberry Pi): 5 Langkah
Video: Aksi memukau anak psht 2024, November
Anonim
Pengesan Mood Anjing (Raspberry Pi)
Pengesan Mood Anjing (Raspberry Pi)

Instructable ini dirancang untuk mengambil suara yang dibuat oleh anjing dan menentukan sama ada ia harus didekati atau tidak dengan LED penunjuk. Sebilangan besar pemilik anjing mengetahui haiwan kesayangan mereka dan dapat membaca isyarat yang mereka berikan sehingga Instructable ini kebanyakan ditujukan kepada orang asing yang mungkin bersentuhan dengan anjing anda.

Langkah 1: Bahagian

Bahagian
Bahagian
Bahagian
Bahagian
Bahagian
Bahagian

Anda perlu:

  • Pai raspberi
  • LED Merah / Hijau (X2)
  • Pantau
  • Papan kekunci / tetikus dengan USB
  • WiFi Dongle
  • Mikrofon USB Luaran
  • Perintang 330 ohm (X2)

Bahagian Pilihan

  • Bekalan Kuasa Raspberry Pi Luaran
  • Kolar Anjing

Langkah 2: Prosedur

Prosedur
Prosedur

Langkah pertama untuk memulakan projek ini adalah memerhatikan tingkah laku dan corak yang berkaitan dengan anjing anda. Anda boleh klik di SINI untuk mendapatkan panduan ringkas mengenai perkara yang anda mahukan. Dalam kes saya, anjing saya melolong setiap kali dia teruja atau gembira melihat seseorang dan menyalak sekejap ketika gugup atau bertambah teruk. Dalam beberapa langkah seterusnya, saya akan menerangkan cara mengubah suai program saya untuk menampung tingkah laku anjing anda.

Langkah 3: Pengaturcaraan

Pengaturcaraan
Pengaturcaraan

Berikut adalah program Python yang saya gunakan untuk anjing saya. Pada langkah seterusnya saya akan menerangkan cara mengubah program untuk tingkah laku anjing anda. Jangan jalankan program ini kerana ia tidak akan berjaya sehingga anda melakukan langkah seterusnya.

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

kulit kayu = 0

lolongan = Pegangan palsu = 0 kulit Panjang = 5 kelewatan = 0 tunggu = 2 bendera = 0 merah = 7 hijau = 5 keluarFlag = Salah

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (merah, GPIO. OUT) GPIO.output (c, True) tidur (10) GPIO.output (c, Salah) cetakan ("Red toggled")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (hijau, GPIO. OUT) GPIO.output (c, True) tidur (10) GPIO.output (c, Salah) cetakan ("Beralih hijau")

def utama ():

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

potongan = 8192

FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 ambang = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, saluran = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (merah, GPIO. OUT) GPIO.setup (hijau, GPIO. OUT) cubalah: cetak "Pengesanan dimulakan" sementara Betul: cuba: data = stream.read (chunk) kecuali IOError seperti ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) sementara max_value> ambang: delay = 0 tahan = tahan + 1 percubaan: data = stream.read (chunk) kecuali IOError as ex: if ex [1]! = Pyaudio.paInputOverflow: menaikkan 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 tahan> 0 dan tahan

jika _nama_ == '_main_':

utama ()

Langkah 4: Penyelesaian masalah dan Pengubahsuaian

Penyelesaian masalah dan Pengubahsuaian
Penyelesaian masalah dan Pengubahsuaian
Penyelesaian masalah dan Pengubahsuaian
Penyelesaian masalah dan Pengubahsuaian
Penyelesaian masalah dan Pengubahsuaian
Penyelesaian masalah dan Pengubahsuaian

Persediaan

Sebelum anda menjalankan program, anda perlu memasukkan yang berikut ke Terminal untuk memasang PyAudio:

sudo apt-get intall python-pyaudio

Selepas ini, anda boleh menjalankan program untuk memastikannya berfungsi dengan baik.

Penyelesaian masalah

Anda mungkin mengalami ralat berikut:

Ralat IO: [Input Errno meluap] -9981

Untuk memperbaikinya, cukup tambah nombor yang diberikan pada bahagian pemboleh ubah sehingga ralat tidak lagi muncul.

Mengubahsuai

BarkLark berubah-ubah menentukan berapa kali gelung program sebelum bunyi tidak lagi dilihat sebagai kulit kayu, tetapi sebagai melolong. Sekiranya anjing anda melolong tetapi melakukannya hanya untuk letupan pendek, anda harus mengurangkan jumlah ini.

Pemboleh ubah merah dan hijau merujuk pada port output yang akan digunakan untuk petunjuk LED. Ini boleh diubah agar sesuai dengan keperluan anda.

Walaupun saya tidak menggunakan penundaan pemboleh ubah secara aktif dalam program saya, ia dapat dilihat untuk menunjukkan kekerapan menyalak atau melolong.

Penahan pemboleh ubah merujuk kepada berapa kali program tergendala di mana tahap kebisingan berada di atas ambang dan digunakan untuk menentukan sama ada lolongan berlaku. Pemboleh ubah ini tidak boleh diubah dengan cara apa pun kerana lolongan dikesan melalui manipulasi pemboleh ubah barkLength.

Pemboleh ubah ambang boleh diturunkan jika kulit kayu tidak terlalu kuat atau dinaikkan jika ada suara latar yang dapat disalahtafsirkan sebagai bunyi yang berasal dari anjing.

Langkah 5: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan

Pada ketika inilah anda harus mempunyai program yang berfungsi sepenuhnya yang memaparkan ke atas apa yang akan dilakukan oleh perkakasan. Titik dalam projek ini adalah di mana anda harus memutuskan apakah ini akan menjadi mikrofon pegun yang dipasang di satu tempat (mis. Tempat di rumah di mana anjing biasanya berkunjung atau bersentuhan dengan pengunjung) atau jika projek itu akan diminimumkan dan dilekatkan pada kolar anjing untuk memberi maklum balas segera kepada orang yang berinteraksi dengan anjing itu.

Pegun

Perkara paling senang dilakukan ialah meninggalkan semuanya di papan roti kerana tidak akan ada pergerakan yang boleh melepaskan wayar. Sambungkan katod LED Merah ke pin Ground pada Raspberry Pi dan Anodes sama ada melalui perintang 330 ohm atau terus ke pin 7 dari Raspberry Pi. Lakukan perkara yang sama dengan LED Hijau tetapi sambungkan Anod ke pin 5. Jalankan program dan anda seharusnya mempunyai projek yang telah siap setelah anda mengubah kod mengikut keperluan anda.

Tidak Bergerak

Saya akan mengesyorkan untuk melengkapkan versi pegun terlebih dahulu hanya untuk memastikan semuanya berfungsi dan kemudian beralih dari sana dengan menyatukan semuanya sehingga tidak ada wayar yang tidak tersambung dari pergerakan anjing.

Pasang LED ke kolar sehingga keduanya berada dalam kedudukan yang selesa dan dapat dilihat oleh seseorang ketika mereka mendekat.

Seterusnya sambungkan bekalan kuasa luaran anda seperti yang dilihat DI SINI ke raspberry pi dan pasangkannya ke kolar dengan cara yang selesa untuk anjing.

Setelah semuanya selamat di tempat, teruskan dan jalankan program, pasangkan kolar pada anjing, dan anda sudah selesai!

Disyorkan: