Sisukord:

Koera tuju detektor (Raspberry Pi): 5 sammu
Koera tuju detektor (Raspberry Pi): 5 sammu

Video: Koera tuju detektor (Raspberry Pi): 5 sammu

Video: Koera tuju detektor (Raspberry Pi): 5 sammu
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Koera tuju detektor (Raspberry Pi)
Koera tuju detektor (Raspberry Pi)

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

Osad
Osad
Osad
Osad
Osad
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

Menetlus
Menetlus

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

Programmeerimine
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

Tõrkeotsing ja muutmine
Tõrkeotsing ja muutmine
Tõrkeotsing ja muutmine
Tõrkeotsing ja muutmine
Tõrkeotsing ja muutmine
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

Riistvara
Riistvara
Riistvara
Riistvara
Riistvara
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: