Სარჩევი:

საჰაერო შაშხანის ქრონოგრაფი, ქრონოსკოპი. 3D ბეჭდვით: 13 ნაბიჯი
საჰაერო შაშხანის ქრონოგრაფი, ქრონოსკოპი. 3D ბეჭდვით: 13 ნაბიჯი

ვიდეო: საჰაერო შაშხანის ქრონოგრაფი, ქრონოსკოპი. 3D ბეჭდვით: 13 ნაბიჯი

ვიდეო: საჰაერო შაშხანის ქრონოგრაფი, ქრონოსკოპი. 3D ბეჭდვით: 13 ნაბიჯი
ვიდეო: ქართული საიერიშო შაშხანა G5.Georgian assault rifle G5. 2024, ნოემბერი
Anonim
Image
Image
მხატვრული
მხატვრული

გამარჯობა ყველას, დღეს ჩვენ კიდევ ერთხელ შევხედავთ ჩემს მიერ 2010 წელს გაკეთებულ პროექტს. საჰაერო შაშხანის ქრონოგრაფი. ეს მოწყობილობა გეტყვით ჭურვის სიჩქარეს. პელეტი, BB ან თუნდაც ჰაერი რბილი BB პლასტიკური ბურთი.

2010 წელს ვიყიდე საჰაერო თოფი გასართობად. ურტყამდა ქილაებს, ბოთლებს, მიზანს. მე ვიცი, რომ ამ იარაღის სიჩქარე იყო მაქსიმუმ 500 ფუტი/წმ. რადგან ეს კანადის კანონია. არსებობს უფრო ძლიერი საჰაერო შაშხანა, მაგრამ თქვენ უნდა გქონდეთ ლიცენზია და თქვენ არ შეგიძლიათ შეიძინოთ ეს ნივთი Walmart– ში.

ახლა მე მქონდა ეს ლიცენზია, შემეძლო კიდევ ერთი მეყიდა. მოკლედ რომ ვთქვათ, იგივე იარაღი ხელმისაწვდომი იყო აშშ -ში 1000 ფუტი/წმ სიჩქარით. ᲠᲐ!? იგივე იარაღი? დიახ… კანადაში ინსულტს აქვს ხვრელი და გაზაფხული უფრო რბილია.

პირველი რაც უნდა გააკეთოთ, შეავსეთ ხვრელი. ეს არის ის, რაც მე გავაკეთე solder. შემდეგი რაც უნდა გაკეთდეს იყო შეკვეთის შემცვლელი ზამბარის შეკვეთა. მაგრამ დაელოდეთ … რა არის ჩემი ახალი სათამაშოს ამჟამინდელი სიჩქარე? მართლა აუცილებელია გაზაფხული? არ ვიცი და მინდა ვიცოდე. ახლა მინდა ვიცოდე მაგრამ როგორ?

ამიტომაც გავაკეთე ეს პროექტი. ყველაფერი რაც მჭირდებოდა იყო 2 სენსორი, uC და ეკრანი და ჩვენ ბიზნესში ვართ.

გასულ კვირას, მე დავინახე ჩემი ძველი ლურჯი ქრონოგრაფი თაროზე და ვესაუბრები ჩემს თავს: "რატომ არ გავუზიარო ეს და გავაკეთო ინსტრუქცია?" სხვათა შორის, ჩვენ შეგვიძლია გავზარდოთ სიზუსტე და დავამატოთ ბატარეის მაჩვენებელი. ჩართეთ/გამორთეთ 2 ღილაკის ნაცვლად 1 ღილაკი. ყველა ზედაპირზე დამონტაჟება. ჩვენ ახლა 2020 წელს ვართ!

ასე რომ, ის არის … დავიწყოთ!

ნაბიჯი 1: თვისება

-პელეტების სიჩქარე

-ჩქარება

-20 მჰც გაშვებული, უზარმაზარი სიზუსტე

-ავტო გამორთულია

-ნაჩვენებია ბატარეის ძაბვა

-ხელმისაწვდომია სქემატური

-pcb ხელმისაწვდომია

-ნაწილების სია ხელმისაწვდომია

-STL ხელმისაწვდომია

-C კოდი ხელმისაწვდომია

ნაბიჯი 2: ოპერაციის თეორია და სიზუსტე

-ჩვენ გვაქვს uC 20 მჰც სიხშირით. გამოყენებული ოსცილატორი არის TCX0 +-2.5 ppm

-ჩვენ 2 სენსორი გვაქვს ერთმანეთისგან 3 ინჩზე.

-ჭურვი პირველ სენსორს მოხვდა. uC დათვლა (ტაიმერი 1)

-ჭურვი მეორე სენსორს მოხვდა. uC შეწყვიტე დათვლა.

-uC შეამოწმეთ ტაიმერის 1 მნიშვნელობა, გააკეთეთ მათემატიკა და აჩვენეთ სიჩქარე და სიჩქარე.

მე ვიყენებ 16 ბიტიან ტაიმერს 1 + გადავსების დროშას tov1. 17 ბიტი სულ 131071 "tic" სრული დათვლისთვის.

1/20 mhz = 50 ns თითოეული ტიკ არის 50n

131071 x 50 ns = 6.55355 ms 3 ინჩის გასაკეთებლად.

6.55355 ms x 4 = 26.21 ms 12 ინჩის გასაკეთებლად.

1/26.21 ms = 38.1472637 ფუტი/წმ

ეს არის ყველაზე ნელი სიჩქარე, რომლის გაზომვაც შეუძლია მოწყობილობას.

რატომ 20 მჰც? რატომ არ იყენებთ შიდა 8 მჰც -ს ან თუნდაც კრისტალს?

ჩემი პირველი მოწყობილობა იყო შიდა ოსცილატორის გამოყენებით. მუშაობდა, მაგრამ ეს არ იყო საკმარისად ზუსტი. ვარიაცია ძალიან დიდია. კრისტალი უკეთესია, მაგრამ ტემპერატურა განსხვავებული სიხშირეა. ჩვენ არ შეგვიძლია გავაკეთოთ ზუსტი საზომი მოწყობილობა ამით. ასევე, რაც უფრო მაღალია სიხშირე, მით უფრო მეტი ტიკ ჩაითვლება იმავე სიჩქარით. შერჩევა უკეთესი იქნება ძალიან კარგი სიზუსტით. იმის გამო, რომ ტიკ არ იყოფა, დანაკარგი მცირეა, თუ მოვალეობის ციკლი სწრაფია.

20 MHz– ზე ჩვენ გვაქვს 50 ns საფეხურები. ჩვენ ვიცით რამდენად ზუსტია 50 ns ჭურვისთვის 38 ფტ/წმ სიჩქარით.

38.1472637 ფუტი/წმ გაყოფილი 131071 = 0, 000291042 ფუტზე

0, 0003880569939956207 ფუტი x 12 = 0, 003492512 ინჩი

1/0, 003492512 = 286.37 ". სხვა სიტყვებით. 50 ფტ/წმ-ზე გვაქვს სიზუსტე +- 1/286" ან +- 0, 003492512 ინჩი

მაგრამ თუ ჩემი ოსცილატორი არის ყველაზე უარესი და მუშაობს 20 mhz +2.5 ppm არის კარგი? მოდით გავარკვიოთ…

2.5 ppm 20 000 000 არის: (20000000/1000000) x 2.5 = 20000050 Hz

ყველაზე უარესი სცენარი გვაქვს კიდევ 50 საათი 20 მჰც -ზე. ეს არის 50 საათი 1 წამში. რამდენი ტიკ მეტია ტაიმერ 1 -ზე, თუ პელეტი აკეთებს იმავე სიჩქარეს (38.1472637 ფუტი/წმ ან 6.55 წმ)?

1/20000050 = 49.999875 ნს

49.999875 ns x 131071 = 6, 553533616 ms

6, 553533616 ms x 4 = 26.21413446 ms

1/26.21413446 ms = 38.14735907 ფუტი/წმ

ასე რომ, ჩვენ გვაქვს 38.14735907 ფუტი/წმ ნაცვლად 38.1472637 ფუტი/წმ

ახლა ჩვენ ვიცით, რომ 2.5 ppm არ იმოქმედებს შედეგზე.

აქ მოცემულია სხვადასხვა სიჩქარის მაგალითი

1000 ფტ/წმ

1000 ფტ/წმ x 12 არის 12000 ინჩი/წმ

1 წამი 12000 "რამდენჯერ უნდა გააკეთო 3"? 3x1/12000 = 250 აშშ წამი

250 us / 50 ns = 5000 tic.

ტაიმერი 1 იქნება 5000 -ზე

uC გააკეთე მათემატიკა და ნაჩვენებია 1000 ფუტი/წმ. ჯერჯერობით კარგად

900 ფუტი/წმ

900 ფუტი/წმ არის 10800 /წმ

3x1/10800 = 277,77 აშშ

277, 77 ნს / 50 ნს = 5555, 5555 ტიკ

ტაიმერი 1 იქნება 5555

uC გააკეთე მათემატიკა და 900, 09 ნაჩვენები იქნება 900 -ის ნაცვლად

რატომ? რადგან ტაიმერი 1 არის 5555 და 0, 5555 დაკარგულია. ტაიმერის ტაქსი არ იყოფა.

ჩვენ გვაქვს შეცდომა 0, 09 900 ფტ/წმ -ზე

0, 09/900x100 = 0, მხოლოდ 01% შეცდომა

1500 ფტ/წმ 1500 ფუტ/წმ არის 18000 /წმ 3x1/10800 = 166.66 აშშ

166.66 us / 50 ns = 3333.333 tic ტაიმერი 1 იქნება 3333

uC გააკეთე მათემატიკა და 1500.15 გამოჩნდება 1500 -ის ნაცვლად.15/1500x100 = 0, 01%

9000 ფუტ/წმ

9000 x 12 = 180000 ინჩი / წმ

3x1/180000 = 27.7777 ჩვენ

27,77 us / 50 ns = 555, 555

ტაიმერი 1 იქნება 555 და 4/(1/555x50ns) ნაჩვენები იქნება 9009, 00 გამოჩნდება

აქ შეცდომა არის 9 ფუტი/წმ 9000 = 0, 1%

როგორც ხედავთ % შეცდომა იზრდება როცა სიჩქარე უფრო მაღალია. დარჩით <0.1%

ეს შედეგები ძალიან კარგია.

მაგრამ სიზუსტე არ არის ხაზოვანი. 10000 ფუტ/წმ -ზე არის 0, 1 %. კარგი ის არის, რომ ჩვენ არასოდეს ვამოწმებთ 10 000 ფუტ/წმ მარცვლას.

კიდევ ერთი რამ უნდა გახსოვდეთ. როდესაც შეფერხება ხდება, uC ყოველთვის ამთავრებს ბოლო ინსტრუქციას შეწყვეტაში შესვლამდე. ეს ნორმალურია და ყველა uC ამას აკეთებს. თუ კოდირებთ arduino– ს, C– ში ან თუნდაც ასამბლერს. უმეტეს დროს თქვენ დაელოდებით სამუდამო მარყუჟში … დაელოდეთ. პრობლემა ის არის, რომ მარყუჟში ჩვენ ვატარებთ 2 ციკლს. ჩვეულებრივ, ეს არ არის მნიშვნელოვანი. მაგრამ ჩვენს შემთხვევაში. დიახ, თითოეული ხრიკი მნიშვნელოვანია. მოდით შევხედოთ უსასრულო მარყუჟს:

შემკრები:

მარყუჟი:

rjmp მარყუჟი

C- ში:

ხოლო (1) {}

სინამდვილეში C შემდგენელი იყენებს rjmp ინსტრუქციას. RJMP არის 2 ციკლი.

ეს ნიშნავს, რომ თუ შეფერხება მოხდა პირველ ციკლთან, ჩვენ ვკარგავთ ერთ ციკლს (ტიკ) (50ns).

ამის გამოსწორების გზა არის მარყუჟში ბევრი არა ინსტრუქციის დამატება. NOP არის 1 ციკლი.

მარყუჟი:

არა

არა

არა

არა

არა

rjmp მარყუჟი

თუ შეფერხება მოხდა არასასურველი ინსტრუქციით. ჩვენ კარგად ვართ თუ ეს მოხდება rjmp ინსტრუქციის მეორე ციკლზე, ჩვენ კარგად ვართ. მაგრამ თუ ეს მოხდება rjmp ინსტრუქციის პირველ ციკლზე, ჩვენ დავკარგავთ ერთ ტიკს. დიახ, ეს არის მხოლოდ 50 ns, მაგრამ როგორც ზემოთ ხედავთ, 50 ns 3 ინჩზე არაფერია. ჩვენ არ შეგვიძლია ამის გამოსწორება პროგრამული უზრუნველყოფის საშუალებით, რადგან არ ვიცით როდის მოხდება ზუსტად შეფერხება. ამიტომაც კოდში ნახავთ უამრავ არა ინსტრუქციას. ახლა მე დარწმუნებული ვარ, რომ შეფერხება დაეცემა nop ინსტრუქციას. თუ 2000 -ს დავამატებ, 0, 05% დაეცემა rjmp ინსტრუქციაზე.

კიდევ ერთი რამ უნდა გახსოვდეთ. როდესაც შეფერხება ხდება. შემდგენელი ბევრს აკეთებს და უბიძგებს. მაგრამ ეს ყოველთვის ერთი და იგივე რიცხვია. ახლა ჩვენ შეგვიძლია გავაკეთოთ პროგრამული კორექტირება.

ამის დასასრულს:

1000 ფუტი/წმ საშუალო მარცვლის სიზუსტე არის 0, 01%

100x უფრო ზუსტი ვიდრე სხვა 1% ბაზარზე. სიხშირე უფრო მაღალია და TCXO– ით, უფრო ზუსტი

მაგალითად, 1000 ფტ/წმ -ის 1% მეტ -ნაკლებად 10 ფტ/წმ -ია. დიდი განსხვავებაა.

ნაბიჯი 3: სქემატური და ნაწილების სია

სქემატური და ნაწილების სია
სქემატური და ნაწილების სია

აქ მე განვახორციელე ჩემი ერთი ღილაკის ჩართვა/გამორთვის წრე. (იხილეთ ჩემი ბოლო ინსტრუქცია) ეს წრე ძალიან მოსახერხებელია და მუშაობს ძალიან კარგად.

მე ვიყენებ atmega328p. ეს არის დაპროგრამებული C.

ეკრანი სტანდარტული 2 ხაზოვანი LCD HD44780 თავსებადია. გამოიყენება 4 ბიტიანი რეჟიმი.

3.3 ვ რეგულატორი გამოიყენება TCXO 20 მჰც ძაბვის უზრუნველსაყოფად.

D1 არის LCD განათებისთვის. სურვილისამებრ. ბატარეა უფრო დიდხანს გაგრძელდება, თუ არ დააინსტალირებთ D1- ს.

ყველა რეზისტორი და თავსახური არის 0805 პაკეტი

C1.1uf 25v

C2 1uf 16v

C3 2.2uf 10v

C4.1uf

C5.1uf

C6.1uf

C7 1uf

C8.1uf

C9.1uf

C10.1uf

D1 1n4148 SM SOT123

D2 5.1v SOT123

IC1 ATMEGA328p

IC2 MIC5225-5.0YM5-TR TPS70950DBVT SOT23-DBV

OSC1 TXETDCSANF-20.000000

R1 1 მ

R2 1 მ

R4 2.2 კ

R5 160

R6 160

R7 1M

R8 1M

U1 MIC5317-3.3 MIC5317 SOT23-5

U2 DMG6601LVT DMG6601LVT SOT23-6

LCD ეკრანის HD44780 ეკრანის ჩვენება არ არის საჭირო i2c მოდულის ყიდვა.

სენსორები:

2x გამცემი OP140A

2x მიმღები OPL530

კოდირება: PEC11R-4215K-S0024 *არ დაგავიწყდეთ 4x 10k რეზისტორების დამატება და 2x.01uf დამშიფვრის ფილტრის გასაკეთებლად. იხილეთ სურათი ქვემოთ

ნაბიჯი 4: PCB Gerber ფაილი

PCB გერბერის ფაილი
PCB გერბერის ფაილი
PCB გერბერის ფაილი
PCB გერბერის ფაილი
PCB გერბერის ფაილი
PCB გერბერის ფაილი
PCB გერბერის ფაილი
PCB გერბერის ფაილი

აქ არის გერბერის ფაილები

ნაბიჯი 5: შეაერთეთ თქვენი კომპიუტერი

შეაერთეთ თქვენი კომპიუტერი
შეაერთეთ თქვენი კომპიუტერი
შეაერთეთ თქვენი კომპიუტერი
შეაერთეთ თქვენი კომპიუტერი
შეაერთეთ თქვენი კომპიუტერი
შეაერთეთ თქვენი კომპიუტერი

სქემატური დახმარებით, შეაერთეთ ყველა თქვენი კომპონენტი კომპიუტერზე. თითოეული ნაწილი ან დაწერილი pcb, r1, r2… და ასე შემდეგ.

მე არ მაქვს დაინსტალირებული D1. ეს არის LCD უკანა შუქისთვის. ეს ლამაზია, მაგრამ ბატარეის ხანგრძლივობა გავლენას ახდენს. ასე რომ, მე ვირჩევ რომ შევინახო LCD შუქნიშანი გამორთული.

ნაბიჯი 6: პროგრამირება Atmega328p

პროგრამირება Atmega328p
პროგრამირება Atmega328p

შეამოწმეთ აქ მე –12 საფეხურზე atmega328p– ის დასაპროგრამებლად. მე გთავაზობთ. Hex ფაილს ამისათვის.

აქ არის avrdude პროგრამა, რომელიც მზად არის სურათების ფაილის დასაპროგრამებლად. დააწკაპუნეთ მხოლოდ პროგრამაზე usbasp.bat და თქვენი usbasp სწორად არის დაინსტალირებული. ყველაფერი გაკეთდება ავტომატურად, მათ შორის დაუკრავენ ბიტს.

1drv.ms/u/s !AnKLPDy3pII_vXaGPIZKMXxaXDul?e…

ამ პროექტში მე ასევე ვიზიარებ C წყაროს კოდს. იცოდეთ, რომ მასში ზოგიერთი შენიშვნა შეიძლება იყოს ფრანგულ ენაზე. Https://1drv.ms/u/s! AnKLPDy3pII_vXUMXHdxajwGRFJx? E…

ნაბიჯი 7: LCD ეკრანი

LCD ეკრანი
LCD ეკრანი
LCD ეკრანი
LCD ეკრანი

დააინსტალირეთ ფირზე და შეაერთეთ pcb და lcd ერთად

ნაბიჯი 8: STL ფაილი

STL ფაილი
STL ფაილი
STL ფაილი
STL ფაილი
STL ფაილი
STL ფაილი

stl ფაილი

1drv.ms/u/s !AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…

მხარდაჭერა საჭიროა გარსაცმის, სენსორული მილის და თოფის დამჭერისთვის.

მე ყველაფერი დაბეჭდილი მაქვს.2 მმ სიმაღლეზე.

ნაბიჯი 9: ROTARY ENCODER

მბრუნავი კოდირება
მბრუნავი კოდირება
მბრუნავი კოდირება
მბრუნავი კოდირება
მბრუნავი კოდირება
მბრუნავი კოდირება

ეს მბრუნავი კოდირება დაკავშირებულია ისპ კონექტორთან. ის გამოიყენება მარცვლების წონის შესაცვლელად და მოწყობილობის ჩართვისა და გამორთვისთვის.

vcc isp pin 2 (ამოიღეთ რეზისტორი)

ტერმინალი A (ყვითელი) გადადით ISP პინ 1 -ზე

ტერმინალი B (მწვანე) გადადით ISP პინ 3 -ზე

ტერმინალი C (gnd) isp pin 6

მე ვამატებ 2 სურათს, რომ დავინახო განსხვავება ფილტრის ქონას შორის ფილტრის გარეშე. თქვენ ადვილად ხედავთ განსხვავებას ორივეს შორის.

ღილაკზე გადასვლა pcb SW კონექტორზე.

ნაბიჯი 10: სენსორული მილები

სენსორული მილები
სენსორული მილები
სენსორული მილები
სენსორული მილები
სენსორული მილები
სენსორული მილები

ᲛᲜᲘᲨᲕᲜᲔᲚᲝᲕᲐᲜᲘ:

სენსორის მილი უნდა იყოს შავი და სენსორის მიმღები დამალული

ჩემი პირველი მცდელობა იყო მქონოდა ლამაზი წითელი მილი. მაგრამ ეს სახიფათოა! საერთოდ არ მუშაობდა. მივხვდი, რომ გარე შუქი შემოდიოდა პლასტიკური და მიმღების სენსორი ყოველთვის ჩართული იყო.

კარგი შედეგის მისაღწევად მე არ მქონდა არჩევანი შეცვალო ფერი შავი.

დააინსტალირეთ მიმღები თავზე. და დამალეთ გამჭვირვალე პლასტიკური შავი საღებავით, ლენტით ან რეზინით, შავი სილიკონით.

დააინსტალირეთ emitter ბოლოში.. შეამოწმეთ კალმით თუ სენსორები კარგად რეაგირებენ. შესაძლოა გამცემი ხვრელი ცოტათი გაფართოვდეს. ეს დამოკიდებული იქნება თქვენი პრინტერის კალიბრაციაზე.

ასევე უკეთესი შედეგი მაქვს ჩრდილში. მოერიდეთ მზის პირდაპირ სხივებს.

ნაბიჯი 11: სენსორული მილების ალტერნატივა

სენსორული მილების ალტერნატივა
სენსორული მილების ალტერნატივა
სენსორული მილების ალტერნატივა
სენსორული მილების ალტერნატივა

თუ თქვენ არ გაქვთ 3D პრინტერი, იგივე შეგიძლიათ გააკეთოთ სპილენძის მილით. ძალიან კარგად იმუშავებს, რომ. ძნელი გასაკეთებელი არის ხვრელი ზუსტად 3 ინჩზე და მიმღები და გამცემი უნდა იყოს გასწორებული.

ნაბიჯი 12: მარცვალი ოსცილოსკოპზე და კალიბრაციაზე

მარცვალი ოსცილოსკოპზე და კალიბრაციაზე
მარცვალი ოსცილოსკოპზე და კალიბრაციაზე

ეს არის ნამდვილი მარცვალი, რომელიც მილის გადაყრისას. ზონდი 1 ყვითელია სენსორი 1. ზონდი 2 იისფერი არის სენსორი 2.

დრო/div არის 50 us.

ჩვენ შეგვიძლია დავითვალოთ 50 დიაპაზონის 6 დივიზია. 50 us x 6 = 300 us (3 ინჩისთვის). 300 us x 4 = 1.2 ms 1 ფუტისთვის

1/1.2 ms = 833.33 ფუტი/წმ

ჩვენ ასევე შეგვიძლია დავინახოთ, რომ სენსორი ჩვეულებრივ 5 ვ -ზეა. და შეგვიძლია დაბლოკოთ გამცემი შუქი, სენსორი დაეცემა 0 -მდე.

ეს არის გზა, რომ დაიწყოთ და შეაჩეროთ მისი მოწინააღმდეგე (ტაიმერი 1)

მაგრამ ზუსტად რომ ვიცოდე ზუსტი იყო თუ არა სიჩქარე, მე მჭირდებოდა ამის გაზომვის საშუალება.

პროგრამული უზრუნველყოფის დაკალიბრებისა და ამ მოწყობილობის სიზუსტის შესამოწმებლად, მე გამოვიყენე 10 მჰც საცნობარო ოსცილატორი. იხილეთ ჩემი GPSDO სხვა ინსტრუქციებზე.

მე ვკვებავ სხვა atmega328 ამ 10 mhz– ით. და დამიპროგრეს ეს ასამბლერში, რომ გამომიგზავნოს 2 პულსი ყოველ ჯერზე, როდესაც დავაჭერ ღილაკს მარცვლის სიმულაციისთვის. ზუსტად ისე, როგორც სურათზე ვნახეთ, მაგრამ სამაგიეროდ რომ გქონდეს ნამდვილი მარცვალი, ეს იყო მეორე uC, რომელმაც გამომიგზავნა 2 პულსი.

ყოველ ჯერზე ღილაკზე დაჭერისას 1 პულსი გაიგზავნა და ზუსტად 4 ms სხვა პულსის გაგზავნის შემდეგ.

ამ გზით, მე შემიძლია დავაბალანსო პროგრამული უზრუნველყოფის შემდგენელი, რომელსაც ყოველთვის ექნება 1000 ფტ/წმ.

ნაბიჯი 13: მეტი…

მეტი…
მეტი…
მეტი…
მეტი…

ეს არის 2010 წლის ჩემი პირველი პროტოტიპი.

ნებისმიერი კითხვის ან შეცდომის შესახებ შეგიძლიათ მომწეროთ ელ. ინგლისური თუ ფრანგული. ყველაფერს გავაკეთებ დასახმარებლად.

გირჩევთ: