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, Svibanj
Anonim
Detektor raspoloženja pasa (Raspberry Pi)
Detektor raspoloženja pasa (Raspberry Pi)

Ovaj Instructable dizajniran je tako da uzme zvukove koje pas ispušta i odredi trebaju li im se približiti ili ne pomoću LED indikatora. 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

Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi
Dijelovi

Trebat će vam:

  • Malina Pi
  • Crvene/zelene LED diode (X2)
  • Monitor
  • Tipkovnica/miš s USB -om
  • WiFi ključ
  • Vanjski USB mikrofon
  • Otpornik 330 ohma (X2)

Opcijski dijelovi

  • Vanjsko napajanje Raspberry Pi
  • Pseća ogrlica

Korak 2: Postupak

Postupak
Postupak

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

Korak 3: Programiranje

Programiranje
Programiranje

Ispod je Python program koji sam koristio za svog psa. U sljedećem koraku objasnit ću 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, True) spavanje (10) GPIO.output (c, False) ispis ("Crveno preklopljeno")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (zeleno, GPIO. OUT) GPIO.output (c, True) spavanje (10) GPIO.output (c, False) ispis ("Zeleno preklopljeno")

def main ():

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

komad = 8192

FORMAT = pyaudio.paInt16 KANALI = 1 RATE = 44100 prag = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, kanali = KANALI, brzina = RATE, ulaz = Istina, 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 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

ako je _naziv_ == '_glavni_':

glavni()

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 kako 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 pogrešku:

IOError: [Errno Input overflow] -9981

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

Modificiranje

Promjenjiva barkLength određuje koliko se puta program petlja prije 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. Mogu se 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 razina buke iznad praga i koristi se za utvrđivanje je li zavijanje. Ova se varijabla ne smije ni na koji način mijenjati jer se urlici otkrivaju manipulacijom varijable barkLength.

Varijabla praga može se smanjiti ako kora nije jako glasna ili podignuta 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 što ć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 s psom.

Stacionarno

Najlakše je učiniti sve ostaviti na ploči jer neće doći do 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 spojite anode na pin 5. Pokrenite program i trebali biste imati dovršen projekt nakon što promijenite kôd prema svojim potrebama.

Nestacionaran

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

Pričvrstite LED diode na ovratnik 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čeni: