Kazalo:
- 1. korak: Deli
- 2. korak: Postopek
- 3. korak: Programiranje
- 4. korak: Odpravljanje težav in spreminjanje
- 5. korak: Strojna oprema
Video: Detektor razpoloženja psov (Raspberry Pi): 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Ta Instructable je zasnovan tako, da sprejme zvoke, ki jih odda pes, in ugotovi, ali se jim je treba približati ali ne z indikatorskimi LED. Večina lastnikov psov pozna svoje hišne ljubljenčke in lahko prebere signale, ki jih oddajajo, zato je to navodilo večinoma namenjeno tujcem, ki bi lahko prišli v stik z vašim psom.
1. korak: Deli
Boste potrebovali:
- Malina Pi
- Rdeče/zelene LED (X2)
- Monitor
- Tipkovnica/miška z USB
- WiFi ključ
- Zunanji mikrofon USB
- 330 ohmski upor (X2)
Neobvezni deli
- Zunanji napajalnik Raspberry Pi
- Pasja ovratnica
2. korak: Postopek
Prvi korak k začetku tega projekta je opazovanje vedenja in vzorcev, povezanih z vašim psom. Za preprost vodnik o tem, kaj bi morali iskati, lahko kliknete TUKAJ. V mojem primeru moj pes zajoče, kadar je navdušen ali vesel, da nekoga vidi, in občasno laja, ko je živčen ali otežen. V naslednjih nekaj korakih bom razložil, kako spremeniti svoj program, da bi ustrezal vedenju vašega psa.
3. korak: Programiranje
Spodaj je program Python, ki sem ga uporabil za svojega psa. V naslednjem koraku bom razložil, kako spremeniti program za vedenje vašega psa. Ne zaženite programa, saj ne bo deloval, dokler ne naredite naslednjega koraka.
#!/usr/bin/pythonimport pyaudio import sys import thread from time import import sleep from array import array import RPi. GPIO kot GPIO
lubje = 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 (rdeča, GPIO. OUT) GPIO.output (c, True) spanje (10) GPIO.output (c, False) tiskanje ("rdeče preklopljeno")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (zelena, GPIO. OUT) GPIO.output (c, True) spanje (10) GPIO.output (c, False) tiskanje ("Green zeleno")
def main ():
global bark global howl global hold global barkDolžina globalna zamuda global flag global rdeča globalna zelena
kos = 8192
FORMAT = pyaudio.paInt16 KANALI = 1 RATE = 44100 prag = 3000 max_value = 0 p = pyaudio. PyAudio () tok = p.open (format = FORMAT, kanali = KANALI, hitrost = RATE, vnos = res, izhod = res, frame_per_buffer = kos) GPIO.setmode (GPIO. BOARD) GPIO.setup (rdeča, GPIO. OUT) GPIO.setup (zelena, GPIO. OUT) poskusite: natisnite "Zaznavanje inicializirano", medtem ko je True: poskusite: data = stream.read (kos) razen IOError kot ex: if ex [1]! = pyaudio.paInputOverflowed: dvig podatkov = '\ x00' * kos as_ints = array ('h', data) max_value = max (as_ints) medtem ko max_value> prag: delay = 0 hold = hold+1 try: data = stream.read (chunk) razen IOError kot 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 (zeleno) GPIO.cleanup () elif hold> 0 and hold
če _name_ == '_main_':
main ()
4. korak: Odpravljanje težav in spreminjanje
Nastaviti
Preden zaženete program, morate v terminal vnesti naslednje, da namestite PyAudio:
sudo apt-get intall python-pyaudio
Po tem lahko preizkusite zagon programa in se prepričate, da deluje pravilno.
Odpravljanje težav
Lahko pride do naslednje napake:
IOError: [Errno Input overflowed] -9981
Če želite to odpraviti, preprosto povečajte število, dodeljeno spremenljivemu kosu, dokler se napaka ne prikaže več.
Spreminjanje
Spremenljivka barkLength narekuje, kolikokrat se program ponovi, preden se hrup ne vidi več kot lajež, ampak kot tuljenje. Če vaši psi zajokajo, vendar to počnejo le za kratek čas, morate to število zmanjšati.
Spremenljivki rdeča in zelena se nanašata na izhodna vrata, ki bodo uporabljena za LED indikatorje. Te lahko spremenite tako, da ustrezajo vašim potrebam.
Čeprav spremenljive zakasnitve v svojem programu ne uporabljam aktivno, je mogoče opaziti, da označuje pogostost lajanja ali zavijanja.
Spremenljivka hold se nanaša na to, kolikokrat program ponovi, kjer je raven hrupa nad pragom, in se uporablja za ugotavljanje, ali se zavija. Te spremenljivke nikakor ne bi smeli spreminjati, saj se z manipulacijo spremenljivke barkLength zaznajo joki.
Spremenljivko praga je mogoče znižati, če lubje ni zelo glasno ali dvigniti, če obstaja hrup v ozadju, ki bi ga lahko napačno razumeli kot hrup, ki izvira iz psa.
5. korak: Strojna oprema
Na tej točki bi morali imeti popolnoma delujoč program, ki na zaslon prikaže, kaj počne strojna oprema. Ta točka v projektu se morate odločiti, ali bo to stacionarni mikrofon, ki je nameščen na enem mestu (npr. Prostor v hiši, kjer pes običajno hodi ali pride v stik z obiskovalci) ali pa bo projekt minimiziran in pritrjen na ovratnico za psa, da osebi, ki komunicira s psom, zagotovi takojšnje povratne informacije.
Stacionarno
Najlažje je, da vse pustite na deski, saj ne bo nobenega premika, ki bi lahko ločil žice. Priključite katode rdečih LED na ozemljitveni zatič na Raspberry Pi in anode bodisi preko 330 ohmskega upora ali naravnost v pin 7 Raspberry Pi. Enako naredite z zelenimi LED diodami, vendar anode priključite na pin 5. Zaženite program in ko boste kodo prilagodili svojim potrebam, morate imeti zaključen projekt.
Nestacionarno
Priporočam, da najprej dokončate stacionarno različico, samo da zagotovite, da vse deluje, nato pa nadaljujte tako, da vse skupaj spajkate, tako da nobena žica ne bo odklopljena od gibanja psa.
Pritrdite LED diode na ovratnik, tako da bosta oba v udobnem položaju in da ju bo nekdo videl, ko se približajo.
Nato priključite zunanji napajalnik, kakršen je prikazan TUKAJ, na malinovo piko in ga pritrdite na ovratnik na način, ki je primeren za psa.
Ko je vse pritrjeno, zaženite program, privežite ovratnico na psa in končali ste!
Priporočena:
Svetilka razpoloženja - Diego Bandi: 5 korakov
Mood Lamp - Diego Bandi: Una Mood Lamp la cual contiene un funcionamiento automático, el cual funciona mediana las correlaciones de temperature y humedad. Ademas de otro funcionamiento manual por el cual los tres colores (RGB) son controlados a traves de 3 pontenciometros
RGB LED in dihalna luč razpoloženja: 8 korakov
RGB LED in dihalna luč razpoloženja: LED RGB & Breathing Mood Light je preprosta nočna luč, ki vsebuje dva načina. Za prvi način lahko spremenite barvo LED RGB z obračanjem treh spremenljivih uporov, za drugi način pa prikazuje stanje dihanja
Animirana svetloba razpoloženja in nočna svetloba: 6 korakov (s slikami)
Animirana svetloba razpoloženja in nočna svetloba: navdušen, ki meji na obsedenost s svetlobo, sem se odločil ustvariti izbor majhnih modularnih tiskanih vezij, ki bi jih lahko uporabili za ustvarjanje svetlobnih zaslonov RGB katere koli velikosti. Ko sem izdelal modularno tiskano vezje, sem naletel na idejo, da jih uredim v
Glasovno nadzorovana luč razpoloženja Android: 11 korakov (s slikami)
Glasovno nadzorovana luč razpoloženja Android: Moral sem ustvariti razred za našo lokalno skupino ustvarjalcev. Nekaj, kar je tudi prvim obiskovalcem zagotovilo dokončno zmago in veliko nagrado, brez težav, brez napora in brez posebnih orodij ali materialov. Študentje so morali domov prinesti nekaj zabavnega
Projektor razpoloženja (kramp Philips Hue Light z GSR) TfCD: 7 korakov (s slikami)
Projektor razpoloženja (kramp Philips Hue Light z GSR) TfCD: avtorica Laura Ahsmann & Maaike Weber Namen: Nizko razpoloženje in stres sta velik del sodobnega hitrega življenja. To je tudi nekaj, kar je zunaj nevidno. Kaj pa, če bi lahko stresno raven vizualno in akustično projicirali z