Სარჩევი:

Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით: 5 ნაბიჯი
Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით: 5 ნაბიჯი

ვიდეო: Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით: 5 ნაბიჯი

ვიდეო: Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით: 5 ნაბიჯი
ვიდეო: I'M YOURS - Jason Mraz - Ukulele Tutorial | Chords | Lyrics @TeacherBob 2024, ნოემბერი
Anonim
Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით
Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით
Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით
Ukelele ტიუნერი LabView და NI USB-6008 გამოყენებით

როგორც პრობლემებზე დაფუძნებული სწავლის პროექტი ჩემი LabVIEW & Instrumentation კურსისათვის Humber College- ში (ელექტრონიკის საინჟინრო ტექნოლოგია), მე შევქმენი ukulele ტიუნერი, რომელიც მიიღებს ანალოგიურ შეყვანას (უკულელის სიმებიანი ტონი), ვიპოვი ფუნდამენტურ სიხშირეს, გადაწყვეტს რა ნოტა ცდილობს უნდა იყოს მორგებული და უთხარით მომხმარებელს, საჭიროა თუ არა სტრიქონის მორგება ზემოთ ან ქვემოთ. მოწყობილობა, რომელსაც მე ვიყენებდი ანალოგური შეყვანის ციფრულ შეყვანაში, იყო National Instruments USB-6008 DAQ (მონაცემთა მოპოვების მოწყობილობა) და მომხმარებლის ინტერფეისი განხორციელდა LabVIEW– ით.

ნაბიჯი 1: Ukelele– ის სტანდარტული რეგულირება

სტანდარტული უკელელეს რეგულირება
სტანდარტული უკელელეს რეგულირება
სტანდარტული უკელელეს რეგულირება
სტანდარტული უკელელეს რეგულირება

პირველი ნაბიჯი იყო მუსიკალური ნოტების ფუნდამენტური სიხშირის დადგენა და რა დიაპაზონშია აკუმულირებული სიმები, როგორც წესი, მორგებული. მე გამოვიყენე ეს ორი სქემა და გადავწყვიტე, რომ ჩემი ტონალობის დიაპაზონი 262 Hz (C) და 494Hz (High B) შორის იყოს. 252 ჰერცზე ნაკლები რაიმე ძალიან დაბალი იქნება ჩაწერილი პროგრამისთვის იმის დასაშიფრებლად, თუ რა ნოტის დაკვრას ცდილობდა, და 500 ჰც -ზე მეტი რაიმე ძალიან მაღალი იქნებოდა. პროგრამა, თუმცა, მაინც ეუბნება მომხმარებელს რამდენი ჰერცია დაშორებული უახლოესი გაშიფრული ნოტიდან და თუ სტრიქონი უნდა იყოს მორგებული ზემოთ (შენიშვნა ძალიან დაბალია) ან ქვემოთ (შენიშვნა ძალიან მაღალია), რათა მიაღწიოს ხელმისაწვდომ ნოტს.

გარდა ამისა, მე შევქმენი დიაპაზონი თითოეული ნოტისთვის და არა მხოლოდ ერთი სიხშირისთვის, ასე რომ პროგრამისთვის უფრო ადვილი იქნებოდა იმის პოვნა, თუ რომელი ნოტი იყო დაკრული. მაგალითად, პროგრამა ეუბნება მომხმარებელს, რომ C უკრავს, თუ ნოტს აქვს ფუნდამენტური სიხშირე 252 Hz (შუა გზაზე B) და 269Hz (C# - მდე), მაგრამ იმისათვის, რომ გადაწყვიტოს საჭიროა თუ არა მისი დარეგულირება ან ქვემოთ, ის მაინც შეადარებს დაკვრის ნოტს C ფუნდამენტურ სიხშირესთან, რომელიც არის 262 ჰც.

ნაბიჯი 2: წმინდა ციფრული თეორიული მოდელის შექმნა

წმინდა ციფრული თეორიული მოდელის შექმნა
წმინდა ციფრული თეორიული მოდელის შექმნა
წმინდა ციფრული თეორიული მოდელის შექმნა
წმინდა ციფრული თეორიული მოდელის შექმნა

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

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

მე შევქმენი 2 საქმის სტრუქტურა: ერთი იმის გასაანალიზებლად, თუ რა ნოტი იყო დაკრული, ხოლო მეორე იმის დასადგენად, სტრიქონი საჭიროებდა ზემოთ ან ქვემოთ. პირველი შემთხვევისთვის, მე შევქმენი დიაპაზონი თითოეული ნოტისთვის და თუ ფუნდამენტური სიხშირის სიგნალი HarmonicDistortionAnalyzer. VI- დან იყო ამ დიაპაზონში, ის ეუბნებოდა მომხმარებელს რა ნოტის დაკვრა იყო. მას შემდეგ, რაც ნოტი განისაზღვრა, დაკრული ნოტის მნიშვნელობა გამოაკლდა ნოტის ფაქტობრივი ფუნდამენტური სიხშირით, შემდეგ კი შედეგი გადავიდა მეორე შემთხვევაში, რომელმაც განსაზღვრა შემდეგი: თუ შედეგი ნულის ზემოთ არის, მაშინ სტრიქონი უნდა იყოს მორგებული ქვემოთ; თუ შედეგი არის ყალბი (არა ნულის ზემოთ), მაშინ საქმე ამოწმებს, არის თუ არა მნიშვნელობა ნულის ტოლი და თუ მართალია, მაშინ პროგრამა აცნობებს მომხმარებელს, რომ შენიშვნა არის სრულყოფილი; თუ მნიშვნელობა არ არის ნულის ტოლი, მაშინ ეს ნიშნავს რომ ის უნდა იყოს ნულზე ნაკლები და რომ სტრიქონი უნდა იყოს მორგებული. მე ავიღე შედეგის აბსოლუტური მნიშვნელობა, რათა მეჩვენებინა მომხმარებელი რამდენი ჰერცი მანძილია მათ ჭეშმარიტი შენიშვნისგან.

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

ნაბიჯი 3: შემდეგი, ანალოგური წრე

შემდეგი, ანალოგური წრე
შემდეგი, ანალოგური წრე
შემდეგი, ანალოგური წრე
შემდეგი, ანალოგური წრე
შემდეგი, ანალოგური წრე
შემდეგი, ანალოგური წრე

მიკროფონი, რომელიც მე გამოვიყენე ამ პროექტისთვის არის CMA-6542PF კონდენსატორის ელექტრო მიკროფონი. ამ მიკროფონის მონაცემთა ცხრილი ქვემოთ მოცემულია. ამ ტიპის კონდენსატორული მიკროფონებისგან განსხვავებით, მე არ მჭირდებოდა პოლარობაზე ფიქრი. მონაცემთა ცხრილში ნაჩვენებია, რომ ამ მიკროფონის საოპერაციო ძაბვაა 4.5 - 10V, მაგრამ რეკომენდირებულია 4.5 V, ხოლო მისი ამჟამინდელი მოხმარება არის 0.5mA max, ასე რომ თქვენ უნდა გაუფრთხილდეთ მას წინასწარი გამაგრების სქემის შემუშავებისას. ოპერაციული სიხშირეა 20 ჰერციდან 20 კილოჰერცამდე, რაც შესანიშნავია აუდიოსთვის.

მე განვახორციელე მარტივი გამაძლიერებელი მიკროსქემის დიზაინი პურის დაფაზე და შევცვალე შეყვანის ძაბვა, დავრწმუნდი, რომ მიკროფონის გასწვრივ არ იყო 0.5 mA- ზე მეტი. კონდენსატორი გამოიყენება DC ხმაურის გასაფილტრად, რომელიც შეიძლება შეერთდეს ელექტრულ სიგნალებთან ერთად (გამომავალი), ხოლო კონდენსატორს აქვს პოლარობა, ასე რომ დარწმუნდით, რომ დააკავშიროთ პოზიტიური დასასრული მიკროფონის გამოსასვლელ პინთან.

მიკროსქემის დასრულების შემდეგ, მიკროსქემის გამომავალი დავუკავშირე USB-6008– ის პირველ ანალოგიურ შესასვლელ პინს (AI0, pin 2) და დავაკავშირე პურის დაფის მიწა ანალოგიურ მიწას (GND, pin 1). მე USB-6008 შევაერთე კომპიუტერს USB- ით და დროა შევიტანო ცვლილებები LabVIEW პროგრამაში რეალური ანალოგური სიგნალის მისაღებად.

ნაბიჯი 4: წაიკითხეთ ანალოგური სიგნალები DAQ ასისტენტით

კითხულობს ანალოგურ სიგნალებს DAQ ასისტენტით
კითხულობს ანალოგურ სიგნალებს DAQ ასისტენტით
კითხულობს ანალოგურ სიგნალებს DAQ ასისტენტით
კითხულობს ანალოგურ სიგნალებს DAQ ასისტენტით

იმის ნაცვლად, რომ SoundFileSimpleRead. VI და HarmonicDistortionAnalyzer. VI გამოვიყენო, მე გამოვიყენე DAQ ასისტენტი. VI და ToneMeasurements. VI ანალოგიურ შეყვანასთან გამკლავებისთვის. DAQ ასისტენტის დაყენება საკმაოდ მარტივია და VI თავად მიგიყვანთ ამ ნაბიჯებზე. ToneMeasurements. VI– ს აქვს მრავალი გამოსავალი (ამპლიტუდა, სიხშირე, ფაზა), ამიტომ გამოვიყენე სიხშირის გამომავალი, რომელიც იძლევა შეყვანის ტონის ფუნდამენტურ სიხშირეს (DAQ ასისტენტიდან. VI). ToneMeasurements. VI- ის გამომავალი უნდა გადაკეთებულიყო და მასივში ჩაგვეყენებინა, სანამ გამოიყენებოდა საქმის სტრუქტურებში, მაგრამ LabVIEW- ის დანარჩენი პროგრამირება/ინდიკატორები უცვლელი დარჩა.

ნაბიჯი 5: დასკვნა

დასკვნა
დასკვნა

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

გირჩევთ: