Sisukord:
Video: Koera tuju detektor (Raspberry Pi): 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
See juhend on loodud võtma koera poolt tekitatavaid helisid ja määrama, kas neile tuleks indikaator -LED -ide abil läheneda või mitte. Enamik koeraomanikke tunneb oma lemmikloomi ja oskab lugeda nende edastatud signaale, nii et see juhend on enamasti suunatud võõrastele, kes võivad teie koeraga kokku puutuda.
Samm: osad
Sa vajad:
- Vaarika Pi
- Punased/rohelised LED -id (X2)
- Monitor
- USB -klaviatuur/hiir
- WiFi -dongle
- Väline USB -mikrofon
- 330 oomi takisti (X2)
Valikulised osad
- Väline Raspberry Pi toiteallikas
- Koera kaelarihm
2. samm: toiming
Selle projekti alustamise esimene samm on jälgida oma koeraga seotud käitumist ja mustreid. Lihtsa juhendi saamiseks selle kohta, mida peaksite otsima, saate klõpsata SIIN. Minu puhul karjub mu koer alati, kui ta on põnevil või rõõmus kedagi nähes, ja haugub katkendlikult, kui on närvis või süvenenud. Järgmistes sammudes selgitan, kuidas oma programmi muuta, et see vastaks teie koera käitumisele.
3. samm: programmeerimine
Allpool on Pythoni programm, mida kasutasin oma koera jaoks. Järgmises etapis selgitan, kuidas muuta oma koera käitumise programmi. Ärge käivitage programmi veel, kuna see ei tööta enne järgmise sammu tegemist.
#!/usr/bin/pythonimport pyaudio import sys impordilõng ajast importimise unerežiimist massiivist impordi massiivi import RPi. GPIO kui GPIO
koor = 0
howl = False hold = 0 hauk
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (punane, GPIO. OUT) GPIO.output (c, True) unerežiim (10) GPIO.output (c, False) print ("Red toggled")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (roheline, GPIO. OUT) GPIO.output (c, True) unerežiim (10) GPIO.output (c, False) print ("Green toggled")
def main ():
globaalne koor ülemaailmne ulgumine globaalne hoidmine globaalne hauk
tükk = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 lävi = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, channels = CHANNELS, rate = RATE, input = True, output = True, frame_per_buffer = tükk) GPIO.setmode (GPIO. BOARD) GPIO.setup (punane, GPIO. OUT) GPIO.setup (roheline, GPIO. OUT) proovige: printige "Tuvastamine on initsialiseeritud", samal ajal kui True: try: data = stream.read (tükk), välja arvatud IOError nagu ex: if ex [1]! = pyaudio.paInputOverflowed: data data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints), samas max_value> künnis: delay = 0 hoidke = hoidke+1 proovige: andmed = oja.lugemine (tükk), välja arvatud IOError nagu ex: kui ex [1]! = Pyaudio.paInputOverflowed: tõsta andmeid = '\ x00' * tükk as_ints = massiiv ('h', andmed) max_value = max (as_ints) kui hoidke> = barkLength: howl = True print "HOWL DETECTED"
kui _name_ == '_main_':
peamine ()
Samm: tõrkeotsing ja muutmine
Seadistamine
Enne programmi käivitamist peate PyAudio installimiseks terminali sisestama järgmise:
sudo apt-get intall python-pyaudio
Pärast seda saate programmi testida ja veenduda, et see töötab korralikult.
Tõrkeotsing
Võite ilmneda järgmine tõrge:
IOError: [Errno Input overflowed] -9981
Selle parandamiseks suurendage lihtsalt muutujale määratud numbrit, kuni viga enam ei ilmu.
Muutmine
Muutuv barkLength dikteerib, mitu korda programm silmuseid teeb, enne kui müra ei peeta enam haukumiseks, vaid ulgumiseks. Kui teie koerad ulguvad, kuid teevad seda vaid lühikese aja jooksul, peaksite seda arvu vähendama.
Muutujad punane ja roheline viitavad väljundportidele, mida kasutatakse LED -indikaatorite jaoks. Neid saab muuta vastavalt teie vajadustele.
Kuigi ma ei kasuta oma programmis aktiivselt muutuvat viivitust, võib täheldada, et see näitab haukumise või ulgumise sagedust.
Muutuja ootel viitab sellele, mitu korda programm ringleb, kui müratase on üle läve, ja seda kasutatakse, et teha kindlaks, kas ulgumine toimub. Seda muutujat ei tohiks mingil viisil muuta, kuna ulgumine tuvastatakse muutuja barkLength manipuleerimise kaudu.
Künnise muutujat saab alandada, kui koor ei ole väga vali või kõrgendatud, kui esineb taustamüra, mida võib ekslikult tõlgendada koerast tuleva mürana.
Samm: riistvara
Just sel hetkel peaks teil olema täielikult toimiv programm, mis kuvab ekraanile, mida riistvara teeb. See projekti punkt on koht, kus peaksite otsustama, kas see on statsionaarne mikrofon, mis on paigutatud ühte kohta (nt koht majas, kus koer tavaliselt külastab või külastajatega kokku puutub) või kas projekti minimeeritakse ja kinnitatud koera kaelarihma külge, et anda koheselt suhtlevale inimesele kohest tagasisidet.
Statsionaarne
Lihtsaim asi on jätta kõik leivalauale, kuna seal ei toimu liikumist, mis võiks juhtmeid lahti ühendada. Ühendage punaste valgusdioodide katoodid Raspberry Pi ja anoodide maandusnõelaga kas läbi 330 oomise takisti või otse Raspberry Pi kontakti 7. Tehke sama ka roheliste valgusdioodidega, kuid ühendage anoodid tihvtiga 5. Käivitage programm ja teil peaks olema valmis projekt, kui olete koodi vastavalt oma vajadustele muutnud.
Mittepaiksed
Soovitaksin kõigepealt täita statsionaarse versiooni lihtsalt selleks, et veenduda, et kõik töötab, ja seejärel sealt edasi joota, jootes kõik kokku, nii et ükski traat ei jääks koera liikumisest lahti.
Kinnitage valgusdioodid krae külge nii, et need mõlemad oleksid mugavas asendis ja keegi oleks neile lähenedes nähtav.
Seejärel ühendage oma väline toiteallikas, näiteks SIIT nähtav, vaarikapiiaga ja kinnitage see kaelarihma külge koerale mugaval viisil.
Kui kõik on paigas, minge edasi ja käivitage programm, kinnitage kaelarihm koera külge ja oletegi valmis!
Soovitan:
LED kaugusnäidik koera rakmed: 5 sammu (piltidega)
LED kaugusnäidik Koerte rakmed: Tavaliselt viin oma koera Rusio jalutama, kui päike loojub, et ta saaks mängida ilma liiga kuumaks. Probleem on selles, et kui ta on rihmast eemal, muutub ta mõnikord liiga põnevil ja jookseb kaugemale kui peaks ning vähese valguse ja teiste koertega
Koera söötmise meeldetuletus: 5 sammu
Koera söötmise meeldetuletus: kui teie majas on ka koer, võib teil seda masinat vaja olla, et see teile koera toitmist meelde tuletada või selle abil meelde tuletada, millal peate koeraga jalutama. See masin on väga väike, nii et seda on kõigil lihtne kaasas kanda ja see on väga
Galaxy koera jope: 8 sammu (piltidega)
Galaxy koerte jope: galaktikateemaline jope, mis on loodud maapealsele koerale
Koera ratastool: 4 sammu
Koera ratastool: Tere täna, ma näitan teile, kuidas oma koerale koera ratastooli teha. Selle idee sain internetist otsides, et näha, kuidas inimesed saavad vanemaid koeri seal rohkem nautida. Ma ei vajanud tegelikult ühte, sest mu koer on 2, aga mu tädikoer, kes on 8 -aastane
Ärge unustage koera toitmist: 3 sammu
Ärge unustage koera söötmist: see juhtus lihtsalt liiga palju kordi! Vaatasin toidu- või veekaussi ja see oli tühi. Tahtsin pikka aega õppida Arduino kasutamist, nii et arvasin, et sellest saab hea algprojekt, tahtsin lühidalt teada, kui madal on toit ja vesi