Სარჩევი:

აუდიო ვიზუალიზატორი არა მისამართით RGB LED Strip: 6 ნაბიჯი (სურათებით)
აუდიო ვიზუალიზატორი არა მისამართით RGB LED Strip: 6 ნაბიჯი (სურათებით)

ვიდეო: აუდიო ვიზუალიზატორი არა მისამართით RGB LED Strip: 6 ნაბიჯი (სურათებით)

ვიდეო: აუდიო ვიზუალიზატორი არა მისამართით RGB LED Strip: 6 ნაბიჯი (სურათებით)
ვიდეო: ეკჰარტ ტოლე - "ახალი დედამიწა" - აუდიო წიგნი 2024, ნოემბერი
Anonim
Image
Image

მე მქონდა 12v RGB LED ზოლები ჩემი ტელევიზიის კაბინეტის გარშემო და ის კონტროლდება მოსაწყენი LED დრაივერის საშუალებით, რაც მაძლევს საშუალებას ავირჩიო 16 წინასწარ დაპროგრამებული ფერიდან ერთი!

მე ვუსმენ ბევრ მუსიკას, რაც მაძლევს მოტივაციას, მაგრამ განათება უბრალოდ არ მაყენებს განწყობას. ამის გამოსასწორებლად, გადავწყვიტე აუდიო სიგნალის აღება, რომელიც გადაეცა ჩემს დინამიკს AUX (3.5 მმ ბუდე) საშუალებით, დამუშავება და შესაბამისად RGB ზოლის კონტროლი.

LED- ები რეაგირებენ მუსიკას Bass (დაბალი), Treble (Mid) და მაღალი სიხშირის სიდიდის მიხედვით.

სიხშირის დიაპაზონი - ფერი შემდეგია:

დაბალი - წითელი

შუა - მწვანე

მაღალი - ლურჯი

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

მარაგები

(x1) RGB LED ზოლები

(x1) Arduino Uno/Nano (მეგა რეკომენდირებულია)

(x1) TL072 ან TL082 (TL081/TL071 ასევე კარგია)

(x3) TIP120 NPN ტრანზისტორი (TIP121, TIP122 ან N-Channel MOSFET– ები, როგორიცაა IRF540, IRF 530 ასევე კარგია)

(x1) 10kOhm პოტენომეტრი ხაზოვანი

(x3) 100kOhm 1/4watt რეზისტორები

(x1) 10uF ელექტროლიტური კონდენსატორი

(x1) 47nF კერამიკული კონდენსატორი

(x2) 3.5 მმ აუდიო კონექტორი - ქალი

(x2) 9V ბატარეა

(x2) 9V ბატარეის ვადამდელი კონექტორი

ნაბიჯი 1: RGB LED ზოლების ტიპების გააზრება

RGB LED ზოლების ტიპების გააზრება
RGB LED ზოლების ტიპების გააზრება

არსებობს ორი ძირითადი ტიპის LED ზოლები, "ანალოგური" სახის და "ციფრული".

ანალოგური ტიპის (ფიგურა 1) ზოლს აქვს ყველა LED პარალელურად დაკავშირებული და ასე მოქმედებს როგორც ერთი უზარმაზარი სამი ფერის LED; თქვენ შეგიძლიათ დააყენოთ მთელი ზოლები თქვენთვის სასურველ ფერში, მაგრამ თქვენ არ შეგიძლიათ გააკონტროლოთ ინდივიდუალური LED- ის ფერები. ისინი ძალიან მარტივი და საკმაოდ იაფია.

ციფრული ტიპის (სურათი 2) ზოლები მუშაობს სხვაგვარად. მათ აქვთ ჩიპი თითოეული LED- ისთვის, ზოლის გამოსაყენებლად თქვენ უნდა გააგზავნოთ ციფრული კოდირებული მონაცემები ჩიპებზე. თუმცა, ეს ნიშნავს, რომ თქვენ შეგიძლიათ აკონტროლოთ თითოეული LED ინდივიდუალურად! ჩიპის დამატებითი სირთულის გამო, ისინი უფრო ძვირია.

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

  1. ანალოგიური ტიპის გამოყენება 4 ქინძისთავს, 1 საერთო პოზიტივს და 3 ნეგატივს, ანუ თითო RGB თითოეულ ფერს.
  2. ციფრული ტიპის გამოიყენება 3 ქინძისთავები, დადებითი, მონაცემები და ადგილზე.

მე ვიყენებ ანალოგური ტიპის ზოლებს, რადგან

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

ნაბიჯი 2: აუდიო სიგნალის გაძლიერება

აუდიო სიგნალის გაძლიერება
აუდიო სიგნალის გაძლიერება
აუდიო სიგნალის გაძლიერება
აუდიო სიგნალის გაძლიერება
აუდიო სიგნალის გაძლიერება
აუდიო სიგნალის გაძლიერება

აუდიო სიგნალი, რომელიც იგზავნება აუდიო ბუდის საშუალებით არის

ანალოგური სიგნალი, რომელიც იცვლება +200mV და -200mV ფარგლებში. ახლა ეს არის პრობლემა, რადგან ჩვენ გვინდა გავზომოთ აუდიო სიგნალი Arduino– ს ერთ – ერთი ანალოგური საშუალებით, რადგან Arduino– ს ანალოგურ შეყვანის საშუალებით შესაძლებელია მხოლოდ ძაბვის გაზომვა 0 – დან 5V– მდე. თუ ჩვენ ვცდილობთ გავზომოთ აუდიო სიგნალის უარყოფითი ძაბვები, არდუინო წაიკითხავს მხოლოდ 0 ვ და ჩვენ დავასრულებთ სიგნალის ქვედა ნაწილს.

მისი გადასაჭრელად ჩვენ უნდა გავაძლიეროთ და ჩავრთოთ აუდიო სიგნალები ისე, რომ ისინი მოხვდნენ 0-5 ვ დიაპაზონში. იდეალურ შემთხვევაში, სიგნალს უნდა ჰქონდეს ამპლიტუდა 2.5V, რომელიც იცვლება 2.5V- ის გარშემო ისე, რომ მისი მინიმალური ძაბვა არის 0V და მისი მაქსიმალური ძაბვა არის 5V.

გაძლიერება

გამაძლიერებელი არის პირველი ნაბიჯი წრეში, ის ზრდის სიგნალის ამპლიტუდას დაახლოებით + ან - 200mV– დან + ან - 2.5V (იდეალურად). გამაძლიერებლის სხვა ფუნქციაა დაიცვას აუდიო წყარო (ნივთი, რომელიც წარმოქმნის აუდიო სიგნალს პირველ რიგში) დანარჩენი წრიდან. გამავალი გამაძლიერებელი სიგნალი მთელ დენს მიიღებს გამაძლიერებელიდან, ამიტომ შემდგომში მასზე ჩართული ნებისმიერი დატვირთვა არ იგრძნობა აუდიო წყაროს მიერ (ჩემს შემთხვევაში ტელეფონი/iPod/ლეპტოპი). ამის გაკეთება შექმენით ერთ-ერთი ოპ-გამაძლიერებელი TL072 ან TL082 (სურათი 2) პაკეტში არაინვერტირებული გამაძლიერებლის კონფიგურაციაში.

TL072 ან TL082 მონაცემთა ცხრილში ნათქვამია, რომ ის უნდა იკვებებოდეს +15 და -15V– ით, მაგრამ ვინაიდან სიგნალი არასოდეს გაძლიერდება + ან -2.5V– ზე მაღლა, კარგია op -amp– ის გაშვება რაიმე დაბალით. მე გამოვიყენე ორი ცხრა ვოლტიანი ბატარეა სერიულად, + ან - 9V კვების ბლოკის შესაქმნელად.

შეაერთეთ თქვენი +V (პინი 8) და –V (პინ 4) op-amp– ზე. შეაერთეთ სიგნალი მონო ჯეკიდან არაინვერტირებად შესასვლელთან (პინ 3) და დააკავშირეთ ბუდის დამჭერი მიწოდების ძაბვის წყაროს 0V მითითებასთან (ჩემთვის ეს იყო სერია ორ 9 ვ ბატარეას შორის სერიაში). შეაერთეთ 100kOhm რეზისტორი op-amp- ის გამომავალს (პინი 1) და შემობრუნების შეყვანის (პინ 2) შორის. ამ წრეში მე გამოვიყენე 10kOhm პოტენომეტრი, რომელიც სადენით არის ცვლადი რეზისტორი, რათა შეცვალო ჩემი არაინვერტირებული გამაძლიერებლის მომატება (თანხა, რომელსაც გამაძლიერებელი აძლიერებს). შეაერთეთ ეს 10K წრფივი დახრილი ქვაბი შემობრუნებულ შეყვანისა და 0V კავშირს შორის.

DC ოფსეტური

DC ოფსეტური წრე აქვს ორ ძირითად კომპონენტს: ძაბვის გამყოფი და კონდენსატორი. ძაბვის გამყოფი მზადდება ორი 100k რეზისტორისგან, რომლებიც სერიულად არის დაკავშირებული Arduino– ს 5V მიწოდებიდან მიწამდე. ვინაიდან რეზისტორებს აქვთ იგივე წინააღმდეგობა, მათ შორის შეერთების ძაბვა უდრის 2.5 ვ. ეს 2.5 ვ კავშირი მიბმულია გამაძლიერებლის გამოსვლას 10uF კონდენსატორის საშუალებით. კონდენსატორის გამაძლიერებლის მხარეზე ძაბვა იზრდება და იკლებს, ის იწვევს მუხტის მომენტალურ დაგროვებას და მოგერიებას 2.5V შეერთებაზე მიმაგრებული კონდენსატორის მხრიდან. ეს იწვევს 2.5V კვანძზე ძაბვის რხევას ზევით და ქვევით, რომლის ცენტრიც არის 2.5V.

როგორც სქემატურ რეჟიმშია ნაჩვენები, დაუკავშირეთ 10uF კონდენსატორის უარყოფითი გამტარი გამაძლიერებელიდან გამოსავალს. დააკავშირეთ თავსახურის მეორე მხარე შეერთებასთან ორ 100k რეზისტორებს შორის, რომლებიც სერიულად არის მიერთებული 5V- სა და მიწას შორის. ასევე, დაამატეთ 47nF კონდენსატორი 2.5V– დან მიწაზე.

ნაბიჯი 3: სიგნალის დაშლა სტაციონარული სინუსოიდების ჯამში - თეორია

სიგნალის დაშლა სტაციონარული სინუსოიდების ჯამში - თეორია
სიგნალის დაშლა სტაციონარული სინუსოიდების ჯამში - თეორია

აუდიო სიგნალი გაგზავნილი ნებისმიერი 3.5 მმ ბუდეში არის

დიაპაზონი 20 Hz– დან 20 kHz– მდე. აღებულია 44.1 კჰც სიხშირით და თითოეული ნიმუში დაშიფრულია 16 ბიტზე.

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

ფიგურები აჩვენებენ როგორ გამოიყურება სიგნალი დროის და სიხშირის დომენში.

ეს არის ის ადგილი, სადაც სწრაფი ფურიეს ტრანსფორმაციის (FFT) ალგორითმი საკმაოდ სასარგებლოა!

Განმარტებით, FFT სწრაფად ითვლის ამგვარ გარდაქმნებს DFT მატრიცის ფაქტორირებით იშვიათი (უმეტესად ნულოვანი) ფაქტორების პროდუქტად. შედეგად, ის ახერხებს შეამციროს DFT- ს გამოთვლის სირთულე O (N2) - დან, რომელიც წარმოიქმნება, თუკი უბრალოდ DFT განმარტებას ვიყენებთ O (N log N), სადაც N არის მონაცემთა ზომა. სიჩქარის სხვაობა შეიძლება იყოს უზარმაზარი, განსაკუთრებით მონაცემთა ხანგრძლივი ნაკრებისთვის, სადაც N შეიძლება იყოს ათასობით ან მილიონი. დამრგვალების შეცდომის არსებობისას, ბევრი FFT ალგორითმი ბევრად უფრო ზუსტია, ვიდრე DFT განსაზღვრების შეფასება პირდაპირ თუ არაპირდაპირ.

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

გირჩევთ: