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

Arduino վերահսկվող սերվո ռոբոտ (SERB) ՝ 7 քայլ (նկարներով)
Arduino վերահսկվող սերվո ռոբոտ (SERB) ՝ 7 քայլ (նկարներով)

Video: Arduino վերահսկվող սերվո ռոբոտ (SERB) ՝ 7 քայլ (նկարներով)

Video: Arduino վերահսկվող սերվո ռոբոտ (SERB) ՝ 7 քայլ (նկարներով)
Video: Ինչպես կառավարել բազմաթիվ Servo շարժիչները Arduino- ի հետ մեկ պոտենցիոմետր օգտագործելով 2024, Հուլիսի
Anonim
Arduino վերահսկվող սերվո ռոբոտ (SERB)
Arduino վերահսկվող սերվո ռոբոտ (SERB)
Arduino վերահսկվող սերվո ռոբոտ (SERB)
Arduino վերահսկվող սերվո ռոբոտ (SERB)
Arduino վերահսկվող սերվո ռոբոտ (SERB)
Arduino վերահսկվող սերվո ռոբոտ (SERB)
Arduino վերահսկվող սերվո ռոբոտ (SERB)
Arduino վերահսկվող սերվո ռոբոտ (SERB)

Ո՞րն է ավելի լավ միջոց ՝ բաց կոդով միկրոհսկիչների (Arduino) հետ փորձարկելու համար, այնուհետև կառուցելով ձեր սեփական բաց կոդով ռոբոտը (CC (SA -BY)): Ի՞նչ անել ձեր SERB- ի հետ:

  • (այստեղ) - Ինչպես միացնել ձեր SERB- ը ինտերնետին և վարել այն Skype- ի տեսազանգի միջոցով:
  • (այստեղ) - Ինչպես վերահսկել ձեր SERB- ը ՝ օգտագործելով Wii nunchuck- ի արագացուցիչ սարքերը
  • (այստեղ) - Ինչպես ավելացնել խոչընդոտների հայտնաբերման բեղերը ձեր ռոբոտին
  • (այստեղ) - Ինչպես պատրաստել 30 հավաքածու (բաց արտադրություն)

Հատկություններ:

  • Լիովին ծրագրավորվող ՝ օգտագործելով Arduino Duemilanove միկրոհսկիչ (կամ ձեր ընտրած մեկ այլ միկրոկարգավորիչ):
  • Soldոդման կարիք չկա:
  • Ակրիլային կտորների կտրման տարբերակների ընտրություն: (ոլորման սղոց, մուտք դեպի լազերային դանակ, նախապես կտրված կտորներ ձեռք բերելը)
  • Հեշտությամբ ընդարձակվող և փոփոխելի ՝ պտուտակների լրացուցիչ անցքերով և ներառված տախտակով:
  • Երկակի գնդակ կրող հետևի անիվ:
  • Գործում է 1-2 ժամվա ընթացքում: (հանդերձանքից)
  • Բաց կոդով ձևավորում (կառուցեք այնքան, որքան ցանկանում եք)

(Անամոթ Plug) Միացյալ Թագավորությա՞մբ և ձեզ դուր է գալիս Arduino- ի իրերը: ստուգեք մեր նորաբաց վեբ խանութը oomlout.co.uk Arduino- ի կողմից վերահսկվող սերվոտ -ռոբոտի արագ տեսանյութ - (SERB), որն աշխատում է ներառված փորձարկման ծրագրով (քայլ 6) Նշում. Աղբյուրի ֆայլերը հասանելի են զուգահեռ Instructable (Source Files For) - ով Ինչպես պատրաստել Arduino վերահսկվող սերվո ռոբոտ - (SERB)

Քայլ 1: Մասեր և գործիքներ

Մասեր և գործիքներ
Մասեր և գործիքներ

Բոլոր պտուտակները կարելի է գտնել ձեր տեղական Home Depot- ում: Մնացած մասերը կարելի է գտնել առցանց (յուրաքանչյուրի համար ներառել եմ իմ սիրած աղբյուրի հղումը): Մասերի ցուցակ. Բոլոր սարքավորումների պարունակող փաթեթը կարելի է ձեռք բերել oomlout.com խանութից (այստեղ) ($ 120) Ընկույզ և պտուտակներ.

  • 3 մմ x 15 մմ պտուտակ (x20)
  • 3 մմ x 10 մմ պտուտակ (x12)
  • 3 մմ ընկույզ (x34)
  • 3 մմ լվացքի մեքենա (x12)
  • 8 մմ x 25 մմ պտուտակ (x2)
  • 8 մմ ընկույզ (x2)
  • Skate Bearings (x2) (VXB) (դրանք ստանդարտ չմուշկային առանցքակալներ են, որպեսզի դրանք փրկվեն զույգ գլանափաթեթներից կամ սահադաշտից)

Անվադողեր

  • Մեծ օղակ (4.5 "ID 3/16" Bead Dash #349) (x2) (McMaster-Carr Ապրանքի #9452K407)
  • Փոքր օղակ (3/4 "ID 3/16" Bead Dash #314) (x1) (McMaster-Carr Ապրանք #9452K387)

Էլեկտրոնիկա

  • Arduino Duemilanove (x1) (Maker Shed)
  • Շարունակական պտտման սերվո (x2) (զուգահեռ)
  • 400 Կոնտակտային տախտակ (x1) (Բոլոր էլեկտրոնիկաները))
  • Quad AA մարտկոցի տուփ (x1) (ամբողջ էլեկտրոնիկա)
  • Մարտկոցի սեղմիչ 9 Վ (x1) (Ամբողջ էլեկտրոնիկա)
  • 2.1 մմ վարդակից (x1) (ամբողջ էլեկտրոնիկա)
  • 3 փին վերնագիր (x2) (Բոլոր էլեկտրոնիկա)
  • A -B USB մալուխ - տպիչի ոճ (x1) (ամբողջ էլեկտրոնիկա) (ներառված չէ հավաքածուի մեջ)

Մարտկոցներ:

  • AA մարտկոց (x4) (ներառված չէ հավաքածուի մեջ)
  • 9 վ մարտկոց (x1) (ներառված չէ հավաքածուի մեջ)

Լար. (Ամբողջ մետաղալարն 22 AWG պինդ է, ես իմը գնում եմ McMaster-Carr- ի միջոցով)

  • 15 սմ Մանուշակագույն (x2)
  • 15 սմ Սև (x1)
  • 5 սմ Սև (x2)
  • 5 սմ Կարմիր (x2)

Գործիքներ

  • Պտուտակահան (x1) (Ֆիլիպս)
  • Ասեղ-քթի տափակաբերան աքցան (x1)

Քայլ 2: Կտոր կտրելը

Կտրող կտորներ
Կտրող կտորներ
Կտրող կտորներ
Կտրող կտորներ
Կտրող կտորներ
Կտրող կտորներ
Կտրող կտորներ
Կտրող կտորներ

Խնդրում ենք ընտրել, թե որ քայլերին պետք է հետևել ՝ ձեր ընտրած կտրման տարբերակի հիման վրա: Տարբերակ 1 (Նախնական կտրված մասերի գնում)

Գնել նախապես կտրված շասսի oomlout.com խանութից (այստեղ) ($ 60 ներառյալ առաքումը ԱՄՆ և Կանադա)

Տարբերակ 2 (Թվային արտադրություն (այսինքն. Պոնոկո) / Լազերային դանակի հասանելիություն)

  • Ներբեռնեք լազերային կտրիչի դասավորությունը («03 SERB Ponoko Cutting Layout P2.eps» կամ «03- (SERB) -Ponoko Cutting Layout (P2).cdr»)
  • Կտրեք ֆայլերը Ponoko- ի կամ ձեր սեփական Լազերային դանակի միջոցով (օգտագործելով 3 մմ,.118 "ակրիլ (երբեմն վաճառվում է.125"))

Տարբերակ 3 (ոլորման սղոց և հորատում)

  • Ներբեռնեք և տպեք PDF օրինակը (խնդրում ենք ընտրել ձեր թղթի չափին համապատասխան ֆայլը) 03- (SERB) -ScrollSaw Pattern (letter).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (կարևոր չէ մասշտաբավորել նկարը տպելիս)
  • Չափեք տպիչի վրա գտնվող քանոնը վստահելի քանոնի հետ, եթե դրանք չեն համապատասխանում օրինաչափությանը, այն չափված է, և նախքան տպելը անհրաժեշտ է դիտել ձեր տպիչի կարգավորումները: Եթե դրանք համընկնում են, ապա.
  • Կպչեք նախշը ակրիլային թերթիկին (3 մմ,.118 "(երբեմն վաճառվում է.125")):
  • Հորատեք անցքեր:
  • Կտրող կտորներ ոլորման սղոց օգտագործելով

Քայլ 3: Հավաքում

Ժողով
Ժողով
Ժողով
Ժողով
Ժողով
Ժողով

Շնորհավորում ենք, որ գործընթացի 90% -ը ավարտված է: Պարզապես ներբեռնեք այս քայլի հավաքման հրահանգները (04- (SERB) -Assembly Guide.pdf) և մի փոքր լեգո/մեխանիո ոճի հավաքից հետո պատրաստ կլինեք լարել: Theանապարհին ձեզ այստեղ զվարճացնելու համար իմ հավաքի ժամանակի ընդմիջում է.

Քայլ 4: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

Բոլոր մեծ կտորների հետ միասին ժամանակն է ավելացնել փոքր էլեկտրական երակները, ինչը թույլ կտա վերահսկել մեր ռոբոտը: Դա անելու համար ներբեռնեք և տպեք էլեկտրագծերի դիագրամը (05- (SERB) -Wiring Diagram.pdf): Առաջին հայացքը կարող է բավականին սարսափելի թվալ, սակայն, եթե յուրաքանչյուր միացում հաջորդաբար կատարեք և ժամանակ վերցնեք, այն հիանալի կերպով հավաքվում է: Հաղորդալարերը բավականին պարզ են և ոչ մի վնաս չի հասցնի ձեր շրջանին, մինչև մարտկոցներ չավելացնեք: Այսպիսով, ամեն ինչ միացրեք և նորից ստուգեք այն, ապա ավելացրեք էներգիա:

Քայլ 5: Փորձարկում և անսարքությունների վերացում

Փորձարկում և անսարքությունների վերացում
Փորձարկում և անսարքությունների վերացում

Եթե դուք սարք եք պատվիրել, ձեր Arduino- ն նախապես բեռնված է թեստային ծրագրով: Տեղադրեք 4 AA մարտկոց և միացրեք 9 վ մարտկոցը Arduino- ին: Եվ եթե ամեն ինչ ճիշտ է արված, ձեր ռոբոտը կսկսի շարժվել (այն կշրջվի պատահական ուղղությամբ ՝ 0.1 -ից 1 վայրկյան ժամանակահատվածում, նախքան պատահական ժամանակով առաջ գնալը 1 -ից 2 վայրկյան, այնուհետև դադարեցրեք 2 վայրկյան ՝ նորից սկսելուց առաջ): Եթե դուք սարք չեք գնել, ապա լրացուցիչ քայլ է պահանջվում: Ներբեռնեք կցված zip ֆայլը (07- (SERB)-SERB-Test Arduino Program.zip): Ապա բացեք այն ձեր Arduino էսքիզների գրացուցակում (կանխադրված «իմ փաստաթղթերը / Arduino \») և ներբեռնեք այն ձեր arduino տախտակին: (եթե դուք նորեկ եք Arduino- ում, մի քայլ առաջ անցեք, որտեղ կան հղումներ դեպի սկսելու հիանալի ձեռնարկներ) Ընդհանուր խնդիրներ. Իմ SERB- ը դանդաղ է շարժվում, երբ այն պետք է դադարեցվի: Սա արդյունք է այն բանի, որ ձեր սերվերը ճիշտ չեն չափաբերվել, ձեր սերվերը չափաբերելու համար սպասեք, մինչև ձեր սերվոները դադարեցվեն, այնուհետև փոքր պտուտակահանով պտտեք պոտենցիոմետրը սերվոյի ներսում (փոքր բացվածքը սերվո պատյանում ՝ հենց վերևում, որտեղ լարերն են): Պտտեք այն ձախ կամ աջ, մինչև սերվոն իսկապես դադարեցվի: Իրերն այնքան էլ ճիշտ չեն աշխատում: Ուղարկեք մեզ ձեր ախտանիշներով էլ. Նամակ, և մենք կփորձենք օգնել ձեզ, մինչ դուք սպասում եք պատասխանին, կրկնակի ստուգեք ձեր բոլոր լարերը 4-րդ քայլի միացման սխեմայով: Եթե որևէ խնդրի հանդիպեք, խնդրում ենք կամ մեկնաբանություն ավելացնել այս Ուղեցույցին կամ էլ.

Քայլ 6: mingրագրավորում

Ծրագրավորում
Ծրագրավորում

Ֆիզիկական ռոբոտը ավարտեց ժամանակը ՝ ուղեղ տալուն սկսելու համար: Նախքան Arduino Controlled Servo Robot- ի (SERB) ծրագրավորման մանրամասներին ծանոթանալը `ինտերնետում որոշ Arduino ծրագրավորման հիանալի ռեսուրսների մի քանի հղումներ: Arduino Starter Guide - A guide օգնելու ձեզ սկսել Arduinos- ից ՝ ծրագրավորման միջավայրը ներբեռնելուց մինչև ձեր առաջին ծրագիրը գրելը: Arduino- ի ծրագրավորման տեղեկանք - Arduino ծրագրավորման լեզվին վերաբերող հեշտ ուղեցույց: - Ինչպես է աշխատում Arduino Servo գրադարանը (ինչպես ենք մենք վերահսկում մեր սերվերը): Դե ինչ, եթե սովորում եք, ծրագրավորումը թույլ է տալիս: Ձեր Arduino Controlled Servo Robot- ի ծրագրավորումը սկսելու երեք եղանակ կա `(SERB): Տարբերակ 1. (SERB_Test.pde- ի փոփոխում) Երբեմն ծրագրավորելիս ամենահեշտ բանը` աշխատանքային ծրագիր վերցնելն է և դրան ավելացնել ձեր սեփական ծածկագիրը: Դա անելու համար ներբեռնեք SERB_Test սեղմված ծրագիրը (07- (SERB)-SERB-Test Arduino Program.zip): Շարունակեք այն բացել ձեր Arduino էսքիզների թղթապանակում (կանխադրված «Իմ փաստաթղթերը / Arduino \»): Վերջապես բացեք Arduino ծրագրավորման միջավայրը և ներբեռնեք այն ձեր Arduino- ում: Կոդը լավ մեկնաբանված է: (կամ պատճենեք և տեղադրեք ծածկագիրը այս քայլի հավելվածից նոր Arduino Sketch- ում) Տարբերակ 2. (SERB ռեժիմների ավելացում ձեր ծրագրում) Ավելացրեք որոշ պարզ ռեժիմներ ձեր արդեն գոյություն ունեցող ծրագրին (ինչպես goForward (), setSpeed (int) և այլն): Դա անելու համար ներբեռնեք տեքստային ֆայլի ռեժիմները (07- (SERB)- Simple Routines Text.txt): 1. Պատճենեք և տեղադրեք նախաբանի հատվածը ձեր ծրագրի սկզբում: Պատճենեք և տեղադրեք սովորական մասը ձեր ծրագրի հիմնական մասում: Ավելացնել զանգ serbSetup- ին (); ձեր setup () ռեժիմին: Տարբերակ 3: (Ստեղծել ձեր սեփական ծրագիրը զրոյից) Սա այնքան էլ դժվար չէ: Պահանջվում է միայն ծանոթանալ Arduino Servo գրադարանին: Այնուհետև աջ servo- ն միացված է 9 -րդ կապին, իսկ ձախը `10 -ին: նշում. կամ եթե ինչ -որ բան եք մշակում և ցանկանում եք, որ այն ցուցադրվի, ուղարկեք ինձ անձնական հաղորդագրություն, և այն կարող է ավելացվել: Հավելված (SERB_Test.pde կոդ)

/ * * Arduino Controlled Servo Robot (SERB) - Թեստային ծրագիր * Մանրամասների համար այցելեք ՝ https://www.oomlout.com/serb * * Վարք. Պարզ թեստային ծրագիր, որը ստիպում է SERB * - ին պատահականորեն շրջվել կամ ձախ կամ աջ 0.1 * 1 վայրկյանի միջև պատահական ժամանակահատվածի համար: * SERB- ն այնուհետև առաջ կքշի պատահական * ժամանակահատվածով ՝ 1 -ից 2 վայրկյանի միջև: Վերջապես * նորից դադարելուց առաջ 2 վայրկյան դադար: * * Էլեկտրամոնտաժում. Աջ սերվո ազդանշան - պին 9 * Ձախ սերվո ազդանշան - փին 10 * * Լիցենզիա. Այս աշխատանքը լիցենզավորված է Creative Commons * Attribution -Share Alike 3.0 Unported License- ի ներքո: Այս արտոնագրի պատճենը * դիտելու համար այցելեք * https://creativecommons.org/licenses/by-sa/3.0/ * կամ նամակ ուղարկեք Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * ԱՄՆ. * */// ------------------------------------------------- ------------------------ 9Սերվո ձախՍերվո; Servo rightServo; int արագություն = 100; // սահմանում է ռոբոտի արագությունը (երկուսն էլ սերվո) // տոկոս 0-ից 100-ի սահմաններում // ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE // ---------------- ------------------------------------------------------ --------/ * * * կապում է համապատասխան վիճակներին և ամրացնում սերվերը: Այնուհետև դադար է տալիս * 1 վայրկյան ՝ նախքան ծրագրի մեկնարկը */ void setup () {serbSetup (); // սահմանում է բոլոր անհրաժեշտ // կապումների վիճակը և սերվոներ ավելացնում ձեր էսքիզին randomSeed (analogRead (0)); // սահմանում է պատահական թվի սերմը // ինչ -որ մեղմ պատահական ուշացումով (1000);}/ * * ռոբոտին շրջում է ձախ կամ աջ (պատահական) * 0.1 և 1 վայրկյանի միջև ընկած ժամանակահատվածում: Նախքան պատահական ժամանակաշրջան առաջ գնալը * 1 -ից 4 վայրկյան: Երկու վայրկյան դադար տալուց առաջ նորից *. */Void loop () {turnRandom (100, 1000); // Պատահականորեն շրջվում է ձախ կամ աջ // պատահական ժամանակահատվածի համար.1 վայրկյան // և մեկ վայրկյան goForwardRandom (1000, 2000) միջև; // Առաջ է ընթանում պատահական ժամանակահատվածով // // 1 -ից 2 վայրկյան միջև goStop (); // Դադարեցնում է ռոբոտի ուշացումը (2000); // կանգ է առնում 2 վայրկյան (մինչ կանգառը)}/ * * ռոբոտին պատահականորեն շրջում է ձախ կամ աջ ՝ պատահական ժամանակահատվածում * minTime (milliseconds) and maxTime (milliseconds) */void turnRandom (int minTime, int maxTime) {int ընտրություն = պատահական (2); // Որոշելու համար պատահական թիվ // ձախ (1) և աջ (0) միջև int turnTime = պատահական (minTime, maxTime); // Դադարի համար պատահական համար // ժամանակ եթե (ընտրություն == 1) {goLeft ();} // Եթե պատահական թիվ = 1 ապա թեքվեք // ձախ այլ {goRight ();} // Եթե պատահական թիվ = 0 ապա շրջադարձ // աջ ձգձգում (turnTime); // պատահական ժամանակի հետաձգում}/ * * առաջ է ընթանում պատահական ժամանակահատվածով minTime (milliseconds) * and maxTime (milliseconds) */void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // որոշեք պատահական ժամանակը // առաջ գնալու համար goForward (); // սահմանում է SERB- ի առաջխաղացումը (forwardTime); // ուշացումներ պատահական ժամանակաշրջանի համար} // -------------------------------------------- ---------------------------------- // ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES/ * * կարգավորում է ձեր arduino- ն հասցեագրել ձեր SERB- ին ՝ օգտագործելով ներառված ռեժիմները*/void serbSetup () {setSpeed (արագություն); pinMode (LEFTSERVOPIN, OUTPUT); // ձախ սերվո ազդանշանի քորոցը // դնում է ելքային pinMode (RIGHTSERVOPIN, OUTPUT); // դնում է աջ սերվո ազդանշանի քորոցը // թողնել leftServo.attach (LEFTSERVOPIN); // կցում է ձախ servo rightServo.attach (RIGHTSERVOPIN); // կցում է աջ servo goStop ();}/ * * սահմանում է ռոբոտի արագությունը 0- (կանգառ) և 100- (լրիվ արագություն) միջև * ՆՇՈՄ. արագությունը չի փոխի ընթացիկ արագությունը, դուք պետք է փոխեք արագությունը * ապա զանգահարեք մեկին փոփոխությունների առաջ գնալուց առաջ գնալու մեթոդներ: {newSpeed = 0;} // եթե արագությունը 0 -ից փոքր է // դարձեք այն 0 արագություն = newSpeed * 0.9; // կշռում է արագությունը, որը պետք է լինի // 0 -ից մինչև 90}/ * * ռոբոտին ուղարկում է առաջ */void goForward () {leftServo.write (90 + արագություն); rightServo.write (90 - արագություն);}/ * * ռոբոտին հետ է ուղարկում */void goBackward () {leftServo.write (90 - արագություն); rightServo.write (90 + արագություն);} / * * ռոբոտին ուղարկում է աջ * /void goRight () {leftServo.write (90 + արագություն); rightServo.write (90 + արագություն);}/ * * ռոբոտին ուղարկում է ձախ */void goLeft () {leftServo.write (90 - արագություն); rightServo.write (90 - արագություն);}/ * * կանգնեցնում է ռոբոտին */void goStop () {leftServo.write (90); rightServo.write (90);} // ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES // ----------------------------- ---------------------------------------------------

Քայլ 7: Ավարտված, մյուսները, ովքեր ավարտել են և ապագան

Ավարտված, ուրիշները, ովքեր ավարտել են և ապագան
Ավարտված, ուրիշները, ովքեր ավարտել են և ապագան
Ավարտված, մյուսները, ովքեր ավարտել են և ապագան
Ավարտված, մյուսները, ովքեր ավարտել են և ապագան
Ավարտված, մյուսները, ովքեր ավարտել են և ապագան
Ավարտված, մյուսները, ովքեր ավարտել են և ապագան
Ավարտված, մյուսները, ովքեր ավարտել են և ապագան
Ավարտված, մյուսները, ովքեր ավարտել են և ապագան

Շնորհավորում եմ ձեզ այսքան հեռու հասնելու համար, և ես հույս ունեմ, որ դուք զվարճանում եք ձեր Arduino Controlled Servo Robot- ով (SERB): Michael Beck's SERB - Michael- ը SERB- ի ծրագրերը գտավ Thingiverse.com կայքում և կտրեց դեղին և կարմիր ակրիլից: Կարծում եմ, որ այն հիանալի տեսք ունի: Մայքի SERB - Մայքը (Սենթ Լուիս Ռոբոտ ակումբի ROBOMO- ից) ընկերոջը լազերային օգնությամբ կտրեց SERB շասսի և օգտագործեց իր սեփական ռոբոտային գիտելիքները `այն գործարկելու համար: Կարծում եմ, որ այն հիանալի տեսք ունի կապույտով: (այս, ինչպես նաև նրա այլ ռոբոտների մասին մանրամասների համար այցելեք նրա կայքը (այստեղ) Այս բաժնում կլինեն մանրամասներ ապագա զարգացումների և հավելվածների մասին (դրանք կցուցադրվեն այստեղ ՝ նախքան դրանք պատշաճ կերպով փաստաթղթավորվելը): Բայց ես նաև կցանկանայի ցուցադրել նկարներ այլ մարդկանց SERB- ի: Այսպիսով, եթե դուք ավարտել եք, ուղարկեք ինձ անձնական հաղորդագրություն լուսանկարով և մի քանի բառով (լինի դա նկարագրություն կամ ձեր կայքի հղում), և ես այն կավելացնեմ այստեղ: (Անամոթ վարդակից) Եթե ձեզ դուր եկավ այս խրատական ստուգեք oomlout.com- ը այլ զվարճալի բաց կոդով նախագծերի համար:

Առաջին մրցանակ SANYO eneloop մարտկոցով աշխատող մրցույթում

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