Innehållsförteckning:

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

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

Video: Dog Mood Detector (Raspberry Pi): 5 steg
Video: Face Recognition With Raspberry Pi + OpenCV + Python 2024, Maj
Anonim
Dog Mood Detector (Raspberry Pi)
Dog Mood Detector (Raspberry Pi)

Denna instruerbara är utformad för att ta de ljud en hund gör och avgöra om de ska nås eller inte med indikatorlampor. De flesta hundägare känner till sina husdjur och kan läsa signalerna som de avger så den här instruktionsboken är mestadels riktad mot främlingar som kan komma i kontakt med din hund.

Steg 1: Delar

Delar
Delar
Delar
Delar
Delar
Delar

Du kommer behöva:

  • Raspberry Pi
  • Röda/gröna lysdioder (X2)
  • Övervaka
  • Tangentbord/mus med USB
  • WiFi Dongle
  • Extern USB -mikrofon
  • 330 ohm motstånd (X2)

Valfria delar

  • Extern Raspberry Pi -strömförsörjning
  • Hundhalsband

Steg 2: Förfarande

Procedur
Procedur

Det första steget för att starta detta projekt är att observera beteenden och mönster som är associerade med din hund. Du kan klicka HÄR för en enkel guide om vad du bör leta efter. I mitt fall ylar min hund när hon är upphetsad eller glad över att se någon och skäller periodiskt när hon är nervös eller förvärras. I de närmaste stegen kommer jag att förklara hur jag kan ändra mitt program för att anpassa din hunds beteenden.

Steg 3: Programmering

Programmering
Programmering

Nedan är Python -programmet som jag använde för min hund. I nästa steg kommer jag att förklara hur du ändrar programmet för din hunds beteende. Kör inte programmet ännu eftersom det inte fungerar förrän du gör nästa steg.

#!/usr/bin/pythonimport pyaudio import sys import tråd från tid importera sömn från array import array import RPi. GPIO som GPIO

bark = 0

yla = Falskt håll = 0 barkLängd = 5 fördröjning = 0 vänta = 2 flagga = 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) viloläge (10) GPIO.output (c, False) utskrift ("Red toggled")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (grönt, GPIO. OUT) GPIO.output (c, True) viloläge (10) GPIO.output (c, False) utskrift ("Green toggled")

def main ():

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

bit = 8192

FORMAT = pyaudio.paInt16 KANALER = 1 RATE = 44100 tröskel = 3000 max_value = 0 p = pyaudio. PyAudio () ström = p.open (format = FORMAT, kanaler = CHANNELS, 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: skriv ut "Detection initialized" while True: try: data = stream.read (chunk) utom IOError som ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) while max_value> threshold: delay = 0 håll = håll+1 försök: data = ström.läs (bit) utom IOError som ex: om ex [1]! = Pyaudio.paInputOverflowed: höj 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 och håll

om _name_ == '_main_':

main ()

Steg 4: Felsökning och ändring

Felsökning och ändring
Felsökning och ändring
Felsökning och ändring
Felsökning och ändring
Felsökning och ändring
Felsökning och ändring

Uppstart

Innan du kör programmet måste du skriva in följande i terminalen för att installera PyAudio:

sudo apt-get intall python-pyaudio

Efter detta kan du testköra programmet för att se till att det fungerar korrekt.

Felsökning

Du kan uppleva följande fel:

IOError: [Errno Input overflowed] -9981

För att åtgärda detta, helt enkelt öka antalet tilldelade variabeln bit tills felet inte längre visas.

Modifiering

Variabeln barkLength dikterar hur många gånger programmet slingrar innan ett brus inte längre ses som en bark, utan som ett yl. Om dina hundar ylar men bara gör det för ett kort utbrott bör du minska detta antal.

Variablerna rött och grönt hänvisar till de utgångsportar som kommer att användas för LED -indikatorerna. Dessa kan ändras för att passa dina behov.

Även om jag inte använder variabeln fördröjning aktivt i mitt program, kan det observeras för att indikera frekvensen av skällande eller ylande.

Variabelhållet hänvisar till hur många gånger programmet slingas där bullernivån är över tröskeln och används för att avgöra om ett yl äger rum. Denna variabel bör inte modifieras på något sätt eftersom yl detekteras genom manipulering av barkLength -variabeln.

Tröskelvariabeln kan sänkas om barken inte är särskilt hög eller höjs om det finns bakgrundsljud som kan misstolkas som buller från hunden.

Steg 5: Hårdvara

Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara
Hårdvara

Det är vid denna tidpunkt som du bör ha ett fullt fungerande program som visar på skärmen vad hårdvaran kommer att göra. Denna punkt i projektet är där du ska bestämma om detta kommer att vara en stationär mikrofon som är placerad på ett ställe (t.ex. en plats i huset där hunden normalt besöker eller kommer i kontakt med besökare) eller om projektet kommer att minimeras och fäst vid hundens krage för att ge omedelbar feedback till personen som interagerar med hunden.

Stationär

Det enklaste är att lämna allt på en brödbräda eftersom det inte kommer att finnas någon rörelse som kan lossna ledningar. Anslut katoderna på de röda lysdioderna till jordstiftet på Raspberry Pi och anoderna antingen genom ett 330 ohm motstånd eller rakt in i stift 7 på Raspberry Pi. Gör samma sak med de gröna lysdioderna men anslut anoderna till stift 5. Kör programmet och du bör ha ett färdigt projekt när du har ändrat koden efter dina behov.

Icke-stationär

Jag rekommenderar att du slutför den stationära versionen först bara för att se till att allt fungerar och sedan gå vidare därifrån genom att lödda ihop allt så att inga ledningar kommer att kopplas ur hundens rörelse.

Fäst lysdioderna på kragen så att de båda är i ett bekvämt läge och kan ses av någon när de närmar sig.

Anslut sedan din externa strömförsörjning, till exempel den som ses HÄR, till hallon pi och fäst den på halsbandet på ett sätt som är bekvämt för hunden.

När allt är på plats, fortsätt och kör programmet, fäst kragen på hunden, och du är klar!

Rekommenderad: