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

ԲՈANTՅՍԻ ՌՈԲՈՏ `10 քայլ
ԲՈANTՅՍԻ ՌՈԲՈՏ `10 քայլ

Video: ԲՈANTՅՍԻ ՌՈԲՈՏ `10 քայլ

Video: ԲՈANTՅՍԻ ՌՈԲՈՏ `10 քայլ
Video: EUROMIX LOGIC CONCRETE PLANT CONTROL SYSTEM | BETONCONTROL PRO 2024, Հուլիսի
Anonim
Image
Image
ԲՈANTՅՍԻ ՌՈԲՈՏ
ԲՈANTՅՍԻ ՌՈԲՈՏ

Բոլորը հաճույք են ստանում տանը բույսեր ունենալուց, բայց երբեմն մեր զբաղված կյանքով մենք ժամանակ չենք գտնում լավ խնամելու համար: Այս խնդրից մենք եկանք մի գաղափար. Ինչու՞ չստեղծել ռոբոտ, որը հոգ կտանի դրա մասին

Այս նախագիծը բաղկացած է բույս-ռոբոտից, որը հոգ է տանում իր մասին: Գործարանը ինտեգրված է ռոբոտի մեջ և կկարողանա ինքն իրեն ջրել և լույս գտնել ՝ միաժամանակ խուսափելով խոչընդոտներից: Դա հնարավոր է դարձել ռոբոտի և գործարանի վրա մի քանի տվիչների օգտագործմամբ: Այս Instructable- ը նպատակ ունի առաջնորդել ձեզ բույսերի ռոբոտ ստեղծելու գործընթացում, որպեսզի ամեն օր ձեր բույսերի մասին չմտահոգվեք:

Այս նախագիծը Bruface Mechatronics- ի մի մասն է և իրականացվել է ՝

Մերսեդես Արեվալո Սուարես

Դանիել Բլանկես

Բոդուեն Կորնելիս

Kaat Leemans

Մարկոս Մարտինես Խիմենես

Բազիլ Թեսսե

(Խումբ 4)

Քայլ 1. ԳՆՈՄ ԱՆԿ

ԳՆՈՄՆԵՐԻ ISTԱՆԿ
ԳՆՈՄՆԵՐԻ ISTԱՆԿ
ԳՆՈՄՆԵՐԻ ISTԱՆԿ
ԳՆՈՄՆԵՐԻ ISTԱՆԿ
ԳՆՈՄՆԵՐԻ ISTԱՆԿ
ԳՆՈՄՆԵՐԻ ISTԱՆԿ

Ահա այս ռոբոտը ստեղծելու համար ձեզ անհրաժեշտ բոլոր ապրանքների ցանկը: Յուրաքանչյուր ընդգծված կտորի համար հասանելի է հղում.

3D տպագիր շարժիչներ աջակցում են X1- ին (պատճենեք 3D- ով)

3D տպված անիվներ + անիվ-շարժիչ միացում X2 (պատճենը 3D- ով)

AA Nimh մարտկոցներ X8

Հղկող թղթի գլան X1

Arduino Mega X1

Գնդիկավոր անիվ X1

Մարտկոցի սեփականատեր X2

Թեստային տախտակ X1 թեստերի համար

Breadboard- ը X1- ին զոդելու համար

DC շարժիչներ (կոդավորիչով) X2

Ingխնիներ X2

Հիգրոմետր X1

Լույսի վրա կախված ռեզիստորներ X3

Արական-արական և արական-իգական ցատկողներ

Շարժիչային վահան X1

Գործարան X1 (սա ձեզանից է կախված)

Բույսերի զամբյուղ X1

Բույսերի աջակցություն X1 (3D տպագիր)

Պլաստիկ խողովակ X1

Տարբեր արժեքների դիմադրողներ

Քերծ թուղթ X1

Պտուտակներ

Սուր տվիչներ X3 (GP2Y0A21YK0F 10-80 սմ)

Անջատիչ X1

Pumpրի պոմպ X1

Resրամբարի բաք (փոքր Tupperware) X1

Լարերը

Խնդրում ենք նկատի ունենալ, որ այս ընտրությունները ժամանակի և բյուջեի սահմանափակումների արդյունք են (3 ամիս և 200 եվրո): Այլ ընտրություններ կարող են կատարվել ձեր հայեցողությամբ:

ՏԱՐԲԵՐ ԸՆՏՐՈԹՅՈՆՆԵՐԻ ՊԱՐPLԱԲԱՆՈԹՅՈՆ

Arduino Mega- ն Arduino Uno- ի նկատմամբ. Նախ, մենք նաև պետք է բացատրենք այն պատճառը, թե ինչու ենք մենք ընդհանրապես օգտագործում Arduino- ն: Arduino- ն բաց կոդով էլեկտրոնային նախատիպերի հարթակ է, որը հնարավորություն է տալիս օգտվողներին ստեղծել ինտերակտիվ էլեկտրոնային օբյեկտներ: Այն շատ տարածված է ինչպես փորձագետների, այնպես էլ սկսնակների միջև, ինչը նպաստում է դրա մասին ինտերնետում շատ տեղեկություններ գտնելուն: Սա կարող է օգտակար լինել ձեր նախագծի հետ խնդիր ունենալիս: Մենք ընտրեցինք Arduino Mega- ն Uno- ի փոխարեն, քանի որ այն ավելի շատ կապում է: Փաստորեն, սենսորների քանակի համար, որը մենք օգտագործում ենք Uno- ն, բավականաչափ կապում չի առաջարկվել: Mega- ն նաև ավելի հզոր է և կարող է օգտակար լինել, եթե ավելացնենք որոշ բարելավումներ, ինչպիսիք են WIFI մոդուլը:

Nimh մարտկոցներ. Առաջին գաղափարն էր օգտագործել LiPo մարտկոցները, ինչպես շատ ռոբոտային նախագծերում: LiPo- ն ունի լավ լիցքաթափման արագություն և հեշտությամբ վերալիցքավորվում է: Բայց շուտով մենք հասկացանք, որ LiPo- ն և լիցքավորիչը չափազանց թանկ են: Այս նախագծի համար հարմար այլ մարտկոցները, որտեղ գտնվում է Nimh- ը: Իրոք, դրանք էժան են, վերալիցքավորվող և թեթև: Շարժիչը սնուցելու համար մեզ պետք կգա դրանցից 8 -ը `9,6 Վ -ից (լիցքաթափված) մինչև 12 Վ (լրիվ լիցքավորված) լարման հասնելու համար:

Հաշվի առնելով այս շարժիչի հիմնական նպատակը ՝ ապահովել պտտվող էներգիան անիվներին, մենք ընտրեցինք երկու DC շարժիչ, այլ ոչ թե Servo Motors, որոնք սահմանափակում ունեն պտույտի անկյան տակ և նախատեսված են ավելի կոնկրետ առաջադրանքների համար, որտեղ պետք է դիրքորոշում սահմանվի: ճշգրիտ Կոդավորիչներ ունենալու փաստը նաև ավելացնում է անհրաժեշտության դեպքում ավելի բարձր ճշգրտություն ունենալու հնարավորությունը: Նկատի ունեցեք, որ մենք վերջապես չօգտագործեցինք կոդավորիչները, քանի որ հասկացանք, որ շարժիչները բավականին նման են, և մեզ պետք չէ, որ ռոբոտը հստակ գիծ ունենա:

Շուկայում շատ DC շարժիչներ կան, և մենք փնտրում էինք այն, որը կհամապատասխանի մեր բյուջեին և ռոբոտին: Այս սահմանափակումները բավարարելու համար երկու կարևոր պարամետր օգնեց մեզ ընտրել շարժիչը. Ռոբոտը շարժելու համար անհրաժեշտ պտտող մոմենտը և ռոբոտի արագությունը (անհրաժեշտ պտույտ / րոպեը գտնելու համար):

1) Հաշվիր rpm- ը

Այս ռոբոտին անհրաժեշտ չի լինի կոտրել ձայնի պատնեշը: Լույսին հետևելու կամ տանը մեկին հետևելու համար 1 մ/վ արագությունը կամ 3,6 կմ/ժ արագությունը ողջամիտ է թվում: Այն rpm- ի վերածելու համար մենք օգտագործում ենք անիվների տրամագիծը `9 սմ: RPM- ը տրվում է ՝ rpm = (60*արագություն (մ/վ))/(2*pi*r) = (60*1)/(2*pi*0,045) = 212 պտ/րոպե:

2) Հաշվարկեք անհրաժեշտ մեծ ոլորող մոմենտը

Քանի որ այս ռոբոտը կզարգանա հարթ միջավայրում, առավելագույն պտտող մոմենտը անհրաժեշտ է ռոբոտին շարժել սկսելու համար: Եթե հաշվի առնենք, որ գործարանի և յուրաքանչյուր բաղադրիչի հետ ռոբոտի քաշը մոտ 3 կիլո է, և անիվների և գետնի միջև շփման ուժերը օգտագործելով, մենք հեշտությամբ կարող ենք գտնել ոլորող մոմենտը: Հաշվի առնելով գետնի և անիվների միջև 1 շփման գործակիցը. Շփման ուժեր (Fr) = շփման գործակից: * N (որտեղ N- ը ռոբոտի քաշն է) սա մեզ տալիս է Fr = 1 * 3 * 10 = 30 N. Յուրաքանչյուր շարժիչի ոլորող մոմենտը կարելի է գտնել հետևյալ կերպ. T = (Fr * r)/2 որտեղ r- ն է անիվների շառավիղը, այնպես որ T = (30*0.045)/2 = 0.675 Նմ = 6.88 կգ սմ:

Սրանք են մեր ընտրած շարժիչի բնութագրերը `6V 175 պտույտ / րոպե և 4 կգ սմ 12V 350 պտույտ / րոպե և 8 կգ սմ: Իմանալով, որ այն կաշխատեցվի 9,6 -ից 12 Վ լարման միջև ՝ գծային ինտերպոլացիա անելով, ակնհայտորեն երևում է, որ վերը նշված սահմանափակումները կհամապատասխանվեն:

Լույսի տվիչներ. Մենք ընտրեցինք լույսի վրա հիմնված դիմադրիչներ (LDR), քանի որ դրանց դիմադրությունը արագորեն փոխվում է լույսի հետ, և LDR- ի լարումը կարելի է հեշտությամբ չափել `կիրառելով LDR պարունակող լարման բաժանարարի վրա մշտական լարում:

Սուր տվիչներ. Դրանք օգտագործվում են խոչընդոտներից խուսափելու համար: Սուր հեռավորության սենսորները էժան են և հեշտ օգտագործման համար, ինչը դրանք դարձնում է հանրաճանաչ ընտրություն օբյեկտների հայտնաբերման և ընդգրկման համար: Նրանք, որպես կանոն, ունեն թարմացման ավելի բարձր դրույքաչափեր և հայտնաբերման ավելի կարճ միջակայքեր, քան սոնարային տիրույթի որոնիչները: Շուկայում առկա են բազմաթիվ տարբեր մոդելներ ՝ տարբեր գործառնական տիրույթներով: Քանի որ դրանք օգտագործվում են այս նախագծում խոչընդոտներ հայտնաբերելու համար, մենք ընտրեցինք 10-80 սմ աշխատանքային տիրույթով մեկը:

Pumpրի պոմպ. Pumpրի պոմպը պարզ թեթև և ոչ շատ հզոր պոմպ է, որը համատեղելի է շարժիչների լարման տիրույթի հետ `երկուսի համար նույն սնունդը օգտագործելու համար: Գործարանը ջրով կերակրելու մեկ այլ լուծում էր ռոբոտից առանձնացված ջրի հիմքը, բայց ռոբոտի վրա ունենալը շատ ավելի պարզ է:

Հիգրոմետր. Հիգրոմետրը խոնավության տվիչ է, որը պետք է տեղադրվի գետնին: Դա անհրաժեշտ է, քանի որ ռոբոտը պետք է իմանա, թե երբ է կաթսան չորանում, որպեսզի ջուր ուղարկի դրան:

Քայլ 2. ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ

ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ
ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ
ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ
ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ
ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ
ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ
ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ
ՄԵԽԱՆԻԿԱԿԱՆ ԴԻIGԱՅՆ

Հիմնականում ռոբոտի դիզայնը բաղկացած է ուղղանկյուն տուփից, որի ներքևի մասում կան երեք անիվներ և վերևի բացվող կափարիչից: Գործարանը կտեղադրվի վերևում `ջրամբարով: Բույսի զամբյուղը տեղադրվում է բույսի ամանի ամրացման մեջ, որը պտուտակված է ռոբոտի վերին տախտակի վրա: Resրամբարը մի փոքր Tupperware է, որը քերծվել է ռոբոտի վերին տախտակի վրա, իսկ ջրի պոմպը նույնպես քերծվել է ջրամբարի ներքևի մասում, այնպես որ ամեն ինչ հեշտությամբ կարելի է հեռացնել Tupperware- ը ջրով լիցքավորելիս: Smallրամբարի կափարիչում փոքր անցք է կատարվում, քանի որ բույսերի կաթսա մտնող ջրի խողովակը և տուփի մեջ մտնող պոմպի սնունդը: Այսպիսով, արկղի վերին տախտակի վրա փոս է ստեղծվում, և հիգրոմետրի մալուխները նույնպես անցնում են այս անցքով:

Նախ, մենք ցանկանում էինք, որ ռոբոտը ունենար գրավիչ ձևավորում, այդ իսկ պատճառով որոշեցինք էլեկտրոնային մասը թաքցնել տուփի մեջ ՝ թողնելով գործարանի և ջրի սահմաններից դուրս: Սա կարևոր է, քանի որ բույսերը տան ձևավորման մի մասն են և չպետք է տեսողականորեն ազդեն տարածքի վրա: Տուփի բաղադրիչները հեշտությամբ հասանելի կլինեն վերևի կափարիչի միջոցով, իսկ կողային ծածկոցները կունենան անհրաժեշտ անցքեր, որպեսզի հեշտ լինի, օրինակ, միացնել ռոբոտը կամ Arduino- ն միացնել նոութբուքին, եթե ցանկանում ենք: նորից ծրագրելու համար:

Տուփի բաղադրիչներն են `Arduino- ն, շարժիչի վերահսկիչը, շարժիչները, LDR- ը, կույտերի ամրակները, տախտակը և ծխնիները: Arduino- ն տեղադրված է փոքր սյուների վրա, այնպես որ դրա հատակը վնասված չէ, իսկ շարժիչի վերահսկիչը տեղադրված է Arduino- ի վերևում: Շարժիչները պտուտակված են շարժիչի ամրացումներին, իսկ շարժիչների ամրացումներն այնուհետև պտուտակվում են տուփի ներքևի տախտակին: LDR- ն զոդվում է մի փոքրիկ կտորի վրա: Մինի անտառի տախտակները սոսնձված են այս տախտակի վրա, որպեսզի այն պտուտակեն ռոբոտի կողային երեսներին: Առջևում կա մեկ LDR, մեկը ձախ կողմում և մեկը աջ կողմում, որպեսզի ռոբոտը կարողանա իմանալ ամենաբարձր լույսի ուղղությունը: Կույտերի ամրակները քերծվում են տուփի ներքևի երեսին ՝ դրանք հեշտությամբ հեռացնելու և կույտերը փոխելու կամ լիցքավորելու համար: Այնուհետև տախտակը պտուտակվում է ներքևի տախտակին ՝ փոքր եռանկյունաձև սյուներով, որոնք ունեն հացաթխի անկյունի ձևի անցքեր ՝ այն ամրացնելու համար: Ի վերջո, ծխնիները պտուտակվում են հետևի և վերին երեսի վրա:

Առջևի երեսին երեք կտրուկ ուղիղ պտուտակվելու են, որպեսզի հնարավորինս լավ հայտնաբերեն և խուսափեն խոչընդոտներից:

Չնայած ֆիզիկական դիզայնը կարևոր է, մենք չենք կարող մոռանալ տեխնիկական մասի մասին, մենք կառուցում ենք ռոբոտ և այն պետք է գործնական լինի և հնարավորինս օպտիմալացնենք տարածքը: Սա ուղղանկյուն ձևի գնալու պատճառն է, դա լավագույն բաղադրիչն էր ՝ բոլոր բաղադրիչները դասավորելու համար:

Վերջապես, շարժման համար սարքը կունենա երեք անիվ. Դրանք ցուցադրվում են եռաստիճան շարժիչով, կոնֆիգուրացիայով, առջևի ղեկով և հետևի մեքենայով:

Քայլ 3. ՄԱՍՆԵՐԻ ԱՐՏԱԴՐՈԹՅՈՆ

ԱՐՏԱԴՐԱԿԱՆ ՄԱՍՆԵՐ
ԱՐՏԱԴՐԱԿԱՆ ՄԱՍՆԵՐ
ԱՐՏԱԴՐՈ ՄԱՍՆԵՐ
ԱՐՏԱԴՐՈ ՄԱՍՆԵՐ
ԱՐՏԱԴՐԱԿԱՆ ՄԱՍՆԵՐ
ԱՐՏԱԴՐԱԿԱՆ ՄԱՍՆԵՐ

Ռոբոտի ֆիզիկական տեսքը կարող է փոխվել `ելնելով ձեր հետաքրքրությունից: Տրամադրված են տեխնիկական գծագրեր, ինչը կարող է լավ հիմք հանդիսանալ սեփականը նախագծելիս:

Լազերային կտրված մասեր

Ռոբոտի պատյանը կազմող բոլոր վեց մասերը լազերային կտրված են: Դրա համար օգտագործվող նյութը վերամշակված փայտ է: Այս տուփը կարող է պատրաստվել նաև պլեքսիգլասից, որը մի փոքր ավելի թանկ է:

3D տպագիր մասեր

Երկու ստանդարտ անիվները, որոնք տեղադրված են ռոբոտի հետևի մասում, 3D տպագրվել են PLA- ում: Պատճառն այն է, որ անիվներ գտնելու միակ ճանապարհը, որը բավարարում էր բոլոր կարիքները (տեղավորվում էին DC շարժիչների մեջ, չափը, քաշը …), դա ինքնուրույն նախագծելն էր: Շարժիչի ամրացումը նույնպես բյուջետային պատճառներով 3D տպագրության ենթարկվեց: Այնուհետև բույսերի զամբյուղի հենարանը, Arduino- ի հենասյուները և հացատախտակին ամրացված անկյունները նույնպես 3D տպագրվեցին, որովհետև մեզ անհրաժեշտ էր մեր ռոբոտի որոշակի ձևի տեղադրում:

Քայլ 4: Էլեկտրոնիկա

ԷԼԵԿՏՐՈՆԻԿԱ
ԷԼԵԿՏՐՈՆԻԿԱ
ԷԼԵԿՏՐՈՆԻԿԱ
ԷԼԵԿՏՐՈՆԻԿԱ
ԷԼԵԿՏՐՈՆԻԿԱ
ԷԼԵԿՏՐՈՆԻԿԱ

Սուր տվիչներ. Սուր տվիչները ունեն երեք կապում: Դրանցից երկուսը սննդի համար են (Vcc և Ground), իսկ վերջինը ՝ չափված ազդանշանն է (Vo): Սնուցման համար մենք ունենք դրական լարում, որը կարող է լինել 4.5 -ից 5.5 Վ -ի միջև, այնպես որ մենք կօգտագործենք 5V- ն Arduino- ից: Vo- ն միացված կլինի Arduino- ի անալոգային կապերից մեկին:

Լույսի տվիչներ. Լույսի տվիչներին աշխատելու համար անհրաժեշտ է մի փոքր միացում: LDR- ն շարված է 900 կՕմ ռեզիստորով `լարման բաժանարար ստեղծելու համար: Հողը միացված է LDR- ին չմիացված դիմադրության քորոցին, իսկ Arduino- ի 5V- ը միացված է LDR- ի քորոցին, որը միացված չէ ռեզիստորին: Ռեզիստորի և միմյանց հետ կապված LDR- ի քորոցը միացված է Arduino- ի անալոգային կապին `այս լարումը չափելու համար: Այս լարումը կտատանվի 0 -ից 5 Վ -ի միջև ՝ 5 Վ -ով համապատասխանող լրիվ լույսին և մոտ զրոին `համապատասխան մթությանը: Այնուհետև ամբողջ շրջանը կփակցվի մի փոքրիկ տախտակի վրա, որը կարող է տեղավորվել ռոբոտի կողային տախտակներում:

Մարտկոցներ. Մարտկոցները պատրաստված են 4 կույտից ՝ 1.2 -ից 1.5 Վ լարման միջև, այնպես որ 4.8 -ից մինչև 6 Վ: Երկու կույտ պահողներ շարքի մեջ դնելով ՝ մենք ունենք 9,6 -ից 12 Վ լարման միջև:

Pumpրի պոմպ. Pumpրի պոմպն ունի նույն տեսակի միացում (հոսանքի վարդակ), ինչ Arduino- ի սնունդը: Առաջին քայլը կապը կտրելն ու մետաղալարն անջատելն է, որպեսզի մետաղալարն ունենա գետնին և մետաղալարը `դրական լարման համար: Քանի որ մենք ցանկանում ենք կառավարել պոմպը, այն շարքի կդնենք ընթացիկ կառավարելի տրանզիստորով, որն օգտագործվում է որպես անջատիչ: Այնուհետեւ պոմպին զուգահեռ տեղադրվելու է դիոդ `հետընթաց հոսքերը կանխելու համար: Տրանզիստորի ստորին ոտքը միացված է Arduino/մարտկոցների ընդհանուր գետնին, միջինը `Arduino- ի թվային կապին` 1kOhm ռեզիստորով `անընդմեջ Arduino- ի լարումը հոսանքի վերածելու համար, իսկ վերին մասը` սև մալուխի: պոմպը: Այնուհետեւ պոմպի կարմիր մալուխը միացված է մարտկոցների դրական լարման:

Շարժիչներ և վահան. Վահանը պետք է զոդել, այն առաքվում է առանց զոդման: Երբ դա արվի, այն տեղադրվում է Arduino- ի վրա `վահանի բոլոր գլուխները սեղմելով Arduino- ի կապում: Վահանը սնուցվելու է մարտկոցներով և այնուհետև սնուցելու է Arduino- ն, եթե թռիչքը միացված է (նկարում նարնջագույն կապում): Carefulգույշ եղեք, որ թռիչքը մի դրվի, երբ Arduino- ն սնուցվում է վահանից այլ միջոցի միջոցով, քանի որ այդ ժամանակ Arduino- ն կաշխատի վահանը, և այն կարող է այրել կապը:

Հացաթուղթ. Այժմ բոլոր բաղադրիչները կպչվեն հացահատիկի վրա: Մեկ կույտի սեփականատիրոջ ՝ Arduino- ի, շարժիչի վերահսկիչի և բոլոր տվիչների հիմքը կպչվեն մի շարքում (մեր տախտակամածի տողերի վրա նույն ներուժն է): Այնուհետև երկրորդ կույտի սև մալուխը կպչվի նույն շարքում, ինչ առաջին կույտի կրիչի կարմիրը, որի հիմքն արդեն զոդված է: Այնուհետև մալուխը կպցվի նույն շարքի վրա, ինչպես երկրորդ կույտի կրիչի կարմիր մալուխը, որը համապատասխանում է երկու շարքին: Այս մալուխը միացված կլինի անջատիչի մի ծայրին, իսկ մյուս ծայրը `մի շարանի վրա, որը կպցված է տախտակի վրա` ազատ շարքի վրա: Պոմպի կարմիր մալուխը և շարժիչի վերահսկիչի սնունդը կպչվեն այս շարքին (անջատիչը ներկայացված չէ նկարում): Այնուհետև Arduino- ի 5V- ը կզոդվի մեկ այլ շարքի վրա և յուրաքանչյուր սենսորի սնուցման լարումը կպչվի նույն շարքում: Փորձեք, երբ հնարավոր է, մի թռիչք կպցնել տախտակի վրա և մի ցատկիչի բաղադրիչի վրա, որպեսզի դրանք հեշտությամբ անջատեք, և էլեկտրական բաղադրիչների հավաքումը ավելի հեշտ կլինի:

Քայլ 5: PROՐԱԳՐՈԹՅՈՆ

PROՐԱԳՐԱՎՈՐՈՄ
PROՐԱԳՐԱՎՈՐՈՄ

Flowրագրի գծապատկեր

Programրագիրը բավականին պարզ է պահպանվել ՝ օգտագործելով պետական փոփոխականների հասկացությունը: Ինչպես տեսնում եք հոսքի գծապատկերում, այս վիճակները նաև առաջ են բերում առաջնահերթության հասկացություն: Ռոբոտը կստուգի պայմանները հետևյալ կարգով.

1) Պետություն 2 -ում. Արդյո՞ք բույսը բավարար ջուր ունի խոնավության_մակարդակ գործառույթով: Եթե հիգրոմետրով չափվող խոնավության մակարդակը 500 -ից ցածր է, ապա պոմպը կգործի մինչև խոնավության մակարդակը 500 -ից բարձր լինի: Երբ գործարանի բավարար ջուր լինի, ռոբոտը անցնում է 3 -րդ վիճակին:

2) 3 -րդ վիճակում. Գտեք առավելագույն լույսով ուղղությունը: Այս վիճակում բույսը բավականաչափ ջուր ունի և պետք է առավելագույն լույսով հետևի ուղղությանը ՝ միաժամանակ խուսափելով խոչընդոտներից: Light_direction գործառույթը տալիս է երեք լույսի տվիչների ուղղությունը, որն առավելագույն լույս է ստանում: Ռոբոտը այնուհետև կաշխատի շարժիչներով, որպեսզի հետևի այդ ուղղությանը follow_light գործառույթով: Եթե լույսի մակարդակը որոշակի շեմից բարձր է (բավարար_լույս), ռոբոտը դադարում է հետևել լույսին, քանի որ այն բավականաչափ ունի այս դիրքում (stop_motors): Լույսի հետևից 15 սմ -ից ցածր խոչընդոտներից խուսափելու համար իրականացվել է խոչընդոտի ուղղությունը վերադարձնելու գործառական խոչընդոտ: Խոչընդոտները պատշաճ կերպով խուսափելու համար ներդրվել է խուսափել_բացառիկ գործառույթը: Այս գործառույթը գործարկում է շարժիչը ՝ իմանալով, թե որտեղ է խոչընդոտը:

Քայլ 6. Հավաքում

ASՈSՈՎ
ASՈSՈՎ
ASՈSՈՎ
ASՈSՈՎ
ASՈSՈՎ
ASՈSՈՎ

Այս ռոբոտի հավաքումն իրականում բավականին հեշտ է: Բաղադրիչների մեծ մասը պտուտակված են տուփի վրա `համոզվելու համար, որ նրանք պահում են իրենց տեղը: Այնուհետեւ կույտերի պահողը, ջրի ջրամբարը եւ պոմպը քերծված են:

Քայլ 7: ՓՈՐՁՆԵՐ

Սովորաբար, ռոբոտ կառուցելիս ամեն ինչ հարթ չի ընթանում: Կատարյալ արդյունք ստանալու համար անհրաժեշտ են բազմաթիվ թեստեր ՝ հետևյալ փոփոխություններով: Ահա գործարանային ռոբոտի գործընթացի ցուցադրություն:

Առաջին քայլը ռոբոտին շարժիչներով, Arduino- ով, շարժիչով վերահսկիչով և լուսային տվիչներով նախատիպավորվող տախտակով տեղադրելն էր: Ռոբոտը պարզապես գնում է այն ուղղությամբ, որտեղ չափել է առավելագույն լույսը: Որոշվել է շեմը, որպեսզի ռոբոտը կանգնեցնի բավարար լույս ունենալու դեպքում: Երբ ռոբոտը սահում էր հատակին, մենք անիվների վրա ավելացրեցինք հղկող թուղթ `անվադողը մոդելավորելու համար:

Այնուհետեւ կառույցին ավելացվել են սուր տվիչները, որոնք փորձում են խուսափել խոչընդոտներից: Սկզբում երկու սենսորներ տեղադրվեցին առջևի մասում, իսկ երրորդը `մեջտեղում, քանի որ սուր սենսորները հայտնաբերման շատ սահմանափակ անկյուն ունեն: Ի վերջո, մենք ունենք երկու սենսոր ռոբոտի ծայրամասերում, որոնք հայտնաբերում են ձախ կամ աջ խոչընդոտները և մեկը մեջտեղում `որոշելու, թե արդյոք առջևում խոչընդոտ կա: Խոչընդոտները հայտնաբերվում են, երբ կտրվածքի լարումը բարձրանում է ռոբոտից 15 սմ հեռավորության համապատասխանող որոշակի արժեքից: Երբ խոչընդոտը կողքի է, ռոբոտը խուսափում է դրանից, և երբ խոչընդոտը մեջտեղում է, ռոբոտը կանգ է առնում: Խնդրում ենք նկատի ունենալ, որ կտրուկներից ներքև գտնվող խոչընդոտները չեն հայտնաբերվում, ուստի խոչընդոտները պետք է որոշակի բարձրություն ունենան, որպեսզի խուսափեն:

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

Վերջապես ամեն ինչ միասին փորձարկվեց: Բույսը նախ ստուգում է, արդյոք ունի բավարար ջուր, այնուհետև սկսում է հետևել լույսին ՝ միաժամանակ խուսափելով խոչընդոտներից:

Քայլ 8: ԵINՐԱՓԱԿԻՉ ԹԵՍՏ

Ահա տեսանյութեր, թե ինչպես է վերջապես աշխատում ռոբոտը: Հուսով եմ, որ դուք վայելեք այն:

Քայլ 9. Ի՞նչ ենք սովորել այս նախագծի հետ:

Չնայած այս նախագծի ընդհանուր արձագանքը հիանալի է, քանի որ մենք շատ բան ենք սովորել, սակայն վերջնաժամկետների պատճառով բավականին շեշտված ենք եղել այն կառուցելիս:

Առաջացած խնդիրները

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

Unfortunatelyավոք, ոչ բոլոր խնդիրները լուծվեցին: Մեր առաջին գաղափարն էր համատեղել ընտանի կենդանիների և բույսերի բնութագրերը ՝ ստանալով յուրաքանչյուրից լավագույնը: Բույսերի համար մենք կարող էինք դա անել, այս ռոբոտի միջոցով մենք կկարողանանք ունենալ մի տուն, որը զարդարում է մեր տները, և մենք ստիպված չենք լինի հոգ տանել դրա մասին: Բայց ընտանի կենդանիների համար մենք չգտանք նրանց ստեղծած ընկերության մոդելավորման եղանակ: Մենք մտածեցինք տարբեր եղանակների մասին, որպեսզի այն հետևի մարդկանց, և սկսեցինք իրականացնել մեկը, բայց ժամանակ չունեինք այն ավարտելու համար:

Հետագա բարելավումներ

Չնայած մենք շատ կուզենայինք ստանալ այն ամենը, ինչ ցանկանում էինք, այս նախագծով սովորելը զարմանալի էր: Հնարավոր է, որ ավելի շատ ժամանակ ունենանք ավելի լավ ռոբոտ ձեռք բերելու համար: Այստեղ մենք առաջարկում ենք մեր ռոբոտը բարելավելու որոշ գաղափարներ, որոնք գուցե ձեզանից ոմանք ցանկանում են փորձել.

- Տարբեր գույների (կարմիր, կանաչ,…) լուսարձակների ավելացում, որն օգտագործողին ասում է, թե երբ պետք է լիցքավորվի ռոբոտը: Մարտկոցի չափումը կարող է կատարվել առավելագույն լարման լարման բաժանարարով, որն ունի 5 Վ առավելագույն լարում, երբ մարտկոցը լիովին լիցքավորված է, որպեսզի այդ լարումը չափի Arduino- ով: Այնուհետեւ համապատասխան led- ը միացված է:

- sensorրի տվիչի ավելացում, որն օգտագործողին ասում է, թե երբ պետք է լցվի ջրամբարը (ջրի բարձրության տվիչ):

- Ինտերֆեյսի ստեղծում, որպեսզի ռոբոտը կարողանա հաղորդագրություններ ուղարկել օգտվողին:

Եվ ակնհայտ է, որ մենք չենք կարող մոռանալ այն նպատակի մասին, որը մարդկանց կհետևի: Կենդանիներն այն բաներից են, որ մարդիկ ամենից շատ են սիրում, և հաճելի կլիներ, եթե ինչ -որ մեկը հասներ, որ ռոբոտը նմանակերտի այս վարքագիծը: Դա հեշտացնելու համար մենք այստեղ կտրամադրենք այն ամենը, ինչ ունենք:

Քայլ 10: Ինչպե՞ս ստիպել ռոբոտին հետևել մարդկանց:

Image
Image
Ինչպե՞ս ստիպել ռոբոտին հետևել մարդկանց
Ինչպե՞ս ստիպել ռոբոտին հետևել մարդկանց
Ինչպե՞ս ստիպել ռոբոտին հետևել մարդկանց
Ինչպե՞ս ստիպել ռոբոտին հետևել մարդկանց

Մենք պարզեցինք, որ դա անելու լավագույն միջոցը կլինի օգտագործել երեք ուլտրաձայնային տվիչ, մեկ արտանետիչ և երկու ընդունիչ:

Հաղորդիչ

Հաղորդիչի համար մենք կցանկանայինք ունենալ 50% աշխատանքային ցիկլ: Դա անելու համար դուք պետք է օգտագործեք 555 ժամաչափ, մենք օգտագործել էինք NE555N- ը: Նկարում կարող եք տեսնել, թե ինչպես պետք է կառուցվի շրջանը: Բայց դուք ստիպված կլինեք լրացուցիչ կոնդենսատոր ավելացնել 3 ելքի վրա, օրինակ ՝ 1 μF: Ռեզիստորները և կոնդենսատորները հաշվարկվում են հետևյալ բանաձևերով. (Նկարներ 1 և 2)

Քանի որ 50% աշխատանքային ցիկլը ցանկալի է, t1 և t2 հավասար կլինեն միմյանց: Այսպիսով, 40 կՀց հաղորդիչով t1 և t2 հավասար կլինեն 1.25*10-5 վ: Երբ վերցնում եք C1 = C2 = 1 nF, R1 և R2 կարելի է հաշվարկել: Մենք վերցրեցինք R1 = 15 kΩ և R2 = 6.8 kΩ, համոզվեք, որ R1> 2R2!

Երբ մենք դա ստուգեցինք օսկիլոսկոպի վրա, մենք ստացանք հետևյալ ազդանշանը: Սանդղակը 5 μs/div է, ուստի իրականում հաճախականությունը կլինի մոտ 43 կՀց: (Նկար 3)

Ընդունիչ

Ստացողի մուտքային ազդանշանը չափազանց ցածր կլինի Arduino- ի ճշգրիտ մշակման համար, ուստի մուտքային ազդանշանը պետք է ուժեղացնել: Դա կկատարվի շրջադարձային ուժեղացուցիչ պատրաստելու միջոցով:

Օպամպի համար մենք օգտագործեցինք LM318N, որը մենք սնուցում էինք Arduino- ից 0 Վ և 5 Վ լարման միջոցով: Դա անելու համար մենք ստիպված էինք բարձրացնել լարումը ազդանշանի շուրջ, որը տատանվում է: Այս դեպքում տրամաբանական կլինի այն բարձրացնել մինչև 2,5 Վ: Քանի որ մատակարարման լարումը սիմետրիկ չէ, մենք նաև պետք է կոնդենսատոր տեղադրենք դիմադրիչի առջև: Այս կերպ մենք պատրաստել ենք նաև բարձր անցման զտիչ: Մեր օգտագործած արժեքներով, հաճախականությունը պետք է լինի 23 կՀց -ից բարձր: Երբ մենք օգտագործում էինք A = 56 ուժեղացում, ազդանշանը հագեցած էր դառնում, ինչը լավ չէ, ուստի դրա փոխարեն օգտագործում էինք A = 18: Սա դեռ բավական կլինի: (Նկար 4)

Այժմ, երբ մենք ունենք ուժեղացված սինուսային ալիք, մեզ անհրաժեշտ է մշտական արժեք, որպեսզի Arduino- ն կարողանա չափել այն: Դա անելու միջոց է գագաթնակետային դետեկտորի միացում կազմել: Այս կերպ, մենք կարող ենք տեսնել, թե արդյոք հաղորդիչն ավելի հեռու է ստացողի՞ց, թե՞ այլ անկյան տակ, քան նախկինում, ունենալով կայուն ազդանշան, որը համաչափ է ստացված ազդանշանի ինտենսիվությանը: Քանի որ մեզ անհրաժեշտ է ճշգրիտ գագաթնակետային դետեկտոր, մենք դիոդ ենք դնում ՝ 1N4148, լարման հետևորդի մեջ: Դրանով մենք չունենք դիոդի կորուստ, և մենք ստեղծեցինք իդեալական դիոդ: Օպամպի համար մենք օգտագործում էինք նույնը, ինչ սխեմայի առաջին մասում և նույն սնուցման աղբյուրով `0 Վ և 5 Վ:

Parallelուգահեռ կոնդենսատորը պետք է լինի բարձր արժեք, այնպես որ այն շատ դանդաղ կթափվի, և մենք դեռ տեսնում ենք նույն գագաթնակետային արժեքի տեսակը, ինչ իրական արժեքը: Ռեզիստորը նույնպես զուգահեռաբար կտեղադրվի և շատ ցածր չի լինի, քանի որ հակառակ դեպքում արտանետումը ավելի մեծ կլինի: Այս դեպքում բավական է 1,5 μF և 56 kΩ: (Նկար 5)

Նկարում երեւում է ընդհանուր միացումը: Որտեղ դուրս է ելքը, որը մտնելու է Arduino: Իսկ 40 կՀց հաճախականությամբ AC ազդանշանը կլինի ընդունիչ, որտեղ դրա մյուս ծայրը միացված կլինի գետնին: (Նկար 6)

Ինչպես արդեն ասել էինք, մենք չէինք կարող սենսորները ինտեգրել ռոբոտի մեջ: Բայց մենք տրամադրում ենք թեստերի տեսանյութերը `ցույց տալու, որ սխեման աշխատում է: Առաջին տեսանյութում կարելի է տեսնել ուժեղացումը (առաջին OpAmp- ից հետո): Օսլիլոսկոպում արդեն կա 2,5 Վ օֆսեթ, այնպես որ ազդանշանը գտնվում է մեջտեղում, ամպլիտուդը տատանվում է, երբ սենսորները փոխում են ուղղությունը: Երբ երկու տվիչները կանգնած են միմյանց դեմ, սինուսի ամպլիտուդը կլինի ավելի բարձր, քան երբ սենսորները երկուսի միջև ավելի մեծ անկյուն կամ հեռավորություն ունեն: Երկրորդ տեսանյութի վրա (սխեմայի ելքը) կարելի է տեսնել ուղղված ազդանշանը: Կրկին, ընդհանուր լարումը կլինի ավելի բարձր, երբ սենսորները կանգնած են միմյանց դեմ, քան երբ դրանք չեն: Ազդանշանը ամբողջովին ուղիղ չէ կոնդենսատորի լիցքաթափման և վոլտերի/բաժանման պատճառով: Մենք կարողացանք չափել անընդհատ նվազող ազդանշանը, երբ տվիչների միջև եղած անկյունը կամ հեռավորությունը այլևս օպտիմալ չէին:

Գաղափարն այն էր, որ ռոբոտը ստանա ընդունիչ, իսկ օգտագործողը `հաղորդիչ: Ռոբոտը կարող էր ինքն իրեն շրջել ՝ հայտնաբերելու, թե որ ուղղությամբ է ինտենսիվությունը ամենաբարձրը և կարող է գնալ այդ ուղղությամբ: Ավելի լավ միջոց կարող է լինել ունենալ երկու ընդունիչ և հետևել ամենաբարձր լարումը հայտնաբերող ստացողին, և նույնիսկ ավելի լավ միջոց է տեղադրել երեք ընդունիչ և տեղադրել դրանք LDR- ի նման ՝ իմանալու, թե որ ուղղություններով է արձակվում օգտագործողի ազդանշանը (ուղիղ, ձախ կամ աջ).

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