Мазмуну:

Dog Mood Detector (Raspberry Pi): 5 кадам
Dog Mood Detector (Raspberry Pi): 5 кадам

Video: Dog Mood Detector (Raspberry Pi): 5 кадам

Video: Dog Mood Detector (Raspberry Pi): 5 кадам
Video: Тонкости работы с монтажной пеной. То, что ты не знал! Секреты мастеров 2024, Ноябрь
Anonim
Dog Mood Detector (Raspberry Pi)
Dog Mood Detector (Raspberry Pi)

Бул Instructable ит чыгарган үндөрдү кабыл алуу үчүн жана аларга индикатор LEDлер менен жакындоо керекпи же жокпу аныктоо үчүн иштелип чыккан. Көпчүлүк иттер үй жаныбарларын билишет жана алар берген сигналдарды окуй алышат, андыктан бул Нускама көбүнчө сиздин ит менен байланышта боло турган бейтааныш адамдарга багытталган.

1 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр
Бөлүктөр

Сага керек болот:

  • Raspberry Pi
  • Кызыл/Жашыл LED (X2)
  • Monitor
  • USB менен клавиатура/чычкан
  • WiFi Dongle
  • Тышкы USB микрофону
  • 330 Ом резистору (X2)

Кошумча бөлүктөр

  • Тышкы Raspberry Pi Power Supply
  • Каргы

2 -кадам: тартиби

Процедура
Процедура

Бул долбоорду баштоонун биринчи кадамы - итиңиз менен байланышкан жүрүм -турумду жана калыптарды байкоо. Сиз бул жерди чыкылдата аласыз, сиз издеп жаткан нерсе боюнча жөнөкөй жол көрсөткүч. Менин учурда, менин итим кимдир бирөөнү көргөндө кубанган же кубанган сайын ыйлайт жана толкунданганда же күчөгөндө үзүл -кесил үрө берет. Кийинки бир нече кадамдарда мен иттин жүрүм -турумуна ылайыкташуу үчүн программамды кантип өзгөртүү керектигин түшүндүрөм.

3 -кадам: Программалоо

Программалоо
Программалоо

Төмөндө мен итим үчүн колдонгон Python программасы. Кийинки кадамда мен иттин жүрүм -туруму үчүн программаны кантип өзгөртүү керектигин түшүндүрөм. Программаны азырынча иштетпеңиз, анткени ал кийинки кадамды жасамайынча иштебейт.

№!

кабык = 0

howl = False hold = 0 barkLength = 5 кечигүү = 0 күтүү = 2 желек = 0 кызыл = 7 жашыл = 5 чыгууFlag = False

def toggleLightRed (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (кызыл, GPIO. OUT) GPIO.output (c, True) уйку (10) GPIO.output (c, False) басып чыгаруу ("Кызыл которулду")

def toggleLightGreen (c):

GPIO.setmode (GPIO. BOARD) GPIO.setup (жашыл, GPIO. OUT) GPIO.output (c, True) уйку (10) GPIO.output (c, False) басып чыгаруу ("Жашыл которулган")

def main ():

глобалдык кабык глобалдык улоо глобалдык кармоо

бөлүк = 8192

FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 threshold = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, channels = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (кызыл, GPIO. OUT) GPIO.setup (жашыл, GPIO. OUT) аракет кылыңыз: Print "Detection initialized" while True: try: data = stream.read (chunk) IOErrorдон башка ex: if ex [1]! = pyaudio.paInputOverflowed: data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) while max_value> босого: delay = 0 hold = hold+1 try: data = stream.read (chunk) IOErrorден башка ex: if ex [1]! = Pyaudio.paInputOverflowed: data = '\ x00' * chunk as_ints = array ('h', data)) max_value = max (as_ints) if hold> = barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (жашыл) GPIO.cleanup () elif hold> 0 жана кармап туруу

эгер _name_ == '_main_':

негизги ()

4 -кадам: Мүчүлүштүктөрдү оңдоо жана өзгөртүү

Мүчүлүштүктөрдү оңдоо жана өзгөртүү
Мүчүлүштүктөрдү оңдоо жана өзгөртүү
Мүчүлүштүктөрдү оңдоо жана өзгөртүү
Мүчүлүштүктөрдү оңдоо жана өзгөртүү
Мүчүлүштүктөрдү оңдоо жана өзгөртүү
Мүчүлүштүктөрдү оңдоо жана өзгөртүү

Жайгашуу

Программаны иштетүүдөн мурун PyAudio орнотуу үчүн Терминалга төмөнкүлөрдү терүү керек болот:

sudo apt-get intall python-pyaudio

Ушундан кийин, программанын туура иштешин текшерүү үчүн, аны текшере аласыз.

Мүчүлүштүктөрдү оңдоо

Сиз төмөнкү катага дуушар болушу мүмкүн:

IOError: [Errno Input overflowed] -9981

Муну оңдоо үчүн, ката мындан ары көрүнмөйүнчө, өзгөрмө бөлүккө берилген санды көбөйтүңүз.

Өзгөртүлүүдө

BarkLength өзгөрмөсү ызы -чуу мындан ары кабык катары эмес, боздоонун алдында программанын канча жолу айланарын аныктайт. Эгерде иттериңиз ыйласа, бирок муну кыска жарылуу үчүн гана жасаса, анда бул санды азайтыңыз.

Кызыл жана жашыл өзгөрмөлөр LED көрсөткүчтөрү үчүн колдонула турган чыгаруу портторун билдирет. Булар сиздин муктаждыктарыңызга ылайык өзгөртүлүшү мүмкүн.

Мен өзгөрүлмөлүү кечигүүнү программамда активдүү колдонбосом да, ал үрүп же улуунун жыштыгын көрсөтүп турат.

Өзгөртмө кармоо, ызы -чуунун босогодон жогору турган программасынын циклдерин канча жолу билдирет жана ыйлоо болуп жаткандыгын аныктоо үчүн колдонулат. Бул өзгөрмө barkLength өзгөрмөсүнүн манипуляциясы аркылуу ыйлоо аныкталгандыктан эч кандай өзгөртүлбөшү керек.

Эгерде кабык өтө катуу болбосо же көтөрүлбөсө, босого өзгөрмөнү төмөндөтсө болот, эгерде иттен чыккан ызы -чуу катары туура эмес чечмелениши мүмкүн.

5 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык

Дал ушул учурда сизде жабдыктын эмне кылып жатканын экранга көрсөтүүчү толук иштей турган программа болушу керек. Долбоордун бул жери - бул бир жерге орнотулган стационардык микрофон болобу же жокпу, ошону чечишиңиз керек (мисалы, ит адатта көп келген же коноктор менен байланышта болгон жер) же долбоор минималдаштырылабы жана ит менен баарлашкан адамга токтоосуз жооп берүү үчүн иттин жакасына бекитилет.

Стационардык

Эң оңой нерсе - баарын нанга калтыруу, анткени зымдарды ажыратуучу кыймыл болбойт. Кызыл LEDдын катоддорун Raspberry Piдеги аноддорго жана 330 омдук резистор аркылуу же түз эле Raspberry Piдин 7 пинине туташтырыңыз. Жашыл светодиоддор менен да ушундай кылыңыз, бирок аноддорду 5 -пинге туташтырыңыз. Программаны иштетиңиз жана кодду муктаждыктарыңызга өзгөрткөндөн кийин сизде бүткөн долбоор болушу керек.

Стационардык эмес

Мен стационардык версияны бүтүрүүнү сунуштайм, баары иштейт жана андан кийин ошол жерден жылып, иттин кыймылынан эч кандай зымдар үзүлбөйт.

Светодиоддорду жакага бекиткиле, ошондо алар экөө тең ыңгайлуу абалда болушат жана жакындаганда кимдир бирөөлөргө көрүнүп калат.

Кийинки, тышкы энергия булагыңызды БУЛ ЖЕРДЕ малина пи -ге туташтырып, жакага итке ыңгайлуу кылып бекемдеңиз.

Баары өз ордуна келгенден кийин, программаны иштетип, жаканы итке байлаңыз, сиз бүттүңүз!

Сунушталууда: