Indholdsfortegnelse:
- Trin 1: Dele
- Trin 2: Fremgangsmåde
- Trin 3: Programmering
- Trin 4: Fejlfinding og ændring
- Trin 5: Hardware
Video: Dog Mood Detector (Raspberry Pi): 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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
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
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
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
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
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:
Enkel Robo-Dog (lavet af klavernøgler, en legetøjspistol og en mus): 20 trin (med billeder)
Enkel Robo-Dog (lavet af klavernøgler, en legetøjspistol og en mus): Åh, Aserbajdsjan! Ildens land, stor gæstfrihed, venlige mennesker og smukke kvinder (… undskyld, kvinde! Selvfølgelig har jeg kun øjne for dig, min gözəl balaca ana ördəkburun kone!). Men ærligt talt er dette et meget svært sted for en maker, især når du
K-9 Robot Dog: 11 trin
K-9 Robot Dog: Lige siden jeg var en ung dreng i 1984, og jeg så Doctor Who på den lokale PBS-station i Tulsa Oklahoma, og hans trofaste robothund K-9. Jeg har ønsket mig et, hurtigt frem i 34 år, teknologien har endelig udviklet sig til et punkt, hvor dette bliver muligt
Micro: Bit Dog Door Opener: 8 trin (med billeder)
Micro: Bit Dog Door Opener: Fanger dine kæledyr sig selv i værelser? Ønsker du, at du kunne gøre dit hjem mere tilgængeligt for dine lodne* venner ?? Nu kan du, hurra !! Dette projekt bruger en micro: bit mikrokontroller til at trække en dør op, når der trykkes på en (kæledyrsvenlig) kontakt. Vi vil
Dog Dog Trainer: 5 trin
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åltiderne foderstoffer er afgørende for hunde, og størrelsen på kassen begrænsede også antallet af foderstoffer, hunden kunne spise om dagen, “Vet
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: 3 trin
Raspberry Pi Automatic Dog Feeder & Live Video Streamer: Dette er min Raspberry PI -drevne automatiske hundefoder. Jeg plejede at arbejde fra morgen 11-11 til 21:00. Min hund bliver skør, hvis jeg ikke fodrer ham til tiden. Surfede på google for at købe automatiske fødevarefødere, de er ikke tilgængelige i Indien og dyre import af