Տուն - Միջանցք
Lego ev3 շարժվում է գծի երկայնքով: Սկսեք գիտության մեջ: Գույնի սենսոր - «Շրջակա լույսի պայծառություն» ռեժիմ

Ահա թե ինչպես է մարդը տեսնում գիծը.

Ռոբոտը դա տեսնում է այսպես.


Մենք կօգտագործենք այս հատկությունը «Trajectory» մրցույթի անվանակարգում ռոբոտ նախագծելիս և ծրագրավորելիս:

Կան բազմաթիվ եղանակներ ռոբոտին սովորեցնելու գիծ տեսնել և շարժվել դրա երկայնքով: Կան բարդ ծրագրեր և շատ պարզ:

Ուզում եմ խոսել ծրագրավորման մեթոդի մասին, որին կարող են տիրապետել անգամ 2-3-րդ դասարանի երեխաները: Այս տարիքում նրանց համար շատ ավելի հեշտ է կառուցվածքներ հավաքել ըստ հրահանգների, իսկ ռոբոտի ծրագրավորումը նրանց համար է։ դժվար գործ. Բայց այս մեթոդը թույլ կտա երեխային ծրագրավորել ռոբոտին ցանկացած երթուղի 15-30 րոպեում (հաշվի առնելով քայլ առ քայլ փորձարկումը և հետագծի որոշ առանձնահատկությունների ճշգրտումը):

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

Դե, եկեք սկսենք:

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

Դիտարկենք լույսի երկու սենսորով ռոբոտի տարբերակը, քանի որ այն ավելի հասկանալի է տարրական դասարանների աշակերտների համար։

Լույսի սենսորները միացված են 2-րդ և 3-րդ պորտերին: Շարժիչներ դեպի B և C նավահանգիստներ:
Սենսորները տեղադրված են գծի եզրերին (փորձեք փորձարկել սենսորները միմյանցից տարբեր հեռավորության վրա և տարբեր բարձրությունների վրա դնելով):
Կարևոր կետ. Համար ավելի լավ աշխատանքՆման սխեմայի համար ցանկալի է ընտրել զույգ սենսորներ ըստ պարամետրերի: Հակառակ դեպքում անհրաժեշտ կլինի ներդնել սենսորային արժեքները կարգավորելու բլոկ:
Շասսիի վրա սենսորների տեղադրում ըստ դասական սխեման(եռանկյուն), մոտավորապես ինչպես նկարում։

Ծրագիրը բաղկացած կլինի փոքր թվով բլոկներից.


1. Երկու լույսի սենսորային միավոր;
2. «Մաթեմատիկա» չորս բլոկ;
3. Երկու շարժիչային բլոկ:

Ռոբոտը կառավարելու համար օգտագործվում է երկու շարժիչ: Յուրաքանչյուրի հզորությունը 100 միավոր է։ Մեր սխեմայի համար մենք կվերցնենք շարժիչի հզորության միջին արժեքը, որը հավասար է 50-ի: Այսինքն, ուղիղ գծով շարժվելիս միջին արագությունը հավասար կլինի 50 միավորի: Ուղիղ շարժումից շեղվելիս շարժիչների հզորությունը համամասնորեն կավելանա կամ կնվազի՝ կախված շեղման անկյունից։

Այժմ եկեք պարզենք, թե ինչպես կարելի է միացնել բոլոր բլոկները, կարգավորել ծրագիրը և ինչ տեղի կունենա դրանում:
Եկեք ստեղծենք լույսի երկու սենսոր և նրանց հատկացնենք 2 և 3 պորտերը:
Վերցրեք մաթեմատիկական բլոկը և ընտրեք «Հանացում»:
Եկեք միացնենք լույսի սենսորները «Ինտենսիվության» ելքերից ավտոբուսների միջոցով դեպի մաթեմատիկական բլոկը «A» և «B» մուտքերին:
Եթե ​​ռոբոտի սենսորները սիմետրիկ տեղադրվեն ուղու կենտրոնից, ապա երկու սենսորների արժեքները հավասար կլինեն: Հանելուց հետո մենք ստանում ենք 0 արժեքը:
Մաթեմատիկայի հաջորդ բլոկը կօգտագործվի որպես գործակից, և դրա մեջ պետք է սահմանել «Բազմապատկում»:
Գործակիցը հաշվարկելու համար անհրաժեշտ է չափել «սպիտակ» և «սև» մակարդակները NXT բլոկի միջոցով:
Ենթադրենք՝ սպիտակ -70, սև -50։
Հաջորդը, մենք հաշվարկում ենք. շարժումը կարգավորելիս պետք է հավասար լինի 100)
Փորձեք «A» մուտքագրում արժեքը դնել 2,5-ի, այնուհետև ընտրել այն ավելի ճշգրիտ:
«Բազմապատկում» մաթեմատիկական բլոկի «B» մուտքին միացրեք նախորդ մաթեմատիկական բլոկի «Արդյունք» ելքը՝ «Հանում»:
Հաջորդը գալիս է մի զույգ՝ մաթեմատիկական բլոկ (Ավելացում) և B շարժիչ:
Մաթեմատիկական բլոկի կարգավորում.
«A» մուտքը սահմանվում է 50 (շարժիչի հզորության կեսը):
«Արդյունք» բլոկի ելքը ավտոբուսով միացված է B շարժիչի «Power» մուտքին:
Հաջորդ զույգը մաթեմատիկական բլոկ է (հանում) և շարժիչ C:
Մաթեմատիկական բլոկի կարգավորում.
«A» մուտքագրումը սահմանվում է 50:
«B» մուտքը ավտոբուսով միացված է «Բազմապատկում» մաթեմատիկական բլոկի «Արդյունք» ելքին:
«Արդյունք» բլոկի ելքը ավտոբուսով միացված է C շարժիչի «Power» մուտքին:

Այս բոլոր գործողությունների արդյունքում դուք կստանաք հետևյալ ծրագիրը.

Քանի որ այս ամենը կաշխատի ցիկլով, մենք ավելացնում ենք «Cycle», ընտրում ենք այն և տեղափոխում այն ​​«Cycle»:

Հիմա եկեք փորձենք պարզել, թե ինչպես կաշխատի ծրագիրը և ինչպես կարգավորել այն:


Մինչ ռոբոտը շարժվում է ուղիղ գծով, սենսորի արժեքները համընկնում են, ինչը նշանակում է, որ «Հանում» բլոկի ելքը կլինի 0: «Բազմապատկման» բլոկի ելքը նաև տալիս է 0 արժեքը: Այս արժեքը տրվում է: շարժիչի կառավարման զույգին զուգահեռ: Քանի որ այս բլոկները դրված են 50-ի վրա, 0-ի ավելացումը կամ հանումը չի ազդում շարժիչների հզորության վրա: Երկու շարժիչներն էլ աշխատում են նույն հզորությամբ՝ 50, իսկ ռոբոտը գլորվում է ուղիղ գծով։

Ենթադրենք, որ ուղին շրջադարձ է կատարում կամ ռոբոտը շեղվում է ուղիղ գծից։ Ի՞նչ է լինելու։

Նկարը ցույց է տալիս, որ 2-րդ պորտին միացված սենսորի լուսավորությունը (այսուհետ՝ 2 և 3 սենսորներ) մեծանում է, երբ այն շարժվում է դեպի սպիտակ դաշտ, և 3-րդ սենսորի լուսավորությունը նվազում է: Ենթադրենք, որ այս սենսորների արժեքները դառնում են՝ սենսոր 2 – 55 միավոր, իսկ սենսորը 3 – 45 միավոր:
«Հանում» բլոկը կորոշի երկու սենսորների արժեքների տարբերությունը (10) և այն կհաղորդի ուղղիչ բլոկին (բազմապատկելով գործակցով (10*2.5=25)), այնուհետև՝ հսկիչ բլոկներին։
շարժիչներ.
Շարժիչի կառավարման B մաթեմատիկական բլոկում (Ավելացում) միջին արագության արժեքին 50
25-ը կավելացվի և B շարժիչին կտրվի 75 հզորություն:
C շարժիչի կառավարման մաթեմատիկական բլոկում (հանում) միջին արագության արժեքից 25-ը կհանվի 50-ից, իսկ C շարժիչին կտրվի 25-ի հզորության արժեքը:
Այս կերպ ուղիղ գծից շեղումը կուղղվի։

Եթե ​​ուղին կտրուկ շրջվում է դեպի կողմը, սենսոր 2-ը պարզվում է սպիտակ, իսկ սենսոր 3-ը սև է: Այս սենսորների լուսավորության արժեքները դառնում են՝ սենսոր 2 – 70 միավոր, իսկ սենսորը 3 – 50 միավոր:
«Հանում» բլոկը կորոշի երկու սենսորների արժեքների տարբերությունը (20) և այն կհաղորդի ուղղիչ բլոկին (20*2.5=50), այնուհետև շարժիչի կառավարման միավորներին:
Այժմ B շարժիչի կառավարման մաթեմատիկական (Ավելացում) բլոկում B շարժիչին կտրամադրվի 50 +50 =100 հզորության արժեք:
C շարժիչի կառավարման մաթեմատիկական բլոկում (հանում) C շարժիչին կտրամադրվի 50 – 50 = 0 հզորության արժեք:
Իսկ ռոբոտը կտրուկ շրջադարձ կանի։

Սպիտակ և սև դաշտերի վրա ռոբոտը պետք է վարի ուղիղ գծով: Եթե ​​դա տեղի չունենա, փորձեք ընտրել նույն արժեքներով սենսորներ:

Այժմ եկեք ստեղծենք նոր բլոկ և օգտագործենք այն ռոբոտը տեղափոխելու ցանկացած երթուղիով:
Ընտրեք ցիկլը, այնուհետև «Խմբագրել» ընտրացանկում ընտրեք «Ստեղծել իմ բլոկը» հրամանը:

«Block Designer» երկխոսության վանդակում անուն տվեք մեր բլոկին, օրինակ՝ «Գնացեք», ընտրեք բլոկի պատկերակը և սեղմեք «ԿԱՏԱՐՎԱԾ»:

Այժմ մենք ունենք բլոկ, որը կարող է օգտագործվել այն դեպքերում, երբ մենք պետք է շարժվենք գծի երկայնքով:

Թեթև շինարարության հիմնական շարժումներից մեկը սև գծին հետևելն է։

Ընդհանուր տեսություն և կոնկրետ օրինակներԾրագրի ստեղծումը նկարագրված է wroboto.ru կայքում

Ես նկարագրելու եմ, թե ինչպես ենք մենք դա իրականացնում EV3 միջավայրում, քանի որ կան տարբերություններ:

Առաջին բանը, որ ռոբոտը պետք է իմանա, դա «իդեալական կետի» նշանակությունն է, որը գտնվում է սևի և սպիտակի սահմանին:

Նկարում կարմիր կետի գտնվելու վայրը հենց այս դիրքին է համապատասխանում:

Իդեալական հաշվարկման տարբերակն է չափել սև և սպիտակ արժեքները և վերցնել միջին թվաբանականը:

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

Այսպիսով, դուք կարող եք ձեռք բերել ռոբոտ, որը դա անելու է:

Փորձերի ընթացքում պարզեցինք, որ պետք չէ չափել և՛ սևը, և՛ սպիտակը։ Միայն սպիտակը կարելի է չափել: Իսկ իդեալական կետի արժեքը հաշվարկվում է որպես սպիտակ արժեքը բաժանված 1.2-ի (1.15)՝ կախված սև գծի լայնությունից և ռոբոտի արագությունից։

Հաշվարկված արժեքը պետք է գրվի փոփոխականի վրա՝ հետագայում դրան մուտք գործելու համար:

«Իդեալական կետի» հաշվարկ

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

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

Հարմարության համար այս պարամետրերը կարող են գրվել նաև փոփոխականների մեջ:

Շրջադարձների հարաբերակցությունը և բազային հզորությունը

Սև գծով շարժվելու տրամաբանությունը հետևյալն է՝ չափվում է իդեալական կետից շեղումը։ Որքան մեծ է այն, այնքան ավելի ուժեղ ռոբոտը պետք է ձգտի վերադառնալ դրան:

Դա անելու համար մենք հաշվարկում ենք երկու թիվ՝ B և C շարժիչներից յուրաքանչյուրի հզորության արժեքը առանձին:

Բանաձևի տեսքով այն ունի հետևյալ տեսքը.

Որտեղ Isens-ը լույսի սենսորի ընթերցումների արժեքն է:

Վերջապես, իրականացումը EV3-ում: Առավել հարմար է այն կազմակերպել առանձին բլոկի տեսքով:

Ալգորիթմի իրականացում

Սա հենց այն ալգորիթմն է, որը ներդրվել է ռոբոտում WRO 2015-ի միջին կատեգորիայի համար



Որպեսզի ռոբոտը սահուն շարժվի սև գծի երկայնքով, դուք պետք է ստիպեք նրան հաշվարկել շարժման արագությունը:

Մարդը տեսնում է սև գիծ և դրա հստակ սահմանը: Լույսի սենսորը մի փոքր այլ կերպ է աշխատում:

Լույսի սենսորի այս հատկությունն է՝ սպիտակն ու սևը հստակ տարբերելու անկարողությունը, որը մենք կօգտագործենք շարժման արագությունը հաշվարկելու համար:

Նախ, եկեք ներկայացնենք «Իդեալական հետագծի կետ» հասկացությունը:

Լույսի սենսորների ընթերցումները տատանվում են 20-ից 80-ի սահմաններում, առավել հաճախ սպիտակի վրա ցուցումները մոտավորապես 65 են, սևի վրա՝ մոտ 40:

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

Այստեղ կետի գտնվելու վայրը հիմնարար է՝ սպիտակի և սևի միջև։ Մաթեմատիկական պատճառներով դա հնարավոր չի լինի դնել հենց սպիտակի կամ սևի վրա.

Էմպիրիկորեն մենք հաշվարկել ենք, որ իդեալական կետը կարող է հաշվարկվել հետևյալ բանաձևով.

Ռոբոտը պետք է խստորեն շարժվի իդեալական կետով: Եթե ​​որևէ ուղղությամբ շեղում կա, ապա ռոբոտը պետք է վերադառնա այդ կետը:

Եկեք կազմենք խնդրի մաթեմատիկական նկարագրությունը.

Նախնական տվյալներ.

Իդեալական կետ.

Լույսի ցուցիչի ընթացիկ ընթերցումները:

Արդյունք.

Շարժիչի պտտման հզորությունը Վ.

Շարժիչի պտտման հզորությունը C.

Լուծում.

Դիտարկենք երկու իրավիճակ. Նախ՝ ռոբոտը սև գծից շեղվեց դեպի սպիտակ գիծ:

Այս դեպքում ռոբոտը պետք է մեծացնի B շարժիչի պտտման հզորությունը և նվազեցնի C շարժիչի հզորությունը։

Այն իրավիճակում, երբ ռոբոտը մտնում է սև գիծ, ​​հակառակն է.

Որքան շատ է ռոբոտը շեղվում իդեալական կետից, այնքան ավելի արագ է պետք վերադառնալ դեպի այն:

Բայց նման կարգավորիչի ստեղծումը բավականին բարդ խնդիր է, և դա միշտ չէ, որ պահանջվում է ամբողջությամբ:

Հետևաբար, մենք որոշեցինք սահմանափակվել միայն P-կարգավորիչով, որը համարժեքորեն արձագանքում է սև գծից շեղումներին:

Մաթեմատիկական լեզվով կգրվի այսպես.

որտեղ Hb և Hc համապատասխանաբար B և C շարժիչների վերջնական հզորություններն են,

Հիմք – շարժիչների որոշակի բազային հզորություն, որը որոշում է ռոբոտի արագությունը: Այն ընտրվում է փորձարարական եղանակով՝ կախված ռոբոտի դիզայնից և շրջադարձերի կտրուկությունից։

Itek - լույսի սենսորի ընթացիկ ընթերցումներ:

Iid - հաշվարկված իդեալական կետ:

k – փորձարարական ընտրված համաչափության գործակից:

Երրորդ մասում մենք կանդրադառնանք, թե ինչպես դա ծրագրավորել NXT-G միջավայրում:

Շարժական LEGO ռոբոտի կառավարման ալգորիթմներ. Գծի շարժում երկու լուսային սենսորներով

Լրացուցիչ կրթության ուսուցիչ

Կազակովա Լյուբով Ալեքսանդրովնա


Շարժում գծի երկայնքով

  • Երկու լույսի սենսոր
  • Համամասնական կարգավորիչ (P-վերահսկիչ)

Առանց համամասնական հսկիչի սև գծի երկայնքով շարժվելու ալգորիթմ

  • Երկու շարժիչներն էլ պտտվում են նույն հզորությամբ
  • Եթե ​​ճիշտ լույսի սենսորը դիպչում է սև գծին, ապա ձախ շարժիչի հզորությունը (օրինակ B) նվազում կամ կանգ է առնում
  • Եթե ​​ձախ լուսային սենսորը հարվածում է սև գծին, ապա շարժիչներից մեկ այլ շարժիչի հզորությունը (օրինակ C) նվազում է (վերադառնում է գիծ), նվազում կամ կանգ է առնում:
  • Եթե ​​երկու սենսորներն էլ սպիտակ կամ սև են, ապա գծային շարժում է տեղի ունենում

Շարժումը կազմակերպվում է շարժիչներից մեկի հզորությունը փոխելով


Առանց P-կարգավորիչի սև գծով վարելու ծրագրի օրինակ

Շարժումը կազմակերպվում է պտտման անկյունը փոխելով


  • Համամասնական կարգավորիչը (P-controller) թույլ է տալիս հարմարեցնել ռոբոտի վարքը՝ կախված նրանից, թե որքանով է նրա վարքագիծը տարբերվում ցանկալիից:
  • Որքան ռոբոտը շեղվի նպատակից, այնքան ավելի շատ ջանք պետք է գործադրի դրան վերադառնալու համար:

  • P-կարգավորիչը օգտագործվում է ռոբոտը որոշակի վիճակում պահելու համար.
  • Մանիպուլյատորի դիրքը պահելը Շարժվում է գծի երկայնքով (լույսի սենսոր) Շարժվում է պատի երկայնքով (հեռավորության սենսոր)
  • Մանիպուլյատորի դիրքը պահելը
  • Գծի շարժում (լույսի սենսոր)
  • Շարժում պատի երկայնքով (հեռավորության սենսոր)

Գծի շարժում մեկ սենսորով

  • Նպատակը «սպիտակ-սև» սահմանով շարժվելն է
  • Մարդը կարող է տարբերել սպիտակի և սևի սահմանը: Ռոբոտը չի կարող:
  • Ռոբոտի նպատակը մոխրագույն է

Քշել խաչմերուկներով

Լույսի երկու սենսոր օգտագործելիս հնարավոր է շարժում կազմակերպել ավելի բարդ երթուղիներով



Խաչմերուկներով մայրուղով վարելու ալգորիթմ

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


P-կարգավորիչի գործառնական սկզբունքը

Սենսորի դիրքը

O=O1-O2


Համամասնական կարգավորիչով սև գծի երկայնքով շարժվելու ալգորիթմ

HC = K*(C-T)

  • Ts - թիրախային արժեքներ (սպիտակի և սևի վրա լույսի սենսորից ընթերցումներ վերցրեք, հաշվարկեք միջինը)
  • T - ընթացիկ արժեքը - ստացված սենսորից
  • K - զգայունության գործակից: Որքան շատ է, այնքան բարձր է զգայունությունը


15.01.2012, 18:51

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

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

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

Վերևի դիագրամը անմիջապես ցույց է տալիս, թե ինչպես պետք է փոխվի շարժիչների վարքագիծը ծրագրում: Դա այնքան էլ կարևոր չէ, ուրեմն թող մնա: Անհրաժեշտ է որոշել՝ այն գտնվում է բաց, թե մուգ մակերևույթի վերևում.
Այս գործողությունը դեռ թույլ չի տալիս ասել, թե որ ուղղությամբ պետք է գնա ռոբոտը։ Բայց այն կբաժանի վերը թվարկված պետությունները երկու խմբի՝ (I, II) վերին ճյուղի և (III, IV) ստորին ճյուղի համար։ Այժմ յուրաքանչյուր խումբ ունի երկու վիճակ, այնպես որ դուք պետք է ընտրեք դրանցից մեկը: Եթե ​​ուշադիր նայեք I և II առաջին երկու վիճակներին, ապա դրանք տարբերվում են ճիշտ սենսորի դիրքով. մի դեպքում այն ​​գտնվում է բաց մակերեսի վերևում, մյուս դեպքում՝ մութից վեր: Ահա թե ինչ է որոշելու, թե ինչ գործողություն պետք է կատարվի.
Այժմ դուք կարող եք տեղադրել բլոկներ, որոնք սահմանում են շարժիչների վարքագիծը վերը նշված աղյուսակների համաձայն. ներդիր վիճակի վերին ճյուղը սահմանում է «երկու սենսորները լույսի վրա» համադրությունը, վերևում ՝ «ձախը լույսի վրա, աջը մթության վրա»:
Հիմնական պայմանի ստորին ճյուղը պատասխանատու է III և IV պայմանների մեկ այլ խմբի համար: Երկու վիճակները միմյանցից տարբերվում են նաև լույսի մակարդակով, որը հայտնաբերում է ճիշտ սենսորը: Սա նշանակում է, որ դա կորոշի նրանցից յուրաքանչյուրի ընտրությունը.
Ստացված երկու ճյուղերը լցված են շարժման բլոկներով։ Վերին ճյուղը պատասխանատու է «ձախը մթության վրա, աջը լույսի վրա» վիճակի համար, իսկ ստորին ճյուղը պատասխանատու է «երկու սենսորների վրա մթության վրա»:
Հարկ է նշել, որ այս դիզայնըայն պարզապես որոշում է, թե ինչպես պետք է միացնել շարժիչները՝ կախված դաշտի որոշակի վայրում սենսորների ցուցումներից, բնականաբար, մի պահ հետո ծրագիրը պետք է ստուգի, թե արդյոք ընթերցումները փոխվել են, որպեսզի համապատասխանաբար կարգավորվի շարժիչների վարքագիծը. և մի պահ հետո նորից, նորից և այլն: Հետևաբար, այն պետք է տեղադրվի մի օղակի մեջ, որը կապահովի այս կրկնվող ստուգումը.

Այնքան գեղեցիկ պարզ ծրագիրկապահովի ռոբոտի շարժման բավականին բարձր արագություն գծի երկայնքով՝ առանց դրա սահմաններից դուրս թռչելու, եթե ճիշտ կազմաձևված լինի առավելագույն արագություն I և IV վիճակներում շարժվելիս, ինչպես նաև սահմանել լավագույն միջոցըԱրգելակում II և III վիճակներում. որքան կտրուկ են շրջադարձերը մայրուղու վրա, այնքան ավելի «կոշտ» պետք է լինի արգելակումը, արագությունը պետք է ավելի արագ նվազի, և հակառակը. կամ նույնիսկ արագությունը ընդհանրապես նվազեցնելով:

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



 


Կարդացեք.



Ինչպես հաշվարկել մոմենտը

Ինչպես հաշվարկել մոմենտը

Դիտարկելով թարգմանական և պտտվող շարժումները՝ մենք կարող ենք անալոգիա հաստատել դրանց միջև։ Թարգմանական շարժման կինեմատիկայում ճանապարհը ս...

Արևի մաքրման մեթոդներ՝ դիալիզ, էլեկտրադիալիզ, ուլտրաֆիլտրացիա

Արևի մաքրման մեթոդներ՝ դիալիզ, էլեկտրադիալիզ, ուլտրաֆիլտրացիա

Հիմնականում օգտագործվում է 2 մեթոդ՝ ցրման մեթոդ՝ օգտագործելով պինդ նյութի տրոհումը կոլոիդներին համապատասխան չափի մասնիկների մեջ։

«Մաքուր արվեստ»՝ Ֆ.Ի. Տյուտչևը։ «Մաքուր արվեստի» պոեզիա. ավանդույթներ և նորարարություն Մաքուր արվեստի ներկայացուցիչներ ռուս գրականության մեջ

«Մաքուր արվեստ»՝ Ֆ.Ի.  Տյուտչևը։  «Մաքուր արվեստի» պոեզիա. ավանդույթներ և նորարարություն Մաքուր արվեստի ներկայացուցիչներ ռուս գրականության մեջ

Որպես ձեռագիր «ՄԱՔՈՒՐ ԱՐՎԵՍՏԻ ՊՈԵԶԻԱ» ատենախոսություններ բանասիրական գիտությունների դոկտորի աստիճանի համար Օրել - 2008 Ատենախոսություն...

Ինչպես պատրաստել տավարի լեզուն տանը

Ինչպես պատրաստել տավարի լեզուն տանը

Խոհարարական արդյունաբերությունը առաջարկում է մեծ քանակությամբ համեղ ուտեստներ, որոնք կարող են բավարարել ցանկացած մարդու գաստրոնոմիական կարիքները։ Նրանց թվում...

feed-պատկեր RSS