Innehållsförteckning:
- Steg 1: Delar
- Steg 2: Förfarande
- Steg 3: Programmering
- Steg 4: Felsökning och ändring
- Steg 5: Hårdvara
Video: Dog Mood Detector (Raspberry Pi): 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:45
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
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
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
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
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
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:
Enkel Robo-Dog (gjord av pianotangenter, en leksakspistol och en mus): 20 steg (med bilder)
Enkel Robo-Dog (gjord av pianotangenter, en leksakspistol och en mus): Åh, Azerbajdzjan! Eldens land, stor gästfrihet, vänliga människor och vackra kvinnor (… förlåt, kvinna! Självklart har jag bara ögon för dig, min gözəl balaca ana ördəkburun fru!). Men ärligt talat är det här en mycket svår plats för en tillverkare, särskilt när du
Galaxy Dog Jacket: 8 steg (med bilder)
Galaxy Dog Jacket: En galax tema jacka gjord för en jordbunden hund
Smart Dog House: 6 steg
Smart Dog House: De flesta husdjursägare är nyfikna på vad deras älskade hund har gjort i deras frånvaro. I denna instruktör kommer vi att skapa en Raspberry Pi -baserad hundmonitor. Efter en arbetsdag kan du kontrollera appen och se tiden han tillbringade i sin "bänk", hur mycket n
Animatronic Falkor Dog: 5 steg
Animatronic Falkor Dog: Sonjah, ett namn på vår klient, postade Cooper på sin Facebook och nämnde att”Folk höll nästan på att bryta nacken för att titta på Cooper när jag försökte ta reda på hur jag skulle få tillbaka honom till garaget. Någon som gick nästan blev påkörd av en bil
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: 3 steg
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Detta är min Raspberry PI -automatiska hundmatare. Jag brukade arbeta från morgon 11 till 21. Min hund blir galen om jag inte matar honom i tid. Surfade på google för att köpa automatmatare, de är inte tillgängliga i Indien och dyra import