Inhaltsverzeichnis:
- Schritt 1: Teile
- Schritt 2: Verfahren
- Schritt 3: Programmierung
- Schritt 4: Fehlerbehebung und Änderung
- Schritt 5: Hardware
Video: Hundestimmungsdetektor (Raspberry Pi) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:20
Dieses Instructable wurde entwickelt, um die Geräusche eines Hundes zu nehmen und festzustellen, ob sie sich mit Anzeige-LEDs nähern sollten oder nicht. Die meisten Hundebesitzer kennen ihre Haustiere und können die Signale lesen, die sie abgeben, daher richtet sich dieses Instructable hauptsächlich an Fremde, die mit Ihrem Hund in Kontakt kommen können.
Schritt 1: Teile
Du wirst brauchen:
- Himbeer-Pi
- Rote/Grüne LEDs (X2)
- Monitor
- Tastatur/Maus mit USB
- WLAN-Dongle
- Externes USB-Mikrofon
- 330 Ohm Widerstand (X2)
Optionale Teile
- Externes Raspberry Pi-Netzteil
- Hundehalsband
Schritt 2: Verfahren
Der erste Schritt zu Beginn dieses Projekts besteht darin, die Verhaltensweisen und Muster Ihres Hundes zu beobachten. Sie können HIER klicken, um eine einfache Anleitung zu erhalten, wonach Sie suchen sollten. In meinem Fall heult meine Hündin, wenn sie aufgeregt oder glücklich ist, jemanden zu sehen, und bellt zeitweise, wenn sie nervös oder verärgert ist. In den nächsten Schritten erkläre ich Ihnen, wie Sie mein Programm an das Verhalten Ihres Hundes anpassen können.
Schritt 3: Programmierung
Unten ist das Python-Programm, das ich für meinen Hund verwendet habe. Im nächsten Schritt erkläre ich Ihnen, wie Sie das Programm an das Verhalten Ihres Hundes anpassen können. Führen Sie das Programm noch nicht aus, da es erst im nächsten Schritt funktioniert.
#!/usr/bin/pythonimport pyaudio import sys import thread from time import sleep from array import array import RPi. GPIO als GPIO
Rinde=0
howl=False hold=0 barkLength=5 delay=0 wait = 2 flag = 0 red = 7 green=5 exitFlag = False
def toggleLightRed(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(rot, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Rot toggled")
def toggleHellgrün(c):
GPIO.setmode(GPIO. BOARD) GPIO.setup(grün, GPIO. OUT) GPIO.output(c, True) sleep(10) GPIO.output(c, False) print("Grün umgeschaltet")
def main():
global bellen global heulen global halten global barkLänge globale Verzögerung globale Flagge global rot global grün
Stück = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 Threshold = 3000 max_value = 0 p = pyaudio. PyAudio() stream = p.open(format=FORMAT, channel=CHANNELS, rate=RATE, input=True, output=True, frames_per_buffer=chunk) GPIO.setmode(GPIO. BOARD) GPIO.setup(rot, GPIO. OUT) GPIO.setup(grün, GPIO. OUT) try: print "Erkennung initialisiert" während True: try: data = stream.read(chunk) außer IOError as 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) außer 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 and hold
if _name_ == '_main_':
hauptsächlich()
Schritt 4: Fehlerbehebung und Änderung
Aufstellen
Bevor Sie das Programm ausführen, müssen Sie Folgendes in das Terminal eingeben, um PyAudio zu installieren:
sudo apt-get intall python-pyaudio
Danach können Sie das Programm testen, um sicherzustellen, dass es richtig funktioniert.
Fehlerbehebung
Es kann zu folgendem Fehler kommen:
IOError: [Errno Input overflowed] -9981
Um dies zu beheben, erhöhen Sie einfach die dem Variablen-Chunk zugewiesene Nummer, bis der Fehler nicht mehr auftritt.
Ändern
Die Variable barkLength bestimmt die Anzahl der Programmschleifen, bevor ein Geräusch nicht mehr als Bellen, sondern als Heulen wahrgenommen wird. Wenn Ihr Hund heult, dies aber nur für einen kurzen Stoß tut, sollten Sie diese Zahl verringern.
Die Variablen Rot und Grün beziehen sich auf die Ausgangsports, die für die LED-Anzeigen verwendet werden. Diese können an Ihre Bedürfnisse angepasst werden.
Obwohl ich die variable Verzögerung in meinem Programm nicht aktiv verwende, kann sie beobachtet werden, um die Häufigkeit des Bellens oder Heulens anzuzeigen.
Die Variable Hold bezieht sich darauf, wie oft das Programm wiederholt, wenn der Rauschpegel über dem Schwellenwert liegt, und wird verwendet, um zu bestimmen, ob ein Heulen stattfindet. Diese Variable sollte in keiner Weise verändert werden, da durch die Manipulation der Variablen barkLength Heulen erkannt wird.
Die Schwellenwertvariable kann gesenkt werden, wenn das Bellen nicht sehr laut ist, oder erhöht werden, wenn Hintergrundgeräusche vorhanden sind, die als Geräusche vom Hund fehlinterpretiert werden könnten.
Schritt 5: Hardware
An diesem Punkt sollten Sie über ein voll funktionsfähiges Programm verfügen, das auf dem Bildschirm anzeigt, was die Hardware tun wird. An dieser Stelle im Projekt sollten Sie entscheiden, ob es sich um ein stationäres Mikrofon handelt, das an einem Ort aufgestellt wird (z. B. an einem Ort im Haus, an dem sich der Hund normalerweise aufhält oder mit Besuchern in Kontakt kommt) oder ob das Projekt minimiert wird und am Halsband des Hundes befestigt, um der Person, die mit dem Hund interagiert, sofortiges Feedback zu geben.
Stationär
Am einfachsten ist es, alles auf einem Steckbrett zu belassen, da es keine Bewegung gibt, die Drähte lösen könnte. Verbinden Sie die Kathoden der roten LEDs mit dem Massestift des Raspberry Pi und den Anoden entweder über einen 330-Ohm-Widerstand oder direkt in Pin 7 des Raspberry Pi. Machen Sie dasselbe mit den grünen LEDs, aber verbinden Sie die Anoden mit Pin 5. Führen Sie das Programm aus und Sie sollten ein abgeschlossenes Projekt haben, sobald Sie den Code an Ihre Bedürfnisse angepasst haben.
Nicht stationär
Ich würde empfehlen, zuerst die stationäre Version abzuschließen, nur um sicherzustellen, dass alles funktioniert, und dann weiterzumachen, indem Sie alles zusammenlöten, damit keine Drähte von der Bewegung des Hundes getrennt werden.
Befestigen Sie die LEDs so am Halsband, dass sie beide in einer bequemen Position sind und von jemandem gesehen werden können, wenn sie sich nähern.
Als nächstes schließen Sie Ihr externes Netzteil wie das HIER gesehene an den Himbeer-Pi an und befestigen es auf eine für den Hund angenehme Weise am Halsband.
Sobald alles gesichert ist, führen Sie das Programm aus, befestigen Sie das Halsband am Hund und Sie sind fertig!
Empfohlen:
So installieren Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone.: 6 Schritte
So installieren Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone.: Hallo zusammen! Heute zeige ich Ihnen in diesem Tutorial, wie Sie Raspbian OS in Raspberry Pi mit NOOBS-Software und Smartphone einfach installieren
Windows 10 auf einem Raspberry Pi zum Laufen bringen – wikiHow
So funktioniert Windows 10 auf einem Raspberry Pi
So richten Sie einen Raspberry Pi ein und verwenden ihn – wikiHow
So richten Sie einen Raspberry Pi ein und verwenden ihn: Für die Leser der Zukunft sind wir im Jahr 2020. Das Jahr, in dem Sie, wenn Sie das Glück haben, gesund zu sein und nicht mit Covid-19 infiziert sind, plötzlich , hat viel mehr Freizeit, als du dir jemals vorgestellt hast. Wie kann ich mich also nicht zu dumm beschäftigen? Oh ja
Einen Raspberry Pi Laptop herstellen – wikiHow
Wie man einen Raspberry Pi Laptop macht: In diesem Instructable zeige ich Ihnen, wie man einen Raspberry Pi Laptop mit einem Touchscreen-Display macht. Ich werde die gesamte Programmierung und Schritt-für-Schritt-Anleitung haben, um diesen einfach zu bedienenden Laptop zu erstellen. Dieses Tutorial zeigt Ihnen, wie Sie die Soft
Raspbian in Raspberry Pi 3 B ohne HDMI installieren - Erste Schritte mit Raspberry Pi 3B - Einrichten Ihres Raspberry Pi 3: 6 Schritte
Raspbian in Raspberry Pi 3 B ohne HDMI installieren | Erste Schritte mit Raspberry Pi 3B | Einrichten Ihres Raspberry Pi 3: Wie einige von Ihnen wissen, sind Raspberry Pi-Computer ziemlich großartig und Sie können den gesamten Computer nur auf einer einzigen winzigen Platine bekommen. Das Raspberry Pi 3 Model B verfügt über einen Quad-Core 64-Bit ARM Cortex A53 mit 1,2 GHz getaktet. Damit ist der Pi 3 ungefähr 50