Բովանդակություն:

Շների տրամադրության հայտնաբերող (ազնվամորի Պի) ՝ 5 քայլ
Շների տրամադրության հայտնաբերող (ազնվամորի Պի) ՝ 5 քայլ

Video: Շների տրամադրության հայտնաբերող (ազնվամորի Պի) ՝ 5 քայլ

Video: Շների տրամադրության հայտնաբերող (ազնվամորի Պի) ՝ 5 քայլ
Video: Լևոն Տեր-Պետրոսյանի տանը ռումբի ահազանգը կեղծ է եղել 2024, Մայիս
Anonim
Շների տրամադրության հայտնաբերիչ (ազնվամորի Պի)
Շների տրամադրության հայտնաբերիչ (ազնվամորի Պի)

Այս Instructable- ը նախատեսված է շան հնչյունները վերցնելու և որոշելու համար, թե արդյոք նրանց պետք է մոտենալ, թե ոչ `LED ցուցիչներով: Շների սեփականատերերից շատերը գիտեն իրենց կենդանիներին և կարող են կարդալ իրենց արձակած ազդանշանները, ուստի այս հրահանգը հիմնականում ուղղված է անծանոթ մարդկանց, որոնք կարող են շփվել ձեր շան հետ:

Քայլ 1: Մասեր

Մասեր
Մասեր
Մասեր
Մասեր
Մասեր
Մասեր

Ձեզ հարկավոր կլինի.

  • Ազնվամորի Պի
  • Կարմիր/կանաչ LED (X2)
  • Մոնիտոր
  • Ստեղնաշար/մկնիկ USB- ով
  • WiFi Dongle
  • Արտաքին USB խոսափող
  • 330 օմ դիմադրություն (X2)

Ընտրովի մասեր

  • Արտաքին Raspberry Pi էլեկտրամատակարարում
  • Շան վզկապ

Քայլ 2: Ընթացակարգ

Ընթացակարգ
Ընթացակարգ

Այս նախագիծը սկսելու առաջին քայլը ձեր շան հետ կապված վարքագծի և օրինաչափությունների դիտումն է: Կարող եք սեղմել ԱՅՍՏԵ guide պարզ ուղեցույցի համար, թե ինչ պետք է փնտրեք: Իմ դեպքում իմ շունը ոռնում է ամեն անգամ, երբ հուզվում կամ ուրախանում է ինչ -որ մեկին տեսնելով, և հանկարծակի հաչում է նյարդայնացած կամ սրված վիճակում: Հաջորդ մի քանի քայլերում ես կբացատրեմ, թե ինչպես փոփոխել իմ ծրագիրը `ձեր շան վարքագիծը հարմարեցնելու համար:

Քայլ 3: Programրագրավորում

Ծրագրավորում
Ծրագրավորում

Ստորև բերված է Python ծրագիրը, որն օգտագործել եմ իմ շան համար: Հաջորդ քայլում ես կբացատրեմ, թե ինչպես փոփոխել ծրագիրը ձեր շան վարքագծի համար: Մի գործարկեք ծրագիրը դեռ, քանի որ այն չի աշխատի, մինչև չկատարեք հաջորդ քայլը:

#!/usr/bin/pythonimport pyaudio ներմուծում sys ներմուծում շարանը ժամանակից ներմուծում քուն զանգվածից ներմուծման զանգվածի ներմուծում RPi. GPIO որպես GPIO

կեղև = 0

ոռնոց = Կեղծ պահում = 0 հաչոց Երկարություն = 5 ուշացում = 0 սպասում = 2 դրոշ = 0 կարմիր = 7 կանաչ = 5 ելք Դրոշ = Կեղծ

def toggleLightRed (գ):

GPIO.setmode (GPIO. BOARD) GPIO.setup (կարմիր, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Red toggled")

def toggleLightGreen (գ):

GPIO.setmode (GPIO. BOARD) GPIO.setup (կանաչ, GPIO. OUT) GPIO.output (c, True) sleep (10) GPIO.output (c, False) print ("Green toggled")

def main ():

global bark global howl global hold global global bark Երկար գլոբալ հետաձգում գլոբալ դրոշ գլոբալ կարմիր գլոբալ կանաչ

կտոր = 8192

FORMAT = pyaudio.paInt16 ԱԼԻՔՆԵՐ = 1 RATE = 44100 շեմ = 3000 max_value = 0 p = pyaudio. PyAudio () stream = p.open (format = FORMAT, channel = CHANNELS, rate = RATE, input = True, output = True, frames_per_buffer = կտոր) GPIO.setmode (GPIO. BOARD) GPIO.setup (կարմիր, GPIO. OUT) GPIO.setup (կանաչ, GPIO. OUT) փորձել. տպել «Հայտնաբերումը սկզբնավորված է», իսկ True: try: data = stream.read (կտոր) բացառությամբ IOError- ի, օրինակ `նախկին. 0 պահում = պահում+1 փորձ. Data = stream.read (կտոր) բացառությամբ IOError- ի, օրինակ ՝ եթե ex [1]! = Pyaudio.paInputOverflowed: տվյալների բարձրացում = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) if hold> = barkLength: howl = True print "HOWL DETECTED" toggleLightGreen (green) GPIO.cleanup () elif hold> 0 and hold

եթե _name_ == '_ հիմնական_':

հիմնական ()

Քայլ 4: Խնդիրների վերացում և փոփոխում

Անսարքությունների վերացում և փոփոխում
Անսարքությունների վերացում և փոփոխում
Անսարքությունների վերացում և փոփոխում
Անսարքությունների վերացում և փոփոխում
Անսարքությունների վերացում և փոփոխում
Անսարքությունների վերացում և փոփոխում

Կարգավորում

Theրագիրը գործարկելուց առաջ PyAudio- ն տեղադրելու համար հարկավոր է տերմինալում մուտքագրել հետևյալը.

sudo apt-get intall python-pyaudio

Դրանից հետո կարող եք փորձարկել-գործարկել ծրագիրը `համոզվելու համար, որ այն ճիշտ է գործում:

Անսարքությունների վերացում

Դուք կարող եք զգալ հետևյալ սխալը.

IOError: [Errno Input overflowed] -9981

Դա շտկելու համար պարզապես ավելացրեք փոփոխականի կտորին տրված թիվը, մինչև որ սխալն այլևս չերևա:

Փոփոխելով

Փոփոխական barkLength- ը թելադրում է, թե քանի անգամ է ծրագիրը շրջվում նախքան աղմուկն այլևս ոչ թե որպես հաչոց, այլ որպես ոռնոց: Եթե ձեր շները ոռնում են, բայց դա անում են միայն կարճ պոռթկման համար, ապա դուք պետք է նվազեցնեք այս թիվը:

Կարմիր և կանաչ փոփոխականները վերաբերում են ելքային նավահանգիստներին, որոնք կօգտագործվեն LED ցուցիչների համար: Դրանք կարող են փոխվել `ձեր կարիքներին համապատասխան:

Չնայած ես իմ ծրագրում ակտիվորեն չեմ օգտագործում փոփոխական ուշացումը, այն կարող է նկատվել, որ ցույց է տալիս հաչալու կամ ոռնալու հաճախականությունը:

Փոփոխական պահումը վերաբերում է, թե քանի անգամ է ծրագիրը շրջվում, որտեղ աղմուկի մակարդակը շեմից բարձր է և օգտագործվում է որոշելու, թե արդյոք ոռնոց է տեղի ունենում: Այս փոփոխականը չպետք է որևէ կերպ փոխվի, քանի որ ոռնոցները հայտնաբերվում են barkLength փոփոխականի մանիպուլյացիայի միջոցով:

Շեմային փոփոխականը կարող է իջեցվել, եթե կեղևը շատ բարձր չէ կամ բարձրացված է, եթե առկա է ֆոնային աղմուկ, որը կարող է սխալ մեկնաբանվել որպես շանից բխող աղմուկ:

Քայլ 5: Սարքավորումներ

Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ
Սարքավորումներ

Այս պահին է, որ դուք պետք է ունենաք լիարժեք գործող ծրագիր, որը էկրանին ցույց կտա, թե ինչ է անելու սարքավորումը: Thisրագրի այս կետն է, որտեղ դուք պետք է որոշեք `դա կլինի՞ ստացիոնար խոսափողը, որը տեղադրված է մեկ տեղում (օրինակ ՝ տան այն վայրը, որտեղ շունը սովորաբար հաճախում է կամ շփվում այցելուների հետ), թե նախագիծը նվազագույնի հասցվելու է: և ամրացված է շան օձիքին `շան հետ շփվող անձին անհապաղ հետադարձ կապ ապահովելու համար:

Ստացիոնար

Ամենահեշտ բանը, ամեն ինչ թողնել սեղանի վրա, քանի որ չի լինի շարժում, որը կարող է անջատել լարերը: Կարմիր LED- ների կաթոդները միացրեք Raspberry Pi- ի և անոդների Ground կապին կամ 330 օմ դիմադրիչի միջոցով, կամ անմիջապես Raspberry Pi- ի 7 -րդ կապում: Նույնը արեք Կանաչ LED- ների հետ, բայց միացրեք անոդները 5 -րդ կապին: Գործարկեք ծրագիրը և պետք է ունենաք ավարտված նախագիծ, երբ ծածկագիրը փոփոխեք ձեր կարիքներին համապատասխան:

Ոչ ստացիոնար

Ես խորհուրդ կտայի նախ լրացնել ստացիոնար տարբերակը `միայն ապահովելու համար, որ ամեն ինչ աշխատում է, այնուհետև շարունակեք այնտեղից` ամեն ինչ միացնելով միասին, որպեսզի ոչ մի լար չկապվի շան շարժումից:

LED- ները ամրացրեք օձիքին, որպեսզի երկուսն էլ հարմարավետ վիճակում լինեն և մոտենալուն պես տեսնեն որևէ մեկը:

Հաջորդը միացրեք ձեր արտաքին սնուցման աղբյուրը, ինչպիսին է ԱՅՍՏԵ, ազնվամորու պիին և ամրացրեք այն մանյակին շան համար հարմարավետ եղանակով:

Երբ ամեն ինչ տեղում ապահովվի, շարունակեք և գործարկեք ծրագիրը, ամրացրեք օձիքը շանը, և դուք ավարտված եք:

Խորհուրդ ենք տալիս: