Arduino Line Follower Wallrides Classroom Whiteboard: 8 քայլ (նկարներով)
Arduino Line Follower Wallrides Classroom Whiteboard: 8 քայլ (նկարներով)
Anonim
Image
Image

Հողի վրա գծին հետևելը չափազանց ձանձրալի է:

Մենք փորձել ենք այլ տեսանկյունից նայել գծի հետևորդներին և դրանք հասցնել մեկ այլ հարթության `դպրոցի գրատախտակի մոտ:

Տեսեք, թե ինչ ստացվեց դրանից:

Քայլ 1: Ի՞նչ է ձեզ անհրաժեշտ:

Ինչպե՞ս հավաքվել: Հավաքեք շասսի
Ինչպե՞ս հավաքվել: Հավաքեք շասսի

Մեկ մրցարշավային ռոբոտի համար

Մեխանիկա:

1 x 2WD miniQ ռոբոտի շասսի; Այն բազմաֆունկցիոնալ հարթակ է ՝ երկանիվ պարզ ռոբոտներ ստեղծելու համար:

2 x 6V միկրո շարժիչով շարժիչ ՝ 1: 150 նվազեցման հարաբերակցությամբ; MinQ ռոբոտային հարթակի հետ ներառված շարժիչների շարժիչները ունեն 1:50 փոխանցման հարաբերակցություն և չափազանց արագ են: Նրանք պետք է փոխարինվեն ավելի հզոր շարժիչներով, օրինակ `1: 150 կամ ավելի բարձր հանդերձում: Որքան բարձր է փոխանցումատուփի հարաբերակցությունը, այնքան ավելի դանդաղ է ռոբոտը նստում գրատախտակի վրա, բայց անիվների սայթաքման հավանականությունը նվազում է:

4 x նեոդիմումի մագնիս; Ձեզ անհրաժեշտ են 3 մմ հաստությամբ փոքր մագնիսներ ՝ 12 մմ տրամագծով (կլոր ձև ունեցողների համար) կամ 12 մմ կողմով (քառակուսի ձև ունեցողների համար): Բացի այդ, մագնիսները պետք է անցք ունենան մեքենայի պտուտակի համար `հակափորված գլխով, սովորաբար M3- ի համար: Երբեմն արտադրողները նշում են մագնիսի միացման ուժը: Այն պետք է լինի 2 կգ -ից 2.4 կգ սահմաններում:

Էլեկտրոնիկա:

1 x Arduino UNO; Բորտ համակարգիչ: Նախատիպերի ստեղծման ամենահայտնի հարթակը:

1 x Octoliner մոդուլ; Ձեր մրցարշավի բոտի աչքերն ու լուսարձակները: Octoliner- ը սառը գծի սենսոր է, որը բաղկացած է 8 առանձին ինֆրակարմիր տվիչներից, որոնք վերահսկվում են I2C ինտերֆեյսի միջոցով:

1 x Շարժիչային վահան; Գրեթե ցանկացած մոդուլ ձեզ հարմար է: Ես օգտագործել եմ այս անալոգը ՝ հիմնված L298p չիպի վրա:

1 x 2-բջջային 7.4V LiPo մարտկոց; Այն կարող է հաղորդել մեծ հոսանք, որը անհրաժեշտ է շարժիչներին `մագնիսների գրավչությունը հաղթահարելու համար: 2-բջջային մարտկոցը ունի լարվածություն 7.4V- ից 8.4V միջակայքում: Դա բավական է 6 Վ շարժիչների և Arduino տախտակի վրա ներկառուցված լարման կարգավորիչի համար: Կարող է ընտրվել ցանկացած հզորություն: Հզոր մարտկոցը, այնքան երկար է ռոբոտը քշում, բայց նշեք, որ չափազանց տարողունակ մարտկոցը կարող է ծանր լինել: 800mAh- ից 1300mAh միջակայքում հզորությունը օպտիմալ է:

Տարբեր:

4 x Արական և իգական մետաղալար;

4 x M3 spacer կամ արական և իգական դիմակայություն ՝ 10 մմ երկարությամբ;

3 x M3 spacer կամ արական-իգական բախում ՝ 25 մմ կամ ավելի երկարությամբ;

4 x M3x8 հարթ գլխի պտուտակ;

1 x M3 նեյլոնե պտուտակ;

1 x M3 Նեյլոնե վեցանկյուն ընկույզ;

Mանկացած M3 պտուտակ և վեցանկյուն ընկույզ:

Դասարանի համար

Պատից կախված մագնիսական գրատախտակ;

Հաստ սև մագնիսական տախտակի մարկերներ;

Հատուկ LiPo մարտկոցի լիցքավորիչ կամ բազմաթիվ լիցքավորիչներ, եթե ցանկանում եք շատ ռոբոտներ պատրաստել և դրանք առանձին լիցքավորել:

Քայլ 2: Ինչպե՞ս հավաքվել: Հավաքեք շասսի:

Սկզբում դուք պետք է հավաքեք miniQ շասսիի հարթակ, որը շարժիչից նախապես փոխարինում է շարժիչները ավելի հզորներով ՝ 1: 150 փոխանցման հարաբերակցությամբ: Մի մոռացեք լարերը միացնել շարժիչների կոնտակտներին:

Քայլ 3: Ինչպե՞ս հավաքվել: Տեղադրեք մագնիսներ:

Ինչպե՞ս հավաքվել: Տեղադրեք մագնիսներ
Ինչպե՞ս հավաքվել: Տեղադրեք մագնիսներ

Տեղադրեք մագնիսները miniQ հարթակում: Օգտագործեք M3x10 փակուղիներ, M3x8 կամ M3x6 հարթ պտուտակներ և M3 ընկույզներ: Տեղադրման համար անհրաժեշտ անցքերը ցուցադրվում են նկարում:

Դա կարևոր է:

Կանգնածների երկարությունը պետք է լինի ճիշտ 10 մմ: Մագնիսները տեղադրելուց հետո փորձարկեք հարթակը գրատախտակի վրա: Բոլոր չորս մագնիսները պետք է հարակից լինեն մագնիսական տախտակին, իսկ miniQ հարթակի անիվների ռետինե անվադողերը պետք է նախաբեռնված լինեն և որոշակի շփում ապահովեն տախտակի մակերեսի հետ:

Ռոբոտը ձեռքով տեղափոխեք տախտակ: Ուղևորության ընթացքում մագնիսները չպետք է դուրս գան տախտակից: Եթե ինչ -որ մագնիս է դուրս գալիս, դա նշանակում է, որ անիվների ռետինե անվադողերը առավելագույն բեռնվում են: Այս դեպքում մեծացրեք բոլոր կանգառների 10 մմ հեռավորությունը 1 կամ 2 մմ -ով ՝ ավելացնելով մի զույգ M3 լվացքի մեքենա և նորից փորձեք:

Քայլ 4: Ինչպե՞ս հավաքվել: Ավելացնել էլեկտրոնիկա:

Ինչպե՞ս հավաքվել: Ավելացնել էլեկտրոնիկա
Ինչպե՞ս հավաքվել: Ավելացնել էլեկտրոնիկա

Տեղադրեք Arduino UNO- ի խորհուրդը հարթակի վրա `օգտագործելով M3x25 փակուղիներ, M3 պտուտակներ և M3 ընկույզներ: Մի օգտագործեք կարճ հակադրություններ, թողեք որոշ տարածք Arduino տախտակի տակ լարերի և մարտկոցի համար:

Տեղադրեք Motor վահանը Arduino UNO- ի տախտակին:

Տեղադրեք Octoliner մոդուլը: Սեղմեք այն հարթակի վրա ՝ օգտագործելով նեյլոնե M3 պտուտակ և ընկույզ:

Դա կարևոր է:

Մի օգտագործեք մետաղական ամրակներ `Octoliner- ը տեղադրելու համար: Բեկման տախտակի վրա ամրացվող որոշ անցքեր զոդվում են և օգտագործվում են որպես IO կապում: Կարճ միացումներից խուսափելու համար օգտագործեք պլաստիկ ամրացնող սարք, օրինակ `նեյլոնե:

Քայլ 5: Ինչպե՞ս հավաքվել: Հաղորդալարեր:

Ինչպե՞ս հավաքվել: Հաղորդալարեր
Ինչպե՞ս հավաքվել: Հաղորդալարեր

Կապեք բոլոր էլեկտրոնային բաղադրիչները, ինչպես ցույց է տրված դիագրամում: Octoliner մոդուլը 4 լարերով (GND, 5V, SDA, SCL) միացված է Arduino UNO- ին: Միացրեք շարժիչները շարժիչի վահանին: LiPo մարտկոցը միացված է Motor վահանի արտաքին սնուցման աղբյուրի կոնտակտային բարձիկներին, ինչպես նաև Arduino տախտակի VIN կապին: VIN կապի օգտագործման փոխարեն, կարող եք օգտագործել տախտակի 5.5 մմ x 2.1 մմ հոսանքի վարդակից:

Դա կարևոր է:

Շարժիչի վահանի օգտագործման ժամանակ լարերի կարիք չկա: Երկու շարժիչային ալիքները վերահսկվում են 4 կապում: 2 PWM կապում պատասխանատու են պտտման արագության համար, իսկ 2 DIR կապում `պտտման ուղղության համար: Սովորաբար, դրանք արդեն կապված են Arduino Board- ի հատուկ կապումներով և դրանց ինդեքսի թվերը կարող են տարբեր լինել `կախված վահանի արտադրողից: Օրինակ, իմ Motor shield- ի համարներն են D4 D5 (առաջին ալիքի համար DIR և PWM) և D7 D6 (երկրորդ ալիքի համար DIR և PWM): Բնօրինակ Arduino Motor վահանի համար կապում համարները համապատասխանում են D12 D3 (DIR և PWM առաջին ալիքի համար) և D13 D11 (DIR և PWM երկրորդ ալիքի համար):

Դա կարևոր է:

Hobby LiPo մարտկոցները չունեն հակառակ բևեռայնության պաշտպանության տախտակ: Դրական և բացասական շփումների պատահական կարճացումը կհանգեցնի մարտկոցի մշտական անսարքության կամ հրդեհի:

Քայլ 6: Ինչպե՞ս ծրագրել: XOD

Նման մրցարշավային ռոբոտի համար ծրագիր պատրաստելը նույնիսկ ավելի հեշտ է, քան այն հավաքելը:

Իմ բոլոր նախագծերում ես օգտագործում եմ XOD տեսողական ծրագրավորման միջավայրը, որը թույլ է տալիս գրաֆիկորեն ստեղծել Arduino ծրագրեր ՝ առանց ծածկագիր գրելու: Այս միջավայրը իդեալական է սարքի արագ նախատիպավորման կամ ծրագրավորման ալգորիթմներ սովորելու համար: Հետևեք XOD փաստաթղթերի վեբ էջին ՝ ավելին կարդալու համար:

Այս ռոբոտը ծրագրավորելու համար հարկավոր է ընդամենը մեկ գրադարանային amperka/octoliner ավելացնել ձեր XOD աշխատանքային տարածքին: Դա անհրաժեշտ է ութ ալիքի գծի տվիչով աշխատելու համար:

Քայլ 7: Ինչպե՞ս ծրագրել: Կարկատել:

Ինչպե՞ս ծրագրել: Կարկատել
Ինչպե՞ս ծրագրել: Կարկատել

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

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

octoliner- գիծ

Այն արագ սկսվող հանգույց է amperka/octoliner XOD գրադարանից, որը ներկայացնում է գիծը հետևող Octoliner մոդուլը: Այն թողարկում է «գծի հետևման արժեքը», որը սահմանվում է -1 -ից 1 -ի սահմաններում: 0 արժեքը ցույց է տալիս, որ գիծը գտնվում է կենտրոնական դիրքում `Octoliner տախտակի ինֆրակարմիր տվիչների համեմատ (CH3- ի և CH4- ի միջև): -1 արժեքը համապատասխանում է ծայրահեղ ձախ դիրքին (CH0), իսկ 1 -ը ՝ ծայրահեղ աջին (CH1): Բեռնման հանգույցը սկզբնական տեսքի է բերում օպտիկական զույգ տվիչները և սահմանում է դրանց կանխադրված պայծառության և զգայունության պարամետրերը: Այս հանգույցի մուտքերն են սարքի I2C հասցեն (ADDR- ը Octoliner- ի տախտակի համար այն 0x1A է) և գծի հետևման արժեքի թարմացման արագությունը (UPD), այն սահմանել եմ շարունակական:

Գծի հետևման արժեքները ուղղակիորեն սնվում են pid- վերահսկիչ հանգույցով:

pid- վերահսկիչ

Այս հանգույցն իրականացնում է POD- վերահսկիչի աշխատանքը XOD- ում: Թիրախային (TARG) արժեքը դրա համար 0 է: Դա այն վիճակն է, երբ գիծը գտնվում է հենց ռոբոտի տակ գտնվող կենտրոնում: Եթե գծի հետևման արժեքը 0 է, PID- վերահսկիչը վերակայվում է RST կապի միջոցով: Եթե գծի հետևման արժեքը տարբերվում է 0-ից, PID- վերահսկիչը այն Kp, Ki, Kd գործակիցների միջոցով փոխակերպում է շարժիչի արագության արժեքների: Գործակիցների արժեքները ընտրվել են փորձնականորեն և հավասար են համապատասխանաբար 1, 0.2 և 0.5: PID- վերահսկիչի թարմացման արագությունը (UPD) սահմանվում է շարունակական:

PID- վերահսկիչի մշակված արժեքը հանվում է 1-ից և ավելանում 1.-ին: Դա արվում է շարժիչների ապահամաժամացման համար, որպեսզի դրանք պտտվեն հակառակ ուղղություններով, երբ գիծը կորչի: Այս հանգույցների 1 արժեքը ներկայացնում է շարժիչների առավելագույն արագությունը: Դուք կարող եք նվազեցնել արագությունը `մուտքագրելով ստորին արժեքը:

h-bridge-dc-motor

Այս հանգույցներից մի քանիսը պատասխանատու են ձախ և աջ ռոբոտների շարժիչների վերահսկման համար: Այստեղ սահմանեք PWM և DIR կապի արժեքները, որոնց միջոցով գործում է ձեր շարժիչի վահանը:

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

Ավարտված ծրագիրը կարելի է գտնել գրադարանի gabbapeople/whiteboard-races- ում

Քայլ 8: cուցափեղկ և խորհուրդներ:

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