Բովանդակություն:
- Քայլ 1: Մասեր
- Քայլ 2: Ընթացակարգ
- Քայլ 3: Programրագրավորում
- Քայլ 4: Խնդիրների վերացում և փոփոխում
- Քայլ 5: Սարքավորումներ
Video: Շների տրամադրության հայտնաբերող (ազնվամորի Պի) ՝ 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս 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- ները ամրացրեք օձիքին, որպեսզի երկուսն էլ հարմարավետ վիճակում լինեն և մոտենալուն պես տեսնեն որևէ մեկը:
Հաջորդը միացրեք ձեր արտաքին սնուցման աղբյուրը, ինչպիսին է ԱՅՍՏԵ, ազնվամորու պիին և ամրացրեք այն մանյակին շան համար հարմարավետ եղանակով:
Երբ ամեն ինչ տեղում ապահովվի, շարունակեք և գործարկեք ծրագիրը, ամրացրեք օձիքը շանը, և դուք ավարտված եք:
Խորհուրդ ենք տալիս:
Ինչպես կատարել սոցիալական հեռավորության հայտնաբերող ՝ 15 քայլ
Ինչպես կատարել սոցիալական հեռավորության դետեկտոր. 2020 -ի ավարտին մոտենալով, ես մտածեցի, որ լավ կլինի հրաժեշտ տալ 2020 -ի ուսումնական ձեռնարկով: Ես ձեզ եմ ներկայացնում ՝ սոցիալական հեռավորության հայտնաբերող: Այս սարքի միջոցով դուք կկարողանաք սոցիալական հեռավորություն պահպանել տեխնոլոգիայի հետ և թողնել անհանգստությունները: Տ
Սոցիալական հեռավորության հայտնաբերող `4 քայլ
Սոցիալական հեռավորությունների հայտնաբերիչ. Այս սարքն օգնում է ձեզ 1 մետր հեռավորություն պահել մարդկանցից (կամ վտանգել լսողությունը կորցնելը)
Սոցիալական հեռավորության հայտնաբերող ՝ 7 քայլ (նկարներով)
Սոցիալական հեռավորության հայտնաբերող. Սոցիալական հեռավորության հայտնաբերող. Ես Օուեն Օ -ն եմ ՝ Դենվեր Կոլորադոյից և այս տարի լինելու եմ 7 -րդ դասարանում: Իմ նախագիծը կոչվում է Social Distance Detector! Այս դժվարին պահերին անվտանգ պահելու կատարյալ սարք: Սոցիալական հեռավորության հայտնաբերման նպատակը
Պինգո. Շարժում հայտնաբերող և բարձր ճշգրտությամբ պինգ-պոնգ գնդակի արձակիչ `8 քայլ
Պինգո. Շարժում հայտնաբերող և բարձր ճշգրտությամբ պինգ-պոնգի գնդակ արձակող ՝ Քևին Նիտիեմա, Էստեբան Պովեդա, Էնթոնի Մատաչիոնե, Ռաֆայել Քեյ
Ախտանիշների հայտնաբերող (կեղծ -Covid19) ՝ 5 քայլ
Ախտանիշների հայտնաբերող (Pseudo -Covid19). *** Պարզաբանում, քանի որ մարդիկ չեն կարդում ամբողջ հոդվածը !!! *** Սա իմ օգնելու փորձն է, ես այն դրդեցի ոգեշնչելու և կիսելու իմ միտքը: այն աշխատում է միայն ախտանշանները հայտնաբերելու և ոչ թե բուն covid19- ի համար: Իմ հիմնական խնդիրը եղել և մնում է