Innholdsfortegnelse:
- Trinn 1: Deler
- Trinn 2: Fremgangsmåte
- Trinn 3: Programmering
- Trinn 4: Feilsøking og endring
- Trinn 5: Maskinvare
Video: Dog Mood Detector (Raspberry Pi): 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:24
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
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
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
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
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
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:
Enkel Robo-Dog (laget av pianotaster, en lekepistol og en mus): 20 trinn (med bilder)
Enkel Robo-Dog (laget av pianotaster, en leketøypistol og en mus): Å, Aserbajdsjan! Ildens land, stor gjestfrihet, vennlige mennesker og vakre kvinner (… beklager, kvinne! Selvfølgelig har jeg bare øyne for deg, min kone gözəl balaca ana ördəkburun!). Men ærlig talt er dette et veldig vanskelig sted for en produsent, spesielt når du
Dog Dog Trainer: 5 trinn
Dog Dog Trainer: Ifølge AKC, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) måltidsstørrelsen for måltidet fôr er avgjørende for hunder, og størrelsen på esken begrenset også antall fôr hunden kunne spise om dagen, "Vet
Galaxy Dog Jacket: 8 trinn (med bilder)
Galaxy Dog Jacket: En galaksetema -jakke laget for en jordbunden hund
Smart Dog House: 6 trinn
Smart Dog House: De fleste dyreeiere er nysgjerrige på hva deres elskede hund har gjort i deres fravær. I denne instruksen vil vi lage en Raspberry Pi -basert hundmonitor. Etter en arbeidsdag kan du sjekke appen og se tiden han brukte i "benken", hvor mye n
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: 3 trinn
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Dette er min Raspberry PI -drevne automatiske hundefôr. Jeg pleide å jobbe fra morgenen 11 til 21. Hunden min blir gal hvis jeg ikke mate ham i tide. Surfet google for å kjøpe automatiske matematere, de er ikke tilgjengelige i India og dyre import