Obsah:
- Krok 1: Díly
- Krok 2: Postup
- Krok 3: Programování
- Krok 4: Odstraňování problémů a úpravy
- Krok 5: Hardware
Video: Detektor psí nálady (Raspberry Pi): 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Tento instruktáž je navržen tak, aby zaznamenával zvuky, které pes vydává, a určoval, zda se k nim má přiblížit, nebo ne, pomocí LED indikátorů. Většina majitelů psů zná své mazlíčky a umí číst signály, které vydávají, takže tento Instructable je většinou zaměřen na cizince, kteří mohou přijít do kontaktu s vaším psem.
Krok 1: Díly
Budete potřebovat:
- Raspberry Pi
- Červená/zelená LED (X2)
- Monitor
- Klávesnice/myš s USB
- WiFi dongle
- Externí USB mikrofon
- Rezistor 330 ohmů (X2)
Volitelné součásti
- Externí napájecí zdroj Raspberry Pi
- Obojek
Krok 2: Postup
Prvním krokem k zahájení tohoto projektu je pozorování chování a vzorců spojených s vaším psem. Kliknutím ZDE získáte jednoduchý návod, co byste měli hledat. V mém případě můj pes vyje, kdykoli je vzrušený nebo šťastný, že někoho vidí, a přerušovaně štěká, když je nervózní nebo zhoršuje. V následujících několika krocích vysvětlím, jak upravit svůj program tak, aby vyhovoval chování vašeho psa.
Krok 3: Programování
Níže je program Python, který jsem použil pro svého psa. V dalším kroku vysvětlím, jak upravit program pro chování vašeho psa. Program zatím nespouštějte, protože nebude fungovat, dokud neprovedete další krok.
#!/usr/bin/pythonimport pyaudio import sys importovat vlákno z času importu spánku z pole importu importovat pole RPi. GPIO jako GPIO
kůra = 0
vytí = falešné podržení = 0 barkLength = 5 zpoždění = 0 čekání = 2 vlajka = 0 červená = 7 zelená = 5 exitFlag = False
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (červená, GPIO. OUT) GPIO.output (c, True) spánek (10) GPIO.output (c, False) tisk ("Červená přepnuta")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (zelená, GPIO. OUT) GPIO.output (c, True) spánek (10) GPIO.output (c, False) tisk ("Zelená přepnuta")
def main ():
global bark global howl global hold global barkLength global delay global flag global red global green
kus = 8192
FORMÁT = pyaudio.paInt16 KANÁLŮ = 1 RATE = 44100 práh = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (formát = FORMAT, kanály = CHANNELS, rate = RATE, vstup = True, výstup = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (červená, GPIO. OUT) GPIO.setup (zelená, GPIO. OUT) zkuste: vytiskněte „Detekce inicializována“, zatímco True: zkuste: data = stream.read (kus) kromě IOError jako ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = pole ('h', data) max_value = max (as_ints) while max_value> threshold: delay = 0 hold = hold+1 try: data = stream.read (chunk) except 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_':
hlavní()
Krok 4: Odstraňování problémů a úpravy
Založit
Než spustíte program, budete muset do terminálu pro instalaci PyAudio zadat následující:
sudo apt-get intall python-pyaudio
Poté můžete testovací program spustit a ujistit se, že funguje správně.
Odstraňování problémů
Může dojít k následující chybě:
IOError: [Errno Input overflowed] -9981
Chcete -li to opravit, jednoduše zvyšte počet přiřazený k variabilnímu bloku, dokud se chyba již nezobrazí.
Úpravy
Proměnná barkLength diktuje, kolikrát se program zacyklí, než na hluk již nebude pohlíženo jako na štěkot, ale jako vytí. Pokud vaši psi vyjí, ale dělají to jen na krátkou dávku, měli byste toto číslo snížit.
Proměnné červená a zelená odkazují na výstupní porty, které budou použity pro indikátory LED. Ty lze změnit tak, aby vyhovovaly vašim potřebám.
Přestože ve svém programu aktivně nepoužívám proměnné zpoždění, lze pozorovat, že udává frekvenci štěkání nebo vytí.
Proměnné pozastavení udává, kolikrát program zacyklí, když je hladina hluku nad prahovou hodnotou, a používá se k určení, zda probíhá vytí. Tato proměnná by neměla být žádným způsobem upravována, protože vytí je detekováno manipulací s proměnnou barkLength.
Proměnnou prahové hodnoty lze snížit, pokud není kůra příliš hlasitá, nebo se zvýšit, pokud je v pozadí hluk, který by mohl být nesprávně interpretován jako hluk vycházející ze psa.
Krok 5: Hardware
V tomto okamžiku byste měli mít plně funkční program, který na obrazovce zobrazí, co bude hardware dělat. V tomto bodě projektu byste se měli rozhodnout, zda se bude jednat o stacionární mikrofon, který je nastaven na jednom místě (např. V domě, kde pes běžně navštěvuje nebo přichází do styku s návštěvníky), nebo zda bude projekt minimalizován a připevněné k obojku psa, aby poskytovaly okamžitou zpětnou vazbu osobě, která se psem interaguje.
Stacionární
Nejjednodušší je nechat vše na prkénku, protože nedojde k žádnému pohybu, který by mohl odpojit dráty. Připojte katody červených LED k uzemňovacímu kolíku na Raspberry Pi a anodám buď přes odpor 330 ohmů, nebo přímo do pinu 7 Raspberry Pi. Totéž proveďte se zelenými LED, ale připojte Anody ke kolíku 5. Spusťte program a jakmile upravíte kód podle svých potřeb, měli byste mít dokončený projekt.
Nestacionární
Doporučil bych nejprve dokončit stacionární verzi, aby se zajistilo, že vše funguje, a poté se odtud přesunout pájením dohromady, aby se od pohybu psa neodpojily žádné dráty.
Připojte LED diody k obojku tak, aby byly obě v pohodlné poloze a mohly být někým viděny, když se blíží.
Dále připojte svůj externí napájecí zdroj, jako je ten, který vidíte ZDE, k malinovému pi a připevněte jej k obojku způsobem, který je pro psa pohodlný.
Jakmile je vše zajištěno na místě, pokračujte a spusťte program, připevněte obojek ke psovi a máte hotovo!
Doporučuje:
Super snadné světlo křišťálové nálady: 6 kroků
Super snadné světlo křišťálové nálady: Ahoj tvůrci! Jedná se o super duperový snadný arduino projekt, který bude fungovat jako učební nástroj i jako zlé úžasné náladové světlo. Je to jen pár kousků, takže to můžete šlehat dohromady během doby, která je potřeba k vytištění základny. Je to skvělá lekce
Nálada nálady IOT: 8 kroků (s obrázky)
IOT Mood Lamp: Nálada IoT Mood vyrobená pomocí Node MCU (ESP8266), RGB LED diod a sklenice. Barvy lampy lze měnit pomocí aplikace Blynk. Vybral jsem pamětní sochu Tonyho Starkse, kterou jsem nechal vytisknout 3D a umístit do této lampy. Můžete si vzít jakoukoli hotovou sochu nebo
Lampa nálady Arduino: 6 kroků
Lampa nálady Arduino: Lampa nálady, která vám pomůže s programem Arduino. Jedná se o základní strukturu, základní funkce s Arduino UNO, potenciometry, NeoPixeles, switch de encendido y apagado, botón para cambiar entre modos
Psí klobouk: 11 kroků (s obrázky)
Doggy Hat: Plyšový pes se stal automatizovaným kloboukem. Servomotor s lepenkovým ramenem páky náhodně pohybuje hlavou, ovládaný bateriovým Arduino Uno. Při stavbě tohoto projektu nebyla žádná vycpaná zvířata zraněna
Psí invalidní vozík: 4 kroky
Psí invalidní vozík: Dobrý den, dnes vám ukážu, jak vyrobit psí kolečkové křeslo pro vašeho psa. Tenhle nápad jsem dostal hledáním na internetu, abych zjistil, jak si tam lidé starší psy užijí víc. Opravdu jsem nepotřeboval, protože mému psovi jsou 2 roky, ale mému tetičkovému psovi, kterému je 8