Sadržaj:

Detektor raspoloženja pasa (Raspberry Pi): 5 koraka
Detektor raspoloženja pasa (Raspberry Pi): 5 koraka

Video: Detektor raspoloženja pasa (Raspberry Pi): 5 koraka

Video: Detektor raspoloženja pasa (Raspberry Pi): 5 koraka
Video: BTT Octopus - Heat bed configuration 2024, Maj
Anonim
Detektor raspoloženja pasa (Raspberry Pi)
Detektor raspoloženja pasa (Raspberry Pi)

Ovaj Instructable dizajniran je da uzme zvukove koje pas ispušta i odredi trebaju li im se približiti ili ne sa LED indikatorima. Većina vlasnika pasa poznaje svoje ljubimce i može pročitati signale koje odašilje, pa je ovaj Instruktor uglavnom usmjeren prema strancima koji mogu doći u kontakt s vašim psom.

Korak 1: Dijelovi

Delovi
Delovi
Delovi
Delovi
Delovi
Delovi

Trebat će vam:

  • Raspberry Pi
  • Crvene/zelene LED diode (X2)
  • Monitor
  • Tastatura/miš sa USB -om
  • WiFi ključ
  • Vanjski USB mikrofon
  • Otpor 330 ohma (X2)

Opcioni delovi

  • Vanjsko napajanje Raspberry Pi
  • Ogrlica za pse

Korak 2: Postupak

Procedura
Procedura

Prvi korak za početak ovog projekta je promatranje ponašanja i obrazaca povezanih s vašim psom. Možete kliknuti OVDJE za jednostavan vodič o tome šta biste trebali tražiti. U mom slučaju, moj pas zavija kad god je uzbuđen ili sretan što vidi nekoga i povremeno laje kad je nervozan ili pogoršan. U sljedećih nekoliko koraka objasnit ću kako izmijeniti svoj program kako bih prilagodio ponašanje vašeg psa.

Korak 3: Programiranje

Programiranje
Programiranje

Ispod je Python program koji sam koristio za svog psa. U sljedećem koraku ću objasniti kako izmijeniti program za ponašanje vašeg psa. Nemojte još pokretati program jer neće raditi dok ne napravite sljedeći korak.

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

kora = 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 (crveno, GPIO. OUT) GPIO.output (c, Tačno) spavanje (10) GPIO.output (c, Netačno) ispis ("Crveno preklopljeno")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (zeleno, GPIO. OUT) GPIO.output (c, Tačno) spavanje (10) GPIO.output (c, Netačno) ispis ("Zeleno preklopljeno")

def main ():

globalna kora globalno zavijanje globalno držanje globalna korakadužina globalno kašnjenje globalna zastava globalna crvena globalna zelena

komad = 8192

FORMAT = pyaudio.paInt16 KANALI = 1 RATE = 44100 prag = 3000 max_value = 0 p = pyaudio. PyAudio () tok = p.open (format = FORMAT, kanali = KANALI, brzina = RATE, ulaz = Tačno, izlaz = Istina, frame_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (crveno, GPIO. OUT) GPIO.setup (zeleno, GPIO. OUT) try: print "Otkrivanje je inicijalizirano" dok je True: try: data = stream.read (komad) osim IOError -a kao ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) dok max_value> prag: delay = 0 hold = hold+1 try: data = stream.read (chunk) osim IOError kao npr: 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

if _name_ == '_main_':

main ()

Korak 4: Rješavanje problema i izmjena

Rješavanje problema i izmjena
Rješavanje problema i izmjena
Rješavanje problema i izmjena
Rješavanje problema i izmjena
Rješavanje problema i izmjena
Rješavanje problema i izmjena

Postaviti

Prije pokretanja programa morat ćete unijeti sljedeće u terminal da biste instalirali PyAudio:

sudo apt-get intall python-pyaudio

Nakon toga možete testirati program da biste se uvjerili da radi ispravno.

Rješavanje problema

Možda ćete doživjeti sljedeću grešku:

IOError: [Errno Input overflow] -9981

Da biste to riješili, jednostavno povećavajte broj dodijeljen promjenjivom komadu dok se greška više ne pojavi.

Modifikovanje

Promenljiva barkLength diktira koliko se puta program petlja pre nego što se šum više ne vidi kao lavež, već kao urlik. Ako vaši psi zavijaju, ali to čine samo nakratko, tada biste trebali smanjiti ovaj broj.

Varijable crvena i zelena odnose se na izlazne portove koji će se koristiti za LED indikatore. Oni se mogu promijeniti prema vašim potrebama.

Iako u svom programu ne koristim aktivno varijablu kašnjenja, može se primijetiti da ukazuje na učestalost lajanja ili zavijanja.

Varijabla hold se odnosi na to koliko se puta program petlja gdje je nivo buke iznad praga i koristi se za utvrđivanje da li se zavija. Ovu varijablu ne treba ni na koji način mijenjati jer se urlici otkrivaju manipulacijom varijable barkLength.

Varijabla praga može se smanjiti ako lavež nije jako glasan ili podignuti ako postoji pozadinska buka koja bi se mogla pogrešno protumačiti kao buka koja dolazi od psa.

Korak 5: Hardver

Hardver
Hardver
Hardver
Hardver
Hardver
Hardver

U ovom trenutku trebali biste imati potpuno funkcionalan program koji prikazuje na ekranu šta će hardver raditi. Na ovom mjestu u projektu trebate odlučiti hoće li to biti stacionarni mikrofon koji je postavljen na jednom mjestu (npr. Mjesto u kući gdje pas obično posjećuje ili dolazi u kontakt s posjetiteljima) ili će projekt biti minimiziran i pričvršćeni za ogrlicu psa kako bi pružili trenutnu povratnu informaciju osobi koja komunicira sa psom.

Stacionarno

Najjednostavnije je učiniti sve ostaviti na ploči jer neće biti pokreta koji bi mogao odvojiti žice. Spojite katode crvenih LED dioda na uzemljeni pin na Raspberry Pi i anode bilo kroz otpornik od 330 ohma ili ravno u pin 7 Raspberry Pi. Učinite isto sa zelenim LED diodama, ali povežite anode na pin 5. Pokrenite program i trebali biste imati završen projekt nakon što promijenite kôd prema svojim potrebama.

Nestacionarno

Preporučio bih da prvo dovršite stacionarnu verziju samo kako biste bili sigurni da sve funkcionira, a zatim krenite dalje spajajući sve tako da nijedna žica neće postati nepovezana s kretanjem psa.

Pričvrstite LED diode na ogrlicu tako da obje budu u udobnom položaju i da ih netko može vidjeti dok se približavaju.

Zatim spojite vanjsko napajanje, poput onog koje se vidi OVDJE, na malinu pi i pričvrstite ga na ogrlicu na način koji je ugodan za psa.

Nakon što sve učvrstite na svom mjestu, pokrenite program, pričvrstite ogrlicu na psa i gotovi ste!

Preporučuje se: