Տնական ռոբոտ. Փոքր տնական ռոբոտ. Ինչ կարելի է դաստիարակել այս հավաքածուով

Ռոբոտ պատրաստեքՇատ պարզ Տեսնենք, թե ինչ է պահանջվում ստեղծել ռոբոտտանը՝ ռոբոտաշինության հիմունքները հասկանալու համար:

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

Ներածություն

Այսպիսով. Ի՞նչ է ռոբոտը: Շատ դեպքերում դա այդպես է ավտոմատ սարքորը արձագանքում է ցանկացած գործողության միջավայրը... Ռոբոտները կարող են կառավարվել մարդկանց կողմից կամ կատարել նախապես ծրագրավորված գործողություններ: Սովորաբար, ռոբոտը հագեցած է տարբեր սենսորներով (հեռավորություն, պտտման անկյուն, արագացում), տեսախցիկներով, մանիպուլյատորներով: Ռոբոտի էլեկտրոնային մասը բաղկացած է միկրոկառավարիչից (MC)՝ միկրոսխեմա, որը պարունակում է պրոցեսոր, ժամացույցի գեներատոր, տարբեր ծայրամասային սարքեր, պատահական մուտք և մշտական ​​հիշողություն։ Աշխարհում կա մեծ գումարմի շարք միկրոկոնտրոլերների համար տարբեր տարածքներհավելվածներ և դրանց հիման վրա կարող եք հավաքել հզոր ռոբոտներ: Համար սիրողական շենքեր AVR միկրոկոնտրոլերները լայնորեն կիրառվում են: Դրանք այսօր ամենահասանելին են և համացանցում կարող եք գտնել բազմաթիվ օրինակներ՝ հիմնված այս MK-ի վրա: Միկրոկառավարիչների հետ աշխատելու համար դուք պետք է կարողանաք ծրագրավորել մոնտաժում կամ C-ով և ունենալ թվային և անալոգային էլեկտրոնիկայի տարրական գիտելիքներ: Մենք կօգտագործենք C-ն մեր նախագծում: MK-ի համար ծրագրավորումը շատ չի տարբերվում համակարգչի վրա ծրագրավորումից, լեզվի շարահյուսությունը նույնն է, ֆունկցիաների մեծ մասը գործնականում նույնն է, իսկ նորերը բավականին հեշտ են սովորել և հարմար օգտագործել:

Այն, ինչ մեզ պետք է

Սկզբից մեր ռոբոտը կկարողանա պարզապես շրջանցել խոչընդոտները, այսինքն՝ կրկնել բնության մեջ կենդանիների մեծ մասի բնականոն վարքը: Այն ամենը, ինչ մեզ անհրաժեշտ է նման ռոբոտ ստեղծելու համար, կարելի է գտնել ռադիո խանութներում: Մենք կորոշենք, թե ինչպես կշարժվի մեր ռոբոտը։ Ամենահաջողը, կարծում եմ, տանկերում օգտագործվող հետքերն են, սա ամենահարմար լուծումն է, որովհետև հետքերը մեքենայի անիվներից ավելի մեծ կարողություն ունեն և ավելի հարմար են կառավարել (շրջել, այն բավական է հետքերը տարբեր ուղղություններով պտտելու համար): Հետևաբար, ձեզ հարկավոր կլինի ցանկացած խաղալիքի բաք՝ միմյանցից անկախ պտտվող հետքերով, դուք կարող եք սա գնել ցանկացած խաղալիքների խանութից ողջամիտ գնով: Այս տանկից ձեզ հարկավոր է միայն հետքերով հարթակ և փոխանցումատուփով շարժիչներ, մնացածը կարող եք ապահով ետ պտուտակել և դեն նետել: Մեզ նաև միկրոկոնտրոլեր է պետք, իմ ընտրությունը ընկավ ATmega16-ի վրա՝ այն ունի բավականաչափ պորտեր սենսորների և ծայրամասային սարքերի միացման համար, և ընդհանուր առմամբ դա բավականին հարմար է: Անհրաժեշտ է նաև գնել ռադիոյի մի քանի բաղադրիչներ, զոդման երկաթ, մուլտիմետր:

MK-ով տախտակի պատրաստում

Մեր դեպքում միկրոկոնտրոլերը կկատարի ուղեղի գործառույթները, բայց մենք կսկսենք ոչ թե դրանից, այլ ռոբոտի ուղեղի սնուցմամբ։ Ճիշտ սնուցում- առողջության երաշխիքը, ուստի մենք կսկսենք նրանից, թե ինչպես ճիշտ կերակրել մեր ռոբոտին, քանի որ դա սովորաբար սխալ է թույլ տալիս սկսնակ ռոբոտ շինարարները: Իսկ որպեսզի մեր ռոբոտը նորմալ աշխատի, անհրաժեշտ է օգտագործել լարման կայունացուցիչ։ Ես նախընտրում եմ L7805 միկրոսխեման. այն նախատեսված է 5 Վ կայուն լարման ելքի վրա ապահովելու համար, ինչը մեր միկրոկոնտրոլերի կարիքն ունի: Բայց քանի որ այս միկրոսխեմայի վրա լարման անկումը մոտ 2,5 Վ է, դրան պետք է մատակարարվի առնվազն 7,5 Վ: Այս կայունացուցիչի հետ միասին օգտագործվում են էլեկտրոլիտիկ կոնդենսատորներ լարման ալիքները հարթելու համար, և բևեռականության հակադարձումից պաշտպանելու համար շղթայում պետք է ներառվի դիոդ:

Այժմ մենք կարող ենք լուծել մեր միկրոկառավարիչը: MK-ի պատյանը DIP է (այսպես ավելի հարմար է զոդել) և ունի քառասուն քորոց։ Ինքնաթիռում կա ADC, PWM, USART և շատ ավելին, որոնք մենք առայժմ չենք օգտագործի: Դիտարկենք մի քանիսը կարևոր հանգույցներ... RESET քորոցը (MK-ի 9-րդ ոտքը) R1 ռեզիստորի կողմից քաշվում է դեպի սնուցման աղբյուրի «գումարածը». դա պետք է արվի: Հակառակ դեպքում, ձեր MK-ն կարող է ակամա վերակայվել կամ, այլ կերպ ասած, խելագարված լինել: Ցանկալի միջոց է, բայց ոչ պարտադիր, RESET-ը C1 կերամիկական կոնդենսատորի միջոցով գետնին միացնելը: Դիագրամում դուք կարող եք տեսնել նաև 1000 uF էլեկտրոլիտ, այն փրկում է լարման անկումից, երբ շարժիչները աշխատում են, ինչը նույնպես բարենպաստ ազդեցություն կունենա միկրոկառավարիչի աշխատանքի վրա: X1 քվարց բյուրեղը և C2, C3 կոնդենսատորները պետք է տեղադրվեն հնարավորինս մոտ XTAL1 և XTAL2 կապանքներին:

Ես չեմ խոսի այն մասին, թե ինչպես վառել MK-ն, քանի որ դրա մասին կարող եք կարդալ ինտերնետում: Ծրագիրը գրելու ենք C-ով, ես որպես ծրագրավորման միջավայր ընտրել եմ CodeVisionAVR-ը: Սա բավականին հարմար միջավայր է և օգտակար սկսնակների համար, քանի որ այն ունի ներկառուցված մոգ՝ կոդ ստեղծելու համար։

Շարժիչի կառավարում

Մեր ռոբոտի ոչ պակաս կարևոր բաղադրիչը շարժիչի շարժիչն է, որը մեզ համար հեշտացնում է այն կառավարելը: Երբեք և ոչ մի դեպքում չպետք է շարժիչները միացնեք անմիջապես MK-ին: Ընդհանուր առմամբ, հզոր բեռները չեն կարող կառավարվել անմիջապես միկրոկառավարիչից, հակառակ դեպքում այն ​​կվառվի: Օգտագործեք առանցքային տրանզիստորներ: Մեր գործի համար կա հատուկ միկրոշրջան՝ L293D: Նման պարզ նախագծերում միշտ փորձեք օգտագործել այս միկրոսխեման «D» ինդեքսով, քանի որ այն ունի ներկառուցված դիոդներ՝ գերբեռնվածությունից պաշտպանվելու համար: Այս միկրոսխեման շատ հեշտ է գործել և հեշտությամբ կարելի է ձեռք բերել ռադիոյի խանութներից: Այն հասանելի է երկու DIP և SOIC փաթեթներով: Մենք կօգտագործենք DIP փաթեթ՝ տախտակի տեղադրման հեշտության պատճառով: L293D-ն ունի առանձին սնուցում շարժիչների և տրամաբանության համար։ Հետևաբար, միկրոսխեման ինքնին կսնուցվի կայունացուցիչից (VSS մուտք), իսկ շարժիչները անմիջապես մարտկոցներից (VS մուտք): L293D-ը կարող է դիմակայել 600 մԱ բեռի մեկ ալիքի վրա, և այն ունի այս ալիքներից երկուսը, այսինքն՝ երկու շարժիչ կարող է միացված լինել մեկ միկրոսխեմային: Բայց անվտանգ խաղալու համար մենք կհամատեղենք ալիքները, իսկ հետո յուրաքանչյուր շարժիչի համար մեզ անհրաժեշտ է մեկ միկրոն։ Սրանից հետևում է, որ L293D-ը կկարողանա դիմակայել 1,2 Ա-ին: Դրան հասնելու համար հարկավոր է միավորել միկրայի ոտքերը, ինչպես ցույց է տրված դիագրամում: Միկրոշրջանն աշխատում է հետևյալ կերպ. երբ տրամաբանական «0» կիրառվում է IN1 և IN2, իսկ տրամաբանական միավորը IN3 և IN4, շարժիչը պտտվում է մեկ ուղղությամբ, և եթե ազդանշանները շրջված են, ապա կիրառվում է տրամաբանական զրո, ապա շարժիչը կսկսի պտտվել մյուս ուղղությամբ: EN1 և EN2 քորոցները պատասխանատու են յուրաքանչյուր ալիքի միացման համար: Մենք դրանք միացնում ենք և միացնում ենք կայունացուցիչից էլեկտրասնուցման «պլյուսին»: Քանի որ միկրոսխեման տաքանում է շահագործման ընթացքում, և ռադիատորների տեղադրումը խնդրահարույց է այս տեսակի գործի համար, ջերմության արտանետումն ապահովվում է GND ոտքերով. ավելի լավ է դրանք զոդել լայն շփման տարածքում: Սա այն ամենն է, ինչ դուք պետք է իմանաք շարժիչի շարժիչների մասին առաջին անգամ:

Խոչընդոտի սենսորներ

Որպեսզի մեր ռոբոտը կարողանա նավարկել և չբախվել ամեն ինչի մեջ, մենք կտեղադրենք երկուսը ինֆրակարմիր սենսոր... Ամենապարզ սենսորը բաղկացած է IR դիոդից, որն արձակում է ինֆրակարմիր սպեկտրում, և ֆոտոտրանզիստորից, որը կստանա ազդանշան IR դիոդից։ Սկզբունքը հետևյալն է՝ երբ սենսորի դիմաց որևէ խոչընդոտ չկա, IR ճառագայթները չեն հարվածում ֆոտոտրանզիստորին և այն չի բացվում։ Եթե ​​սենսորի առջև խոչընդոտ կա, ապա դրանից ստացված ճառագայթները արտացոլվում են և ընկնում տրանզիստորի վրա. այն բացվում է, և հոսանքը սկսում է հոսել: Նման սենսորների թերությունն այն է, որ նրանք կարող են տարբեր կերպ արձագանքել տարբեր մակերեսներև պաշտպանված չեն միջամտությունից՝ այլ սարքերի կողմնակի ազդանշաններից, սենսորը, պատահաբար, կարող է աշխատել: Ազդանշանի մոդուլյացիան կարող է պաշտպանել միջամտությունից, բայց առայժմ մենք չենք անհանգստանա դրանով: Սկզբի համար բավական է։


Ռոբոտի որոնվածը

Ռոբոտը վերակենդանացնելու համար հարկավոր է դրա համար որոնվածը գրել, այսինքն՝ ծրագիր, որը կվերցնի սենսորներից ընթերցումներ և կկառավարի շարժիչները։ Իմ ծրագիրը ամենապարզն է, այն չի պարունակում բարդ կառուցվածքներև բոլորը կհասկանան. Հաջորդ երկու տողերը ներառում են վերնագրի ֆայլեր մեր միկրոկոնտրոլերի համար և ուշացումների ձևավորման հրամաններ.

#ներառում
#ներառում

Հետևյալ տողերը պայմանական են, քանի որ PORTC արժեքները կախված են նրանից, թե ինչպես եք միացրել շարժիչի վարորդը ձեր միկրոկարգավորիչին.

PORTC.0 = 1; PORTC.1 = 0; PORTC.2 = 1; PORTC.3 = 0; 0xFF արժեքը նշանակում է, որ ելքը կլինի գրանցամատյան: «1», իսկ 0x00 - տեղեկամատյան: «0». Հետևյալ կոնստրուկցիայի միջոցով մենք ստուգում ենք՝ կա արդյոք խոչընդոտ ռոբոտի առջև և որ կողմում է այն՝ եթե (! (PINB & (1)<

Եթե ​​IR դիոդի լույսը հարվածում է ֆոտոտրանզիստորին, ապա միկրոկոնտրոլերի ոտքի վրա տեղադրվում է գերան: «0» և ռոբոտը սկսում է հետ շարժվել՝ արգելքից հեռու քշելու համար, այնուհետև շրջվում է, որպեսզի նորից չբախվի խոչընդոտին և նորից առաջ է գնում։ Քանի որ մենք ունենք երկու սենսոր, մենք երկու անգամ ստուգում ենք խոչընդոտի առկայությունը՝ աջ և ձախ, և հետևաբար կարող ենք պարզել, թե որ կողմից է խոչընդոտը: «delay_ms (1000)» հրամանը ցույց է տալիս, որ հաջորդ հրամանի կատարումը կպահանջի մեկ վայրկյան:

Եզրակացություն

Ես լուսաբանել եմ այն ​​ասպեկտների մեծ մասը, որոնք կօգնեն ձեզ ստեղծել ձեր առաջին ռոբոտը: Սակայն ռոբոտաշինությունն այսքանով չի ավարտվում: Եթե ​​դուք կառուցեք այս ռոբոտը, ապա դրա ընդլայնման համար շատ հնարավորություններ կունենաք։ Դուք կարող եք բարելավել ռոբոտի ալգորիթմը, օրինակ՝ ինչ անել, եթե խոչընդոտը ոչ թե ինչ-որ կողմից է, այլ անմիջապես ռոբոտի դիմաց: Չի վնասում նաև կոդավորիչ տեղադրելը՝ պարզ սարք, որը կօգնի ձեզ ճշգրիտ տեղավորել և իմանալ ձեր ռոբոտի գտնվելու վայրը տիեզերքում: Պարզության համար հնարավոր է տեղադրել գունավոր կամ մոնոխրոմ էկրան, որը կարող է ցույց տալ օգտակար տեղեկատվություն՝ մարտկոցի լիցքավորման մակարդակը, հեռավորությունը դեպի խոչընդոտ, վրիպազերծման տարբեր տեղեկություններ: Սենսորների կատարելագործումը նույնպես չի տուժի՝ սովորական ֆոտոտրանզիստորների փոխարեն տեղադրել TSOP (դրանք IR ընդունիչներ են, որոնք ընկալում են միայն որոշակի հաճախականության ազդանշան): Ի լրումն ինֆրակարմիր սենսորների, կան ուլտրաձայնային, դրանք ավելի թանկ են, և դրանք նույնպես առանց թերությունների չեն, բայց վերջերս դրանք դառնում են ժողովրդականություն ռոբոտաշինության ինժեներների շրջանում: Որպեսզի ռոբոտը կարողանա արձագանքել ձայնին, լավ կլինի տեղադրել ուժեղացված խոսափողներ։ Բայց իսկապես հետաքրքիրը, կարծում եմ, տեսախցիկի տեղադրումն ու ծրագրավորումն է մեքենայական տեսողության հիման վրա։ Կա հատուկ OpenCV գրադարանների հավաքածու, որոնցով կարող եք ծրագրավորել դեմքի ճանաչում, շարժում գունավոր փարոսներով և շատ այլ հետաքրքիր բաներ: Ամեն ինչ կախված է միայն ձեր երևակայությունից և հմտություններից:

Բաղադրիչների ցանկ.

    ATmega16-ը DIP-40 փաթեթում>

    L7805 TO-220 փաթեթում

    L293D DIP-16 փաթեթում х2 հատ.

    0,25 Վտ ռեզիստորներ անվանական արժեքներով՝ 10 կՕմ x1 հատ, 220 Օմ x4 հատ։

    կերամիկական կոնդենսատորներ՝ 0.1 μF, 1 μF, 22 pF

    էլեկտրոլիտիկ կոնդենսատորներ՝ 1000 uF x 16 V, 220 uF x 16V x 2 հատ:

    դիոդ 1N4001 կամ 1N4004

    բյուրեղային ռեզոնատոր 16 ՄՀց հաճախականությամբ

    IR դիոդներ. ցանկացած երկուսը կանեն:

    ֆոտոտրանզիստորներ, նույնպես ցանկացած, բայց արձագանքում են միայն ինֆրակարմիր ճառագայթների ալիքի երկարությանը

Որոնվածի կոդը.

/ **************************************************** ** Որոնվածը ռոբոտի MK տիպի համար՝ ATmega16 Ժամացույցի հաճախականությունը՝ 16.000000 ՄՀց Եթե դուք ունեք այլ քվարց հաճախականություն, դուք պետք է սա նշեք շրջակա միջավայրի կարգավորումներում՝ Project -> Configure -> Tab «C Compiler» ****** ********************************************** / #ներառում #ներառում void main (void) (// Տեղադրեք միացքներ մուտքի համար // Այս պորտերի միջոցով մենք ազդանշաններ ենք ստանում DDRB = 0x00 սենսորներից; // Միացրեք ձգվող դիմադրությունները PORTB = 0xFF; // Նախադրեք պորտեր ելքի համար // Սրանց միջոցով նավահանգիստները մենք վերահսկում ենք DDRC շարժիչները = 0xFF; // Ծրագրի հիմնական հանգույցը: Այստեղ մենք կարդում ենք արժեքները սենսորներից // և վերահսկում ենք շարժիչները, մինչդեռ (1) (// Առաջ գնալով PORTC.0 = 1; PORTC: 1 = 0; PORTC.2 = 1; PORTC.3 = 0; եթե (! (PINB & (1<Իմ ռոբոտի մասին

Այս պահին իմ ռոբոտը գրեթե ավարտված է:


Այն ունի անլար տեսախցիկ, հեռավորության սենսոր (ինչպես տեսախցիկը, այնպես էլ այս սենսորը տեղադրված են պտտվող աշտարակի վրա), խոչընդոտի սենսոր, կոդավորիչ, հեռակառավարման ազդանշանի ընդունիչ և RS-232 ինտերֆեյս՝ համակարգչին միանալու համար։ Այն աշխատում է երկու ռեժիմով՝ ինքնավար և մեխանիկական (ստացվում է հսկողության ազդանշաններ հեռակառավարման վահանակից), տեսախցիկը կարող է նաև միացնել/անջատվել հեռակա կարգով կամ ռոբոտի կողմից՝ մարտկոցի էներգիան խնայելու համար։ Գրում եմ ծրագրակազմ բնակարանի անվտանգության համար (պատկերի փոխանցում համակարգիչ, շարժման հայտնաբերում, սենյակի շրջանցում):

Ինչպես տանը ռոբոտ պատրաստել տարբեր նյութերիցառանց համապատասխան սարքավորումների. Նման հարցերը սկսել են ավելի ու ավելի հաճախ հայտնվել տարբեր բլոգներում և ֆորումներում, որոնք նվիրված են սեփական ձեռքերով և ռոբոտաշինության բոլոր տեսակի սարքերի արտադրությանը: Իհարկե, ժամանակակից, բազմաֆունկցիոնալ ռոբոտ պատրաստելը տանը գրեթե անհնար գործ է։ Բայց միանգամայն հնարավոր է ամենապարզ ռոբոտը պատրաստել մեկ վարորդի միկրոսխեմայի վրա և օգտագործելով մի քանի ֆոտոբջիջներ: Այսօր ինտերնետում դժվար չէ գտնել դիագրամներ, որտեղ մանրամասն նկարագրված են մինի ռոբոտների արտադրության փուլերը, որոնք կարող են արձագանքել լույսի աղբյուրներին և խոչընդոտներին:

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

Դուք նույնիսկ կարող եք ստիպել ձեր խելացի ռոբոտին հետևել միայն թեթև կամ, ընդհակառակը, մուգ գծին, կամ կարող եք ստիպել մինի ռոբոտին հետևել ձեր ձեռքին. պարզապես մի քանի վառ LED-ներ ավելացրեք իր շղթայում:

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

Եկեք անմիջապես անցնենք բուն կետին: Տնային ռոբոտ պատրաստելու համար մեզ անհրաժեշտ են հետևյալ մասերը, որոնք հեշտությամբ կարող եք գտնել ձեր ձեռքի տակ.

1. 2-րդ մարտկոցներ և պատյան նրանց համար;

2. Երկու շարժիչ (յուրաքանչյուրը 1,5 վոլտ);

3. 2 SPDT անջատիչներ;

4. 3 կեռ;

4. Պլաստիկ գնդիկ անցքով;

5. Մի փոքրիկ կտոր ամուր մետաղալար:

Տնային ռոբոտ պատրաստելու փուլերը.

1. Մի կտոր մետաղալար կտրեք 13 մասի, յուրաքանչյուրը վեց սանտիմետր, և յուրաքանչյուրը երկու կողմից բացեք 1 սմ-ով:

Զոդման երկաթով մենք միացնում ենք 3 լար SPDT անջատիչներին, իսկ 2 լարերը շարժիչներին;

2. Այժմ վերցնում ենք մարտկոցների պատյան, որի մի կողմում երկու գունավոր լարեր (ամենայն հավանականությամբ՝ սև և կարմիր) ձգվում են դրանից։ Մենք պետք է ևս մեկ մետաղալար կպցնենք գործի մյուս կողմին:

Այժմ դուք պետք է բացեք մարտկոցի պատյանը և երկու SPDT անջատիչները սոսնձեք կողքի վրա՝ զոդված V-աձև մետաղալարով;

3. Դրանից հետո, մարմնի երկու կողմերում, պետք է սոսնձել շարժիչները, որպեսզի նրանք պտտվեն առաջ:

Այնուհետև մենք վերցնում ենք մի մեծ թղթի սեղմիչ և բացում այն: Մենք քաշում ենք չծկված թղթի սեղմակը պլաստիկ գնդակի անցքի միջով և ուղղում թղթի սեղմակի ծայրերը միմյանց զուգահեռ: Մենք սոսնձում ենք թղթի սեղմակի ծայրերը մեր կառուցվածքին;

4. Ինչպե՞ս պատրաստել տնային ռոբոտ, որպեսզի այն իսկապես կարողանա խուսափել խոչընդոտներից: Կարևոր է զոդել բոլոր տեղադրված լարերը, ինչպես ցույց է տրված լուսանկարում;

5. Մենք ալեհավաքներ ենք պատրաստում չծածկված թղթի սեղմակներից և սոսնձում դրանք SPDT անջատիչների վրա;

6. Մնում է մարտկոցները տեղադրել պատյանի մեջ, և տնային ռոբոտը կսկսի շարժվել՝ խուսափելով իր ճանապարհին հանդիպող խոչընդոտներից։

Այժմ դուք գիտեք, թե ինչպես պատրաստել տնային ռոբոտ, որը կարող է արձագանքել խոչընդոտներին:

Ինչպե՞ս կարող եք ինքներդ ռոբոտ պատրաստել վարքի որոշակի սկզբունքներով:Նման ռոբոտների մի ամբողջ դաս ստեղծվում է BEAM տեխնոլոգիայի կիրառմամբ, որոնց վարքագծի բնորոշ սկզբունքները հիմնված են այսպես կոչված «ֆոտոընկալման» վրա։ Լույսի ինտենսիվության փոփոխությանն ի պատասխան՝ նման մինի ռոբոտն ավելի դանդաղ է շարժվում կամ, ընդհակառակը, ավելի արագ (ֆոտոկինեզ):

Ռոբոտ ստեղծելու համար, որի շարժումն ուղղված է լույսից կամ դեպի լույս և առաջանում է ֆոտոտաքսիս ռեակցիայի հետևանքով, մեզ անհրաժեշտ է երկու ֆոտոսենսոր։ Ֆոտոտաքսի ռեակցիան կդրսևորվի հետևյալ կերպ՝ եթե լույսը դիպչի BEAM-ռոբոտի ֆոտոսենսորներից մեկին, համապատասխան էլեկտրական շարժիչը միանում է, և ռոբոտը շրջվում է դեպի լույսի աղբյուրը։

Եվ հետո լույսը հարվածում է երկրորդ սենսորին, իսկ հետո միանում է երկրորդ էլեկտրական շարժիչը: Այժմ մինի-ռոբոտը սկսում է շարժվել դեպի լույսի աղբյուրը։ Եթե ​​լույսը կրկին հարվածում է միայն մեկ ֆոտոսենսորին, ապա ռոբոտը նորից սկսում է շրջվել դեպի լույսը և շարունակում է շարժվել դեպի աղբյուրը, երբ լույսը լուսավորում է երկու սենսորները: Երբ ոչ մի լույս չի դիպչում սենսորներից որևէ մեկին, մինի ռոբոտը կանգ է առնում:

Ինչպե՞ս պատրաստել ռոբոտ, որը հետևում է ձեռքին:Դա անելու համար մեր մինի-ռոբոտը պետք է հագեցած լինի ոչ միայն սենսորներով, այլեւ լուսադիոդներով։ LED-ները լույս կարձակեն, և ռոբոտը կարձագանքի արտացոլված լույսին: Եթե ​​մեր ափը դնենք սենսորներից մեկի դիմաց, ապա մինի ռոբոտը կշրջվի իր ուղղությամբ։

Եթե ​​ձեր ափը մի փոքր հեռացնեք համապատասխան սենսորից, ապա ռոբոտը «հնազանդորեն» կհետևի ափին։ Որպեսզի արտացոլված լույսը հստակորեն գրավվի ֆոտոտրանզիստորների կողմից, ընտրեք վառ նարնջագույն կամ կարմիր լուսադիոդներ (ավելի քան 1000 mCd) ձեր ռոբոտը կառուցելու համար:

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

Ներկառուցված ֆոտոսենսորները արձագանքում են լույսին և ուղղվում դեպի աղբյուրը, իսկ սենսորները ճանաչում են ճանապարհին հանդիպող խոչընդոտը, և ռոբոտը փոխում է ուղղությունը: Ձեր սեփական ձեռքերով նման պարզ ռոբոտ պատրաստելու համար անհրաժեշտ չէ ունենալ «ճակատի յոթ բացվածք» և բարձրագույն տեխնիկական կրթություն։ Բավական է գնել (և ձեռքի տակ կարելի է գտնել որոշ մասեր) բոլոր անհրաժեշտ մասերը՝ ռոբոտ ստեղծելու համար և աստիճանաբար միացնել բոլոր միկրոսխեմաները, սենսորները, սենսորները, լարերը և շարժիչները։

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

Ատամի խոզանակի գլխի վերևում կպցրեք երկկողմանի ժապավենի մի կտոր, իսկ վերևում՝ թրթռման շարժիչ: Մնում է մինի ռոբոտին էլեկտրամատակարարում ապահովել՝ վիբրացիոն շարժիչի կողքին հարթ մարտկոց տեղադրելով։ Ամեն ինչ! Մեր ռոբոտը պատրաստ է. թրթռումների պատճառով ռոբոտը կշարժվի առաջ մազիկներով:

♦ ՎԱՐՊԵՏՈՒԹՅԱՆ ԴԱՍ «ԸՆԴԱՌԱՋ DIY»-ի համար. Սեղմեք լուսանկարի վրա

♦ ՎԻԴԵՈ ԴԱՍԵՐ ՍԿՍՆԱԿՆԵՐԻ ՀԱՄԱՐ.

Նույնիսկ նրանք, ովքեր նոր են վերցրել զոդման երկաթը, կարող են ամենապարզ ռոբոտը պատրաստել:

Հիմնականում մեր ռոբոտը (կախված դիզայնից) կվազի լույսի մեջ կամ, ընդհակառակը, կփախչի նրանից, առաջ կվազի լույսի ճառագայթ փնտրելու կամ խլուրդի պես հետ կշարժվի։

Մեր ապագա «արհեստական ​​ինտելեկտի» համար մեզ անհրաժեշտ է.

  1. Միկրոշրջան L293D
  2. Փոքր էլեկտրական շարժիչ M1 (կարելի է հանել խաղալիք մեքենաներից)
  3. Ֆոտոտրանզիստոր և 200 Օմ դիմադրություն:
  4. Լարեր, մարտկոց և, իհարկե, հենց հարթակը, որտեղ կտեղակայվի այս ամենը։

Եթե ​​դիզայնին ավելացնեք ևս մի քանի վառ լուսադիոդ, ապա հեշտությամբ կարող եք հասնել, որ ռոբոտը պարզապես կվազի ձեռքի հետևից կամ նույնիսկ կհետևի բաց կամ մուգ գծին: Մեր ստեղծագործությունը կլինի BEAM դասի ռոբոտների տիպիկ ներկայացուցիչ։ Նման ռոբոտների վարքագծի սկզբունքը հիմնված է «ֆոտոընկալման» վրա, այսինքն՝ լույսն այս դեպքում հանդես կգա որպես տեղեկատվության աղբյուր։

Մեր ռոբոտը առաջ կգնա, երբ լույսի ճառագայթը դիպչի նրան: Սարքի այս վարքագիծը կոչվում է «ֆոտոկինեզ»՝ շարժունակության չուղղորդված աճ կամ նվազում՝ ի պատասխան լույսի մակարդակի փոփոխության:

Մեր սարքում, ինչպես նշվեց վերևում, որպես ֆոտոսենսոր օգտագործվել է PTR-1 կառուցվածքի n-p-n ֆոտոտրանզիստոր: Այստեղ դուք կարող եք օգտագործել ոչ միայն ֆոտոտրանզիստոր, այլև ֆոտոռեզիստոր կամ ֆոտոդիոդ, քանի որ բոլոր տարրերի շահագործման սկզբունքը նույնն է:

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

GND. Շղթայի տարբեր տարրերը գետնին միացնող լարերը (սնուցման աղբյուրի բացասական բևեռը) սովորաբար ամբողջությամբ չեն ցուցադրվում դիագրամների վրա: Փոխարենը փոքր գծիկ է գծվում՝ ցույց տալու համար հողային կապը: Երբեմն գծիկի կողքին գրում են «GND»՝ անգլերենից։ «հող» բառերը՝ երկիր։

Vcc. Այս նշումը ցույց է տալիս, որ այս մասի միջոցով սխեման միացված է էլեկտրամատակարարմանը - Դրական բևեռ: Երբեմն դիագրամների վրա այս տառերի փոխարեն հաճախ գրվում է ընթացիկ վարկանիշը։ Այս դեպքում + 5 Վ.

Ռոբոտի սկզբունքը.

Երբ լույսի ճառագայթը հարվածում է ֆոտոտրանզիստորին (դիագրամում այն ​​նշված է որպես PRT1), INPUT1 միկրոշրջանի ելքի վրա հայտնվում է դրական ազդանշան, որը ստիպում է M1 շարժիչին աշխատել: Ընդհակառակը, երբ լույսի ճառագայթը դադարում է լուսավորել ֆոտոտրանզիստորը, INPUT1 միկրոշրջանի ելքային ազդանշանը անհետանում է, հետևաբար, շարժիչը կանգ է առնում:

Այս շղթայում R1 ռեզիստորը նախատեսված է ֆոտոտրանզիստորի միջով անցնող հոսանքը փոխհատուցելու համար: Ռեզիստորի անվանական արժեքը 200 Օմ է, իհարկե, այստեղ ռեզիստորները կարող եք զոդել այլ անվանական արժեքներով, բայց պետք է հիշել, որ ֆոտոտրանզիստորի զգայունությունը և, հետևաբար, հենց ռոբոտի կատարումը կախված կլինի անվանական արժեքից:

Եթե ​​ռեզիստորի արժեքը մեծ է, ապա ռոբոտը կարձագանքի միայն շատ պայծառ լույսի ճառագայթին, իսկ եթե այն փոքր է, ապա զգայունությունը շատ ավելի մեծ կլինի։

Մի խոսքով, այս շղթայում չպետք է օգտագործեք 100 Օմ-ից պակաս դիմադրություն ունեցող ռեզիստորներ, հակառակ դեպքում ֆոտոտրանզիստորը կարող է պարզապես գերտաքանալ և ձախողվել:

Թվային և անալոգային մուլտիմետրերի չափումներ Ընթերցանության սխեմաներ՝ պաշտպանություն, հիմնավորում Ընթերցանության սխեմաներ՝ լամպեր և ֆոտոբջիջներ Էլեկտրական թեյնիկի վերանորոգում Ինքնուրույն ժամացույց՝ պատկերի պրոյեկցիայով

Անշուշտ, ռոբոտների մասին ֆիլմեր դիտելուց հետո մեկ անգամ չէ, որ ցանկացել եք կառուցել ձեր զինակիցը, բայց չգիտեիք, թե որտեղից սկսել: Իհարկե, դուք չեք կարողանա կառուցել երկոտանի տերմինատոր, բայց մենք դրան էլ չենք ձգտում։ Յուրաքանչյուր ոք, ով գիտի, թե ինչպես ճիշտ պահել զոդման երկաթը իր ձեռքերում, կարող է հավաքել պարզ ռոբոտ, և դա չի պահանջում խորը գիտելիքներ, չնայած նրանք չեն խանգարի: Սիրողական ռոբոտաշինությունը շատ չի տարբերվում սխեմաներից, միայն շատ ավելի հետաքրքիր է, քանի որ այստեղ ազդում են նաև այնպիսի ոլորտներ, ինչպիսիք են մեխանիկա և ծրագրավորում: Բոլոր բաղադրիչները մատչելի են և այնքան էլ թանկ չեն: Այսպիսով, առաջընթացը չի կանգնում, և մենք այն կօգտագործենք մեր օգտին:

Ներածություն

Այսպիսով. Ի՞նչ է ռոբոտը: Շատ դեպքերում սա ավտոմատ սարք է, որն արձագանքում է շրջակա միջավայրի ցանկացած գործողության: Ռոբոտները կարող են կառավարվել մարդկանց կողմից կամ կատարել նախապես ծրագրավորված գործողություններ: Սովորաբար, ռոբոտը հագեցած է տարբեր սենսորներով (հեռավորություն, պտտման անկյուն, արագացում), տեսախցիկներով, մանիպուլյատորներով: Ռոբոտի էլեկտրոնային մասը բաղկացած է միկրոկառավարիչից (MC)՝ միկրոսխեմա, որը պարունակում է պրոցեսոր, ժամացույցի գեներատոր, տարբեր ծայրամասային սարքեր, պատահական մուտք և մշտական ​​հիշողություն։ Աշխարհում առկա են միկրոկոնտրոլերների հսկայական տեսականի կիրառման տարբեր ոլորտների համար, և դրանց հիման վրա կարող են հավաքվել հզոր ռոբոտներ։ Սիրողական շենքերի համար լայնորեն կիրառվում են AVR միկրոկոնտրոլերները։ Դրանք այսօր ամենահասանելին են և համացանցում կարող եք գտնել բազմաթիվ օրինակներ՝ հիմնված այս MK-ի վրա: Միկրոկառավարիչների հետ աշխատելու համար դուք պետք է կարողանաք ծրագրավորել մոնտաժում կամ C-ով և ունենալ թվային և անալոգային էլեկտրոնիկայի տարրական գիտելիքներ: Մենք կօգտագործենք C-ն մեր նախագծում: MK-ի համար ծրագրավորումը շատ չի տարբերվում համակարգչի վրա ծրագրավորումից, լեզվի շարահյուսությունը նույնն է, ֆունկցիաների մեծ մասը գործնականում նույնն է, իսկ նորերը բավականին հեշտ են սովորել և հարմար օգտագործել:

Այն, ինչ մեզ պետք է

Սկզբից մեր ռոբոտը կկարողանա պարզապես շրջանցել խոչընդոտները, այսինքն՝ կրկնել բնության մեջ կենդանիների մեծ մասի բնականոն վարքը: Այն ամենը, ինչ մեզ անհրաժեշտ է նման ռոբոտ ստեղծելու համար, կարելի է գտնել ռադիո խանութներում: Մենք կորոշենք, թե ինչպես կշարժվի մեր ռոբոտը։ Ամենահաջողը, կարծում եմ, տանկերում օգտագործվող հետքերն են, սա ամենահարմար լուծումն է, որովհետև հետքերը մեքենայի անիվներից ավելի մեծ կարողություն ունեն և ավելի հարմար են կառավարել (շրջել, այն բավական է հետքերը տարբեր ուղղություններով պտտելու համար): Հետևաբար, ձեզ հարկավոր կլինի ցանկացած խաղալիքի բաք՝ միմյանցից անկախ պտտվող հետքերով, դուք կարող եք սա գնել ցանկացած խաղալիքների խանութից ողջամիտ գնով: Այս տանկից ձեզ հարկավոր է միայն հետքերով հարթակ և փոխանցումատուփով շարժիչներ, մնացածը կարող եք ապահով ետ պտուտակել և դեն նետել: Մեզ նաև միկրոկոնտրոլեր է պետք, իմ ընտրությունը ընկավ ATmega16-ի վրա՝ այն ունի բավականաչափ պորտեր սենսորների և ծայրամասային սարքերի միացման համար, և ընդհանուր առմամբ դա բավականին հարմար է: Անհրաժեշտ է նաև գնել ռադիոյի մի քանի բաղադրիչներ, զոդման երկաթ, մուլտիմետր:

MK-ով տախտակի պատրաստում



Ռոբոտի միացում

Մեր դեպքում միկրոկոնտրոլերը կկատարի ուղեղի գործառույթները, բայց մենք կսկսենք ոչ թե դրանից, այլ ռոբոտի ուղեղի սնուցմամբ։ Ճիշտ սնունդը առողջության բանալին է, ուստի մենք կսկսենք նրանից, թե ինչպես ճիշտ կերակրել մեր ռոբոտին, քանի որ դա սովորաբար սխալ է թույլ տալիս սկսնակ ռոբոտ շինարարները: Իսկ որպեսզի մեր ռոբոտը նորմալ աշխատի, անհրաժեշտ է օգտագործել լարման կայունացուցիչ։ Ես նախընտրում եմ L7805 միկրոսխեման. այն նախատեսված է 5 Վ կայուն լարման ելքի վրա ապահովելու համար, ինչը մեր միկրոկոնտրոլերի կարիքն ունի: Բայց քանի որ այս միկրոսխեմայի վրա լարման անկումը մոտ 2,5 Վ է, դրան պետք է մատակարարվի առնվազն 7,5 Վ: Այս կայունացուցիչի հետ միասին օգտագործվում են էլեկտրոլիտիկ կոնդենսատորներ լարման ալիքները հարթելու համար, և բևեռականության հակադարձումից պաշտպանելու համար շղթայում պետք է ներառվի դիոդ:
Այժմ մենք կարող ենք լուծել մեր միկրոկառավարիչը: MK-ի պատյանը DIP է (այսպես ավելի հարմար է զոդել) և ունի քառասուն քորոց։ Ինքնաթիռում կա ADC, PWM, USART և շատ ավելին, որոնք մենք առայժմ չենք օգտագործի: Դիտարկենք մի քանի կարևոր հանգույցներ. RESET քորոցը (MK-ի 9-րդ ոտքը) R1 ռեզիստորի կողմից քաշվում է դեպի սնուցման աղբյուրի «գումարածը». դա պետք է արվի: Հակառակ դեպքում, ձեր MK-ն կարող է ակամա վերակայվել կամ, այլ կերպ ասած, խելագարված լինել: Ցանկալի միջոց է, բայց ոչ պարտադիր, RESET-ը C1 կերամիկական կոնդենսատորի միջոցով գետնին միացնելը: Դիագրամում դուք կարող եք տեսնել նաև 1000 uF էլեկտրոլիտ, այն փրկում է լարման անկումից, երբ շարժիչները աշխատում են, ինչը նույնպես բարենպաստ ազդեցություն կունենա միկրոկառավարիչի աշխատանքի վրա: X1 քվարց բյուրեղը և C2, C3 կոնդենսատորները պետք է տեղադրվեն հնարավորինս մոտ XTAL1 և XTAL2 կապանքներին:
Ես չեմ խոսի այն մասին, թե ինչպես վառել MK-ն, քանի որ դրա մասին կարող եք կարդալ ինտերնետում: Ծրագիրը գրելու ենք C-ով, ես որպես ծրագրավորման միջավայր ընտրել եմ CodeVisionAVR-ը: Սա բավականին հարմար միջավայր է և օգտակար սկսնակների համար, քանի որ այն ունի ներկառուցված մոգ՝ կոդ ստեղծելու համար։


Իմ ռոբոտի տախտակը

Շարժիչի կառավարում

Մեր ռոբոտի ոչ պակաս կարևոր բաղադրիչը շարժիչի շարժիչն է, որը մեզ համար հեշտացնում է այն կառավարելը: Երբեք և ոչ մի դեպքում չպետք է շարժիչները միացնեք անմիջապես MK-ին: Ընդհանուր առմամբ, հզոր բեռները չեն կարող կառավարվել անմիջապես միկրոկառավարիչից, հակառակ դեպքում այն ​​կվառվի: Օգտագործեք առանցքային տրանզիստորներ: Մեր գործի համար կա հատուկ միկրոշրջան՝ L293D: Նման պարզ նախագծերում միշտ փորձեք օգտագործել այս միկրոսխեման «D» ինդեքսով, քանի որ այն ունի ներկառուցված դիոդներ՝ գերբեռնվածությունից պաշտպանվելու համար: Այս միկրոսխեման շատ հեշտ է գործել և հեշտությամբ կարելի է ձեռք բերել ռադիոյի խանութներից: Այն հասանելի է երկու DIP և SOIC փաթեթներով: Մենք կօգտագործենք DIP փաթեթ՝ տախտակի տեղադրման հեշտության պատճառով: L293D-ն ունի առանձին սնուցում շարժիչների և տրամաբանության համար։ Հետևաբար, միկրոսխեման ինքնին կսնուցվի կայունացուցիչից (VSS մուտք), իսկ շարժիչները անմիջապես մարտկոցներից (VS մուտք): L293D-ը կարող է դիմակայել 600 մԱ բեռի մեկ ալիքի վրա, և այն ունի այս ալիքներից երկուսը, այսինքն՝ երկու շարժիչ կարող է միացված լինել մեկ միկրոսխեմային: Բայց անվտանգ խաղալու համար մենք կհամատեղենք ալիքները, իսկ հետո յուրաքանչյուր շարժիչի համար մեզ անհրաժեշտ է մեկ միկրոն։ Սրանից հետևում է, որ L293D-ը կկարողանա դիմակայել 1,2 Ա-ին: Դրան հասնելու համար հարկավոր է միավորել միկրայի ոտքերը, ինչպես ցույց է տրված դիագրամում: Միկրոշրջանն աշխատում է հետևյալ կերպ. երբ տրամաբանական «0» կիրառվում է IN1 և IN2, իսկ տրամաբանական միավորը IN3 և IN4, շարժիչը պտտվում է մեկ ուղղությամբ, և եթե ազդանշանները շրջված են, ապա կիրառվում է տրամաբանական զրո, ապա շարժիչը կսկսի պտտվել մյուս ուղղությամբ: EN1 և EN2 քորոցները պատասխանատու են յուրաքանչյուր ալիքի միացման համար: Մենք դրանք միացնում ենք և միացնում ենք կայունացուցիչից էլեկտրասնուցման «պլյուսին»: Քանի որ միկրոսխեման տաքանում է շահագործման ընթացքում, և ռադիատորների տեղադրումը խնդրահարույց է այս տեսակի գործի համար, ջերմության արտանետումն ապահովվում է GND ոտքերով. ավելի լավ է դրանք զոդել լայն շփման տարածքում: Սա այն ամենն է, ինչ դուք պետք է իմանաք շարժիչի շարժիչների մասին առաջին անգամ:

Խոչընդոտի սենսորներ

Որպեսզի մեր ռոբոտը կարողանա կողմնորոշվել և չբախվել ամեն ինչի, մենք դրա վրա կտեղադրենք երկու ինֆրակարմիր սենսոր: Ամենապարզ սենսորը բաղկացած է IR դիոդից, որն արձակում է ինֆրակարմիր սպեկտրում, և ֆոտոտրանզիստորից, որը կստանա ազդանշան IR դիոդից։ Սկզբունքը հետևյալն է՝ երբ սենսորի դիմաց որևէ խոչընդոտ չկա, IR ճառագայթները չեն հարվածում ֆոտոտրանզիստորին և այն չի բացվում։ Եթե ​​սենսորի առջև խոչընդոտ կա, ապա դրանից ստացված ճառագայթները արտացոլվում են և ընկնում տրանզիստորի վրա. այն բացվում է, և հոսանքը սկսում է հոսել: Նման սենսորների թերությունն այն է, որ նրանք կարող են տարբեր կերպ արձագանքել տարբեր մակերեսների և պաշտպանված չեն միջամտությունից. սենսորը կարող է պատահաբար գործարկվել այլ սարքերի կողմնակի ազդանշաններից: Ազդանշանի մոդուլյացիան կարող է պաշտպանել միջամտությունից, բայց առայժմ մենք չենք անհանգստանա դրանով: Սկզբի համար բավական է։


Իմ ռոբոտի սենսորների առաջին տարբերակը

Ռոբոտի որոնվածը

Ռոբոտը վերակենդանացնելու համար հարկավոր է դրա համար որոնվածը գրել, այսինքն՝ ծրագիր, որը կվերցնի սենսորներից ընթերցումներ և կկառավարի շարժիչները։ Իմ ծրագիրը ամենապարզն է, այն չի պարունակում բարդ կառուցվածքներ և պարզ կլինի բոլորին։ Հաջորդ երկու տողերը ներառում են վերնագրի ֆայլեր մեր միկրոկոնտրոլերի համար և ուշացումների ձևավորման հրամաններ.

#ներառում
#ներառում

Հետևյալ տողերը պայմանական են, քանի որ PORTC արժեքները կախված են նրանից, թե ինչպես եք միացրել շարժիչի վարորդը ձեր միկրոկարգավորիչին.

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

0xFF արժեքը նշանակում է, որ ելքը կլինի գրանցամատյան: «1», իսկ 0x00 - տեղեկամատյան: «0».

Հետևյալ կոնստրուկցիայի միջոցով մենք ստուգում ենք՝ կա արդյոք խոչընդոտ ռոբոտի առջև և որ կողմից է այն.

Եթե ​​(! (PINB & (1< {
...
}

Եթե ​​IR դիոդի լույսը հարվածում է ֆոտոտրանզիստորին, ապա միկրոկոնտրոլերի ոտքի վրա տեղադրվում է գերան: «0» և ռոբոտը սկսում է հետ շարժվել՝ արգելքից հեռու քշելու համար, այնուհետև շրջվում է, որպեսզի նորից չբախվի խոչընդոտին և նորից առաջ է գնում։ Քանի որ մենք ունենք երկու սենսոր, մենք երկու անգամ ստուգում ենք խոչընդոտի առկայությունը՝ աջ և ձախ, և հետևաբար կարող ենք պարզել, թե որ կողմից է խոչընդոտը: «delay_ms (1000)» հրամանը ցույց է տալիս, որ հաջորդ հրամանի կատարումը կպահանջի մեկ վայրկյան:

Եզրակացություն

Ես լուսաբանել եմ այն ​​ասպեկտների մեծ մասը, որոնք կօգնեն ձեզ ստեղծել ձեր առաջին ռոբոտը: Սակայն ռոբոտաշինությունն այսքանով չի ավարտվում: Եթե ​​դուք կառուցեք այս ռոբոտը, ապա դրա ընդլայնման համար շատ հնարավորություններ կունենաք։ Դուք կարող եք բարելավել ռոբոտի ալգորիթմը, օրինակ՝ ինչ անել, եթե խոչընդոտը ոչ թե ինչ-որ կողմից է, այլ անմիջապես ռոբոտի դիմաց: Չի վնասում նաև կոդավորիչ տեղադրելը՝ պարզ սարք, որը կօգնի ձեզ ճշգրիտ տեղավորել և իմանալ ձեր ռոբոտի գտնվելու վայրը տիեզերքում: Պարզության համար հնարավոր է տեղադրել գունավոր կամ մոնոխրոմ էկրան, որը կարող է ցույց տալ օգտակար տեղեկատվություն՝ մարտկոցի լիցքավորման մակարդակը, հեռավորությունը դեպի խոչընդոտ, վրիպազերծման տարբեր տեղեկություններ: Սենսորների կատարելագործումը նույնպես չի տուժի՝ սովորական ֆոտոտրանզիստորների փոխարեն տեղադրել TSOP (դրանք IR ընդունիչներ են, որոնք ընկալում են միայն որոշակի հաճախականության ազդանշան): Ի լրումն ինֆրակարմիր սենսորների, կան ուլտրաձայնային, դրանք ավելի թանկ են, և դրանք նույնպես առանց թերությունների չեն, բայց վերջերս դրանք դառնում են ժողովրդականություն ռոբոտաշինության ինժեներների շրջանում: Որպեսզի ռոբոտը կարողանա արձագանքել ձայնին, լավ կլինի տեղադրել ուժեղացված խոսափողներ։ Բայց իսկապես հետաքրքիրը, կարծում եմ, տեսախցիկի տեղադրումն ու ծրագրավորումն է մեքենայական տեսողության հիման վրա։ Կա հատուկ OpenCV գրադարանների հավաքածու, որոնցով կարող եք ծրագրավորել դեմքի ճանաչում, շարժում գունավոր փարոսներով և շատ այլ հետաքրքիր բաներ: Ամեն ինչ կախված է միայն ձեր երևակայությունից և հմտություններից:
Բաղադրիչների ցանկ.
  • ATmega16-ը DIP-40 փաթեթում>
  • L7805 TO-220 փաթեթում
  • L293D DIP-16 փաթեթում х2 հատ.
  • 0,25 Վտ ռեզիստորներ անվանական արժեքներով՝ 10 կՕմ x1 հատ, 220 Օմ x4 հատ։
  • կերամիկական կոնդենսատորներ՝ 0.1 μF, 1 μF, 22 pF
  • էլեկտրոլիտիկ կոնդենսատորներ՝ 1000 uF x 16 V, 220 uF x 16V x 2 հատ:
  • դիոդ 1N4001 կամ 1N4004
  • բյուրեղային ռեզոնատոր 16 ՄՀց հաճախականությամբ
  • IR դիոդներ. ցանկացած երկուսը կանեն:
  • ֆոտոտրանզիստորներ, նույնպես ցանկացած, բայց արձագանքում են միայն ինֆրակարմիր ճառագայթների ալիքի երկարությանը
Որոնվածի կոդը.
/*****************************************************
Ռոբոտի որոնվածը

MK տեսակը՝ ATmega16
Ժամացույցի հաճախականությունը՝ 16.000000 ՄՀց
Եթե ​​դուք ունեք տարբեր քվարցի հաճախականություն, ապա դա պետք է նշվի շրջակա միջավայրի պարամետրերում.
Project -> Configure -> C Compiler Tab
*****************************************************/

#ներառում
#ներառում

Անվավեր հիմնական (անվավեր)
{
// Կարգավորեք նավահանգիստները մուտքագրման համար
// Այս նավահանգիստների միջոցով մենք ազդանշաններ ենք ստանում սենսորներից
DDRB = 0x00;
// Միացնել pull-up resistors
PORTB = 0xFF;

// Ստեղծեք նավահանգիստներ ելքի համար
// Այս նավահանգիստների միջոցով մենք կառավարում ենք շարժիչները
DDRC = 0xFF;

// Ծրագրի հիմնական օղակը: Այստեղ մենք կարդում ենք արժեքները սենսորներից
// և շարժիչ շարժիչներ
մինչդեռ (1)
{
// Եկեք առաջ գնանք
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
եթե (! (PINB & (1< {
// Վերադարձ 1 վայրկյանով
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms (1000);
// պատել
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms (1000);
}
եթե (! (PINB & (1< {
// Վերադարձ 1 վայրկյանով
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
delay_ms (1000);
// պատել
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
delay_ms (1000);
}
};
}

Իմ ռոբոտի մասին

Այս պահին իմ ռոբոտը գրեթե ավարտված է:


Այն ունի անլար տեսախցիկ, հեռավորության սենսոր (ինչպես տեսախցիկը, այնպես էլ այս սենսորը տեղադրված են պտտվող աշտարակի վրա), խոչընդոտի սենսոր, կոդավորիչ, հեռակառավարման ազդանշանի ընդունիչ և RS-232 ինտերֆեյս՝ համակարգչին միանալու համար։ Այն աշխատում է երկու ռեժիմով՝ ինքնավար և մեխանիկական (ստացվում է հսկողության ազդանշաններ հեռակառավարման վահանակից), տեսախցիկը կարող է նաև միացնել/անջատվել հեռակա կարգով կամ ռոբոտի կողմից՝ մարտկոցի էներգիան խնայելու համար։ Գրում եմ ծրագրակազմ բնակարանի անվտանգության համար (պատկերի փոխանցում համակարգիչ, շարժման հայտնաբերում, սենյակի շրջանցում):

Հարցման դեպքում ես տեղադրում եմ տեսանյութ.

UPD.Ես նորից բեռնեցի լուսանկարները և տեքստում չնչին ուղղումներ արեցի: