Obsah:

Detektor psej nálady (Raspberry Pi): 5 krokov
Detektor psej nálady (Raspberry Pi): 5 krokov

Video: Detektor psej nálady (Raspberry Pi): 5 krokov

Video: Detektor psej nálady (Raspberry Pi): 5 krokov
Video: Lesson A1: Starting with PICAR-X Raspberry Pi Smart Robot car by SunFounder 2024, November
Anonim
Detektor psej nálady (Raspberry Pi)
Detektor psej nálady (Raspberry Pi)

Tento pokyn je navrhnutý tak, aby zaznamenával zvuky, ktoré pes vydáva, a určil, či sa k nim má alebo nemá približovať pomocou indikátorov LED. Väčšina majiteľov psov pozná svojich domácich miláčikov a dokáže čítať signály, ktoré vydávajú, takže tento návod je väčšinou zameraný na cudzincov, ktorí môžu prísť do kontaktu s vašim psom.

Krok 1: Diely

Časti
Časti
Časti
Časti
Časti
Časti

Budete potrebovať:

  • Malinový koláč
  • Červené/zelené LED diódy (X2)
  • Monitor
  • Klávesnica/myš s USB
  • WiFi kľúč
  • Externý mikrofón USB
  • Rezistor 330 ohmov (X2)

Voliteľné diely

  • Externý napájací zdroj Raspberry Pi
  • Psí obojok

Krok 2: Postup

Postup
Postup

Prvým krokom na začiatku tohto projektu je pozorovanie správania a vzorcov spojených s vašim psom. Kliknutím sem nájdete jednoduchý návod, čo by ste mali hľadať. V mojom prípade môj pes zavýja vždy, keď je vzrušený alebo šťastný, že niekoho vidí, a prerušovane šteká, keď je nervózny alebo sa zhoršuje. V nasledujúcich niekoľkých krokoch vysvetlím, ako upraviť svoj program tak, aby zodpovedal správaniu vášho psa.

Krok 3: Programovanie

Programovanie
Programovanie

Nasleduje program Python, ktorý som použil pre svojho psa. V nasledujúcom kroku vysvetlím, ako upraviť program pre správanie vášho psa. Program ešte nespúšťajte, pretože nebude fungovať, kým neurobíte ďalší krok.

#!/usr/bin/pythonimport pyaudio import sys import vlákna z času import spánku z importu poľa import poľa RPi. GPIO ako GPIO

kôra = 0

vytie = falošné podržanie = 0 kôry Dĺžka = 5 oneskorení = 0 čakanie = 2 vlajky = 0 červená = 7 zelená = 5 výjazd Vlajka = Nepravda

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (červená, GPIO. OUT) GPIO.output (c, True) spánok (10) GPIO.output (c, False) tlač ("Červené prepínanie")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (zelená, GPIO. OUT) GPIO.output (c, True) spánok (10) GPIO.output (c, False) tlač ("Zelená prepínaná")

def main ():

globálna kôra globálne vytie globálne držanie globálnej kôryDĺžka globálneho oneskorenia globálna vlajka globálna červená globálna zelená

kus = 8192

FORMÁT = pyaudio.paInt16 KANÁLOV = 1 RATE = 44100 prah = 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) skúste: vytlačte „Detekcia inicializovaná“, zatiaľ čo True: skúste: data = stream.read (kus) okrem IOError ako 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: Riešenie problémov a úpravy

Riešenie problémov a úpravy
Riešenie problémov a úpravy
Riešenie problémov a úpravy
Riešenie problémov a úpravy
Riešenie problémov a úpravy
Riešenie problémov a úpravy

Nastaviť

Pred spustením programu budete musieť do Terminálu zadať nasledujúce údaje, aby ste nainštalovali PyAudio:

sudo apt-get intall python-pyaudio

Potom môžete program spustiť a uistiť sa, že funguje správne.

Riešenie problémov

Môže sa vyskytnúť nasledujúca chyba:

IOError: [Vstup Errno pretekol] -9981

Ak to chcete opraviť, jednoducho zvyšujte číslo priradené k variabilnému bloku, kým sa chyba viac nezobrazí.

Úprava

Premenná barkLength určuje, koľkokrát sa program zacyklí, kým hluk prestane byť vnímaný ako štekot, ale ako kvílenie. Ak vaši psi zavýjajú, ale robia to iba na krátky náraz, mali by ste toto číslo znížiť.

Premenné červená a zelená sa týkajú výstupných portov, ktoré budú použité pre indikátory LED. Tieto je možné zmeniť tak, aby vyhovovali vašim potrebám.

Aj keď vo svojom programe variabilné oneskorenie nepoužívam aktívne, dá sa pozorovať, že naznačuje frekvenciu štekania alebo kvílenia.

Variabilné podržanie označuje, koľkokrát sa program zacyklí, keď je hladina hluku nad prahovou hodnotou, a slúži na určenie, či prebieha kvílenie. Táto premenná by nemala byť žiadnym spôsobom upravovaná, pretože kvílenie sa zisťuje manipuláciou s premennou barkLength.

Prahová premenná môže byť znížená, ak kôra nie je veľmi hlasná, alebo zvýšená, ak je v pozadí hluk, ktorý by mohol byť nesprávne interpretovaný ako hluk vychádzajúci zo psa.

Krok 5: Hardvér

Hardvér
Hardvér
Hardvér
Hardvér
Hardvér
Hardvér

V tomto mieste by ste mali mať plne funkčný program, ktorý na obrazovke zobrazuje, čo bude hardvér robiť. V tomto bode projektu by ste sa mali rozhodnúť, či to bude stacionárny mikrofón, ktorý je nastavený na jednom mieste (napríklad v dome, kde pes bežne chodí alebo prichádza do kontaktu s návštevníkmi), alebo sa projekt minimalizuje. a pripevnené k obojku psa, aby poskytovali okamžitú spätnú väzbu osobe, ktorá so psom interaguje.

Stacionárne

Najľahšie je nechať všetko na doske, pretože nedôjde k pohybu, ktorý by mohol odpojiť drôty. Pripojte katódy červených LED k uzemňovaciemu kolíku na Raspberry Pi a anódam buď cez odpor 330 ohmov, alebo priamo do pinu 7 Raspberry Pi. To isté urobte so zelenými diódami LED, ale pripojte anódy k kolíku 5. Spustite program a po úprave kódu podľa svojich potrieb by ste mali mať dokončený projekt.

Nestacionárne

Odporúčal by som najskôr dokončiť stacionárnu verziu, aby ste sa presvedčili, že všetko funguje, a potom sa odtiaľ presunúť spájkovaním všetkého tak, aby sa od pohybu psa neodpojili žiadne drôty.

Pripojte LED diódy k obojku tak, aby boli obaja v pohodlnej polohe a boli niekým viditeľní, keď sa priblížia.

Potom pripojte svoj externý napájací zdroj, ako je ten, ktorý je vidieť TU, k malinovému pi a pripevnite ho k obojku spôsobom, ktorý je pre psa pohodlný.

Akonáhle je všetko zaistené na mieste, pokračujte a spustite program, pripevnite obojok k psovi a máte hotovo!

Odporúča: