Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37
Ovaj Instructable dizajniran je da uzme zvukove koje pas ispušta i odredi trebaju li im se približiti ili ne sa LED indikatorima. Većina vlasnika pasa poznaje svoje ljubimce i može pročitati signale koje odašilje, pa je ovaj Instruktor uglavnom usmjeren prema strancima koji mogu doći u kontakt s vašim psom.
Korak 1: Dijelovi
Trebat će vam:
- Raspberry Pi
- Crvene/zelene LED diode (X2)
- Monitor
- Tastatura/miš sa USB -om
- WiFi ključ
- Vanjski USB mikrofon
- Otpor 330 ohma (X2)
Opcioni delovi
- Vanjsko napajanje Raspberry Pi
- Ogrlica za pse
Korak 2: Postupak
Prvi korak za početak ovog projekta je promatranje ponašanja i obrazaca povezanih s vašim psom. Možete kliknuti OVDJE za jednostavan vodič o tome šta biste trebali tražiti. U mom slučaju, moj pas zavija kad god je uzbuđen ili sretan što vidi nekoga i povremeno laje kad je nervozan ili pogoršan. U sljedećih nekoliko koraka objasnit ću kako izmijeniti svoj program kako bih prilagodio ponašanje vašeg psa.
Korak 3: Programiranje
Ispod je Python program koji sam koristio za svog psa. U sljedećem koraku ću objasniti kako izmijeniti program za ponašanje vašeg psa. Nemojte još pokretati program jer neće raditi dok ne napravite sljedeći korak.
#!/usr/bin/pythonimport pyaudio import sys import thread from time import import sleep from array import array import RPi. GPIO kao GPIO
kora = 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 (crveno, GPIO. OUT) GPIO.output (c, Tačno) spavanje (10) GPIO.output (c, Netačno) ispis ("Crveno preklopljeno")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (zeleno, GPIO. OUT) GPIO.output (c, Tačno) spavanje (10) GPIO.output (c, Netačno) ispis ("Zeleno preklopljeno")
def main ():
globalna kora globalno zavijanje globalno držanje globalna korakadužina globalno kašnjenje globalna zastava globalna crvena globalna zelena
komad = 8192
FORMAT = pyaudio.paInt16 KANALI = 1 RATE = 44100 prag = 3000 max_value = 0 p = pyaudio. PyAudio () tok = p.open (format = FORMAT, kanali = KANALI, brzina = RATE, ulaz = Tačno, izlaz = Istina, frame_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (crveno, GPIO. OUT) GPIO.setup (zeleno, GPIO. OUT) try: print "Otkrivanje je inicijalizirano" dok je True: try: data = stream.read (komad) osim IOError -a kao ex: if ex [1]! = pyaudio.paInputOverflowed: raise data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) dok max_value> prag: delay = 0 hold = hold+1 try: data = stream.read (chunk) osim IOError kao npr: 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 (zeleno) GPIO.cleanup () elif hold> 0 and hold
if _name_ == '_main_':
main ()
Korak 4: Rješavanje problema i izmjena
Postaviti
Prije pokretanja programa morat ćete unijeti sljedeće u terminal da biste instalirali PyAudio:
sudo apt-get intall python-pyaudio
Nakon toga možete testirati program da biste se uvjerili da radi ispravno.
Rješavanje problema
Možda ćete doživjeti sljedeću grešku:
IOError: [Errno Input overflow] -9981
Da biste to riješili, jednostavno povećavajte broj dodijeljen promjenjivom komadu dok se greška više ne pojavi.
Modifikovanje
Promenljiva barkLength diktira koliko se puta program petlja pre nego što se šum više ne vidi kao lavež, već kao urlik. Ako vaši psi zavijaju, ali to čine samo nakratko, tada biste trebali smanjiti ovaj broj.
Varijable crvena i zelena odnose se na izlazne portove koji će se koristiti za LED indikatore. Oni se mogu promijeniti prema vašim potrebama.
Iako u svom programu ne koristim aktivno varijablu kašnjenja, može se primijetiti da ukazuje na učestalost lajanja ili zavijanja.
Varijabla hold se odnosi na to koliko se puta program petlja gdje je nivo buke iznad praga i koristi se za utvrđivanje da li se zavija. Ovu varijablu ne treba ni na koji način mijenjati jer se urlici otkrivaju manipulacijom varijable barkLength.
Varijabla praga može se smanjiti ako lavež nije jako glasan ili podignuti ako postoji pozadinska buka koja bi se mogla pogrešno protumačiti kao buka koja dolazi od psa.
Korak 5: Hardver
U ovom trenutku trebali biste imati potpuno funkcionalan program koji prikazuje na ekranu šta će hardver raditi. Na ovom mjestu u projektu trebate odlučiti hoće li to biti stacionarni mikrofon koji je postavljen na jednom mjestu (npr. Mjesto u kući gdje pas obično posjećuje ili dolazi u kontakt s posjetiteljima) ili će projekt biti minimiziran i pričvršćeni za ogrlicu psa kako bi pružili trenutnu povratnu informaciju osobi koja komunicira sa psom.
Stacionarno
Najjednostavnije je učiniti sve ostaviti na ploči jer neće biti pokreta koji bi mogao odvojiti žice. Spojite katode crvenih LED dioda na uzemljeni pin na Raspberry Pi i anode bilo kroz otpornik od 330 ohma ili ravno u pin 7 Raspberry Pi. Učinite isto sa zelenim LED diodama, ali povežite anode na pin 5. Pokrenite program i trebali biste imati završen projekt nakon što promijenite kôd prema svojim potrebama.
Nestacionarno
Preporučio bih da prvo dovršite stacionarnu verziju samo kako biste bili sigurni da sve funkcionira, a zatim krenite dalje spajajući sve tako da nijedna žica neće postati nepovezana s kretanjem psa.
Pričvrstite LED diode na ogrlicu tako da obje budu u udobnom položaju i da ih netko može vidjeti dok se približavaju.
Zatim spojite vanjsko napajanje, poput onog koje se vidi OVDJE, na malinu pi i pričvrstite ga na ogrlicu na način koji je ugodan za psa.
Nakon što sve učvrstite na svom mjestu, pokrenite program, pričvrstite ogrlicu na psa i gotovi ste!
Preporučuje se:
Zvučnik raspoloženja- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: 9 koraka
Mood Speaker- snažan zvučnik za reprodukciju muzike raspoloženja na osnovu temperature okoline: Zdravo! Za moj školski projekt u MCT Howest Kortrijk, napravio sam Mood Speaker, ovo je pametni Bluetooth zvučnik s različitim senzorima, LCD-om i WS2812b LED traka uključena. Zvučnik pušta muziku u pozadini na osnovu temperature, ali može
Quadcopteri borbenih dronova, pravo iskustvo borbe pasa: 8 koraka (sa slikama)
Quadcopteri borbenih dronova, pravo iskustvo borbe protiv pasa: Dobro došli u moju " ible " #37Moramo priznati da su trenutni borbeni dronovi na tržištu pomalo neuredni. Vrlo je teško shvatiti ko pobjeđuje, a ko gubi. Kad se jedan dron spusti, slijedi drugi (sudari se jedan u drugog
Arduino kanta za smeće protiv pasa: 6 koraka (sa slikama)
Arduino kanta za smeće protiv pasa: U ovom projektu ću vam pokazati kako izgraditi smiješnu, ali radnu metodu kako biste spriječili svoje dosadne pse da uđu u vašu kantu za smeće
Trener pasa: 5 koraka
Trener pasa: Prema AKC-u, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) veličina obroka za hrana je od suštinskog značaja za pse, a veličina kutije također ograničava broj hrane koju bi pas mogao pojesti dnevno, "Veterinar
Raspberry Pi automatski ulagač pasa i video prijenos uživo: 3 koraka
Raspberry Pi automatska hranilica za pse i video streaming uživo: Ovo je moja automatska hranilica za pse sa Raspberry PI pogonom. Radio sam od 11 do 21 sat ujutro. Moj pas poludi ako ga ne hranim na vrijeme. Surfao je googleom da kupi automatske hranilice, nisu dostupne u Indiji i skupe su uvozne