Inhoudsopgave:
- Stap 1: Onderdelen
- Stap 2: Procedure
- Stap 3: Programmeren
- Stap 4: Problemen oplossen en wijzigen
- Stap 5: Hardware
Video: Hondenstemmingsdetector (Raspberry Pi) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Deze Instructable is ontworpen om de geluiden die een hond maakt te nemen en te bepalen of ze moeten worden benaderd of niet met indicatie-LED's. De meeste hondenbezitters kennen hun huisdieren en kunnen de signalen lezen die ze afgeven, dus deze Instructable is meestal gericht op vreemden die in contact kunnen komen met uw hond.
Stap 1: Onderdelen
Je zal nodig hebben:
- Raspberry Pi
- Rode/Groene LED's (X2)
- Toezicht houden op
- Toetsenbord/muis met USB
- WiFi-dongle
- Externe USB-microfoon
- 330 ohm Weerstand (X2)
Optionele onderdelen
- Externe Raspberry Pi-voeding
- Hondenhalsband
Stap 2: Procedure
De eerste stap om met dit project te beginnen, is het observeren van het gedrag en de patronen die bij uw hond horen. U kunt HIER klikken voor een eenvoudige gids over waar u naar moet zoeken. In mijn geval huilt mijn hond wanneer ze opgewonden of blij is om iemand te zien en blaft met tussenpozen als ze nerveus of geïrriteerd is. In de volgende paar stappen zal ik uitleggen hoe ik mijn programma kan aanpassen aan het gedrag van uw hond.
Stap 3: Programmeren
Hieronder staat het Python-programma dat ik voor mijn hond heb gebruikt. In de volgende stap zal ik uitleggen hoe u het programma kunt aanpassen aan het gedrag van uw hond. Voer het programma nog niet uit, want het zal pas werken als u de volgende stap uitvoert.
#!/usr/bin/pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO as GPIO
schors=0
howl=False hold=0 barkLength=5 delay=0 wait = 2 flag = 0 rood = 7 green=5 exitFlag = False
def toggleLightRed(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(rood, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Rood geschakeld")
def toggleLightGreen(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(groen, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Groen geschakeld")
def hoofd():
globaal blaffen globaal huilen globaal vasthouden globaal blaffenLengte globaal vertraging globaal vlag globaal rood globaal groen
stuk = 8192
FORMAT = pyaudio.paInt16 KANALEN = 1 RATE = 44100 drempel = 3000 max_value = 0 p = pyaudio. PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, output=True, frames_per_buffer=chunk) GPIO.setmode(GPIO. BOARD) GPIO.setup(rood, GPIO. OUT) GPIO.setup(groen, GPIO. OUT) probeer: print "Detectie geïnitialiseerd" terwijl True: probeer: data = stream.read(chunk) behalve IOError als 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 hold=hold+1 try: data = stream.read(chunk) behalve IOError as ex: if 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(green) GPIO.cleanup() elif hold>0 en hold
if _name_ == '_main_':
hoofd()
Stap 4: Problemen oplossen en wijzigen
Opstelling
Voordat u het programma uitvoert, moet u het volgende in de Terminal typen om PyAudio te installeren:
sudo apt-get intall python-pyaudio
Hierna kunt u het programma testen om te controleren of het goed werkt.
Probleemoplossen
U kunt de volgende fout ervaren:
IOError: [Errno Input overflowed] -9981
Om dit op te lossen, verhoogt u eenvoudig het nummer dat aan de variabele chunk is toegewezen totdat de fout niet meer verschijnt.
Aanpassen
De variabele barkLength bepaalt het aantal keren dat het programma een lus maakt voordat een geluid niet langer wordt gezien als een blaf, maar als een gehuil. Als uw honden huilen, maar dit slechts voor een korte uitbarsting doen, moet u dit aantal verlagen.
De variabelen rood en groen verwijzen naar de uitgangspoorten die zullen worden gebruikt voor de LED-indicatoren. Deze kunnen worden gewijzigd om aan uw behoeften te voldoen.
Hoewel ik de variabele vertraging niet actief in mijn programma gebruik, kan het worden waargenomen om de frequentie van blaffen of huilen aan te geven.
De variabele hold verwijst naar hoe vaak het programma een lus maakt waarbij het geluidsniveau boven de drempel ligt en wordt gebruikt om te bepalen of er een gehuil plaatsvindt. Deze variabele mag op geen enkele manier worden gewijzigd, omdat gehuil wordt gedetecteerd door de manipulatie van de variabele barkLength.
De variabele drempelwaarde kan worden verlaagd als het blaffen niet erg luid is of verhoogd als er achtergrondgeluid is dat verkeerd kan worden geïnterpreteerd als geluid van de hond.
Stap 5: Hardware
Op dit punt zou u een volledig functionerend programma moeten hebben dat op het scherm laat zien wat de hardware zal doen. Dit punt in het project is waar u moet beslissen of dit een stationaire microfoon is die op één plaats wordt geplaatst (bijvoorbeeld een plaats in het huis waar de hond normaal vaak komt of in contact komt met bezoekers) of dat het project tot een minimum wordt beperkt en bevestigd aan de halsband van de hond om onmiddellijke feedback te geven aan de persoon die met de hond omgaat.
Stationair
Het gemakkelijkste om te doen is om alles op een breadboard te laten staan, omdat er geen beweging zal zijn die draden zou kunnen losmaken. Verbind de kathodes van de rode LED's met de grondpin op de Raspberry Pi en de anodes, hetzij via een weerstand van 330 ohm of rechtstreeks in pin 7 van de Raspberry Pi. Doe hetzelfde met de groene LED's, maar sluit de anodes aan op pin 5. Voer het programma uit en u zou een voltooid project moeten hebben zodra u de code naar uw behoeften hebt aangepast.
Niet-stationair
Ik zou aanraden om eerst de stationaire versie te voltooien om er zeker van te zijn dat alles werkt en dan verder te gaan door alles aan elkaar te solderen, zodat er geen draden losraken van de beweging van de hond.
Bevestig de LED's aan de halsband zodat ze allebei in een comfortabele positie zitten en door iemand kunnen worden gezien als ze dichterbij komen.
Sluit vervolgens uw externe voeding, zoals die HIER te zien is, aan op de raspberry pi en bevestig deze aan de halsband op een manier die comfortabel is voor de hond.
Zodra alles op zijn plaats zit, ga je gang en voer je het programma uit, bevestig de halsband aan de hond en je bent klaar!
Aanbevolen:
DIY Raspberry Pi-downloadbox: 4 stappen
DIY Raspberry Pi Downloadbox: Ben je vaak bezig met het downloaden van grote bestanden zoals films, torrents, cursussen, tv-series, etc dan ben je hier aan het juiste adres. In deze Instructable zouden we onze Raspberry Pi zero in een downloadmachine veranderen. Die elke
Raspberry Pi-scorebord: 4 stappen
Raspberry Pi-scorebord: Vandaag zal ik uitleggen hoe ik dit scorebord heb gemaakt dat wordt bestuurd door een Raspberry Pi en wordt aangedreven door een 5V-voeding. Het gebruikt een combinatie van ws2811- en ws2812b-leds voor de verlichting en de structuur is gemaakt van multiplex en rood eiken. Voor een besch
Smart Home van Raspberry Pi: 5 stappen (met afbeeldingen)
Smart Home van Raspberry Pi: er zijn al verschillende producten die uw flat slimmer maken, maar de meeste zijn eigen oplossingen. Maar waarom heb je een internetverbinding nodig om een lamp te schakelen met je smartphone? Dat was voor mij een reden om mijn eigen Smar te bouwen
LED-knipper met Raspberry Pi - Hoe GPIO-pinnen op Raspberry Pi te gebruiken: 4 stappen
LED-knipper met Raspberry Pi | Hoe GPIO-pinnen op Raspberry Pi te gebruiken: Hallo allemaal, in deze instructables zullen we leren hoe we GPIO's van Raspberry Pi kunnen gebruiken. Als je ooit Arduino hebt gebruikt, weet je waarschijnlijk dat we een LED-schakelaar enz. op de pinnen kunnen aansluiten en het zo kunnen laten werken. laat de LED knipperen of krijg input van de schakelaar zodat
Raspbian installeren in Raspberry Pi 3 B zonder HDMI - Aan de slag met Raspberry Pi 3B - Uw Raspberry Pi instellen 3: 6 stappen
Raspbian installeren in Raspberry Pi 3 B zonder HDMI | Aan de slag met Raspberry Pi 3B | Je Raspberry Pi 3 instellen: Zoals sommigen van jullie weten, zijn Raspberry Pi-computers best geweldig en kun je de hele computer op een klein bordje krijgen. De Raspberry Pi 3 Model B heeft een quad-core 64-bit ARM Cortex A53 geklokt op 1,2 GHz. Dit zet de Pi 3 ongeveer 50