Indholdsfortegnelse:

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

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

Video: Dog Mood Detector (Raspberry Pi): 5 trin
Video: Object Identification & Animal Recognition With Raspberry Pi + OpenCV + Python 2024, November
Anonim
Dog Mood Detector (Raspberry Pi)
Dog Mood Detector (Raspberry Pi)

Denne instruktør er designet til at tage de lyde, en hund laver, og afgøre, om de skal kontaktes eller ikke med indikator -LED'er. De fleste hundeejere kender deres kæledyr og kan læse de signaler, de afgiver, så denne instruks er hovedsagelig rettet mod fremmede, der kan komme i kontakt med din hund.

Trin 1: Dele

Dele
Dele
Dele
Dele
Dele
Dele

Du får brug for:

  • Hindbær Pi
  • Røde/grønne lysdioder (X2)
  • Overvåge
  • Tastatur/mus med USB
  • WiFi Dongle
  • Ekstern USB -mikrofon
  • 330 ohm modstand (X2)

Valgfri dele

  • Ekstern Raspberry Pi strømforsyning
  • Hundehalsbånd

Trin 2: Fremgangsmåde

Procedure
Procedure

Det første skridt til at starte dette projekt er at observere adfærd og mønstre forbundet med din hund. Du kan klikke HER for en enkel guide til, hvad du skal lede efter. I mit tilfælde hyler min hund, når hun er begejstret eller glad for at se nogen og gøer af og til, når den er nervøs eller forværret. I de næste trin vil jeg forklare, hvordan jeg ændrer mit program for at imødekomme din hunds adfærd.

Trin 3: Programmering

Programmering
Programmering

Nedenfor er det Python -program, jeg brugte til min hund. I det næste trin vil jeg forklare, hvordan du ændrer programmet til din hunds adfærd. Kør ikke programmet endnu, da det ikke virker, før du gør det næste trin.

#!/usr/bin/pythonimport pyaudio import sys importtråd fra tid import sleep fra array import array import RPi. GPIO som GPIO

bark = 0

hyl = Falsk hold = 0 barkLength = 5 forsinkelse = 0 vent = 2 flag = 0 rød = 7 grøn = 5 exitFlag = Falsk

def toggleLightRed (c):

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

def toggleLightGreen (c):

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

def main ():

global bark global hyle global hold global barkLængde global forsinkelse global flag global rød global grøn

bid = 8192

FORMAT = pyaudio.paInt16 KANALER = 1 RATE = 44100 tærskel = 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øn, GPIO. OUT) try: print "Detection initialized" while True: try: data = stream.read (chunk) undtagen IOError som ex: hvis ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) mens max_value> tærskel: delay = 0 hold = hold+1 forsøg: data = stream.read (chunk) undtagen IOError som ex: 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øn) GPIO.cleanup () elif hold> 0 og hold

hvis _name_ == '_main_':

main ()

Trin 4: Fejlfinding og ændring

Fejlfinding og ændring
Fejlfinding og ændring
Fejlfinding og ændring
Fejlfinding og ændring
Fejlfinding og ændring
Fejlfinding og ændring

Opsætning

Før du kører programmet, skal du skrive følgende i terminalen for at installere PyAudio:

sudo apt-get intall python-pyaudio

Herefter kan du test-køre programmet for at sikre, at det fungerer korrekt.

Fejlfinding

Du kan opleve følgende fejl:

IOError: [Errno Input overfyldt] -9981

For at løse dette skal du blot øge antallet, der er tildelt den variable del, indtil fejlen ikke længere vises.

Ændring

Den variable barkLength dikterer antallet af gange programmet går i sløjfe, før en støj ikke længere ses som en bark, men som et hyl. Hvis dine hunde hyler, men kun gør det for et kort udbrud, skal du reducere dette antal.

Variablerne rød og grøn refererer til de outputporte, der skal bruges til LED -indikatorerne. Disse kan ændres, så de passer til dine behov.

Selvom jeg ikke bruger variabelforsinkelsen aktivt i mit program, kan det observeres for at angive hyppigheden eller gøen.

Variabelt hold refererer til, hvor mange gange programmet går i sløjfer, hvor støjniveauet er over tærsklen og bruges til at bestemme, om et hyl finder sted. Denne variabel bør ikke ændres på nogen måde, da der opdages hyl gennem manipulation af barkLength -variablen.

Tærskelvariablen kan sænkes, hvis barken ikke er særlig høj eller hæves, hvis der er baggrundsstøj, der kan misfortolkes som støj fra hunden.

Trin 5: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Det er på dette tidspunkt, at du skal have et fuldt fungerende program, der viser på skærmen, hvad hardwaren vil gøre. Dette punkt i projektet er, hvor du skal beslutte, om dette vil være en stationær mikrofon, der er sat ét sted (f.eks. Et sted i huset, hvor hunden normalt frekventerer eller kommer i kontakt med besøgende) eller om projektet vil blive minimeret og fastgjort til hundens krave for at give øjeblikkelig feedback til den person, der interagerer med hunden.

Stationær

Det nemmeste er at lade alt ligge på et brødbræt, da der ikke vil være nogen bevægelse, der kan løsne ledninger. Tilslut katoderne på de røde lysdioder til jordstiftet på Raspberry Pi og anoderne enten gennem en 330 ohm modstand eller lige ind i pin 7 på Raspberry Pi. Gør det samme med de grønne lysdioder, men tilslut anoderne til pin 5. Kør programmet, og du skal have et færdigt projekt, når du har ændret koden til dine behov.

Ikke-stationær

Jeg vil anbefale at færdiggøre den stationære version først for at sikre, at alt fungerer, og derefter gå videre derfra ved at lodde alt sammen, så ingen ledninger bliver tilsluttet hundens bevægelse.

Fastgør lysdioderne til kraven, så de begge er i en behagelig position og kan ses af nogen, når de nærmer sig.

Tilslut derefter din eksterne strømforsyning som den, der ses HER, til hindbærpi og fastgør den til kraven på en måde, der er behagelig for hunden.

Når alt er sikret på plads, skal du køre og køre programmet, fastgøre kraven til hunden, og du er færdig!

Anbefalede: