Мазмұны:

Музыкаға жауап беретін жарық шоғы: 7 қадам (суреттермен)
Музыкаға жауап беретін жарық шоғы: 7 қадам (суреттермен)

Бейне: Музыкаға жауап беретін жарық шоғы: 7 қадам (суреттермен)

Бейне: Музыкаға жауап беретін жарық шоғы: 7 қадам (суреттермен)
Бейне: 😔ОСЫ 7 ҚАТЕ ҮШІН АДАМДАР СІЗДІ БАҒАЛАМАЙДЫ! 2024, Шілде
Anonim
Музыкаға жауап беретін жарық шоғы
Музыкаға жауап беретін жарық шоғы

Бұл оқулық Йорк университетінде музыкалық технологиялар мен қолданбалы электроника мамандығы бойынша дипломдық курстың соңғы курсының жобасы аясында шығарылды. Ол электроникаға қызығушылығы бар музыканттарға арналған. Дайын өнім пиджактың артқы жағындағы жарық диодты матрица болады, ол музыкаға сәйкес жарық шоуын жасай алады. Бұл Pure Data және Arduino көмегімен аудио кірістерді талдау арқылы жасалады. Пиджак коммутатормен басқарылатын екі параметрге ие болады. Бір параметр светодиоды музыканың амплитудасына сәйкес басқарады, ал екіншісінде жарық диодтары бір мезетте жыпылықтап, түсіне қарай өзгереді.

Бұл қалай жұмыс істейді

Бұл құрылғы екі бөлек тізбектен тұрады. Олардың бірі компьютерге тікелей қосылған Arduino Mega -ге негізделген. Басқа схема LilyPad Arduino айналасында болады және курткада толығымен болады және 9В батареямен жұмыс істейді. Бұл тізбектердің екеуі де XBee модульдерінің көмегімен бір -бірімен сымсыз байланысады. Дыбыстық сигналдарды амплитудасы мен жиілігі туралы мәліметтерді алу үшін компьютерлерге кіріктірілген микрофон қабылдайды және таза деректерде талдайды. Бұл ақпарат MIDI кіріс схемасы арқылы Arduino Mega -ге беріледі, содан кейін XBees көмегімен LilyPad -ке жіберіледі. Содан кейін LilyPad курткадағы светодиодтардың қалай әрекет ететінін анықтайды.

Сізге не қажет болады

Мега схемасы үшін

  • 2560
  • XBee Explorer реттеледі
  • XBee 1mW ізді антеннасы - 1 серия
  • Мега үшін прототиптік қалқан
  • USB түрі A - B
  • USB - MIDI кабелі
  • MIDI розеткасы
  • 1 x 220Ω резистор
  • 1 x 270Ω резистор
  • 1 x 1N4148 диод
  • 1 x 6N138 оптикалық қосқыш

LilyPad схемасы үшін

  • LilyPad Arduino 328 негізгі тақтасы
  • LilyPad XBee үзіліс тақтасы
  • XBee 1mW ізді антеннасы - 1 серия
  • LilyPad FTDI негізгі үзіліс тақтасы
  • 72 x LilyPad светодиодтары (ақ, көк, қызыл, сары, жасыл, қызғылт және күлгін түстерді қоса алғанда)
  • LilyPad сырғытпасы
  • USB 2.0 A-Male-Mini кабелі
  • 9В батарея
  • 9В аккумуляторлық қысқыш

Басқа

  • Пиджак
  • Таза деректер мен Arduino IDE орнатылған компьютер
  • Жабдық сымы
  • Дәнекерлеу жабдықтары
  • Сым кескіштер
  • Сым тартқыштар
  • Үлкен көзді ине
  • Жіп
  • Өткізгіш жіп
  • Қайшы
  • Таспа өлшемі
  • Матаның желімі немесе мөлдір тырнақ лак
  • Бор немесе ақ көз қарындашы
  • Еденге немесе ескі футболкаға арналған мата
  • Velcro
  • Бұрғылау (мүмкін)
  • Стандартты жарық диоды (тестілеу үшін)
  • Нан тақтасы (тестілеуге арналған)
  • Басқа 220Ω резистор (сынау үшін)
  • Мультиметр (тестілеу үшін)

Бұл жобаның бағасы жоғарыда көрсетілген жабдықтың қаншалықты сізге тиесілі болуына байланысты болады. Алайда, бұл шамамен 150 - 200 фунт стерлинг болуы мүмкін.

Жылдам ескерту - LilyPad тақталары тікелей тоқыма бұйымдарына тігуге арналған, сондықтан 9В батареялық қысқышқа дәнекерлеу қиындық тудыруы мүмкін. Байланыс нәзік және оңай үзілуі мүмкін. Сіз AAA немесе LiPo аккумуляторлары үшін арнайы жасалған LilyPad тақталарын ала аласыз. Дегенмен, мен әлі де 9В жолмен жүруді таңдадым, себебі олардың батареяның қызмет ету мерзімі AAA -ға қарағанда үлкен, ал менің университетімде LiPo батареяларын пайдалануға шектеулер бар.

1 -қадам: MIDI кіріс схемасын құру

MIDI кіріс схемасын құру
MIDI кіріс схемасын құру
MIDI кіріс схемасын құру
MIDI кіріс схемасын құру
MIDI кіріс схемасын құру
MIDI кіріс схемасын құру

Алдымен MIDI кіріс схемасын қарастырайық. Бұл Arduino Mega ұясына қосылатын прототиптеу тақтасында жасалуы керек. Бұл MIDI хабарламаларын Pure Data патчынан Mega -ге 'COMMUNICATION RX0' түйреуіші арқылы жіберу үшін қолданылады. Жоғарыдағы схеманы және фотосуретті қараңыз. Прототиптік тақтаға байланысты сіздің орналасуыңыз сәл өзгеше болуы мүмкін, бірақ мен MIDI ұяшығын төменгі сол жақ бұрышқа орналастыруды таңдадым. Розеткаға сәйкес қалқандағы тесіктерді үлкенірек ету үшін мұнда бұрғылауды қолдану қажет болуы мүмкін. Фотосуреттегі қызыл сымдар 5В -қа, қоңыр жерге қосылған, қара сым 6N138 -дегі 3 -ші, көк сым 6N138 -дегі 2 -ші, сары сымдар RX0 -ге қосылған. түйреу. XBee-ге кейінірек орын беру үшін прототиптеу тақтасының оң жағында бос орын қалады. Тақтадағы жолдарда үзіліс жасау керек шығар. Бұл мысал үшін олар 6N138 -дегі түйреуіштер арасында жасалуы керек еді.

MIDI кіріс схемасын тексеру

Схеманы тексеру үшін төмендегі кодты Arduino Mega -ге USB Type A -ден B кабелі арқылы жүктеңіз. Мұны жасаған кезде қалқанның салынбағанына көз жеткізіңіз, себебі RX немесе TX түйреуіштеріне бірдеңе қосылған болса, кодты жүктеу мүмкін емес. Сондай -ақ, код төмендегі сілтеме бойынша қол жетімді MIDI.h кітапханасын қамтиды.

MIDI.h

Содан кейін қалқаны мегаға салыңыз және оны MIDI -USB кабелі арқылы компьютердің басқа USB портына қосыңыз. Сізге қажет MIDI соңы «сыртқа» деп белгіленеді. Нан тақтасында 2 тізбекті 220 Ом резисторға қосатын қарапайым схеманы жасаңыз, содан кейін оны стандартты жарықдиодты анодқа қосыңыз. Жарықдиодты катодты жерге қосыңыз.

Содан кейін, [60 100] хабарламасы мен [0 0] хабарламасы бар, таза деректерді түзетуді жасаңыз, екеуі де сол жақ кіріс арқылы ескерту объектісіне қосылған. MIDI параметрлерін ашу және шығару құрылғысын өзгерту арқылы бұл патчтың MIDI кіріс схемасына қосылғанына көз жеткізіңіз. Егер бұл қол жетімді болмаса, таза деректерді ашпас бұрын MIDI схемасын компьютерге қосқаныңызға көз жеткізіңіз. Енді, егер сіздің схемаңыз дұрыс болса, [60 100] хабары басылғанда жарық диоды жанады, ал [0 0] хабарламасы басылғанда сөнуі керек.

2 -қадам: жарықдиодты матрицаны жобалау

Жарықдиодты матрицаны жобалау
Жарықдиодты матрицаны жобалау
Жарықдиодты матрицаны жобалау
Жарықдиодты матрицаны жобалау
Жарықдиодты матрицаны жобалау
Жарықдиодты матрицаны жобалау

Әрі қарай, куртканың артқы жағындағы жарықдиодты матрицаны қарастыру қажет. Бұл LilyPad негізгі тақтасына тікелей қосылады. Әдетте, светодиодты микроконтроллер көмегімен басқару үшін олардың әрқайсысы өздерінің жеке түйреуіштеріне тағайындалады. Алайда, бір ғана Arduino LilyPad -пен бұл өте шектеулі болар еді. Жалпы алғанда, LilyPad -те 12 сандық түйреуіш пен 6 аналогы бар, сондықтан ықтимал 18 шығыс түйреуіші бар. Алайда, бұл түйреуіштердің біреуі кейінірек слайдты ауыстыру үшін қолданылатындықтан, бұл тек 17 қалады.

Бұл жағдайда LilyPad басқару түйреуіштерінің потенциалын жоғарылату үшін мультиплексинг деп аталатын техниканы қолдануға болады. Бұл екі фактіні пайдаланады:

  • Жарық диодтары диод болып табылады және тек бір бағытта ток ағуына мүмкіндік береді.
  • Адамның көзі мен миы суреттерді жарыққа қарағанда баяу өңдейді, сондықтан егер жарық диодтары жеткілікті жылдам жыпылықтаса, біз байқамаймыз. Бұл «Көрудің тұрақтылығы» деп аталатын ұғым.

Бұл техниканы қолдана отырып, басқаруға болатын жарықдиодты шамалар саны (n/2) x (n- (n/2)), n-қол жетімді басқару штырларының саны. Сондықтан, 17 түйреуіш бар болса, 9х8 матрицада 72 жарықдиодты басқаруға болады.

Жоғарыда 9х8 матрицадағы жарық диодты орналастыру схемасын көруге болады, оның ішінде әр жол мен баған қосылуы керек түйреуіштер бойынша ұсыныстар бар. Жолдар мен бағандар жанаспауы керек екенін ескерген жөн. Сондай -ақ, резисторлар қажет емес, себебі әр жарықдиодты 100Ω кедергісі бар.

Сіз тігуді бастамас бұрын күртедегі схеманың орналасуын жоспарлауыңыз керек. Бұл жерден бастаудың жақсы жері - біркелкі орналасуын қамтамасыз ету үшін таспа шарасын қолдана отырып, светодиодтар кішкене нүктелермен өтетін курткаға белгі қою. Қара былғары куртка үшін ақ қарындаш өте жақсы жұмыс істейді және қате кетсе, оны оңай өшіруге болады. Дегенмен, бор сияқты басқа да құралдар пиджактың материалы мен түсіне байланысты жұмыс істей алады. Мен қолданған жарықдиодты түстердің орналасуын жоғарыда көруге болады, ол кейінірек берілген кодпен жұмыс істейді. Сіз басқа орналасуды қолдана аласыз, бірақ оны кодта өзгерту қажет.

Ойланатын келесі нәрсе - LilyPad, LilyPad XBee және қуат көзі қайда барады. Мен қолданған куртка үшін ең ақылға қонымды және ақылды жер куртканың артқы жағында, астыңғы және ішкі астарында болып көрінді. Себебі, мұнда қолданушылардың қолынан соғу екіталай және ол LED матрицасына оңай қол жеткізе алады. Сонымен қатар, мен қолданған күрте төменгі жағында бос болғандықтан, ол әлі де ыңғайлы болды.

3 -қадам: жарықдиодты матрицаны тігу

Жарықдиодты матрицаны тігу
Жарықдиодты матрицаны тігу
Жарықдиодты матрицаны тігу
Жарықдиодты матрицаны тігу
Жарықдиодты матрицаны тігу
Жарықдиодты матрицаны тігу

Осы кезде сіз тігуді бастауға болады. Өткізгіш жіппен жұмыс істеу қиын болуы мүмкін, сондықтан бірнеше пайдалы кеңестер:

  • Матаны желім көмегімен компонентті желімдеу тігуді едәуір жеңілдетеді.
  • Әр түрлі тігістер әр түрлі эстетикалық және функционалды қасиеттерге ие болады, сондықтан оларды бастамас бұрын қарастырған жөн. Негізгі жұмыс тігісі бұл жоба үшін жақсы болуы керек.
  • Түйіндер өткізгіш жіппен оңай босатылады, себебі ол әдеттегіден «серіппелі». Бұл мәселені шешуге тырнаққа аздаған мөлдір лак немесе мата желімін қолдану қажет. Құйрығын кеспес бұрын кептіруге уақыт беріңіз.
  • Электр тізбегінің компоненттеріне қосылу кезінде немесе екі өткізгіш жіпті қосқанда, жақсы механикалық және электрлік қосылыстың болуын қамтамасыз ету үшін бірнеше рет тігу керек.
  • Иненің өткір және үлкен көз екеніне көз жеткізіңіз. Пиджактан өту қиын болуы мүмкін және өткізгіш жіп қалыптыдан қалың.
  • Жіптің бос шашынан сақ болыңыз. Егер олар тігудің басқа жолдарына тиіп кетсе, олар тізбекте шорт жасай алады. Егер бұл маңызды мәселеге айналса, тестілеуден өткеннен кейін және бәрі дұрыс жұмыс істеп тұрғаннан кейін барлық сызықтарды мөлдір лакпен немесе мата желімімен тығыздауға болады.

Тігуді бастау үшін жақсы орын - бұл жолдар. Оларды мүмкіндігінше түзу ету үшін сызғышты қолдана отырып тігу үшін әлсіз сызықтар сызуға болады. Оларды тігіп болғаннан кейін бағандарға өтіңіз. Әр қатарға жеткенде мұқият болу керек, себебі екеуінің қиылыспауы өте маңызды. Бұған жоғарыдағы суретте көрсетілгендей күртешенің ішкі жағындағы бағананың тігісін жасау арқылы қол жеткізуге болады. Барлық жолдар мен бағандарды аяқтағаннан кейін шорттың жоқтығын тексеру үшін мультиметрді қолдануға болады.

Қанағаттанғаннан кейін куртканың оң жақ шетіндегі бағанаға арналған жарықдиодты тігуді бастаңыз. Әр анодтың өз қатарына, катодтың сол жақтағы бағанға бекітілгеніне көз жеткізіңіз. Содан кейін, LilyPad Arduino -ны матаның желімін қолданып, осы бағаннан төмен орналасқан жерге қойыңыз, бұл FTDI сынғыш тақтасының түйреуіштері төмен қарағанына көз жеткізіңіз. LilyPad 11 түйрегішін 1 қатарға, 12 түйреуішті 2 қатарға тігіңіз, осылайша A5 түйреуіші 9 қатарға тігілгенше 10 тігіңіз. Содан кейін оң жақ шеткі бағанға 10 түйреуішті тігіңіз. Бұл бірінші бағанды тексеру үшін төмендегі кодты қолдануға болады. Кодты жүктеңіз және LilyPad-ті компьютерге FTDI ажырату тақтасы мен USB 2.0 A-Male to Mini-B кабелі арқылы қосу арқылы қосыңыз.

Егер LilyPad қосқан кезде дұрыс порт болмаса, төмендегі сілтемеден FTDI драйверін орнату қажет болуы мүмкін.

FTDI драйверін орнату

Светодиодтардың бірінші бағанасы жарықтандырылғаннан кейін, қалғандарын пиджакқа тігу уақыты келді. Бұл көп уақытты қажет ететін процесс, сондықтан оны бірнеше күн ішінде бөліп алған дұрыс. Әр бағанды тексеру кезінде тексеруді ұмытпаңыз. Сіз мұны жоғарыдағы кодты бейімдеу арқылы жасай аласыз, осылайша сіз тексергіңіз келетін бағананың түйреуі қондырғыда шығыс ретінде жарияланады, содан кейін ол Циклде LOW орнатылады. Басқа бағаналы түйреуіштердің ЖОҒАРЫ орнатылғанына көз жеткізіңіз, себебі бұл олардың өшірілуін қамтамасыз етеді.

4 -қадам: қосқышты қосу

Коммутаторды қосу
Коммутаторды қосу

Содан кейін сіз курткадағы параметрлерді өзгерту үшін қолданылатын қосқышты қосуға болады. Оны куртканың ішкі жағына LilyPad Arduino тақтасының астына тігу керек. Өткізгіштік жіпті қолдана отырып, «өшірулі» деп белгіленген ұшты жерге қосу керек, ал «қосулы» деп белгіленген ұшты 2 түйреуішке жалғау керек.

Төмендегі кодты пайдаланып қосқышты тексеруге болады. Бұл өте қарапайым және егер қосқыш ашық болса, төменгі оң жақ жарық диодты қосады және егер қосқыш жабық болса, оны өшіреді.

5 -қадам: құрылғыны сымсыз қосу

Құрылғыны сымсыз қосу
Құрылғыны сымсыз қосу
Құрылғыны сымсыз қосу
Құрылғыны сымсыз қосу
Құрылғыны сымсыз қосу
Құрылғыны сымсыз қосу

LilyPad XBee мен XBee Explorer бағдарламасын дайындау

LilyPad XBee-ді 6 істікшелі тік бұрышты ерлер үстіңгі жағына дәнекерлеу арқылы конфигурацияға дайындаңыз. Бұл кейінірек компьютерге LilyPad FTDI Basic Breakout тақтасы мен USB Mini кабелі арқылы қосылуға мүмкіндік береді. Сондай-ақ, 9В аккумуляторлық қысқышын LilyPad XBee-ге қызыл сым «+» түйреуішіне, ал қара сым «-» түйреуішіне жалғаңыз.

Explorer тақтасын Arduino Mega прототиптік қалқанға қосыңыз. Explorer тақтасындағы 5V және Ground үшін Mega 5V мен Ground -ға қосылу қажет, Explorer -дегі шығыс штыры Mega -да RX1 -ге қосылуы керек, ал Explorer -дегі кірісте Mega -де TX1 -ге қосылу қажет болады.

XBees конфигурациясы

Содан кейін XBees конфигурациялануы керек. Ең алдымен, төмендегі сілтеме бойынша қол жетімді CoolTerm бағдарламалық жасақтамасын ақысыз орнату қажет болады.

CoolTerm бағдарламасы

Екі XBee -ді бір -бірінен ажыратқаныңызға көз жеткізіңіз, өйткені оларды араластырмаңыз.

Алдымен компьютерге XBee конфигурациялаңыз. Оны LilyPad XBee Breakout тақтасына салыңыз және оны FTDI негізгі ажырату тақтасы мен USB Mini кабелі арқылы компьютерге қосыңыз. CoolTerm ашыңыз және Параметрлерде дұрыс сериялық портты таңдаңыз. Егер сіз оны көре алмасаңыз, «Сериялық порттарды қайта сканерлеу» түймесін басып көріңіз. Содан кейін, өткізу жылдамдығының 9600 -ге орнатылғанына көз жеткізіңіз, Local Echo -ды қосыңыз және Key Emulation -ды CR -ге орнатыңыз. CoolTerm енді XBee -ге қосыла алады.

XBee -ді командалық режимге көшіру үшін негізгі терезеге «+++» теріңіз. Қайтару түймесін баспаңыз. Бұл оны AT командалары арқылы конфигурациялауға мүмкіндік береді. Егер бұл сәтті болса, қысқа үзілістен кейін «OK» хабарламасына жауап беру керек. Егер келесі жолға дейін 30 секундтан артық кідіріс болса, командалық режим шығады және оны қайталау қажет болады. PAN ID, MY ID, Destination ID орнату және өзгерістерді сақтау үшін көптеген AT командаларын енгізу қажет. Қайтару осы командалардың әрқайсысынан кейін орындалуы керек және оларды жоғарыдағы кестеден көруге болады. Бұл XBee компьютері үшін аяқталғаннан кейін оны ажырату керек және XBee курткасы үшін дәл осындай процесті жүргізу қажет.

Сіз жаңа XBee параметрлерін әр AT командасын соңындағы мәнсіз енгізу арқылы тексере аласыз. Мысалы, егер сіз «ATID» деп теріп, қайтаруды бассаңыз, «1234» кері қайтарылуы керек.

XBees тестілеу

Осы кезде LilyPad XBee -ді LilyPad Arduino жанындағы курткаға тігіңіз. Өткізгіш жіппен келесі байланыстарды орнату қажет:

  • LilyPad XBee -де 3.3V, LilyPad -те '+'
  • LilyPad XBee -дің негізі LilyPad -те
  • LilyPad XBee -дегі RX -тен LilyPad -тен TX -ке дейін
  • LilyPad XBee -дегі TX және LilyPad -тегі RX

Енді құрылғыны XBees дұрыс жұмыс істейтініне көз жеткізу үшін тексеруге болады. Төмендегі 'Wireless_Test_Mega' деп аталатын кодты Arduino Mega -ге жүктеу керек, оның негізгі мақсаты - бұрын жасалған қарапайым Pure Data патчынан MIDI хабарларын алу және XBee арқылы әр түрлі мәндерді беру. Егер 60 қадамы бар MIDI нотасы қабылданса, «а» хабары жіберіледі. Немесе, егер ескерту хабарламасы қабылданса, «b» жіберіледі.

Бұған қоса, төмендегі 'Wireless_Test_LilyPad' деп аталатын кодты LilyPad -ке жүктеу қажет. Бұл Mega-дан XBees арқылы хабарламаларды қабылдайды және сәйкесінше төменгі оң жақ жарық диодты басқарады. Егер «а» хабарламасы қабылданса, бұл Mega 60 қадамы бар MIDI жазбасын алғанын білдіреді, жарық диоды қосылады. Екінші жағынан, егер «а» болмаса, жарық диоды өшеді.

Код екі тақтаға да жүктелгеннен кейін, қалқанның Mega -ге қайта салынғанын және компьютерге екі кабель арқылы қосылғанын тексеріңіз. Explorer тақтасына XBee компьютерін салыңыз. Содан кейін, FTDI Breakout тақтасының курткадан ажыратылғанына көз жеткізіңіз және XBee курткасын LilyPad XBee -ге салыңыз. 9В батареяны қосыңыз және Pure Data ішіндегі әр түрлі хабарларды басып көріңіз. Пиджактағы төменгі оң жақ жарық диоды қосылып, сөнуі керек.

6 -қадам: Соңғы әсерлер

Соңғы жанасулар
Соңғы жанасулар
Соңғы жанасулар
Соңғы жанасулар
Соңғы жанасулар
Соңғы жанасулар

Код және таза деректер патч

Пиджак сымсыз жұмыс істейтініне қуанышты болсаңыз, төмендегі 'MegaCode' эскизін Arduino Mega -ге және 'LilyPadCode' эскизін LilyPad -ке жүктеңіз. DSP қосулы екеніне және компьютерге кіріктірілген микрофонға дыбыс кірісінің орнатылғанына көз жеткізе отырып, таза деректер патчін ашыңыз. Музыканы ойнап, қосқышты жылжытуға тырысыңыз. Светодиодтар дыбысқа қаншалықты немесе аз әсер ететініне байланысты Таза деректердегі шектерді сәл реттеу қажет болуы мүмкін.

Жаңа төсем қосу

Соңында, пиджак эстетикалық жағымды және киюге ыңғайлы болу үшін, күртешенің ішкі жағына тігіс пен компоненттерді жабу үшін басқа астар қосуға болады. Бұл кез келген өзгерістерді енгізу қажет болған жағдайда тізбекке оңай қол жеткізу үшін velcro көмегімен жасалуы керек.

Ең алдымен, пиджактың ішкі жағына, жоғарыдан және екі жағынан «ілмек» жолақтарын (жұмсақ бөлігін) тігіңіз. Түбін бос қалдырған дұрыс, себебі бұл ауаның компоненттерге өтуіне мүмкіндік береді. Содан кейін бірдей мөлшердегі матаны кесіңіз де, оған жоғарыдан және екі жағынан велкроның «ілмек» жолақтарын тігіңіз. Сондай -ақ, велкроның бір жағында және ыңғайлы жерде қалтаға тігіңіз, сонда батарея отыра алады. Мысалдар үшін жоғарыдағы суреттерді қараңыз.

7 -қадам: Сіз дайынсыз

Сіздің сымсыз Light Show курткаңыз енді толық болуы керек және аудиоға сәтті жауап беруі керек! Бір параметр амплитудалық жолақ тәрізді әсер тудыруы керек, ал екіншісінде дыбысқа қарай түстері бар музыкаға жеке светодиодтар жыпылықтауы керек. Бейне мысалдарын жоғарыдан қараңыз. Сіз таңқаларлық емес едіңіз, түсі мен қаттылығы интонацияға негізделген Rosicrucian ордені арқылы байланысты. Сізге бұл жоба ұнады деп сенемін!

Ұсынылған: