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

Հեծանիվի ձեռքի ազդանշանային լույս. 10 քայլ (նկարներով)
Հեծանիվի ձեռքի ազդանշանային լույս. 10 քայլ (նկարներով)

Video: Հեծանիվի ձեռքի ազդանշանային լույս. 10 քայլ (նկարներով)

Video: Հեծանիվի ձեռքի ազդանշանային լույս. 10 քայլ (նկարներով)
Video: Եթե երազում տեսնում եք այս 10 բաները, ապա չպետք է անտեսեք 2024, Նոյեմբեր
Anonim
Հեծանիվների ձեռքի ազդանշանային լույս
Հեծանիվների ձեռքի ազդանշանային լույս

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

Նշում. Սա պահանջում է զոդման եղանակների մասին նախկին գիտելիքներ և AVR- ների ծրագրավորման գաղափար `մեծ առավելություն: Հաշվի առնելով դա ՝ զվարճացեք, եղեք համբերատար և տեղադրեք ձեր արտադրանքի նկարները ստորև: Ահա մի տեսանյութ. Եվ ահա իմ նկարը.

Քայլ 1: Մասեր

Մասեր
Մասեր

x1 ATmega 32L 8PU (www.digikey.com) x1 40-փին DIP վարդակից (www.digikey.com) x1 8x8 LED զանգված (www.sparkfun.com) x1 74138 De-multiplexer (www.digikey.com) x2 Flex ցուցիչներ (www.sparkfun.com) x (Շատ) Ռեզիստորներ ՝ 180 օհմ և 10 կ ohmx2 ԱՀ տախտակ (www.sparkfun.com) x6 Կանգնեցումներ (www.sparkfun.com) և պտուտակներ, որոնք տեղավորվում են (Տեղական տեխնիկայի խանութ) x1 արագացուցիչ ՝ ճեղքման տախտակի վրա (www.sparkfun.com) x2 Վերնագիր - Արական (www.sparkfun.com), Իգական (www.sparkfun.com) և Ուղղանկյուն (www.sparkfun.com) x1 LM7805 (www.digikey.com) x2 8 փին վարդակներ (Ես ստացա իմը Radio Shack- ում) x1 9v մարտկոց 1 ոտքով փայտով velcrox1 Ամբողջ մատով հեծանիվ ձեռնոց 1 պտուտակավոր պոլիեսթեր թելք 1 ծրագրավորող (ես ունեմ այս մեկը) x1 Մետաղական մերկացնող և clipx1 մուլտիմետր Որոշ մասեր.

Քայլ 2. Պատրաստեք տախտակները

Պատրաստեք Տախտակները
Պատրաստեք Տախտակները
Պատրաստեք Տախտակները
Պատրաստեք Տախտակները
Պատրաստեք Տախտակները
Պատրաստեք Տախտակները
Պատրաստեք Տախտակները
Պատրաստեք Տախտակները

Նախ, ավելացրեք հակադրությունները: Դուք պետք է պտուտակեք երկուսը ՝ համապատասխան բարձրություն ստանալու համար: Համոզվեք, որ անջատումները կողքից իջնում են SQUARE բարձիկներով: Այս կերպ Դուք կարող եք կամրջել բարձիկներ ՝ ներքևի մասում, իսկ վերևում ՝ ընդհանուր բարձիկով ՝ գետնին միանալու համար: Հաջորդը ավելացրեք LED զանգվածը և ամրացրեք այն: Այն պետք է լինի երկու եզրագծով տախտակի եզրին այնքանով, որքանով դա կարող է լինել YS- ի հակառակ կողմից: Ներքևի ձախ կողմում տեղադրված քորոցը 1 -ին կապն է: Համոզվեք, որ մեկ բաց տարածք ունեք դեպի ձախ, այնուհետև կպցրեք այն: Հաջորդը բաժանեք արական և իգական վերնագրերը 10 և 11 քորոց հատվածների: Ձեզ հարկավոր կլինի կրկնակի շատ կին վերնագրեր: Thoseոդեք ներսում եղածներին, ինչպես երևում է լուսանկարում: Ինչ վերաբերում է արական վերնագրերին, ապա դուք պետք է փոխեք քորոցը, որպեսզի պլաստիկի յուրաքանչյուր կողմում դրանք հավասար քանակությամբ լինեն: Ամենահեշտը նայել նկարին `հասկանալու համար, թե ինչ նկատի ունեմ, այնպես որ հայացք նետեք թիվ 6 -ին: Ես օգտագործեցի տափակաբերան աքցան, և այն բավականին լավ աշխատեց: Այժմ, եթե վերցնեք արական վերնագրերը և դրանք տեղադրեք 2 իգական գլուխների միջև, կտեսնեք, որ դրանք այժմ ճիշտ չափի են ՝ վերին և ստորին տախտակները միմյանց միացնելու համար:

Քայլ 3: Ավելացրեք դիմադրիչներ

Ավելացրեք դիմադրիչներ
Ավելացրեք դիմադրիչներ
Ավելացրեք դիմադրիչներ
Ավելացրեք դիմադրիչներ
Ավելացրեք դիմադրիչներ
Ավելացրեք դիմադրիչներ

Այս դիմադրիչները անցնում են LED զանգվածի և 74138 (Ground) միջև `զանգվածը պաշտպանելու համար: Theալեք դիմադրիչներից մեկը գագաթին վերևում, այնպես որ երկու լարերը զուգահեռ են: Տեղադրեք դրանք 7, 9, 10, 11, 12, 13, 14 և 15 կապում և ամրացրեք դրանք: Ես գտա, որ դա ամենալավն է աշխատում, եթե դուք փոխարինում եք դիմադրության ուղղությունը, ինչպես կարող եք տեսնել երկրորդ և երրորդ նկարներում:

Քայլ 4: Վերևի մետաղալարեր

Wire the Top
Wire the Top
Wire the Top
Wire the Top
Wire the Top
Wire the Top
Wire the Top
Wire the Top

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

Քայլ 5: Բնակեցրեք ներքևը

Բնակեցրեք ներքևը
Բնակեցրեք ներքևը
Բնակեցրեք ներքևը
Բնակեցրեք ներքևը
Բնակեցրեք ներքևը
Բնակեցրեք ներքևը
Բնակեցրեք ներքևը
Բնակեցրեք ներքևը

Այժմ ժամանակն է տեղադրել մեր հիմնական բաղադրիչները ստորին տախտակին: Սկզբում մենք կանենք 40 փին DIP վարդակից, որը հնարավորինս մոտենում է ձախ վերևին, իսկ ձախ կողմում մեկ տող տարածք թողնելով: (Տես նկար #1): Sոդեք այն և տեղադրեք վերնագրերը: Դա անելու ամենահեշտ ձևն այն է, որ վերևում գտնվողները միացնեն ներքևին գտնվողներին ՝ օգտագործելով ձեր փոփոխված արական վերնագրերը: Եթե ամեն ինչ ճիշտ եք արել, ապա պետք է հայտնվեք ձախ վերնագրի երեք վերին երեք կապում կողպեքի ներքևի աջ քորոցների կողքին: Սա նորմալ է: Մենք օգտագործում ենք միայն ներքևի քորոցը աջ կողմում, և ինչպես տեսնում եք, մենք հստակ կրակոց ունենք այն այլ ուղղությամբ: Այժմ ավելացրեք լարման կարգավորիչը, ինչպես ցույց է տրված նկարում: Պտուտակով և ընկույզով մետաղական ջերմատաքիչի անցքի միջով ամրացրեցի իմը: Տաքացուցիչը չիպը հիմնավորելու ևս մեկ եղանակ է, և այն տախտակին ամրացնելը ապահովում է ամուր շփում ընդհանուր միացման հետ: Սա կապված է ինչպես ներքևի, այնպես էլ վերևի հետ, քանի որ երկուսը կապված են մետաղական փակուղիների հետ: Այնուամենայնիվ, եթե դուք չեք օգտագործում ընդհանուր կապը գրունտի համար, մի՛ փակեք ջեռուցման մարտկոցը տախտակին, քանի որ ջեռուցիչը ծառայում է որպես գետնին, և, հավանաբար, ինչ -որ բան կարճ միացնելու եք: Հաջորդ մետաղալարը մարտկոցի ամրացման մեջ: Կարմիրը անցնում է ձախ կողմում գտնվող քորոցին (heatերմաստիճանի բարձրացումով և կապում ներքևով) սևը դեպի միջին, իսկ աջ քորոցն արտադրում է +5 վ: Այժմ կարող եք միացնել հոսանքը դեպի վերև (տես նկարը #2): Այժմ ծրագրավորողի միակցիչի համար: Ես ունեմ ադապտեր, որը ես պատրաստել եմ իմ ծրագրավորողի համար, բայց դուք հավանաբար կցանկանաք ձեր դիզայնի մեջ ներառել 6 փին (3x2) վերնագիր: Այնուամենայնիվ, եթե դուք ունեք իմ նման ադապտեր, ահա թե ինչ արեցի: Ես վերցրեցի ուղղանկյուն վերնագիր և կին գլխիկ և դրանք միասին զոդեցի (Նկար #3): Այնուհետև ես այն ամրացրեցի տախտակին ՝ 6 -րդ կապին միացված առաջին քորոցով: Այժմ դուք պետք է միացնեք և հիմնավորեք չիպը, ինչպես նաև էլեկտրահաղորդիչ `ռեզիստորի մեջ` վերականգնումը բարձր քաշելու համար: Ես աշխատեցի 10k դիմադրիչով ՝ 9 -րդից մինչև 10 -րդ կապը, այնուհետև միացրեցի 10 -ից մինչև +5 վ: Հաջորդ կապը (11) անցնում է ընդհանուր կապին (Ground): Վերջապես նայեք թիվ 4 նկարին ՝ այս քայլն ավարտելու համար (Դա բավականին ինքնաբացատրելի է):

Քայլ 6: Լարը ներքևում

Լարը ներքևում
Լարը ներքևում
Լարը ներքևում
Լարը ներքևում
Լարը ներքևում
Լարը ներքևում

Հիշու՞մ եք այդ իսկապես զվարճալի քայլը, որտեղ դուք պետք է անցնեք 30 լարով և աշխատեք LED զանգվածի վրա: Այժմ դուք նորից պետք է դա անեք: Ներքեւում!. Այս մեկը մի փոքր ավելի արագ է, բայց ոչ շատ: Մեկ անգամ ևս նայեք սխեմատիկային և ստուգեք ձեր բոլոր կապերը ձեր բազմիմետրով: Մի անհանգստացեք, սա նախագծի վերջին մեծ զոդման կտորն է և գրեթե ավարտված եք:

Քայլ 7: Flex ցուցիչներ և արագացուցիչ

Flex սենսորներ և արագացուցիչ
Flex սենսորներ և արագացուցիչ
Flex սենսորներ և արագացուցիչ
Flex սենսորներ և արագացուցիչ
Flex սենսորներ և արագացուցիչ
Flex սենսորներ և արագացուցիչ

Մենք առաջին հերթին կխոսենք ճկուն սենսորների մասին, բայց դուք գտնվում եք տան երկարաձգման մեջ, որքանով սարքավորումները գնում են: Կարծում եմ, որ ստորև ներկայացված նկարները բավականին բացատրում են, թե ինչ անել: Մի կապը միացրեք +5 վ երկրորդին երրորդ կամ չորրորդ քորոցին ՝ վերևից ՝ AVR- ի աջ կողմում (այս նախագծի հիմքում ընկած միկրոկառավարիչը): Երբ ես առաջին անգամ սա համադրեցի, ես մտածեցի, որ դա այն ամենն էր, ինչ պետք է անեի, բայց պարզվում է, որ AVR- ը ճկուն սենսորները կարդալու համար անհրաժեշտ է տեղադրել դիմադրիչ ՝ դեպի AVR դեպի գետն անցնող սենսորի քորոցից (տես նկարներ # 10 և 11): Ես օգտագործել եմ 10k: Սա բաժանում է դեպի AVR գնացող լարումը, ինչը գործնականում կրկնապատկում է սենսորի զգայունությունը: Հիմա արագացուցիչի մասին: Քանի որ արագացուցիչը ընդամենը մի մազ է ավելի բարձր, քան երկու տախտակների միջև եղած տարածությունը, և քանի որ մենք գուցե ցանկանանք այն փոխարինել ինչ -որ օրով, ես որոշեցի օգտագործել վերնագրեր ՝ այն տախտակից դուրս շպրտելու և միացնելու համար: Օգտագործեք աջ անկյան վերնագիր `միացման տախտակի 6 կապում միանալու համար: Այժմ վերցրեք մեկ այլ աջ անկյունի վերնագիր և մի կին վերնագիր կպցրեք կարճ կապում, այնուհետև այն կպցրեք տախտակի ներքևի ձախ մասում: Միացրեք արագացուցիչը `համոզվելու համար, որ այն տեղավորվում է, անջատեք այն վարդակից և այնուհետև համապատասխան կապումներն միացրեք Vcc (+5v) և Gnd ցանցերին: Այնուհետև միացրեք X ելքային քորոցը 40 -ի կապակցին, իսկ Y- ը ՝ 39 -ին: Այժմ դուք պետք է կարգավորեք IC- ների (ինտեգրալ սխեմաներ) ավելացնելու և այն միացնելու հնարավորությունը:

26 դեկտեմբերի, 2009 թ.. Ես պարզեցի, որ ցուցամատի ճկման սենսորի տեղադրման եղանակը դեգրադացիայի է ենթարկել սենսորը կապող սենսորը միացնող նյութը: Այդ ժամանակից ի վեր ես գնել եմ փոխարինող սենսոր և տաք սոսնձել էի սենսորին բարակ պլաստիկի մի կտոր, որպեսզի թույլ չտայի, որ այս տարածքը լինի ճկման մեծ մասը: Ստորև բերված լուսանկարում ես պիտակել եմ գտնվելու վայրը:

Քայլ 8. IC- ի և Առաջին ծրագրի ավելացում

IC- ի և Առաջին ծրագրի ավելացում
IC- ի և Առաջին ծրագրի ավելացում
IC- ի և Առաջին ծրագրի ավելացում
IC- ի և Առաջին ծրագրի ավելացում
IC- ի և Առաջին ծրագրի ավելացում
IC- ի և Առաջին ծրագրի ավելացում
IC- ի և Առաջին ծրագրի ավելացում
IC- ի և Առաջին ծրագրի ավելացում

Սա, հավանաբար, ամբողջ գործընթացի ամենահեշտ քայլն է: Եվս մեկ անգամ օգնեց նկարը: Համոզվեք, որ դուք ունեք չիպսեր ճիշտ ձևով, ինչպես նկարագրված է նկար 3 -ում: Ես սկզբում միացնում էի հոսանքը միացված ոչինչի հետ և դիպչում էի լարման կարգավորիչի ջերմատախտակին: Եթե շոգ է, ապա ինչ -որ բան կարճանում է, և դուք պետք է վերադառնաք և ստուգեք կապերը: Շարունակեք այս կերպ ՝ միաժամանակ ավելացնելով մեկ չիպ, ջերմության զգացում և երբ ամեն ինչ իր տեղում լինի, ամրացրեք ներքևի տախտակի ընկույզը, որպեսզի երկու տախտակները ապահով ամրացվեն միասին: Հաջորդը դուք ծրագրավորելու եք AVR- ը: Եթե նախկինում դա երբեք չեք արել, ապա արագ որոնումը Google- ում տալիս է արդյունքների բազմազանություն: Եթե ես ձեր փոխարեն լինեի, ես իմ AVR- ը կդնեի սեղանի վրա և այնտեղ կտեղադրեի ծրագիր, նախքան այն փորձեք ձեր ծանր աշխատանքի վրա: Ես գրել եմ մի պարզ ծրագիր ՝ ճկուն տվիչներից ստացվող տեղեկատվությունը LED զանգվածին փոխանցելու համար: Սա պետք է ձեզ հիմնական պատկերացում կազմի այն մասին, թե ինչ է և ինչ չի աշխատում ձեր միացումում: Ահա գործողության կոդի տեսանյութը ……. Եվ ահա կոդը ՝ ADMUX = 0b01100000; ADCSRA = 0b10000000;} int main () {int a; a = 0; int բ; b = 0; DDRD = 0xFF; DDRB = 0xFF; DDRA = 0b11100000; ADCINIT (); մինչդեռ (1) {ADMUX = 0b01100011; ADCSRA | = 0b01000000; իսկ (bit_is_clear (ADCSRA, ADIF)); ՊՈՐՏԱ = 0b00000000; PORTD = ADCH; _ ուշացում (1); PORTD = 0x00; ADMUX = 0b01100010; ADCSRA | = 0b01000000; իսկ (bit_is_clear (ADCSRA, ADIF)); ՊՈՐՏԱ = 0b11100000; PORTB = ADCH; _ ուշացում (1); PORTB = 0x00; }}

Քայլ 9. Ձեր շրջանը ամրացրեք ձեռնոցի վրա

Ձեռքիդ ամրացրու
Ձեռքիդ ամրացրու
Ձեռքիդ ամրացրու
Ձեռքիդ ամրացրու
Ձեռքիդ ամրացրու
Ձեռքիդ ամրացրու

Կարծում եմ, որ կան բազմաթիվ եղանակներ ՝ ձեր սխեման ձեր ձեռքին ամրացնելու համար և որոշ ժամանակ մտածում էի, որ դա թողնելու եմ ընթերցողին, բայց հետո որոշեցի, որ առանց այս փակման ուսանելիը լիարժեք չի լինի: Ես գնացի իմ տեղական հեծանիվների խանութ և ստացա ամենաէժան ամբողջական մատով ձեռնոցը, որը կարողացա գտնել: Ամբողջ մատը անհրաժեշտ է, քանի որ հակառակ դեպքում դուք չեք կարող շատ լավ ամրացնել ճկուն տվիչները: Այնուհետև ես գնացի գործվածքների խանութ և ստացա պոլիեսթեր թել և կպչուն վելկրո: Ես դրեցի ձեռնոցը և շրջանը դրեցի իմ ձեռքին: Տեղադրման մի մասը հարմարավետությունն է, իսկ մյուս մասը `ճկուն տվիչները: Նրանք պետք է իջնեն երկու մատների կեսից: Ես երեք հանգույցի շուրջ օղակներ եմ կարել ՝ հիմնական տախտակը պահելու համար (տե՛ս նկարը #2), այնուհետև թուլացած օղակները 3/4 -ով կտրում եմ յուրաքանչյուր ճկվող սենսորային մատից (թիվ 3 և 4): Համոզվեք, որ ձեռնոցը փակ չեք կարում: Հաջորդը ես մի կտոր Velcro կպցրի իմ բութ մատի կողքին `մարտկոցը պահելու համար: Փորձարկումներից հետո ես գտա, որ իրոք կարևոր է նաև դրա կարելը, քանի որ փայտը երկար չի տևում: Հաջորդը ես մի վելկրո օղակ դրեցի 9 վ -ի շուրջը (Նկար 5): Այս կարգավորումը, կարծես, բավականին լավ է աշխատում: Ինչպես տեսնում եք առաջին և վերջին սլայդների նկարներում, ես այժմ ավելացրել եմ ճկվող սենսորների թևեր, բայց եթե ժամանակ չունեք, օղակները պետք է լավ աշխատեն: Երբ ձեր նախագծով ավարտեք, տեղադրեք ձեր պատրաստի արտադրանքի լուսանկարները: ստորեւ. Ես շատ կուզենայի տեսնել, թե ինչ եք մտածել միացումը միացնելու համար:

Քայլ 10: Իրական ծածկագիր

Իրական օրենսգիրք
Իրական օրենսգիրք

Շնորհակալ եմ մինչ այժմ ինձ հետ լինելու համար: Խնդրում եմ նկատի ունենալ, որ իմ կոդը կատարյալ չէ: Ես գտել եմ, որ մի փոքր սովորում է անհրաժեշտ ազդանշանը ճիշտ աշխատեցնելու համար: Ես կշարունակեմ կատարելագործել իմ համակարգը և այս էջը գրելուց հետո նոր էջ կպահեմ նոր կոդով: 2009 թ. Դեկտեմբերի 26. ՆՈՐ ԿՈԴ: Այն տեղադրված է այնտեղ, որտեղ եղել է հին ծածկագիրը: Շատ շնորհակալ եմ Հակոբին պարզեցման համար: Իսկապես լավ է աշխատում: Ահա այն. Շնորհակալություն կարդալու համար և մի մոռացեք քվեարկել: #ներառել #ներառել #ներառել // սահմանում կամ ջնջում է բիթերը գրանցամատյաններում #սահմանել setBit (sfr, bit) (sfr | = (1 << բիթ)) #սահմանել clearBit (sfr, bit) (sfr & = ~ (1 << բիթ)) #սահմանել flipBit (sfr, bit) (sfr ^= (1 << բիթ)) #սահմանել ՍՈALՏ 0 #սահմանել UEՇՄԱՐՏՈ #ԹՅԱՆ 1 #սահմանել մատրիցա X (x) (PORTA = (x - 1) << 5) #սահմանել matrixGY (y) (PORTD = y) #սահմանել matrixRY (y) (PORTB = y) անվավեր հետաձգում (unsigned int delay) {unsigned int x = 0; իսկ (x <հետաձգում) {x ++; }} void initMatrix () {DDRD = 0xFF; // Կանաչ հսկողություն DDRB = 0xFF; // Կարմիր հսկիչ DDRA = 0xE0; // Ground control} void matrixRowDraw (char greenmask, char redmask, char column) {matrixX (սյունակ); int i = 0; (i = 0; i <8; i ++) {matrixGY (կանաչ դիմակ & (1 << i)) համար; matrixRY (կարմիր դիմակ & (1 << i)); _ ուշացում (150); } matrixGY (0x00); matrixRY (0x00); } void matrixLeft () {matrixRowDraw (0x10, 0, 1); matrixRowDraw (0x20, 0, 2); matrixRowDraw (0x40, 0, 3); matrixRowDraw (0xFF, 0, 4); matrixRowDraw (0xFF, 0, 5); matrixRowDraw (0x40, 0, 6); matrixRowDraw (0x20, 0, 7); matrixRowDraw (0x10, 0, 8); } void matrixRight () {matrixRowDraw (0x18, 0, 1); matrixRowDraw (0x18, 0, 2); matrixRowDraw (0x18, 0, 3); matrixRowDraw (0x18, 0, 4); matrixRowDraw (0x99, 0, 5); matrixRowDraw (0x5A, 0, 6); matrixRowDraw (0x3C, 0, 7); matrixRowDraw (0x18, 0, 8); } void adcInit () {ADMUX = 0x60; ADCSRA = 0x80; } char adcGet (char chan) {ADMUX = 0x60 | չան; ADCSRA | = 0x40; իսկ (bit_is_clear (ADCSRA, ADIF)); վերադարձ ADCH; } char adcAvg (char chan, char avgnum) // Միջին միայն մինչև 256 նմուշ {int i = 0; անստորագիր int ընդհանուր = 0; համար (i = 0; i <avgnum; i ++) {total+= adcGet (chan); } վերադարձ ընդհանուր/avgnum; } int main () {initMatrix (); adcInit (); while (1) {while (adcAvg (3, 50)> 0x45 & adcAvg (2, 50)> 0x70) // Այստեղ վեցանկյուն արժեքները պետք է փոխվեն ՝ կախված օգտագործողների կարգավորումից ՝ ճկվող տվիչների զգայունությունը որոշելու համար: {if (adcAvg (1, 50)> 0x4F) {matrixRight (); } if (adcAvg (1, 100) <0x4F) {matrixLeft (50); }}} վերադարձ 0; } Հատուկ շնորհակալություն Չեմբերլեններին, իմ ծնողներին և ընկերներին, ովքեր օգնեցին:

Եզրափակիչ տնական տոների մրցույթում

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