Բովանդակություն:
- Պարագաներ
- Քայլ 1: Համակարգերի ակնարկ
- Քայլ 2: Եկեք սկսենք նախատիպը
- Քայլ 3. Նախատիպերի ստեղծում
- Քայլ 4. Նախատիպավորում - հենարան վահան
- Քայլ 5. Նախատիպերի ստեղծում. Ուժ և հող
- Քայլ 6. Նախատիպերի ստեղծում
- Քայլ 7. Նախատիպավորում - Line Sensor Array Header
- Քայլ 8. Նախատիպերի ստեղծում - Micro Gear Motor և կոդավորիչ
- Քայլ 9. Նախատիպերի ստեղծում
- Քայլ 10. Նախատիպերի ստեղծում
- Քայլ 11: Softwareրագրային գրադարանների ակնարկ
- Քայլ 12. Գրադարանները բացատրվում են `սեղմելով կոճակը
- Քայլ 13. Բացատրված գրադարաններ - գծի ցուցիչ
- Քայլ 14. Բացատրված գրադարաններ - TeensyviewMenu
- Քայլ 15. Բացատրված գրադարաններ - շարժիչներ
- Քայլ 16. Փորձարկում - Կոդավորիչ հոդոմետրիա
- Քայլ 17. Փորձարկում. Հենարան Shield շարժման տվիչներ
- Քայլ 18: Overրագրի ակնարկ
- Քայլ 19: Նավարկում ընտրացանկ և կարգավորումներ
- Քայլ 20: Գծի տվիչի չափաբերում
- Քայլ 21: Փորձնական աշխատանք
- Քայլ 22. Վերջնական մտքեր և բարելավումներ
Video: Ընդլայնված գծի հետևող ռոբոտ. 22 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:45
Սա Teensy 3.6 և QTRX գծերի սենսորների վրա հիմնված ռոբոտին հետևող առաջադեմ տող է, որը ես կառուցել եմ և աշխատում եմ բավականին երկար ժամանակ: Դիզայնի և կատարման մեջ կան մի քանի կարևոր բարելավումներ իմ նախորդ ռոբոտին հաջորդող շարքում: Ռոբոտի արագությունն ու արձագանքը բարելավվել են: Ընդհանուր կառուցվածքը կոմպակտ է և թեթև: Բաղադրիչները դասավորված են անիվի առանցքին մոտ, որպեսզի նվազագույնի հասցնեն անկյունային թափը: Բարձր հզորությամբ միկրո մետաղական փոխանցման շարժիչներ ապահովում են համապատասխան ոլորող մոմենտ պտույտ, իսկ ալյումինե հանգույցի սիլիկոնե անիվներն ապահովում են շատ անհրաժեշտ ձգում բարձր արագությունների դեպքում: Հենարանային վահանը և անիվների կոդավորումը ռոբոտին հնարավորություն են տալիս որոշելու իր դիրքն ու կողմնորոշումը: Teensyview- ի վրա տեղադրված բոլոր համապատասխան տեղեկատվությունը կարող է պատկերացվել, և ծրագրի կարևոր պարամետրերը կարող են թարմացվել `օգտագործելով սեղմման կոճակները:
Այս ռոբոտի ստեղծումը սկսելու համար ձեզ հարկավոր են հետևյալ պարագաները (և ձեր տրամադրության տակ շատ ժամանակ և համբերություն):
Պարագաներ
Էլեկտրոնիկա
- Teensy 3.6 զարգացման խորհուրդ
- Prop Shield շարժման տվիչներով
- Sparkfun TeensyView
- Pololu QTRX-MD-16A Reflectance Sensor Array
- 15x20 սմ երկկողմանի PCB նախատիպ
- Pololu Step-Up/Step-Down Լարման կարգավորիչ S9V11F3S5
- Pololu կարգավորելի 4-5-20V Լարման բարձրացման կարգավորիչ U3V70A
- MP12 6V 1580 rpm միկրո փոխանցման շարժիչ ՝ կոդավորիչով (x2)
- DRV8833 Dual Motor Driver Carrier (x2)
- 3.7V, 750 mAh Li-Po մարտկոց
- ON/OFF անջատիչ
- Էլեկտրոլիտիկ կոնդենսատոր 470uF
- Էլեկտրոլիտիկ կոնդենսատոր 1000uF (x2)
- Կերամիկական կոնդենսատոր 0.1uF (x5)
- Կոճակներ (x3)
- 10 մմ կանաչ LED (x2)
Սարքավորումներ
- Ատոմային սիլիկոնե անիվ 37x34 մմ (x2)
- Pololu Ball Caster 3/8”մետաղական գնդակով
- N20 շարժիչի լեռ (x2)
- Պտուտակ և ընկույզ
Մալուխներ և միակցիչներ
- 24AWG ճկուն լարեր
- 24 փին FFC- ից DIP ճեղքում և FFC մալուխ (տիպ A, երկարություն 150 մմ)
- Կլոր իգական կապում վերնագիր
- Կլոր իգական կապի վերնագիր երկար տերմինալ
- Ուղղանկյուն կրկնակի տող իգական վերնագիր
- Ուղղանկյուն երկշարք արական վերնագիր
- Արական քորոց վերնագիր
- Արական ասեղի քորոց վերնագիր
Գործիքներ
- Բազմաչափ
- Sոդման երկաթ
- Sոդման մետաղալար
- Մետաղալար մերկապարուհի
- Մետաղալար կտրիչ
Քայլ 1: Համակարգերի ակնարկ
Ինչ վերաբերում է ինքնահավասարակշռող ռոբոտի իմ ավելի վաղ նախագծին, այս ռոբոտը ծածկի տախտակների հավաքածու է, որը տեղադրված է շերտի տախտակի վրա, ինչը նաև ծառայում է կառույցի նպատակին:
Ստորև նկարագրված են ռոբոտի հիմնական համակարգերը:
Միկրոկոնտրոլեր. Teensy 3.6 զարգացման տախտակ ՝ 32-բիթանոց 180 ՄՀց ARM Cortex-M4 պրոցեսորով:
Գծի ցուցիչ. Pololu- ի QTRX-MD-16A 16-ալիքային անալոգային ելքային գծի սենսորային զանգված միջին խտության դասավորության մեջ (8 մմ սենսորային սկիպիդար):
Drive: 6V, 1580rpm, բարձր հզորության միկրո մետաղական շարժիչների շարժիչներ `մագնիսական անիվների կոդավորմամբ և սիլիկոնե անիվներով, որոնք տեղադրված են ալյումինե հանգույցների վրա:
Օդոմետրիա. Անիվի մագնիսական կոդավորող զույգ `ծածկված կոորդինատներն ու տարածությունը գնահատելու համար:
Կողմնորոշիչ սենսոր. Ռոբոտի դիրքի և ուղղության գնահատման համար հենարան վահան `շարժման տվիչներով:
Սնուցման աղբյուր ՝ 3.7 Վ, 750 մԱ / ժ լիպո մարտկոց ՝ որպես էներգիայի աղբյուր: 3.3 Վ արագացման/իջեցման կարգավորիչը սնուցում է միկրոկոնտրոլերը, տվիչները և ցուցադրման սարքը: Կարգավորելի բարձրացման կարգավորիչը սնուցում է երկու շարժիչները:
Օգտվողի միջերես. Teensyview ՝ տեղեկատվություն ցուցադրելու համար: Երեք սեղմիչ կոճակ ՝ օգտվողի մուտքերն ընդունելու համար: 10 մմ տրամագծով կանաչ LED- ների երկու համար `կարգավիճակի նշման համար, երբ աշխատում եք:
Քայլ 2: Եկեք սկսենք նախատիպը
Մենք կիրականացնենք վերը նշված միացումը շերտի տախտակի վրա: Մենք նախ պետք է պատրաստ պահենք մեր ճեղքման տախտակները ՝ դրանց վրա վերնագրեր զոդելով: Տեսահոլովակը գաղափար կտա, թե որ վերնագրերը որ փեղկերի վրա պետք է սոսնձվեն:
Բեկումնային տախտակների վրա վերնագրերը միացնելուց հետո Teensyview- ի վրա տեղադրեք Teensyview և կոճակի կոճակը:
Քայլ 3. Նախատիպերի ստեղծում
Ձեռք բերեք 15x20 սմ երկկողմանի նախատիպի տախտակի նախատիպը և սահմանը նշեք մշտական նշագծով, ինչպես ցույց է տրված նկարում: Հորատեք M2 չափի անցքեր ՝ սենսորային զանգվածը, պտտվող անիվը և միկրո մետաղական փոխանցման շարժիչները տեղադրելու համար ՝ սպիտակ շրջանով նշված վայրերում: Մենք հետագայում կտրելու ենք եզրագիծը եզրագծի երկայնքով `բոլոր բաղադրիչները զոդելուց և փորձարկելուց հետո:
Մենք կսկսենք մեր նախատիպը ՝ կպչելով տախտակի վրա վերնագրի կապումներն ու վարդակները: Բեկման տախտակները հետագայում կտեղադրվեն այս վերնագրերի վրա: Carefulգուշորեն ուշադրություն դարձրեք վերնագրերի դիրքին տախտակի վրա: Մենք կապելու ենք բոլոր լարերը ՝ հիմնվելով վերնագրերի այս դասավորության վրա:
Քայլ 4. Նախատիպավորում - հենարան վահան
Մենք նախ կպցնենք կապի վահանի միացումները: Քանի որ մենք օգտագործում ենք միայն հենարանի վահանի շարժման սենսորները, մենք պետք է միացնենք միայն SCL, SDA և IRQ կապումներն ՝ առանց 3V և հենակետի վահանի գրունտների:
Երբ կապն ավարտվի, տեղադրեք Teensy և հենարան վահան և չափեք շարժման տվիչները ՝ հետևելով այստեղ նշված քայլերին:
Քայլ 5. Նախատիպերի ստեղծում. Ուժ և հող
Sոդեք նկարին վերաբերող բոլոր ուժային և հողային միացումները: Տեղադրեք բոլոր ճեղքման տախտակները տեղում և ապահովեք շարունակականությունը `օգտագործելով բազմաչափ: Ստուգեք նավի վրա գտնվող լարման տարբեր մակարդակները:
- Li-po ելքային լարումը (սովորաբար 3V- ից 4.2V- ի միջև)
- Կարգավորիչի ելքային լարումը (3.3V)
- Կարգավորելի բարձրացման կարգավորիչի ելքային լարումը (սահմանվել է 6 Վ)
Քայլ 6. Նախատիպերի ստեղծում
DRV8833 երկշարժիչանի վարորդի կրիչի տախտակը կարող է ապահովել 1.2 Ա անընդհատ և 2 Ա առավելագույն հոսանքներ մեկ ալիքի համար: Մենք երկու ալիքները զուգահեռաբար կապելու ենք մեկ շարժիչ վարելու համար: Միացրեք կապերը ՝ հետևելով ստորև նշված քայլերին:
- Driverուգահեռաբար շարժիչի վարորդի երկու մուտքերն ու երկու ելքերը, ինչպես ցույց է տրված նկարում:
- Միացրեք մուտքի կառավարման լարերը շարժիչի վարորդին:
- Երկու միացնող տախտակների Vin և Gnd տերմինալների վրա միացրեք 1000uF էլեկտրոլիտիկ կոնդենսատոր և 0.1uF կերամիկական կոնդենսատոր:
- Շարժիչի վարորդի ելքային տերմինալներին միացրեք 0.1uF կերամիկական կոնդենսատոր:
Քայլ 7. Նախատիպավորում - Line Sensor Array Header
Teensy 3.6- ն ունի երկու ADC ՝ ADC0 և ADC1, որոնք մուլտիպլեքսավորված են 25 հասանելի կապում: Մենք կարող ենք միաժամանակ մուտք գործել երկու ADC- ի ցանկացած երկու կապում: Մենք յուրաքանչյուրը ութ գծի տվիչ կկապենք ADC0- ի և ADC1- ի հետ: Evenույգ թվերի տվիչները միացված կլինեն ADC1- ին, իսկ կենտ թվերի տվիչները ՝ ADC0- ին: Միացրեք կապերը ՝ հետևելով ստորև նշված քայլերին: Հետագայում FFC- ի միջոցով գծի տվիչը կկապենք DIP ադապտերին և մալուխին:
- Միացրեք բոլոր հավասարաչափ սենսորները (16, 14, 12, 10, 8, 6, 4, 2), ինչպես ցույց է տրված նկարում: Ուղղորդեք մետաղալարը ՝ սենսորային 12 -ը միացնելու համար սալիկի հակառակ կողմով:
- Միացրեք ճառագայթիչների կառավարման քորոցը (ԱՆԳԱՄ) Teensy pin 30 -ին:
- Միացրեք բոլոր կենտ սենսորների կապում (15, 13, 11, 9, 7, 5, 3, 1), ինչպես ցույց է տրված նկարում:
- Միացրեք 470uF էլեկտրոլիտիկ կոնդենսատոր Vcc- ի և Gnd- ի միջով:
Եթե դուք ուշադիր հետևում եք գծի սենսորային կապումներին և դրանց համապատասխան վերնագրերի կապերին տախտակի վրա, ապա նկատում եք, որ գծի տվիչի վերին տողը քարտեզագրվում է տախտակի վրա գտնվող վերնագրի ներքևի տողի վրա և հակառակը: Դա տեղի է ունենում այն պատճառով, որ երբ գծի տվիչը միացնում ենք շերտի տախտակին ՝ օգտագործելով երկու տողերի ուղղանկյուն վերնագրեր, տողերը ճիշտ կհավասարվեն: Ինձանից բավականին ժամանակ պահանջվեց ՝ դա պարզելու և ծրագրում կատարված քորոցների առաջադրանքները շտկելու համար:
Քայլ 8. Նախատիպերի ստեղծում - Micro Gear Motor և կոդավորիչ
- Միկրո մետաղական փոխանցման շարժիչը կոդավորիչով ամրացրեք ՝ օգտագործելով N20 շարժիչի ամրակներ:
- Միացրեք շարժիչի և ծածկագրիչի լարերը, ինչպես ցույց է տրված նկարում:
- Ձախ կոդավորիչ - դեռահասների կապում 4 և 0
- Աջ կոդավորիչ - դեռահասների կապում 9 և 27
Քայլ 9. Նախատիպերի ստեղծում
Երկու LED- ները ցույց են տալիս ՝ ռոբոտը շրջադարձ է հայտնաբերել, թե ոչ: Ես օգտագործել եմ 470-օմ սերիայի դիմադրություն `LED- ները Teensy- ին միացնելու համար:
- Ձախ LED անոդը Teensy pin 6 -ին
- Աջ LED անոդ Teensy pin 8 -ին
Քայլ 10. Նախատիպերի ստեղծում
Այժմ, երբ մենք ավարտել ենք մեր ամբողջ զոդումը տախտակի վրա, մենք կարող ենք զգուշորեն կտրել տախտակի վրա նշված սահմանի երկայնքով և հեռացնել տախտակի լրացուցիչ կտորները: Բացի այդ, ամրացրեք երկու անիվները և պտտվող անիվը:
Տեղադրեք բոլոր անջատիչ տախտակները իրենց համապատասխան վարդակների մեջ: FFC-DIP ճեղքվածքը տեղադրելու և QTRX-MD-16A գծի տվիչը ամրացնելու համար տե՛ս տեսանյութը:
Քայլ 11: Softwareրագրային գրադարանների ակնարկ
Մենք ծրագրելու ենք Teensy- ն Arduino IDE- ում: Նախքան սկսելը մեզ անհրաժեշտ կլինեն որոշ գրադարաններ: Գրադարանները, որոնք մենք կօգտագործենք, հետևյալն են.
- Կոդավորիչ
- Teensyview
- EEPROM
- ADC
- NXPMotionSense
Եվ ոմանք, որոնք հատուկ գրված են այս ռոբոտի համար,
- PushButton
- LineSensor
- TeensyviewMenu
- Շարժիչներ
Այս ռոբոտին հատուկ գրադարանները մանրամասն քննարկվում են և հասանելի են ներբեռնման համար հաջորդ քայլերում:
Քայլ 12. Գրադարանները բացատրվում են `սեղմելով կոճակը
Այս գրադարանը Teensy- ի հետ կոճակ կոտրելու տախտակը միացնելու համար է: Օգտագործված գործառույթներն են
PushButton (int leftButtonPin, int centreButtonPin, int rightButtonPin);
Այս կոնստրուկտորին զանգահարելով ՝ ստեղծելով օբյեկտ, կարգավորում է սեղմակի կոճակները դեպի INPUT_PULLUP ռեժիմ:
int8_t waitForButtonPress (անվավեր);
Այս գործառույթը սպասում է մինչև կոճակը սեղմելը և բաց թողնելը և վերադարձնում է առանցքային ծածկագիրը:
int8_t getSingleButtonPress (անվավեր);
Այս գործառույթը ստուգում է, արդյոք կոճակը սեղմված է և բաց թողնված: Եթե այո, ապա վերադարձնում է առանցքային կոդը, հակառակ դեպքում `զրո:
Քայլ 13. Բացատրված գրադարաններ - գծի ցուցիչ
LineSensor- ը գրադարանն է ՝ Teensy- ի հետ գծերի սենսորների զանգվածը միացնելու համար: Հետևյալը օգտագործվող գործառույթներն են:
LineSensor (անվավեր);
Այս կոնստրուկտորին զանգահարելով ՝ ստեղծելով օբյեկտ, սկզբնականացնում է ADC0 և ADC1, կարդում է EEPROM- ի շեմը, նվազագույն և առավելագույն արժեքները և կարգավորում է սենսորի կապում մուտքային ռեժիմին, իսկ թողարկողի կառավարման քորոցը ՝ ելքային ռեժիմին:
անվավեր calibrate (uint8_t calibrationMode);
Այս գործառույթը ճշգրտում է գծի տվիչները: CalibrationMode- ը կարող է լինել MIN_MAX կամ MEDIAN_FILTER: Այս գործառույթը մանրամասն բացատրվում է հետագա քայլում:
void getSensorsAnalog (uint16_t *sensorValue, uint8_t ռեժիմ);
Կարդում է սենսորային զանգվածը որպես փաստարկ ընդունված երեք ռեժիմներից որևէ մեկում: Ռեժիմը արտանետիչների վիճակն է և կարող է լինել ON, OFF կամ TOGGLE: TOGGLE ռեժիմը փոխհատուցում է անդրադարձման տվիչների ընթերցումները շրջակա լույսի պատճառով: ADC0- ի և ADC1- ի հետ կապված սենսորները կարդացվում են համաժամանակյա:
int getLinePosition (uint16_t *sensorValue);
Հաշվում է սենսորային զանգվածի դիրքը գծի վրա միջին կշռված մեթոդով:
uint16_t getSensorsBinary (uint16_t *sensorValue);
Վերադարձնում է տվիչների վիճակի 16-բիթանոց պատկերումը: Երկուական մեկը ցույց է տալիս, որ սենսորը գծից այն կողմ է, իսկ երկուական զրոյը ցույց է տալիս, որ սենսորը գծից դուրս է:
uint8_t countBinary (uint16_t binaryValue);
Այս գործառույթին սենսորային արժեքների 16-բիթ ներկայացումը փոխանցելը վերադարձնում է գծից դուրս գտնվող սենսորների թիվը:
void getSensorsNormalized (uint16_t *sensorValue, uint8_t ռեժիմ);
Կարդում է սենսորի արժեքները և սահմանափակում յուրաքանչյուր սենսորի արժեքը իր համապատասխան նվազագույն և առավելագույն արժեքներին: Սենսորների արժեքները քարտեզագրվում են իրենց համապատասխան min- ից մինչև առավելագույն տիրույթից մինչև 0 -ից մինչև 1000 միջակայք:
Քայլ 14. Բացատրված գրադարաններ - TeensyviewMenu
TeensyviewMenu- ն այն գրադարանն է, որտեղ կարելի է մուտք գործել ցուցադրման ընտրացանկի գործառույթները: Հետևյալը օգտագործվող գործառույթներն են:
TeensyViewMenu (անվավեր);
Այս կոնստրուկտորին կանչելը ստեղծում է LineSensor, PushButton և TeensyView դասի օբյեկտ:
դատարկ ներածություն (անվավեր);
Սա ընտրացանկում նավարկելու համար է:
դատարկության փորձարկում (անվավեր);
Սա ներքին կոչվում է ընտրացանկի ներսում, երբ գծի տվիչների արժեքները պետք է ցուցադրվեն Teensyview- ում ՝ փորձարկման համար:
Քայլ 15. Բացատրված գրադարաններ - շարժիչներ
Motors- ը այն գրադարանն է, որն օգտագործվում է երկու շարժիչներ վարելու համար: Հետևյալը օգտագործվող գործառույթներն են:
Շարժիչներ (անվավեր);
Այս կոնստրուկտորին զանգահարելով ՝ ստեղծելով օբյեկտ, կազմաձևում է շարժիչի ուղղության հսկողությունը և PWM կառավարման կապում ելքային ռեժիմին:
void setSpeed (int leftMotorSpeed, int rightMotorSpeed);
Այս ֆունկցիան կանչելը երկու շարժիչներին քշում է որպես արգումենտներ փոխանցված արագությամբ: Արագության արժեքը կարող է տատանվել -255 -ից +255 -ի սահմաններում `բացասական նշանով, որը ցույց է տալիս, որ պտտման ուղղությունը հակադարձված է:
Քայլ 16. Փորձարկում - Կոդավորիչ հոդոմետրիա
Մենք փորձարկելու ենք մագնիսական անիվի կոդավորիչները և ցուցադրելու ենք ռոբոտի անցած դիրքն ու տարածությունը:
Վերբեռնեք DualEncoderTeensyview.ino- ն: Programրագիրը ցուցադրում է ծածկագրիչի տիզերը Teensyview- ում: Կոդավորողն ավելանում է, եթե ռոբոտին առաջ եք տեղափոխում, և նվազում, եթե այն հետ եք տեղափոխում:
Այժմ վերբեռնեք EncoderOdometry.ino- ն: Այս ծրագիրը ցուցադրում է ռոբոտի դիրքը x-y կոորդինատների առումով, ցուցադրում է սանտիմետրով անցած ընդհանուր հեռավորությունը և աստիճանը վերածված անկյունը:
Ես վկայակոչել եմ Seattle Robotics ընկերության կողմից R/C Servo դիֆերենցիալ շարժիչով ռոբոտի վրա Odometry- ի միջոցով մեռած հաշվարկի իրականացումը `կոդավորող տիզերից դիրքը որոշելու համար:
Քայլ 17. Փորձարկում. Հենարան Shield շարժման տվիչներ
Համոզվեք, որ չափագրել եք շարժման տվիչները ՝ հետևելով այստեղ նշված քայլերին:
Այժմ վերբեռնեք PropShieldTeensyView.ino- ն: Դուք պետք է կարողանաք Teensyview- ում տեսնել բոլոր երեք առանցքների արագացուցիչի, գիրո և մագնիսաչափի արժեքները:
Քայլ 18: Overրագրի ակնարկ
Ընդլայնված գծի հետևորդի համար ծրագիրը գրված է Arduino IDE- ով: Worksրագիրն աշխատում է ստորև բացատրված հետևյալ հաջորդականությամբ.
- EEPROM- ում պահվող արժեքները կարդացվում են և ցուցադրվում է ընտրացանկը:
- LAUNCH- ը սեղմելիս ծրագիրը մտնում է օղակը:
- Կարդացվում են գծերի նորմալացված սենսորների արժեքները:
- Գծի դիրքի երկուական արժեքը ստացվում է օգտագործելով նորմալացված սենսորային արժեքներ:
- Գծի վրայով անցնող տվիչների թվի հաշվարկը հաշվարկվում է գծի դիրքի երկուական արժեքից:
- Կոդավորողի տիզերը թարմացվում են, իսկ ընդհանուր հեռավորությունը ՝ x-y կոորդինատները և անկյունը:
- 0 -ից 16 -ը երկուական հաշվարկի տարբեր արժեքների համար կատարվում են մի շարք հրահանգներ: Եթե երկուական հաշվարկը գտնվում է 1 -ից 5 միջակայքում, և եթե սենսորները, որոնք գտնվում են գծի վրայով, միմյանց կից են, կանչվում է PID ռեժիմ: Պտտումը կատարվում է երկուական արժեքի և երկուական հաշվարկի այլ համակցություններում:
- PID ռեժիմում (որը ենթակա է PD ռեժիմի) շարժիչները շարժվում են սխալի, սխալի փոփոխության, Kp և Kd արժեքների հիման վրա հաշվարկված արագությամբ:
Theրագիրը ներկայումս չի չափում կողմնորոշման արժեքները պաշտպանական վահանից: Սա աշխատանք է, որն ընթացքի մեջ է և թարմացվում է:
Վերբեռնեք TestRun20.ino: Մենք կտեսնենք, թե ինչպես նավարկելու ընտրացանկը, կարգավորելու կարգավորումները և ինչպես ճշգրտելու գծի տվիչները հաջորդ քայլերում, որոնցից հետո մենք փորձարկելու ենք մեր ռոբոտը:
Քայլ 19: Նավարկում ընտրացանկ և կարգավորումներ
Մենյուում կան հետևյալ կարգավորումները, որոնցով կարելի է նավարկել ձախ և աջ կոճակները և ընտրել կենտրոնական կոճակը: Կարգավորումները և դրանց գործառույթները նկարագրված են ստորև:
- ԿԱՌԱՎԱՐՈՄ. Գծի տվիչների ճշգրտման համար:
- ԹԵՍՏ. Lineուցադրել գծի տվիչների արժեքները:
- ՄԵԿՆԱՐԿ. Սկսելու համար հետևյալ տողը:
- MAX SPEED. Ռոբոտի արագության վերին սահմանը սահմանելու համար:
- Պտտվող արագություն. Ռոբոտի արագության վերին սահմանը սահմանելիս, երբ այն կատարում է շրջադարձ, այսինքն `երբ երկու անիվները հավասար արագությամբ պտտվում են հակառակ ուղղություններով:
- KP: Համաչափ հաստատուն:
- KD: Ածանցյալ հաստատուն:
- RUN MODE. Ընտրել երկու գործող ռեժիմների միջև `NORMAL և ACCL: Նորմալ ռեժիմում ռոբոտը աշխատում է գծի դիրքի արժեքներին համապատասխանող կանխորոշված արագությամբ: ACCL ռեժիմում ռոբոտի MAX SPEED- ը փոխարինվում է ACCL SPEED- ով հետագծի կանխորոշված փուլերում: Սա կարող է օգտագործվել ռոբոտին արագացնելու համար ուղու ուղիղ հատվածներում: Հետևյալ կարգավորումները հասանելի են միայն այն դեպքում, եթե RUN MODE- ը սահմանվի որպես ACCL:
- LAP DISTANCE. Սահմանել մրցուղու ընդհանուր երկարությունը:
- ACCL SPEED. Ռոբոտի արագացման արագությունը սահմանելու համար: Այս արագությունը փոխարինում է MAX SPEED- ին ուղու տարբեր փուլերում, ինչպես սահմանված է ստորև:
- ՈՉ ՓՈ STԼԵՐԻ. Սահմանել փուլերի քանակը, որտեղ օգտագործվում է ACCL SPEED:
- ՓՈ 1Լ 1. Սահմանել այն փուլի մեկնարկի և ավարտի հեռավորությունները, որոնցում MAX SPEED- ը փոխարինվում է ACCL SPEED- ով: Յուրաքանչյուր փուլի համար մեկնարկի և ավարտի հեռավորությունները կարող են սահմանվել առանձին:
Քայլ 20: Գծի տվիչի չափաբերում
Գծի տվիչների տրամաչափումն այն գործընթացն է, որով որոշվում է 16 սենսորներից յուրաքանչյուրի շեմային արժեքը: Այս շեմային արժեքն օգտագործվում է որոշելու համար, թե արդյոք որոշակի սենսորն անցնում է գծից, թե ոչ: 16 սենսորների շեմային արժեքները որոշելու համար մենք օգտագործում ենք երկու մեթոդներից մեկը:
ՄԵԴԻԱՆ ՖԻԼՏԵՐ. Այս մեթոդով գծի տվիչները տեղադրվում են սպիտակ մակերևույթի վերևում և բոլոր 16 սենսորների համար վերցվում են սենսորների նախապես սահմանված քանակի ընթերցումներ: Բոլոր 16 սենսորների միջին արժեքները որոշվում են: Նույն գործընթացը կրկնվում է գծի տվիչները սև մակերևույթի վրա դնելուց հետո: Շեմային արժեքը սև և սպիտակ մակերևույթների միջին արժեքների միջին արժեքն է:
MIN MAX. Այս մեթոդում սենսորային արժեքները բազմիցս կարդացվում են, մինչև օգտագործողը չխնդրի դադարեցնել: Պահվում են յուրաքանչյուր սենսորի հանդիպած առավելագույն և նվազագույն արժեքները: Շեմային արժեքը նվազագույն և առավելագույն արժեքների միջին արժեքն է:
Այսպիսով ստացված շեմային արժեքները քարտեզագրվում են 0 -ից 1000 միջակայքում:
MIN MAX մեթոդով գծերի տվիչների տրամաչափումը ցուցադրվում է տեսանյութում: Գծի տվիչների ճշգրտումից հետո տվյալները կարող են արտացոլվել, ինչպես ցույց է տրված նկարում: Հետևյալ տեղեկատվությունը ցուցադրվում է:
- Երկուական 1-ով գծի դիրքի 16-բիթանոց երկուական ներկայացում, որը ցույց է տալիս, որ համապատասխան գծի սենսորը գծից վեր է, և երկուական 0 ՝ նշելով, որ գծի տվիչը գծից դուրս է:
- Գծից դուրս գտնվող սենսորների ընդհանուր թվի հաշվարկ:
- 16 սենսորների նվազագույն, առավելագույն և սենսորային արժեքներ (չմշակված և նորմալացված) ՝ մեկ սենսոր մեկ անգամ:
- Գծի դիրքը -7500 -ից +7500 միջակայքում:
Այնուհետև գծի նվազագույն և առավելագույն սենսորային արժեքները պահվում են EEPROM- ում:
Քայլ 21: Փորձնական աշխատանք
Տեսանյութը փորձնական աշխատանք է, որի ընթացքում ռոբոտը ծրագրված է կանգ առնել մեկ պտույտ կատարելուց հետո:
Քայլ 22. Վերջնական մտքեր և բարելավումներ
Այս ռոբոտը կառուցելու համար հավաքված սարքավորումները ամբողջությամբ չեն օգտագործվում այն գործարկող ծրագրի կողմից: Improveրագրի մասով շատ բարելավումներ կարող են կատարվել: Պաշտպանական վահանի շարժման տվիչները ներկայումս չեն օգտագործվում դիրքի և կողմնորոշման որոշման համար: Կոդավորիչների տվյալները կարող են համակցվել հենարանային վահանի կողմնորոշման տվյալների հետ `ճշգրիտ որոշելու ռոբոտի դիրքն ու անվանումը: Այս տվյալները այնուհետև կարող են օգտագործվել ռոբոտին ծրագրելու համար ՝ մի քանի շրջանով սովորելու հետքը: Ես խրախուսում եմ ձեզ փորձարկել այս մասով և կիսվել ձեր արդյունքներով:
Հաջողություն.
Երկրորդ մրցանակ ռոբոտների մրցույթում
Խորհուրդ ենք տալիս:
Արդուինո - Լաբիրինթոս լուծող ռոբոտ (MicroMouse) Wall հետևող ռոբոտ. 6 քայլ (նկարներով)
Արդուինո | Maze Solving Robot (MicroMouse) Wall After Robot: Բարի գալուստ, ես Իսահակն եմ, և սա իմ առաջին ռոբոտն է " Striker v1.0 ". Այս ռոբոտը նախատեսված էր պարզ լաբիրինթոս լուծելու համար: Մրցույթում մենք ունեինք երկու լաբիրինթոս և ռոբոտը կարողացավ դրանք բացահայտել: Լաբիրինթոսում ցանկացած այլ փոփոխություն կարող է պահանջել փոփոխություն
Ինչպես կառուցել PHIL - թեթև հետևող ռոբոտ. 6 քայլ (նկարներով)
Ինչպես կառուցել PHIL - թեթև հետևող ռոբոտ. Այս հրահանգում ես ձեզ ցույց կտամ, թե ինչպես եմ ստեղծել այս երկակի առանցքի լուսադիտող ռոբոտը ՝ օգտագործելով Arduino Uno: Ամբողջ CAD- ը և ծածկագիրը ներառված կլինեն, որպեսզի կարողանաք ինքներդ կառուցել այն ՝ առանց ծրագրավորման կամ նախագծման հմտությունների կարիք ունենալու: Այն ամենը, ինչ ձեզ հարկավոր կլինի
Ընդլայնված գծի հետևորդ ռոբոտ ՝ 7 քայլ
Ընդլայնված գծի հետևորդ ռոբոտ. Սա գծի հետևորդ ռոբոտ է `որոշ լրացուցիչ հնարավորություններով: Այս նախատիպը կարող է օգտագործվել գործարանի ներսում `առանց վարորդական նյութերի տեղաշարժի: Կա երկու կայան Բեռնման կայան Բեռնաթափման կայան: Բեռնման կայանից ռոբոտը կսպասի Materia
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ ՝ 8 քայլ
Հավասարակշռող ռոբոտ / 3 անիվի ռոբոտ / STEM ռոբոտ. Մենք կառուցել ենք համակցված հավասարակշռող և եռանիվ ռոբոտ `կրթական օգտագործման համար դպրոցներում և դպրոցից հետո կրթական ծրագրերում: Ռոբոտը հիմնված է Arduino Uno- ի, սովորական վահանի վրա (շինարարության բոլոր մանրամասները տրամադրված են), Li Ion մարտկոցի տուփով (բոլորը կառուցված են
EBot8 օբյեկտի հետևող ռոբոտ. 5 քայլ (նկարներով)
EBot8 օբյեկտ հետևող ռոբոտ. Երբևէ մտածե՞լ եք, որ ռոբոտ պատրաստեք, որը հետևում է ուր էլ որ գնաք: Բայց պարզապես չե՞ն կարող: Դե … Հիմա կարող ես: Ձեզ ենք ներկայացնում ռոբոտին հետևող օբյեկտը: Գնացեք այս ձեռնարկի վրա, հավանեք և քվեարկեք, և գուցե դուք էլ կարող եք դա անել