Kazalo:

Detektor razpoloženja psov (Raspberry Pi): 5 korakov
Detektor razpoloženja psov (Raspberry Pi): 5 korakov

Video: Detektor razpoloženja psov (Raspberry Pi): 5 korakov

Video: Detektor razpoloženja psov (Raspberry Pi): 5 korakov
Video: Часть 1. Аудиокнига Гарриет Бичер-Стоу «Хижина дяди Тома» (гл. 1–7) 2024, November
Anonim
Detektor razpoloženja psov (Raspberry Pi)
Detektor razpoloženja psov (Raspberry Pi)

Ta Instructable je zasnovan tako, da sprejme zvoke, ki jih odda pes, in ugotovi, ali se jim je treba približati ali ne z indikatorskimi LED. Večina lastnikov psov pozna svoje hišne ljubljenčke in lahko prebere signale, ki jih oddajajo, zato je to navodilo večinoma namenjeno tujcem, ki bi lahko prišli v stik z vašim psom.

1. korak: Deli

Deli
Deli
Deli
Deli
Deli
Deli

Boste potrebovali:

  • Malina Pi
  • Rdeče/zelene LED (X2)
  • Monitor
  • Tipkovnica/miška z USB
  • WiFi ključ
  • Zunanji mikrofon USB
  • 330 ohmski upor (X2)

Neobvezni deli

  • Zunanji napajalnik Raspberry Pi
  • Pasja ovratnica

2. korak: Postopek

Postopek
Postopek

Prvi korak k začetku tega projekta je opazovanje vedenja in vzorcev, povezanih z vašim psom. Za preprost vodnik o tem, kaj bi morali iskati, lahko kliknete TUKAJ. V mojem primeru moj pes zajoče, kadar je navdušen ali vesel, da nekoga vidi, in občasno laja, ko je živčen ali otežen. V naslednjih nekaj korakih bom razložil, kako spremeniti svoj program, da bi ustrezal vedenju vašega psa.

3. korak: Programiranje

Programiranje
Programiranje

Spodaj je program Python, ki sem ga uporabil za svojega psa. V naslednjem koraku bom razložil, kako spremeniti program za vedenje vašega psa. Ne zaženite programa, saj ne bo deloval, dokler ne naredite naslednjega koraka.

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

lubje = 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 (rdeča, GPIO. OUT) GPIO.output (c, True) spanje (10) GPIO.output (c, False) tiskanje ("rdeče preklopljeno")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (zelena, GPIO. OUT) GPIO.output (c, True) spanje (10) GPIO.output (c, False) tiskanje ("Green zeleno")

def main ():

global bark global howl global hold global barkDolžina globalna zamuda global flag global rdeča globalna zelena

kos = 8192

FORMAT = pyaudio.paInt16 KANALI = 1 RATE = 44100 prag = 3000 max_value = 0 p = pyaudio. PyAudio () tok = p.open (format = FORMAT, kanali = KANALI, hitrost = RATE, vnos = res, izhod = res, frame_per_buffer = kos) GPIO.setmode (GPIO. BOARD) GPIO.setup (rdeča, GPIO. OUT) GPIO.setup (zelena, GPIO. OUT) poskusite: natisnite "Zaznavanje inicializirano", medtem ko je True: poskusite: data = stream.read (kos) razen IOError kot ex: if ex [1]! = pyaudio.paInputOverflowed: dvig podatkov = '\ x00' * kos as_ints = array ('h', data) max_value = max (as_ints) medtem ko max_value> prag: delay = 0 hold = hold+1 try: data = stream.read (chunk) razen IOError kot 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 (zeleno) GPIO.cleanup () elif hold> 0 and hold

če _name_ == '_main_':

main ()

4. korak: Odpravljanje težav in spreminjanje

Odpravljanje težav in spreminjanje
Odpravljanje težav in spreminjanje
Odpravljanje težav in spreminjanje
Odpravljanje težav in spreminjanje
Odpravljanje težav in spreminjanje
Odpravljanje težav in spreminjanje

Nastaviti

Preden zaženete program, morate v terminal vnesti naslednje, da namestite PyAudio:

sudo apt-get intall python-pyaudio

Po tem lahko preizkusite zagon programa in se prepričate, da deluje pravilno.

Odpravljanje težav

Lahko pride do naslednje napake:

IOError: [Errno Input overflowed] -9981

Če želite to odpraviti, preprosto povečajte število, dodeljeno spremenljivemu kosu, dokler se napaka ne prikaže več.

Spreminjanje

Spremenljivka barkLength narekuje, kolikokrat se program ponovi, preden se hrup ne vidi več kot lajež, ampak kot tuljenje. Če vaši psi zajokajo, vendar to počnejo le za kratek čas, morate to število zmanjšati.

Spremenljivki rdeča in zelena se nanašata na izhodna vrata, ki bodo uporabljena za LED indikatorje. Te lahko spremenite tako, da ustrezajo vašim potrebam.

Čeprav spremenljive zakasnitve v svojem programu ne uporabljam aktivno, je mogoče opaziti, da označuje pogostost lajanja ali zavijanja.

Spremenljivka hold se nanaša na to, kolikokrat program ponovi, kjer je raven hrupa nad pragom, in se uporablja za ugotavljanje, ali se zavija. Te spremenljivke nikakor ne bi smeli spreminjati, saj se z manipulacijo spremenljivke barkLength zaznajo joki.

Spremenljivko praga je mogoče znižati, če lubje ni zelo glasno ali dvigniti, če obstaja hrup v ozadju, ki bi ga lahko napačno razumeli kot hrup, ki izvira iz psa.

5. korak: Strojna oprema

Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema
Strojna oprema

Na tej točki bi morali imeti popolnoma delujoč program, ki na zaslon prikaže, kaj počne strojna oprema. Ta točka v projektu se morate odločiti, ali bo to stacionarni mikrofon, ki je nameščen na enem mestu (npr. Prostor v hiši, kjer pes običajno hodi ali pride v stik z obiskovalci) ali pa bo projekt minimiziran in pritrjen na ovratnico za psa, da osebi, ki komunicira s psom, zagotovi takojšnje povratne informacije.

Stacionarno

Najlažje je, da vse pustite na deski, saj ne bo nobenega premika, ki bi lahko ločil žice. Priključite katode rdečih LED na ozemljitveni zatič na Raspberry Pi in anode bodisi preko 330 ohmskega upora ali naravnost v pin 7 Raspberry Pi. Enako naredite z zelenimi LED diodami, vendar anode priključite na pin 5. Zaženite program in ko boste kodo prilagodili svojim potrebam, morate imeti zaključen projekt.

Nestacionarno

Priporočam, da najprej dokončate stacionarno različico, samo da zagotovite, da vse deluje, nato pa nadaljujte tako, da vse skupaj spajkate, tako da nobena žica ne bo odklopljena od gibanja psa.

Pritrdite LED diode na ovratnik, tako da bosta oba v udobnem položaju in da ju bo nekdo videl, ko se približajo.

Nato priključite zunanji napajalnik, kakršen je prikazan TUKAJ, na malinovo piko in ga pritrdite na ovratnik na način, ki je primeren za psa.

Ko je vse pritrjeno, zaženite program, privežite ovratnico na psa in končali ste!

Priporočena: