Obsah:

Detektor psí nálady (Raspberry Pi): 5 kroků
Detektor psí nálady (Raspberry Pi): 5 kroků

Video: Detektor psí nálady (Raspberry Pi): 5 kroků

Video: Detektor psí nálady (Raspberry Pi): 5 kroků
Video: BTT SKR2 - Basics SKR 2 (Rev B) 2024, Listopad
Anonim
Detektor psí nálady (Raspberry Pi)
Detektor psí nálady (Raspberry Pi)

Tento instruktáž je navržen tak, aby zaznamenával zvuky, které pes vydává, a určoval, zda se k nim má přiblížit, nebo ne, pomocí LED indikátorů. Většina majitelů psů zná své mazlíčky a umí číst signály, které vydávají, takže tento Instructable je většinou zaměřen na cizince, kteří mohou přijít do kontaktu s vaším psem.

Krok 1: Díly

Díly
Díly
Díly
Díly
Díly
Díly

Budete potřebovat:

  • Raspberry Pi
  • Červená/zelená LED (X2)
  • Monitor
  • Klávesnice/myš s USB
  • WiFi dongle
  • Externí USB mikrofon
  • Rezistor 330 ohmů (X2)

Volitelné součásti

  • Externí napájecí zdroj Raspberry Pi
  • Obojek

Krok 2: Postup

Postup
Postup

Prvním krokem k zahájení tohoto projektu je pozorování chování a vzorců spojených s vaším psem. Kliknutím ZDE získáte jednoduchý návod, co byste měli hledat. V mém případě můj pes vyje, kdykoli je vzrušený nebo šťastný, že někoho vidí, a přerušovaně štěká, když je nervózní nebo zhoršuje. V následujících několika krocích vysvětlím, jak upravit svůj program tak, aby vyhovoval chování vašeho psa.

Krok 3: Programování

Programování
Programování

Níže je program Python, který jsem použil pro svého psa. V dalším kroku vysvětlím, jak upravit program pro chování vašeho psa. Program zatím nespouštějte, protože nebude fungovat, dokud neprovedete další krok.

#!/usr/bin/pythonimport pyaudio import sys importovat vlákno z času importu spánku z pole importu importovat pole RPi. GPIO jako GPIO

kůra = 0

vytí = falešné podržení = 0 barkLength = 5 zpoždění = 0 čekání = 2 vlajka = 0 červená = 7 zelená = 5 exitFlag = False

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (červená, GPIO. OUT) GPIO.output (c, True) spánek (10) GPIO.output (c, False) tisk ("Červená přepnuta")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (zelená, GPIO. OUT) GPIO.output (c, True) spánek (10) GPIO.output (c, False) tisk ("Zelená přepnuta")

def main ():

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

kus = 8192

FORMÁT = pyaudio.paInt16 KANÁLŮ = 1 RATE = 44100 práh = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (formát = FORMAT, kanály = CHANNELS, rate = RATE, vstup = True, výstup = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (červená, GPIO. OUT) GPIO.setup (zelená, GPIO. OUT) zkuste: vytiskněte „Detekce inicializována“, zatímco True: zkuste: data = stream.read (kus) kromě IOError jako ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = pole ('h', data) max_value = max (as_ints) while max_value> threshold: delay = 0 hold = hold+1 try: data = stream.read (chunk) except 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 (green) GPIO.cleanup () elif hold> 0 and hold

if _name_ == '_main_':

hlavní()

Krok 4: Odstraňování problémů a úpravy

Odstraňování problémů a úpravy
Odstraňování problémů a úpravy
Odstraňování problémů a úpravy
Odstraňování problémů a úpravy
Odstraňování problémů a úpravy
Odstraňování problémů a úpravy

Založit

Než spustíte program, budete muset do terminálu pro instalaci PyAudio zadat následující:

sudo apt-get intall python-pyaudio

Poté můžete testovací program spustit a ujistit se, že funguje správně.

Odstraňování problémů

Může dojít k následující chybě:

IOError: [Errno Input overflowed] -9981

Chcete -li to opravit, jednoduše zvyšte počet přiřazený k variabilnímu bloku, dokud se chyba již nezobrazí.

Úpravy

Proměnná barkLength diktuje, kolikrát se program zacyklí, než na hluk již nebude pohlíženo jako na štěkot, ale jako vytí. Pokud vaši psi vyjí, ale dělají to jen na krátkou dávku, měli byste toto číslo snížit.

Proměnné červená a zelená odkazují na výstupní porty, které budou použity pro indikátory LED. Ty lze změnit tak, aby vyhovovaly vašim potřebám.

Přestože ve svém programu aktivně nepoužívám proměnné zpoždění, lze pozorovat, že udává frekvenci štěkání nebo vytí.

Proměnné pozastavení udává, kolikrát program zacyklí, když je hladina hluku nad prahovou hodnotou, a používá se k určení, zda probíhá vytí. Tato proměnná by neměla být žádným způsobem upravována, protože vytí je detekováno manipulací s proměnnou barkLength.

Proměnnou prahové hodnoty lze snížit, pokud není kůra příliš hlasitá, nebo se zvýšit, pokud je v pozadí hluk, který by mohl být nesprávně interpretován jako hluk vycházející ze psa.

Krok 5: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

V tomto okamžiku byste měli mít plně funkční program, který na obrazovce zobrazí, co bude hardware dělat. V tomto bodě projektu byste se měli rozhodnout, zda se bude jednat o stacionární mikrofon, který je nastaven na jednom místě (např. V domě, kde pes běžně navštěvuje nebo přichází do styku s návštěvníky), nebo zda bude projekt minimalizován a připevněné k obojku psa, aby poskytovaly okamžitou zpětnou vazbu osobě, která se psem interaguje.

Stacionární

Nejjednodušší je nechat vše na prkénku, protože nedojde k žádnému pohybu, který by mohl odpojit dráty. Připojte katody červených LED k uzemňovacímu kolíku na Raspberry Pi a anodám buď přes odpor 330 ohmů, nebo přímo do pinu 7 Raspberry Pi. Totéž proveďte se zelenými LED, ale připojte Anody ke kolíku 5. Spusťte program a jakmile upravíte kód podle svých potřeb, měli byste mít dokončený projekt.

Nestacionární

Doporučil bych nejprve dokončit stacionární verzi, aby se zajistilo, že vše funguje, a poté se odtud přesunout pájením dohromady, aby se od pohybu psa neodpojily žádné dráty.

Připojte LED diody k obojku tak, aby byly obě v pohodlné poloze a mohly být někým viděny, když se blíží.

Dále připojte svůj externí napájecí zdroj, jako je ten, který vidíte ZDE, k malinovému pi a připevněte jej k obojku způsobem, který je pro psa pohodlný.

Jakmile je vše zajištěno na místě, pokračujte a spusťte program, připevněte obojek ke psovi a máte hotovo!

Doporučuje: