INHOUDSOPGAWE:

Hondestemmingsdetektor (Framboos Pi): 5 stappe
Hondestemmingsdetektor (Framboos Pi): 5 stappe

Video: Hondestemmingsdetektor (Framboos Pi): 5 stappe

Video: Hondestemmingsdetektor (Framboos Pi): 5 stappe
Video: Консультант от бога Tg: cadrolikk 2024, November
Anonim
Hondestemmingsdetektor (Framboos Pi)
Hondestemmingsdetektor (Framboos Pi)

Hierdie instruksies is ontwerp om die geluide wat 'n hond maak, op te neem en te bepaal of dit met indikator -LED's genader moet word. Die meeste honde -eienaars ken hul troeteldiere en kan die seine wat hulle afgee, lees, sodat hierdie instruksie meestal gerig is op vreemdelinge wat met u hond in aanraking kan kom.

Stap 1: Onderdele

Dele
Dele
Dele
Dele
Dele
Dele

Jy sal nodig hê:

  • Framboos Pi
  • Rooi/groen LED's (X2)
  • Monitor
  • Toetsenbord/muis met USB
  • WiFi -Dongle
  • Eksterne USB -mikrofoon
  • 330 ohm Weerstand (X2)

Opsionele onderdele

  • Eksterne Raspberry Pi -kragtoevoer
  • Honde halsband

Stap 2: Prosedure

Prosedure
Prosedure

Die eerste stap om hierdie projek te begin, is om die gedrag en patrone wat met u hond verband hou, waar te neem. U kan HIER klik vir 'n eenvoudige gids oor wat u moet soek. In my geval huil my hond wanneer sy opgewonde of bly is om iemand te sien en blaf af en toe as hy senuweeagtig of vererger word. In die volgende paar stappe sal ek verduidelik hoe ek my program kan aanpas om die gedrag van u hond aan te pas.

Stap 3: Programmering

Programmering
Programmering

Hieronder is die Python -program wat ek vir my hond gebruik het. In die volgende stap sal ek verduidelik hoe u die program vir u hond se gedrag kan verander. Moenie die program hardloop nie, want dit werk eers as u die volgende stap doen.

#!/usr/bin/pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO as GPIO

blaf = 0

huil = Vals hou = 0 blaf Lengte = 5 vertraging = 0 wag = 2 vlag = 0 rooi = 7 groen = 5 uitgangFlag = Vals

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (rooi, GPIO. OUT) GPIO.output (c, True) slaap (10) GPIO.output (c, Onwaar) druk ("Red toggled")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (groen, GPIO. OUT) GPIO.output (c, True) slaap (10) GPIO.output (c, Onwaar) druk ("Green toggled")

def main ():

globale blaf globale gehuil wêreldwye hou globale blafLengte globale vertraging globale vlag globale rooi globale groen

stuk = 8192

FORMAT = pyaudio.paInt16 KANALE = 1 RATE = 44100 drempel = 3000 max_value = 0 p = pyaudio. PyAudio () stroom = p.open (formaat = FORMAT, kanale = KANALE, koers = RATE, input = True, output = True, frames_per_buffer = stuk) GPIO.setmode (GPIO. BOARD) GPIO.setup (rooi, GPIO. OUT) GPIO.setup (groen, GPIO. OUT) try: druk "Detection initialized" while True: try: data = stream.read (stuk) behalwe IOError as ex: as ex [1]! = pyaudio.paInputOverflowed: verhoog data = '\ x00' * stuk as_ints = skikking ('h', data) max_value = max (as_ints) terwyl max_value> drempel: delay = 0 hou = hou+1 probeer: data = stroom.lees (stuk) behalwe IOError as ex: as ex [1]! = Pyaudio.paInputOverflowed: verhoog data = '\ x00' * stuk as_ints = skikking ('h', data) max_value = max (as_ints) as hou> = barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (groen) GPIO.cleanup () elif hou> 0 en hou

as _naam_ == '_hoof_':

hoof ()

Stap 4: Probleemoplossing en wysiging

Probleemoplossing en wysiging
Probleemoplossing en wysiging
Probleemoplossing en wysiging
Probleemoplossing en wysiging
Probleemoplossing en wysiging
Probleemoplossing en wysiging

Stel op

Voordat u die program begin, moet u die volgende in die Terminal invoer om PyAudio te installeer:

sudo apt-get intall python-pyaudio

Daarna kan u die program toets-uitvoer om seker te maak dat dit behoorlik funksioneer.

Probleemoplossing

U kan die volgende fout ondervind:

IOError: [Errno -invoer oorloop] -9981

Om dit reg te stel, verhoog eenvoudig die nommer wat aan die veranderlike deel toegewys is totdat die fout nie meer verskyn nie.

Verander

Die veranderlike barkLength bepaal die aantal kere wat die program loop voordat 'n geraas nie meer as 'n bas gesien word nie, maar as 'n gehuil. As u honde huil, maar dit slegs vir 'n kort sarsie doen, moet u hierdie getal verminder.

Die veranderlike rooi en groen verwys na die uitsetpoort wat vir die LED -aanwysers gebruik sal word. Dit kan verander word om aan u behoeftes te voldoen.

Alhoewel ek nie die veranderlike vertraging aktief in my program gebruik nie, kan dit waargeneem word om die frekwensie van blaf of huil aan te dui.

Die veranderlike hou verwys na hoeveel keer die program loop waar die geraasvlak bo die drempel is en word gebruik om te bepaal of daar 'n huil plaasvind. Hierdie veranderlike moet op geen manier gewysig word nie, aangesien huil deur die manipulasie van die barkLength -veranderlike opgespoor word.

Die drempelveranderlike kan verlaag word as die bas nie baie hard is nie of verhoog word as daar agtergrondgeraas is wat verkeerd geïnterpreteer kan word as geraas van die hond.

Stap 5: Hardeware

Hardeware
Hardeware
Hardeware
Hardeware
Hardeware
Hardeware

Op hierdie punt moet u 'n volledig funksionerende program hê wat op die skerm wys wat die hardeware gaan doen. Hierdie punt in die projek is waar u moet besluit of dit 'n stilstaande mikrofoon is wat op een plek is (byvoorbeeld 'n plek in die huis waar die hond normaalweg gereeld besoek of met besoekers in aanraking kom) of dat die projek tot 'n minimum beperk word. en aan die hond se kraag geheg om onmiddellik terugvoer te gee aan die persoon wat met die hond in wisselwerking is.

Stationêr

Die maklikste ding is om alles op 'n broodbord te laat, want daar is geen beweging wat die drade kan losmaak nie. Koppel die katodes van die Rooi LED's aan die Grondpen op die Raspberry Pi en die Anodes, óf deur 'n weerstand van 330 ohm óf reguit in pen 7 van die Raspberry Pi. Doen dieselfde met die groen LED's, maar koppel die anodes aan pen 5. Begin die program en u moet 'n voltooide projek hê sodra u die kode volgens u behoeftes verander het.

Nie-stilstaande

Ek beveel aan dat u eers die stilstaande weergawe voltooi, net om te verseker dat alles werk, en dan voortgaan deur alles saam te soldeer sodat geen drade van die hond se beweging losgemaak kan word nie.

Bevestig die LED's aan die kraag sodat hulle beide in 'n gemaklike posisie is en deur iemand gesien kan word terwyl hulle nader.

Koppel dan u eksterne kragtoevoer, soos die wat HIER gesien is, aan die framboospi en bevestig dit aan die kraag op 'n gemaklike manier vir die hond.

Sodra alles op sy plek vasgemaak is, voer die program uit, maak die kraag aan die hond vas, en u is klaar!

Aanbeveel: