Innholdsfortegnelse:

Dog Mood Detector (Raspberry Pi): 5 trinn
Dog Mood Detector (Raspberry Pi): 5 trinn

Video: Dog Mood Detector (Raspberry Pi): 5 trinn

Video: Dog Mood Detector (Raspberry Pi): 5 trinn
Video: Top 10 Foods To Detox Your Kidneys 2024, November
Anonim
Dog Mood Detector (Raspberry Pi)
Dog Mood Detector (Raspberry Pi)

Denne instruksjonsboken er designet for å ta lydene en hund lager og bestemme om de skal nærmer seg eller ikke med indikatorlysdioder. De fleste hundeeiere kjenner kjæledyrene sine og kan lese signalene de avgir, så denne instruksen er hovedsakelig rettet mot fremmede som kan komme i kontakt med hunden din.

Trinn 1: Deler

Deler
Deler
Deler
Deler
Deler
Deler

Du vil trenge:

  • Bringebær Pi
  • Røde/grønne lysdioder (X2)
  • Observere
  • Tastatur/mus med USB
  • WiFi Dongle
  • Ekstern USB -mikrofon
  • 330 ohm motstand (X2)

Valgfrie deler

  • Ekstern Raspberry Pi strømforsyning
  • Hundehalsbånd

Trinn 2: Fremgangsmåte

Fremgangsmåte
Fremgangsmåte

Det første trinnet for å starte dette prosjektet er å observere atferd og mønstre knyttet til hunden din. Du kan klikke HER for en enkel guide til hva du bør se etter. I mitt tilfelle hyler hunden min når hun er spent eller glad for å se noen og bjeffer periodisk når han er nervøs eller forverret. I de neste trinnene vil jeg forklare hvordan jeg kan endre programmet mitt for å imøtekomme oppførselen til hunden din.

Trinn 3: Programmering

Programmering
Programmering

Nedenfor er Python -programmet jeg brukte for hunden min. I neste trinn vil jeg forklare hvordan du endrer programmet for hundens oppførsel. Ikke kjør programmet enda, da det ikke fungerer før du gjør neste trinn.

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

bark = 0

hyl = Falske hold = 0 barkLength = 5 forsinkelse = 0 vent = 2 flagg = 0 rødt = 7 grønt = 5 exitFlag = Falske

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (rød, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) utskrift ("Red toggled")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (grønn, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Green toggled")

def main ():

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

del = 8192

FORMAT = pyaudio.paInt16 KANALER = 1 RATE = 44100 terskel = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, kanaler = KANALER, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (rød, GPIO. OUT) GPIO.setup (grønn, GPIO. OUT) prøv: skriv ut "Deteksjon initialisert" mens True: try: data = stream.read (del) bortsett fra IOError som eks: hvis ex [1]! = pyaudio.paInputOverflowed: heve data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) mens max_value> terskel: delay = 0 hold = hold+1 forsøk: data = stream.read (del) unntatt IOError som eks: hvis 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 (grønn) GPIO.cleanup () elif hold> 0 og hold

hvis _name_ == '_main_':

hoved()

Trinn 4: Feilsøking og endring

Feilsøking og endring
Feilsøking og endring
Feilsøking og endring
Feilsøking og endring
Feilsøking og endring
Feilsøking og endring

Oppsett

Før du kjører programmet må du skrive inn følgende i terminalen for å installere PyAudio:

sudo apt-get intall python-pyaudio

Etter dette kan du teste og kjøre programmet for å sikre at det fungerer som det skal.

Feilsøking

Du kan oppleve følgende feil:

IOError: [Errno Input overflowed] -9981

For å fikse dette, øker du bare antallet som er tilordnet variabelen, til feilen ikke lenger vises.

Endrer

Variabelen barkLength dikterer antall ganger programmet sløyfer før en støy ikke lenger blir sett på som en bark, men som et hyl. Hvis hundene dine hyler, men bare gjør det for en kort periode, bør du redusere dette antallet.

Variablene rødt og grønt refererer til utgangsportene som skal brukes for LED -indikatorene. Disse kan endres for å passe dine behov.

Selv om jeg ikke bruker variabelforsinkelsen aktivt i programmet mitt, kan det observeres for å indikere hyppigheten eller bjeffingen.

Variabelen hold refererer til hvor mange ganger programmet sløyfer der støynivået er over terskelen og brukes til å avgjøre om det hyler. Denne variabelen bør ikke modifiseres på noen måte ettersom hyl oppdages gjennom manipulering av varianten barkLength.

Terskelvariabelen kan senkes hvis barken ikke er veldig høy eller heves hvis det er bakgrunnsstøy som kan misfortolkes som støy fra hunden.

Trinn 5: Maskinvare

Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare
Maskinvare

Det er på dette tidspunktet du bør ha et fullt fungerende program som viser til skjermen hva maskinvaren skal gjøre. Dette punktet i prosjektet er hvor du bør bestemme om dette vil være en stasjonær mikrofon som er satt på ett sted (f.eks. Et sted i huset der hunden normalt besøker eller kommer i kontakt med besøkende) eller om prosjektet vil bli minimert og festet til hundens halsbånd for å gi umiddelbar tilbakemelding til personen som interagerer med hunden.

Stasjonær

Det enkleste er å la alt ligge på et brødbrett siden det ikke vil være noen bevegelse som kan løsne ledninger. Koble katodene til de røde lysdiodene til jordpinnen på Raspberry Pi og anodene enten gjennom en 330 ohm motstand eller rett inn i pin 7 på Raspberry Pi. Gjør det samme med de grønne lysdiodene, men koble anodene til pin 5. Kjør programmet, og du bør ha et ferdig prosjekt når du har endret koden til dine behov.

Ikke-stasjonær

Jeg vil anbefale å fullføre den stasjonære versjonen først bare for å sikre at alt fungerer og deretter gå videre derfra ved å lodde sammen alt slik at ingen ledninger blir koblet fra hundens bevegelse.

Fest lysdiodene til kragen slik at de begge er i en behagelig posisjon og kan sees av noen når de nærmer seg.

Deretter kobler du den eksterne strømforsyningen, som den som er sett HER, til bringebærpi og fest den til kragen på en måte som er behagelig for hunden.

Når alt er sikret på plass, kjør programmet, fest kragen til hunden, og du er ferdig!

Anbefalt: