Სარჩევი:
- ნაბიჯი 1: შეიძინეთ ნაწილები
- ნაბიჯი 2: კომპონენტების განლაგების დაგეგმვა
- ნაბიჯი 3: შეკრება
- ნაბიჯი 4: შეადგინეთ და ჩატვირთეთ firmware
- ნაბიჯი 5: გაიგეთ წრე
- ნაბიჯი 6: მოწყობილობის ფუნქციონირება
ვიდეო: MSP430 პურის დაფის აუდიო სპექტრის ანალიზატორი: 6 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ეს პროექტი დაფუძნებულია მიკროფონზე და მოითხოვს მინიმალურ გარე კომპონენტებს. 2 x LR44 მონეტის უჯრედები გამოიყენება ისე, რომ მე შემიძლია მთელი სტრუქტურა იმუშაოს 170 ჰალსტუხიანი მინი პურის დაფაზე. ADC10, TimerA წყვეტს LPM გაღვიძებას, TimerA PWM მოსწონს გამომავალი, ღილაკების გამოყენება, მთელი რიცხვითი არითმეტიკა გამოიყენება და ნაჩვენებია.
მახასიათებლები
- 8 ბიტიანი მთელი FFT 16 ნიმუში 500 ჰც -ის გამოყოფაზე
- გვიჩვენებს 8 ამპლიტუდას 1K, 1.5K, 2K, 3K, 4K, 5K, 6K, 7.5K არაწრფივი
- ნაწილობრივი ლოგარითმის რუქა ამპლიტუდების საჩვენებლად, შეზღუდულია, რადგან რეზოლუცია შემცირდა 8 ბიტიანი FFT- ით
- TLC272 ერთი საფეხურის მიკროფონის გამაძლიერებელი 100x ჯერ 100x მომატებით (შეგიძლიათ განიცადოთ 2 სტადიაზე)
- მენიუს არჩევითი სურვილისამებრ Hamming ფანჯარა
- მენიუ შეცვლის 4 დონის სიკაშკაშეს
- მენიუ დაარეგულირეთ 8 დონის ნიმუშის სიხშირე / რეაგირების დრო
- 2 x LR44 მონეტის უჯრედი იკვებება "ბორტზე"
ნაბიჯი 1: შეიძინეთ ნაწილები
ქვემოთ მოცემულია რა არის საჭირო ამ პროექტისთვის
- MSP430G2452 (დამატებითი ჩიპი TI Launchpad G2– დან, ან ნებისმიერი 4K 20 პინიანი MSP430G სერიის MCU)
- 170 ჰალსტუხიანი მინი პურის დაფა ან პერფის დაფა წინასწარი გამაძლიერებლისთვის
- TLC272 ორმაგი გამაძლიერებელი
- მინი ელექტრო მიკროფონი
- 47k (აწევა), 100k, 2 x 10k, 1k რეზისტორები
- 1 x 0.1uF
- ჯუმბერის მავთულები
- ორმაგი მწკრივი მამრობითი pin სათაური, რომელიც გამოიყენება ბატარეის დამჭერისთვის
- 2 x LR44 მონეტის უჯრედის ბატარეა
ნაბიჯი 2: კომპონენტების განლაგების დაგეგმვა
პროექტი უნდა აშენდეს 170 ჰალსტუხიანი მინი დაფაზე. კომპონენტების განლაგება ქვემოთ მოცემულია. განსაკუთრებით აღსანიშნავია, რომ 8x8 LED მატრიცა უნდა განთავსდეს MSP430 MCU– ს თავზე. კომპონენტების გარდა, არის ასევე დამაკავშირებელი ჯუმბერის მავთულები, რომლებიც გამოსახულია "+------+" სიმბოლოებით.
G V + Gnd (1 ეტაპის განლაგება) ჩვენ ვიყენებთ ამ განლაგებას + =================================== =================+ c0 ………… c7 | MIC რა რა რა რა რა რა + -----++-+. რა რა რა | r0 o o o o o o o | | o || o + ----- [100k] --------------- +. რა რა რა რა | r1 X o o o o o o o | რა +--------------+-+. C7 C6 R1 C0 R3 C5 C3 R0 | რა ო ო ო ო ო ო | რა რა რა რა რა რა | რა რა | b6 a7 | | c0 და r1 იზიარებს ერთსა და იმავე პინს და არ გამოჩნდება | + +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| *შესაძლებელია განაცხადი ჰქონდეს c6 + c0 + r1 | | | V+ | | | G b6 b7 T R a7 a6 b5 b4 b3 | | ეს გაათავისუფლებს b6 32khz xtal საათისათვის | | | TLC272 | | | | | | | გარეთ - + G | | |+ a0 a1 a2 a3 a4 a5 b0 b1 b2 | | | + +-+-+-+| +-+-+-+-+-+-+-+-+-+-+| | ო || ო ო ო. +-+ რა R4 R6 C1 C2 R7 C4 R5 R2 | | რა რა რა რა o- [10k]-o. რა რა რა რა რა რა რა რა | | რა o- [1k] o o o. რა რა რა რა რა რა რა რა._. | | o ---- [10k] ----------- o. რა რა რა რა რა რა ო ო | +================================================== ====+.1uF 100k 10k ADC ღილაკი+ -----------------+
ჩვენ ვიყენებთ მხოლოდ TLC272– ის ერთ საფეხურს
ნაბიჯი 3: შეკრება
თქვენ შეგიძლიათ დაიწყოთ კომპონენტების განთავსება პურის დაფის განლაგების საფუძველზე. როგორც ეს ASCII ხელოვნებაა, შეიძლება არც ისე ნათელი იყოს. თქვენ შეგიძლიათ დააწყვილოთ ფოტოები ამ ნაბიჯში, რათა დაადგინოთ ყველა კავშირი.
ზრუნვა უნდა იქნას მიღებული IC ჩიპების პოზიციონირებაზე. ჩვეულებრივ, ერთ კუთხეში არის წერტილი, რომელიც მიუთითებს მოწყობილობის 1 პინზე.
მე გამოვიყენე CAT5 Ethernet საკაბელო მავთულები და ისინი ძალიან ადვილად მუშაობენ პურის დაფაზე. თუ თქვენ გაქვთ ძველი CAT5 კაბელები, შეგიძლიათ გაჭრათ და ნახავთ, რომ შიგნით არის 6 გრეხილი მავთული. ისინი შესანიშნავია პურის დაფებისთვის.
ნაბიჯი 4: შეადგინეთ და ჩატვირთეთ firmware
წყაროს კოდი ჩვეულებრივ ცხოვრობს ჩემს github საცავებში.
ამ კონკრეტული პროექტისთვის, ერთი C წყაროს ფაილი nfft.c შეფუთულია ჩემს breadboard კოლექციების საცავში. თქვენ უბრალოდ გჭირდებათ nfft.c
მე ვიყენებ mps430-gcc firmware– ის შესადგენად, მაგრამ ის კარგად უნდა შეესაბამებოდეს TI CCS– ს. თქვენ შეგიძლიათ თავიდან აიცილოთ IDE- ების ან შემდგენლების დაყენების ყველა უბედურება TI CCS ღრუბელზე გადასვლით, რომელიც არის ვებ დაფუძნებული IDE. ის კი გადმოწერს firmware თქვენს სამიზნე მოწყობილობას.
ეს არის ბრძანების შედგენის მაგალითი გადამრთველებით
msp430 -gcc -Os -Wall -ფუნქცია -სექციები -fdata -section -fno -inline -small -functions -Wl, -Map = nfft.map, -cref -Wl, --relax -Wl, -gc- სექციები -I/energia -0101E0016/აპარატურა/msp430/ბირთვები/msp430 -mmcu = msp430g2553 -o nfft.elf nfft.c
მე ვიყენებ TI Launchpad G2– ს, როგორც პროგრამისტს MCU– ის დასაპროგრამებლად.
ნაბიჯი 5: გაიგეთ წრე
სქემის სქემა მოცემულია ქვემოთ
MSP430G2452 ან მსგავსი, საჭიროა 4K Flash TLC272 Dual Op-Amp, GBW @1.7Mhz, @x100 მომატება, გამტარობა 17Khz– მდე
* ჩვენ ვიყენებთ მხოლოდ TLC272– ის ერთ საფეხურს
._.
| MSP430G2452 | Vcc | | | + ----------------------- 2 | ADC0 | 1-+ | | | | | Vcc | | | | გადასაწევი (47k) Vcc Vcc | --------------- | | | | _ | | | +-1 | ----. Vcc | 8-+ | | | | | | | ^.--- | 7 | | 16-+ | | 10k | | 10k | | | / / ^ | | | | _ | | _ | 100k | _ | | / _+\ / / | | /| --- (იხ. პურის დაფის განლაგება) |.1u | | | | | /_+\ | | / | ------_+-|| --- |-[1k]-+-2 | ---+| | | | | 15 GPIO | | | | +---------- 3 | ----- + +-|-| 6 | P1.1-P1.7 | | 8x8 | | | +-4 | Gnd +-| 5 | P2.0-P2.7 | | LED | |+ | | --------------- | | | მატრიცა | ((O)) |. | | / | | _ | | MIC | | 10k | +-20 | Gnd / | -------- | | _ | | | | _ | _ | _ _ | _ _ | _ _ _ _ _ /// /// /// ///
LED მართვა
LED მატრიცა არის 8 x 8 ელემენტისგან. მათ ამოძრავებს 15 GPIO ქინძი. ისინი მრავლდება 8 სტრიქონით და 8 სვეტის სქემით. მას შემდეგ, რაც ADC შეყვანისთვის 1 პინის გამოყენების შემდეგ არის მხოლოდ 15 ქინძისთავები, მულტიპლექსს აქვს 1 სტრიქონი და 0 სვეტი ერთ პინზე. ეს ნიშნავს, რომ 1 -ლი და სვეტი 0 -ის კონკრეტული LED არ შეიძლება იყოს განათებული. ეს არის კომპრომისი, რადგან უბრალოდ არ არის საკმარისი GPIO ქინძისთავები ყველა LED ელემენტის მართვისთვის.
ხმის გადაღება
ხმის ჩამორთმევა ხდება კონდენსატორის მიკროფონის საშუალებით საგანმანათლებლო BoosterPack– ზე. რადგან მიკროფონის სიგნალები მცირეა, ჩვენ უნდა გავაძლიეროთ ის იმ დონეზე, რომ msp430 ADC10- ს შეეძლოს გონივრული გარჩევადობის გამოყენება. ამ მიზნით მე გამოვიყენე ორსაფეხურიანი გამაძლიერებელი გამაძლიერებელი.
Op-amp გამაძლიერებელი შედგება ორი ეტაპისგან, თითოეული w/ a დაახლოებით 100x მოგებით. მე მივიღე TLC272, რადგან ის ასევე ძალიან გავრცელებული ნაწილია და მუშაობს 3V/ დვ. მოგების გამტარობა დაახლოებით 1.7 მჰც ნიშნავს იმას, რომ ჩვენი მომატებისთვის 100x, ჩვენ შეგვიძლია მხოლოდ გარანტია, რომ ის მშვენივრად იმუშავებს (ანუ შეინარჩუნებს მოგებას, რაც გვსურს) 17 კჰც -ზე. (1.7 მჰც / 100).
თავდაპირველად ვაპირებდი, რომ ეს სპექტრის ანალიზატორი გამეზარდა 16-20 კჰც-მდე, მაგრამ საბოლოოდ აღმოვაჩინე, რომ დაახლოებით 8 კჰც საკმარისია მუსიკის საჩვენებლად. ეს შეიძლება შეიცვალოს LM358– ით აუდიო რეიტინგის შემცველობით და შერჩევის მაჩვენებლის შეცვლით. უბრალოდ მოძებნეთ თქვენი არჩეული ოპ-ამპერების გამტარუნარიანობა.
შერჩევა და FFT
გამოყენებული FFT ფუნქცია არის "fix_fft.c" კოდი, რომელიც ბევრმა პროექტმა მიიღო, ის უკვე წლებია ტრიალებს ინტერნეტში. მე ვცადე 16 ბიტიანი ვერსია და 8 ბიტიანი ვერსია. საბოლოოდ მე დავთანხმდი 8 ბიტიან ვერსიაზე, როგორც ჩემი მიზნისთვის, მე ვერ ვნახე დიდი წინსვლა 16 ბიტიან ვერსიაზე.
მე არ მაქვს კარგად გააზრებული FFT მექანიზმი, გარდა იმისა, რომ ეს არის დროის დომენი სიხშირის დომენის გარდაქმნისა. ეს ნიშნავს, რომ ხმის ნიმუშების სიჩქარე (დრო), FFT გამოთვლის ფუნქციის კვების შემდეგ, გავლენას მოახდენს ამპლიტუდის სიხშირეზე, რომელსაც მე ვიღებ შედეგად. ასე რომ, სიჩქარის მორგება ხმის ნიმუშზე, შემიძლია განვსაზღვრო სიხშირის დიაპაზონი, როგორც შედეგი.
TimerA 0 CCR0 გამოიყენება შერჩევის დროის შესანარჩუნებლად. ჩვენ პირველ რიგში განვსაზღვრავთ რაოდენობას, რომელიც გვჭირდება დიაპაზონის სიხშირის მისაღწევად (შეესაბამება ჩვენი DCO საათის სიხშირეს 16 MHz). ანუ TA0CCR0 დაყენებულია (8000/((BAND_FREQ_KHZ*2))-1; სადაც BAND_FREQ_KHZ არის 8 ჩემთვის. ის შეიძლება შეიცვალოს, თუ თქვენ გაქვთ უკეთესი ოპ-გამაძლიერებელი და / ან გინდათ რომ ის განსხვავებული იყოს.
სიხშირის ზოლები და ამპლიტუდის სკალირება
Firmware ამუშავებს 16 ზოლს ერთი გადახვევისას და გადაღების დრო ამ ბანკებს შორის 500 ჰც -ის გამიჯვნას წარმოშობს. LED მატრიცა არის 8 სვეტი და აჩვენებს მხოლოდ 8 ზოლს / ამპლიტუდას. ნაცვლად იმისა, რომ აჩვენოთ ყოველ ორ ზოლში, არაწრფივი სიხშირის დიაპაზონის სია გამოიყენება უფრო დინამიური სიხშირის ზოლების საჩვენებლად (მუსიკალური თვალსაზრისით). სიაში არის 500 ჰც -იანი ხარვეზები დაბალ ბოლოში, 1 კჰც ხარვეზი შუა ზოლში და 1.5 კჰც ზოლები მაღალ სიმაღლეებზე.
ინდივიდუალური ზოლების ამპლიტუდა მცირდება 8 დონემდე, რომლებიც წარმოდგენილია LED მატრიცის ეკრანზე ჰორიზონტალური 'წერტილებით'. ამპლიტუდის დონე მცირდება არაწრფივი რუქის საშუალებით, რომელიც FFT შედეგებს თარგმნის ერთ-ერთ 8-ში წერტილები ერთგვარი ლოგარითმული სკალირება გამოიყენება, რადგან ის საუკეთესოდ წარმოადგენს ხმის დონის ჩვენს აღქმას.
არსებობს ჩაშენებული AGC ლოგიკა და სპექტრის ანალიზატორი შეეცდება ამპლიტუდის დონის შემცირებას, როდესაც წინა ციკლებში გამოვლენილია პიკის მრავალი დონე. ეს კეთდება მოცურების მმართველი ცხრილის შესადარებლად.
ნაბიჯი 6: მოწყობილობის ფუნქციონირება
- მოკლე ღილაკის დაჭერა ჩვენების რეჟიმში გადადის წერტილის გარეშე, ერთი წერტილი, 2 წერტილი და 3 წერტილის ჩვენება.
- გრძელი დაჭერა გადადის დაყენების რეჟიმში, შემდგომი გრძელი დაჭერით ბრუნავს მენიუში.
- მენიუს ელემენტები ციკლდება "Hamming Window Option", "Dimmer", "Sampling / Refresh Rate".
- 'Hamming Window' კონფიგურაციის რეჟიმში, მოკლე დაჭერით ციკლდება ჩაქუჩის გარეშე, hamming 1, hamming 2, hamming 3, გრძელი დაჭერით ადასტურებს პარამეტრს.
- "Dimmer" დაყენების რეჟიმში, მოკლე დაჭერით ციკლდება ხელმისაწვდომი სიკაშკაშის დონიდან 0 -დან 3 -მდე, გრძელი დაჭერით ადასტურებს პარამეტრს.
- "შერჩევის / განახლების სიხშირის" დაყენების რეჟიმში, მოკლე დაჭერით ციკლდება არსებული განახლების განაკვეთები 0 -დან 7 -მდე, 0 ნიშნავს შეფერხებას, გრძელი დაჭერა ადასტურებს პარამეტრს.
- Led სეგმენტის მულტიპლექსირება მოიცავს დროის შეფერხებებს ინდივიდუალური რიგების სიკაშკაშის განსხვავებების კომპენსაციისთვის.
გირჩევთ:
როგორ გავაკეთოთ LED აუდიო სპექტრის ანალიზატორი: 7 ნაბიჯი (სურათებით)
როგორ გავაკეთოთ LED აუდიო სპექტრის ანალიზატორი: LED აუდიო სპექტრის ანალიზატორი ქმნის მშვენიერ განათების ნიმუშს მუსიკის ინტენსივობის მიხედვით. ბაზარზე ბევრი DIY LED Music Spectrum კომპლექტია, მაგრამ აქ ჩვენ ვაპირებთ LED აუდიო სპექტრის დამზადებას ანალიზატორი NeoPixe– ის გამოყენებით
როგორ DIY 32 Band LED აუდიო მუსიკის სპექტრის ანალიზატორი Arduino Nano- ს გამოყენებით სახლში #arduinoproject: 8 Steps
როგორ DIY 32 Band LED აუდიო მუსიკის სპექტრის ანალიზატორი სახლში Arduino Nano გამოყენებით #arduinoproject: დღეს ჩვენ გავაკეთებთ 32 ბენდიანი LED აუდიო მუსიკის სპექტრის ანალიზატორს სახლში Arduino– ს გამოყენებით, მას შეუძლია აჩვენოს სიხშირის სპექტრი და ერთდროულად დაუკრა მუსიკი. შენიშვნა max7219LED უნდა იყოს დაკავშირებული 100k რეზისტორის წინ, წინააღმდეგ შემთხვევაში სპას ხმაური
DIY FFT აუდიო სპექტრის ანალიზატორი: 3 ნაბიჯი
DIY FFT აუდიო სპექტრის ანალიზატორი: FFT სპექტრის ანალიზატორი არის ტესტირების მოწყობილობა, რომელიც იყენებს ფურიეს ანალიზს და ციფრული სიგნალის დამუშავების ტექნიკას სპექტრის ანალიზის უზრუნველსაყოფად. ფურიეს ანალიზის გამოყენებით შესაძლებელია ერთი მნიშვნელობის, მაგალითად, უწყვეტი დროის დომენის კონვერტაცია
წვრილმანი Arduino აუდიო სიგნალის სპექტრის ანალიზატორი: 3 ნაბიჯი
წვრილმანი Arduino აუდიო სიგნალის სპექტრის ანალიზატორი: ეს არის ძალიან მარტივი აუდიო ანალიზატორი ცვალებადი ვიზუალური რეჟიმებით
აუდიო სპექტრის ანალიზატორი (VU მეტრი): 6 ნაბიჯი
აუდიო სპექტრის ანალიზატორი (VU მეტრი): რა არის მუსიკა? ტექნიკური თვალსაზრისით, მუსიკა ძირითადად არის სიგნალი განსხვავებული ძაბვისა და სიხშირის. აუდიო სპექტრის ანალიზატორი არის მოწყობილობა, რომელიც აჩვენებს კონკრეტული სიხშირის ძაბვის დონეს. ეს არის ინსტრუმენტი, რომელიც ძირითადად გამოიყენება ადგილებში