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

Պարզ Arduino ռոբոտաշինության հարթակ: 5 քայլ
Պարզ Arduino ռոբոտաշինության հարթակ: 5 քայլ

Video: Պարզ Arduino ռոբոտաշինության հարթակ: 5 քայլ

Video: Պարզ Arduino ռոբոտաշինության հարթակ: 5 քայլ
Video: BariGortser.am Արմաթ լաբորատորիա Վերիշենում 2024, Նոյեմբեր
Anonim
Պարզ Arduino ռոբոտաշինության հարթակ
Պարզ Arduino ռոբոտաշինության հարթակ
Պարզ Arduino ռոբոտաշինության հարթակ
Պարզ Arduino ռոբոտաշինության հարթակ

Ես պարզապես ձեռք բերեցի Arduino- ն ՝ Robotics թիմի հանդիպումների ժամանակ AVR միկրոկոնտրոլերների հետ խաղալուց հետո: Ինձ դուր եկավ իսկապես էժան ծրագրավորվող չիպի գաղափարը, որը կարող էր գրեթե ամեն ինչ աշխատել մի պարզ համակարգչային ինտերֆեյսից, այնպես որ ես ստացա Arduino, քանի որ այն արդեն ունի գեղեցիկ տախտակ և USB ինտերֆեյս: Իմ առաջին Arduino նախագծի համար ես փորեցի Vex Robotics հավաքածուն, որը դրել էի ավագ դպրոցում անցկացրած որոշ մրցումների ժամանակ: Ես միշտ ցանկացել եմ համակարգչով աշխատող ռոբոտաշինության հարթակ պատրաստել, բայց Vex միկրոկառավարիչը պահանջում է ծրագրավորման մալուխ, որը ես չունեի: Ես որոշեցի օգտագործել իմ նոր Arduino- ն (և գուցե հետագայում մերկ AVR չիպը, եթե այն աշխատի) հարթակ վարելու համար: Ի վերջո, ես ուզում եմ նեթբուք ստանալ, այնուհետև կարող եմ ռոբոտին քշել WiFi- ի միջոցով և հեռակա դիտել նրա վեբ -տեսախցիկը:

Ինձ հաջողվեց ստանալ արժանապատիվ սերիական արձանագրություն և մի պարզ օրինակ, որը ռոբոտին քշում է ՝ օգտագործելով Linux 360 համակարգչին միացած Xbox 360 վերահսկիչ:

Քայլ 1: Ինչ կարող է անել…

Ինչ կարող է անել…
Ինչ կարող է անել…
Ինչ կարող է անել…
Ինչ կարող է անել…

Arduino- ն շատ բազմակողմանի հարթակ է: Իմ հիմնական նպատակը պարզապես Arduino- ին համակարգչին միացնելն էր երկու Vex շարժիչ, բայց ես ունեի շատ մուտքային/ելքային կապեր և որոշեցի ավելացնել լրացուցիչ նյութեր: Հենց հիմա ես ունեմ RGB LED սերիական նավահանգստի կարգավիճակի համար (կանաչ, եթե փաթեթները լավն են, կարմիրը `վատ) և համակարգչի օդափոխիչ, որը շարժվում է տրանզիստորով: Կարող եմ նաև անջատիչներ և տվիչներ ավելացնել, բայց դրանցից ոչ մեկը դեռ չեմ դրել դրա վրա: Դրա ամենալավ բանը այն է, որ Arduino ռոբոտին կարող եք ավելացնել այն, ինչ ցանկանում եք: Ընդամենը մի փոքր ինտերֆեյսի կոդ է պահանջվում ՝ լրացուցիչ իրերը կառավարելու և համակարգչին մուտք գործելու համար:

Քայլ 2: Մասեր

Մասեր
Մասեր
Մասեր
Մասեր
Մասեր
Մասեր

Իմ ռոբոտի համար ես օգտագործել եմ մի քանի տարբեր մասեր: Մասերի մեծ մասը հին իրերից էին, որոնք ես դրել էի իմ նկուղում: Այնուամենայնիվ, ծածկագիրը բավական փոքր է, որպեսզի այն հեշտությամբ տեղավորվի ցանկացած Arduino- ի վրա: Այն, հավանաբար, կարող է տեղավորվել նաև ATTiny- ի վրա (եթե ես Arduino- ից բացի ռոբոտ -վերահսկիչ կառուցեմ, ATTiny 2313- ը լավ ընտրություն է թվում, այն ավելի փոքր է և ավելի էժան, բայց դեռ ունի բազմաթիվ ելքեր և սերիական UART ինտերֆեյս) 2) Vex Robotics PlatformI մի քանի տարի առաջ ձեռք բերեց Vex- ի հավաքածուն, որը պետք է կառուցեր ռադիոկառավարվող ռոբոտ `ավագ դպրոցների մրցույթի համար իրեր վերցնելու համար: Ես կառուցեցի հիմնական «քառակուսի բոտ» հիմքը, որն ունի 4 անիվ, որոնք շարժվում են երկու շարժիչով: Դուք կարող եք փոխարինել այլ ռոբոտների բազա, եթե ունեք որևէ այլ հարթակ, որը ցանկանում եք քշել: Կարևոր է նշել, որ Vex շարժիչներն ըստ էության անընդհատ պտտվող սերվերներ են: Նրանք օգտագործում են զարկերակի լայնության մոդուլյացիան `ազդանշան տալու համար, թե որքան արագ և ինչ ուղղությամբ պետք է շրջվել: Vex շարժիչները գեղեցիկ են, քանի որ նրանք ունեն գործող լարման մեծ տեսականի, ինչ -որ տեղ 5-15 վոլտ միջև: Ես օգտագործում եմ 12 Վ, քանի որ ունեի 12 Վ մարտկոց: Ստանդարտ հոբբի ծառայությունների մեծ մասի համար ձեզ հարկավոր կլինի ավելի ցածր լարման (հաճախ ՝ 6 վոլտ): Փորձարկման համար ես օգտագործում եմ RadioShack- ի ստանդարտ 9V պատի-գորշ ադապտեր, սակայն անլար աշխատանքի համար ես գտա 12V NiMH մարտկոցի տուփ հինավուրց նոթբուքում: Թեև նոութբուքը գործարկելու համար այն բավականաչափ լիցք չի պահում, բայց այն լավ է վարում իմ Vex ռոբոտը: Այն կարող է նաև սնուցել Arduino- ն ՝ հոսանքի միակցիչում օգտագործելով Vin մուտքի քորոցը, Arduino- ն կկարգավորի 12 Վ լարման հոսանքը մինչև 5 և նույնիսկ այն կթողարկի հոսանքի միակցիչի 5 Վ ելքային կապը: 4) Հիմնական տախտակ լարել ամեն ինչ Ի վերջո, ես կստանամ ավելի գեղեցիկ նախատիպի տախտակ և կպցնեմ ավելի կայուն միացումների վրա, բայց առայժմ հացահատիկը հեշտացնում է իրերը փոխելը: Իմ տախտակը SparkFun- ի «հիմնական տախտակն» է, ընդամենը մի տախտակ մետաղական ափսեի վրա ՝ 3 տերմինալներով: 5) MAX232- ի վրա հիմնված RS232-TTL փոխարկիչ Եթե ցանկանում եք ձեր ռոբոտին քշել RS-232 սերիական նավահանգստի միացման միջոցով (ի տարբերություն Arduino- ի կառուցվածի USB- ում) կարող եք օգտագործել RS232-TTL փոխարկիչ: Ես օգտագործում եմ MAX232- ը, քանի որ դրանցից մի քանիսը պառկած էին և այն կպցրեցի նախատիպերի տախտակի վրա ՝ անհրաժեշտ կոնդենսատորներով: Ինձ պետք է RS-232, քանի որ իմ հին նոութբուքը ունի միայն մեկ USB պորտ, և ես դա օգտագործում եմ ռոբոտը քշելու համար խաղի վերահսկիչի համար: 6) Լրացուցիչ մասեր ըստ ցանկության Սերիական արձանագրության հեշտ կարգաբերման համար դրա վրա դնում եմ RGB LED (ստացա մեկը Arduino- ի իմ պատվերով, որովհետև դրանք զով էին հնչում): Լույսը փայլում է կարմիր, կանաչ, կապույտ հաջորդականությամբ, երբ Arduino- ն կոշիկներով ցույց է տալիս, որ ռոբոտը վերագործարկվել է, այնուհետև վառվում է կանաչ, երբ շարժիչային փաթեթ է ստացվել, կապույտ, երբ ստացվել է երկրպագուների փաթեթը, և կարմիր, երբ վատ կամ անհայտ է: փաթեթը ստացվել է: Օդափոխիչը քշելու համար ես օգտագործեցի ստանդարտ NPN տրանզիստոր (նույնը, ինչ ցույց տվեցի իմ վերջին հրահանգում) և տրանզիստորի և Arduino- ի միջև ընկած դիմադրություն (տրանզիստորը չափազանց հոսանք էր քաշում և տաքացնում Arduino- ն, ուստի ես սահմանափակում էի դնում): դիմադրություն ՝ այն դադարեցնելու համար):

Քայլ 3. Arduino և համակարգչային ծրագրավորում

Arduino և համակարգչային ծրագրավորում
Arduino և համակարգչային ծրագրավորում

Arduino- ն ծրագրավորելու համար ձեզ ակնհայտորեն անհրաժեշտ կլինի Arduino ծրագիրը և USB մալուխը: Կարող եք նաև ծրագրավորել Arduino- ն ՝ օգտագործելով սերիական պորտ և TTL մակարդակի փոխարկիչ, եթե ձեր համակարգիչն ունի սերիական պորտ: Նկատի ունեցեք, որ USB սերիական ինտերֆեյսը չի հաղորդակցվի Arduino- ի ATMega պրոցեսորի հետ, եթե առկա է Arduino- ի սերիական կապումներին միացված մակարդակի փոխարկիչ (0 և 1 կապում), այնպես որ անջատեք այն USB- ից օգտվելուց առաջ: Arduino- ում մեզ անհրաժեշտ կլինի սերիական ինտերֆեյս, որը թույլ է տալիս Համակարգիչ `շարժիչները կառավարելու համար: Մեզ նաև կպահանջվի PWM servo drive համակարգ, որը ճիշտ ազդանշաններ կուղարկի Vex շարժիչներին և համոզվելու, որ դրանք գնում են ճիշտ ուղղություններով, երբ տրվում են ճիշտ արժեքներ: Ես ավելացրեցի նաև մի քանի պարզ LED լուսարձակում, հիմնականում կարգավիճակի նշման համար, բայց նաև այն պատճառով, որ այն թույն է թվում: ԱՀ -ում մենք պետք է բացենք սերիական նավահանգիստը և ուղարկենք տվյալների շրջանակներ, որոնք կհասկանա Arduino ծրագիրը: ԱՀ -ն նաև պետք է շարունակի շարժիչային արժեքներ: Դա անելու հեշտ միջոց է օգտագործել USB խաղային տախտակ կամ ջոյսթիկ, ես օգտագործում եմ Xbox 360 վերահսկիչ: Մեկ այլ տարբերակ է ցանցային համակարգչի (կամ նեթբուք, կամ փոքր մինի ITX տախտակի) օգտագործումը ռոբոտի վրա ՝ անլար վարելու համար: Նեթբուքով դուք կարող եք նույնիսկ օգտագործել ներկառուցված տեսախցիկը ՝ վիդեո հոսքը հետ ուղարկելու և ձեր ռոբոտին հեռակա քշելու համար: Ես օգտագործում էի Linux վարդակների համակարգը `իմ տեղադրման համար ցանցային ծրագրավորում կատարելու համար: Մեկ ծրագիր («ջոյսթիք սերվեր») գործարկվում է առանձին համակարգչի վրա, որի մեջ տեղադրված է վերահսկիչ, իսկ մեկ այլ ծրագիր («հաճախորդը») աշխատում է Arduino- ին միացված նեթբուքում: Սա կապում է երկու համակարգիչներին և ջոյսթիկի տեղեկատվություն է ուղարկում նեթբուքին, որն այնուհետև սերիական փաթեթներ է ուղարկում ռոբոտին քշող Arduino- ին: Arduino- ին Linux համակարգչի միջոցով միանալու համար (C ++) նախ պետք է ճիշտ բացել սերիական պորտը baud փոխարժեքը, այնուհետև ուղարկեք արժեքները ՝ օգտագործելով մի արձանագրություն, որը դուք նույնպես օգտագործել եք Arduino- ի կոդի վրա: Իմ սերիական ձևաչափը պարզ և արդյունավետ է: Շարժիչի երկու արագությունը ուղարկելու համար ես օգտագործում եմ 4 բայթ մեկ «շրջանակի» համար (յուրաքանչյուրը մեկ բայթ է): Առաջին և վերջին բայթերը կոդավորված կոդավորված արժեքներ են, որոնք օգտագործվում են Arduino- ին PWM կոդին սխալ բայթ չուղարկելու և շարժիչների խելագարության պատճառ դարձնելու համար: Սա RGB LED- ի առաջնային նպատակն է, այն կարմիր է շողում, երբ սերիական շրջանակը թերի էր: 4 բայթերը հետևյալն են. 255 (կոդով «սկիզբ» բայթ),,, 200 (կոշտ կոդավորված «վերջ» բայթ) Տվյալների հուսալի ընդունումն ապահովելու համար համոզվեք, որ բավականաչափ ուշացում եք դնում ծրագրի օղակների միջև: Եթե ձեր համակարգչի կոդը շատ արագ գործարկեք, այն կհեղեղացնի նավահանգիստը, և Arduino- ն կարող է սկսել նվազել կամ նույնիսկ սխալ ընթերցել բայթերը: Նույնիսկ եթե այն տեղեկատվություն չի թողնում, այն կարող է նաև լցվել Arduino- ի սերիական նավահանգստի բուֆերով: Vex շարժիչների համար ես օգտագործել եմ Arduino Servo գրադարանը: Քանի որ Vex շարժիչները պարզապես շարունակական պտտման շարժիչներ են, նրանք օգտագործում են ճիշտ նույն ազդանշանը, ինչ օգտագործում են սերվերը: Այնուամենայնիվ, 90 աստիճանի կենտրոնական կետի փոխարեն այն կանգառի կետն է, որտեղ շարժիչը չի պտտվում: «Անկյունի» իջեցումը հանգեցնում է նրան, որ շարժիչը սկսում է պտտվել մեկ ուղղությամբ, մինչդեռ անկյունը բարձրացնելը ստիպում է պտտվել մյուս ուղղությամբ: Որքան հեռու եք կենտրոնական կետից, այնքան ավելի արագ կշարժվի շարժիչը: Եթե շարժիչներին 180 աստիճանից ավելի արժեքներ ուղարկեք, դա ոչինչ չի խախտի, բայց ես խորհուրդ կտամ արժեքները սահմանափակել 0 -ից մինչև 180 աստիճան (որոնք այս դեպքում արագության ավելացումն են): Քանի որ ես ցանկանում էի ավելի շատ վերահսկողություն և ավելի քիչ ռոբոտ վարել, ես իմ ծրագրին ավելացրեցի ծրագրային «արագության սահմանափակում», որը թույլ չի տալիս արագությունը բարձրացնել 30 «աստիճանից» բարձր որևէ ուղղությամբ (միջակայքը ՝ 90 +/- 30). Ես պլանավորում եմ ավելացնել սերիական նավահանգստի հրաման, որը փոխում է արագության սահմանը, այնպես որ համակարգիչը կարող է արագորեն հեռացնել սահմանը, եթե ցանկանում եք արագ գնալ (ես փորձարկում եմ փոքր սենյակներում, այնպես որ չեմ ուզում, որ այն արագանա և բախվել պատին, հատկապես նեթբուքով): Լրացուցիչ տեղեկությունների համար ներբեռնեք կցված ծածկագիրը սույն Հրահանգի վերջում:

Քայլ 4. Ավելացրեք նեթբուք `հեռվից անհայտ աշխարհները ուսումնասիրելու համար

Ավելացրեք Netbook ՝ հեռվից անհայտ աշխարհներ ուսումնասիրելու համար
Ավելացրեք Netbook ՝ հեռվից անհայտ աշխարհներ ուսումնասիրելու համար
Ավելացրեք Netbook ՝ հեռվից անհայտ աշխարհներ ուսումնասիրելու համար
Ավելացրեք Netbook ՝ հեռվից անհայտ աշխարհներ ուսումնասիրելու համար

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

Գոյություն ունեն բազմաթիվ եղանակներ, որոնցից շատերը, հավանաբար, շատ ավելի հեշտ են, քան իմը, չնայած ես ծանոթ չեմ մշակման կամ սցենարների վրա հիմնված լեզուներին, ուստի ես նախընտրեցի օգտագործել Linux և C ++ ՝ իմ բազային կայանի միջև անլար կառավարման կապ ստեղծելու համար (հայտնի է նաև հին ThinkPad) և իմ նոր Lenovo IdeaPad նեթբուքը, որը միացված է Arduino սկավառակի բազային: Երկու համակարգիչներն էլ աշխատում են Ubuntu- ով: Իմ ThinkPad- ը միացված է իմ դպրոցի LAN- ին, և իմ IdeaPad- ը միացված է իմ WiFi մուտքի կետին, որը նույնպես միացված է դպրոցի LAN- ին (ես չկարողացա հուսալի տեսահոսք ստանալ դպրոցի WiFi- ից, քանի որ մնացած բոլորը դա օգտագործում են, ուստի ես սահմանեցի բարձրացրեք իմ սեփական երթուղիչը `լավ կապ ապահովելու համար): Իմ դեպքում լավ կապը հատկապես կարևոր է, քանի որ ես չեմ իրականացրել որևէ սխալի ստուգում կամ ընդմիջում: Եթե ցանցային կապը հանկարծակի խափանվի, ռոբոտը շարունակում է շարժվել, մինչև որ բախվի ինչ -որ բանի, կամ ես վազեմ և դադարեցնեմ այն: Սա այն հիմնական գործոնն է, որը կանգնեցրեց իմ որոշումը ՝ դանդաղեցնել շարժիչային շարժիչը ինչպես շարժիչները շարժիչներով, այնպես էլ ծրագրային արագության սահմանափակման գործադրմամբ:

Քայլ 5: Ստացեք տեսաֆիլմ

Այն բանից հետո, երբ ձեր ռոբոտացված հետազոտողը կարող է անլար վարել, հավանաբար կցանկանաք ունենալ վիդեո հոսք նեթբուքից, որպեսզի կարողանաք ասել, թե որտեղ է ձեր ռոբոտը: Եթե դուք օգտագործում եք Ubuntu (կամ նույնիսկ եթե դա չեք օգտագործում), ապա խորհուրդ եմ տալիս օգտագործել VLC Media Player- ը հոսքի համար: Եթե դուք այն չեք տեղադրել, իսկապես բաց եք թողնում, այնպես որ տեղադրեք այն ՝ օգտագործելով «sudo apt-get install vlc» հրամանը, որոնեք VLC- ը Ubuntu Software Center- ում (միայն 9.10-ը) կամ ներբեռնեք տեղադրողը վիդեոլանից: org, եթե Windows- ում եք: Ձեզ անհրաժեշտ կլինի երկու համակարգչի վրա աշխատող VLC: VLC- ն ունակ է հոսել, ինչպես նաև հոսքեր խաղալ ցանցում: Նեթբուքում (ռոբոտ-համակարգիչ) նախ համոզվեք, որ ձեր տեսախցիկը (ներկառուցված կամ USB- ով աշխատած) աշխատում է ՝ կտտացնելով «Բաց նկարահանում սարքը» և փորձել Linux 2-ի համար նախատեսված տեսանյութը (որոշ հին սարքերին կարող է անհրաժեշտ լինել ոչ թե 2-րդ տարբերակի, այլ Linux- ի համար): Դուք պետք է տեսախցիկի տեսքը տեսնեք նեթբուքերի էկրանին: Այն հոսելու համար ընտրեք «Հոսք» Ֆայլի ընտրացանկից և այնուհետև ընտրեք «Սևեռել սարքը» ներդիրը պատուհանի վերևում, որը երևում է: Հիշեք, որ Ubuntu- ն (և Linux- ի բազմաթիվ այլ տարածումներ) թույլ է տալիս պահել Alt- ը ՝ կտտացնելու և քաշելու ձեր էկրանի համար չափազանց մեծ պատուհանները (հատկապես օգտակար է հին նեթբուքերում, չնայած նույնիսկ իմ IdeaPad- ն ունի 1024x576 կենտ լուծում ՝ առանց որևէ ակնհայտ պատճառի): Հետաձգումը նվազեցնելու համար կտտացրեք «Moreուցադրել այլ ընտրանքներ» կոճակին և իջեցրեք պահեստավորման արժեքը: Գումարը, որը դուք կարող եք իջեցնել, երբեմն կախված է սարքից, այն անկայուն է դառնում, եթե այն շատ եք իջեցնում: 300ms- ում կարող եք մի փոքր ուշացում ստանալ, բայց դա այնքան էլ վատ չէ:

Հաջորդը, կտտացրեք Հոսք ՝ հաջորդ ընտրացանկ անցնելու համար: Կտտացրեք Հաջորդը, այնուհետև ընտրեք և ավելացրեք HTTP որպես նոր նպատակակետ: Այժմ կարգավորեք Transcoding ՝ հոսքն ավելի փոքր դարձնելու համար: Ես կազմել եմ հատուկ պրոֆիլ, որն օգտագործում է M-JPEG 60 կբ/վ արագությամբ և 8 կ/վ արագությամբ: Դա պայմանավորված է նրանով, որ MPEG- ի կամ Theora- ի նման առաջադեմ կոդեկի օգտագործումը կուտի պրոցեսորի հսկայական ժամանակը նեթբուքի Atom պրոցեսորով, և դա կարող է հանգեցնել նրան, որ ձեր տեսաֆիլմը կդադարի առանց որևէ ակնհայտ պատճառի: MJPEG- ը պարզ կոդեկ է, որը հեշտ է օգտագործել ցածր բիթ -արագությամբ: Ձեր հոսքը սկսելուց հետո բացեք VLC ձեր մյուս համակարգչի վրա, բացեք ցանցային հոսք, ընտրեք HTTP, այնուհետև մուտքագրեք ձեր նեթբուքի IP հասցեն (տեղական կամ ինտերնետ ՝ կախված միացման եղանակից), որին հաջորդում է «: 8080»: Դուք պետք է նշեք նավահանգիստը ինչ -որ տարօրինակ պատճառով, հակառակ դեպքում դա ձեզ սխալներ է տալիս: Եթե դուք ունեք արժանապատիվ կապ, դուք պետք է տեսնեք ձեր տեսախցիկի հաղորդումը ձեր մյուս համակարգչի վրա, սակայն այն կունենա փոքր (մոտ մեկ վայրկյան) ուշացում: Ես հստակ չգիտեմ, թե ինչու է առաջանում այս ուշացումը, բայց ես չեմ կարող պարզել, թե ինչպես ազատվել դրանից: Այժմ բացեք կառավարման ծրագիրը և սկսեք վարել ձեր նեթբուք ռոբոտը: Drivingգացեք, թե ինչպես է գործում ուշացումը մեքենա վարելիս, որպեսզի ոչ մի բանի հետ չընկնեք: Եթե այն աշխատում է, ձեր նեթբուք ռոբոտը ավարտված է:

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