สารบัญ:
- ขั้นตอนที่ 1: การปรับแต่ง Ukelele มาตรฐาน
- ขั้นตอนที่ 2: การสร้างแบบจำลองทางทฤษฎีทางดิจิทัลล้วนๆ
- ขั้นตอนที่ 3: ถัดไป วงจรแอนะล็อก
- ขั้นตอนที่ 4: การอ่านสัญญาณแอนะล็อกด้วย DAQ Assistant
- ขั้นตอนที่ 5: บทสรุป
วีดีโอ: Ukelele Tuner โดยใช้ LabView และ NI USB-6008: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในฐานะที่เป็นโปรเจ็กต์การเรียนรู้ที่อิงตามปัญหาสำหรับหลักสูตร LabVIEW & Instrumentation ของฉันที่ Humber College (เทคโนโลยีวิศวกรรมอิเล็กทรอนิกส์) ฉันได้สร้างจูนเนอร์ของอูคูเลเล่ที่จะรับอินพุตแบบอะนาล็อก (เสียงสตริงของอูคูเลเล่) ค้นหาความถี่พื้นฐาน ตัดสินใจว่าโน้ตใดกำลังพยายาม เพื่อปรับแต่ง และบอกผู้ใช้ว่าจำเป็นต้องปรับสายอักขระขึ้นหรือลงหรือไม่ อุปกรณ์ที่ฉันใช้ในการแปลอินพุตแบบอะนาล็อกเป็นอินพุตดิจิทัลคือ National Instruments USB-6008 DAQ (อุปกรณ์เก็บข้อมูล) และอินเทอร์เฟซผู้ใช้ถูกนำไปใช้กับ LabVIEW
ขั้นตอนที่ 1: การปรับแต่ง Ukelele มาตรฐาน
ขั้นตอนแรกคือการค้นหาความถี่พื้นฐานของโน้ตดนตรี และโดยปกติแล้วจะปรับสายของอูคูเลเล่ในช่วงใด ฉันใช้แผนภูมิสองแผนภูมินี้ และตัดสินใจว่าฉันจะกำหนดช่วงโทนเสียงระหว่าง 262 Hz (C) และ 494Hz (สูง B) หากน้อยกว่า 252 Hz จะถือว่าต่ำเกินไปสำหรับโปรแกรมที่จะถอดรหัสว่าโน้ตใดพยายามจะเล่น และสิ่งใดที่มากกว่า 500 Hz จะถือว่าสูงเกินไป อย่างไรก็ตาม โปรแกรมยังคงบอกผู้ใช้ว่าพวกเขาอยู่ห่างจากโน้ตที่ถอดรหัสได้ใกล้เคียงที่สุดกี่ Hz และควรปรับสตริงขึ้น (โน้ตต่ำเกินไป) หรือลง (โน้ตสูงเกินไป) เพื่อให้ไปถึงโน้ตที่มีอยู่
นอกจากนี้ ฉันยังสร้างช่วงสำหรับโน้ตแต่ละตัว ไม่ใช่แค่ความถี่เดียว เพื่อให้โปรแกรมค้นหาโน้ตที่กำลังเล่นได้ง่ายขึ้น ตัวอย่างเช่น โปรแกรมจะบอกผู้ใช้ว่ากำลังเล่น C หากโน้ตมีความถี่พื้นฐานระหว่าง 252 Hz (ครึ่งทางถึง B) และ 269Hz (ครึ่งทางถึง C#) แต่เพื่อตัดสินใจว่าจำเป็นต้องปรับแต่งหรือไม่ หรือต่ำกว่านั้นก็ยังคงเปรียบเทียบโน้ตที่กำลังเล่นกับความถี่พื้นฐานของ C ซึ่งก็คือ 262Hz
ขั้นตอนที่ 2: การสร้างแบบจำลองทางทฤษฎีทางดิจิทัลล้วนๆ
ก่อนดำดิ่งสู่ด้านแอนะล็อกของโปรเจ็กต์ ฉันต้องการดูว่าฉันสามารถสร้างโปรแกรม LabVIEW ที่อย่างน้อยจะทำการประมวลผลหลักของตัวอย่างเสียงได้หรือไม่ เช่น การอ่านตัวอย่างเสียง.wav การค้นหาความถี่พื้นฐาน และการสร้าง การเปรียบเทียบที่จำเป็นกับแผนภูมิความถี่เพื่อค้นหาว่าควรปรับเสียงขึ้นหรือลง
ฉันใช้ SoundFileSimpleRead. VI ที่มีอยู่ใน LabVIEW เพื่ออ่านไฟล์.wav จากเส้นทางที่ฉันกำหนด ใส่สัญญาณลงในอาร์เรย์ที่จัดทำดัชนี และป้อนสัญญาณนั้นลงใน HarmonicDistortionAnalyzer. VI เพื่อค้นหาความถี่พื้นฐาน ฉันยังรับสัญญาณจาก SoundFileSimpleRead. VI และเชื่อมต่อเข้ากับตัวบ่งชี้แผนภูมิรูปคลื่นโดยตรง เพื่อให้ผู้ใช้เห็นรูปคลื่นของไฟล์ที่แผงด้านหน้า
ฉันสร้างโครงสร้างเคส 2 แบบ: โครงสร้างหนึ่งเพื่อวิเคราะห์ว่ากำลังเล่นโน้ตอะไร และอีกโครงสร้างหนึ่งเพื่อพิจารณาว่าจำเป็นต้องเปลี่ยนสตริงขึ้นหรือลง สำหรับกรณีแรก ฉันสร้างช่วงสำหรับโน้ตแต่ละตัว และหากสัญญาณความถี่พื้นฐานจาก HarmonicDistortionAnalyzer. VI อยู่ในช่วงนั้น มันจะบอกผู้ใช้ว่ากำลังเล่นโน้ตอะไรอยู่ เมื่อกำหนดโน้ตแล้ว ค่าโน้ตที่เล่นจะถูกลบด้วยความถี่พื้นฐานที่แท้จริงของโน้ต จากนั้นผลลัพธ์จะถูกย้ายไปยังกรณีที่สองซึ่งกำหนดสิ่งต่อไปนี้: หากผลลัพธ์มีค่ามากกว่าศูนย์ จะต้องปรับสตริงลง หากผลลัพธ์เป็นเท็จ (ไม่เกินศูนย์) กรณีจะตรวจสอบว่าค่าเท่ากับศูนย์หรือไม่ และหากเป็นจริง โปรแกรมจะแจ้งให้ผู้ใช้ทราบว่าโน้ตอยู่ในการปรับแต่ง ถ้าค่าไม่เท่ากับศูนย์ แสดงว่าต้องน้อยกว่าศูนย์และต้องปรับสตริง ฉันใช้ค่าสัมบูรณ์ของผลลัพธ์เพื่อแสดงให้ผู้ใช้เห็นว่าห่างจากโน้ตจริงกี่ Hz
ฉันตัดสินใจว่าตัวบ่งชี้มิเตอร์จะดีที่สุดในการแสดงให้ผู้ใช้เห็นสิ่งที่ต้องดำเนินการเพื่อให้โน้ตตรงกัน
ขั้นตอนที่ 3: ถัดไป วงจรแอนะล็อก
ไมโครโฟนที่ฉันใช้ในโครงการนี้คือไมโครโฟนอิเล็กเตรตคอนเดนเซอร์ CMA-6542PF แผ่นข้อมูลสำหรับไมโครโฟนนี้อยู่ด้านล่าง ต่างจากไมโครโฟนคอนเดนเซอร์ส่วนใหญ่ประเภทนี้ ฉันไม่ต้องกังวลเรื่องขั้ว แผ่นข้อมูลแสดงให้เห็นว่าแรงดันไฟฟ้าในการทำงานของไมโครโฟนนี้คือ 4.5 - 10V แต่แนะนำให้ใช้ 4.5 V และกระแสไฟที่ใช้คือ 0.5mA สูงสุด ดังนั้นจึงเป็นสิ่งที่ต้องระวังเมื่อออกแบบวงจรปรีแอมป์สำหรับไมโครโฟน ความถี่ในการทำงานคือ 20Hz ถึง 20kHz ซึ่งเหมาะสำหรับเสียง
ฉันใช้การออกแบบวงจรปรีแอมป์อย่างง่ายบนเขียงหั่นขนมและปรับแรงดันไฟฟ้าอินพุต ตรวจสอบให้แน่ใจว่ามีไมค์ไม่เกิน 0.5mA ตัวเก็บประจุใช้เพื่อกรองสัญญาณรบกวน DC ที่อาจควบคู่ไปกับสัญญาณไฟฟ้า (เอาต์พุต) และตัวเก็บประจุมีขั้ว ดังนั้นต้องแน่ใจว่าได้เชื่อมต่อปลายขั้วบวกกับพินเอาต์พุตของไมโครโฟน
หลังจากวงจรเสร็จสมบูรณ์ ฉันเชื่อมต่อเอาท์พุตของวงจรกับพินอินพุตแบบอะนาล็อกแรก (AI0, พิน 2) ของ USB-6008 และเชื่อมต่อกราวด์ของเขียงหั่นขนมกับพินกราวด์แอนะล็อก (GND, พิน 1) ฉันเชื่อมต่อ USB-6008 กับพีซีด้วย USB และถึงเวลาต้องปรับเปลี่ยนโปรแกรม LabVIEW เพื่อรับสัญญาณอะนาล็อกจริง
ขั้นตอนที่ 4: การอ่านสัญญาณแอนะล็อกด้วย DAQ Assistant
แทนที่จะใช้ SoundFileSimpleRead. VI และ HarmonicDistortionAnalyzer. VI ฉันใช้ DAQ Assistant. VI และ ToneMeasurements. VI เพื่อจัดการกับอินพุตแบบอะนาล็อก การตั้งค่า DAQ Assistant ค่อนข้างตรงไปตรงมา และ VI จะนำคุณผ่านขั้นตอนต่างๆ ToneMeasurements. VI มีเอาต์พุตมากมายให้เลือก (แอมพลิจูด ความถี่ เฟส) ดังนั้นฉันจึงใช้เอาต์พุตความถี่ซึ่งให้ความถี่พื้นฐานของโทนอินพุต (จาก DAQ Assistant. VI) เอาต์พุตของ ToneMeasurements. VI ต้องถูกแปลงและใส่ลงในอาร์เรย์ก่อนที่จะใช้ในโครงสร้างเคสได้ แต่โปรแกรม/ตัวบ่งชี้ LabVIEW ที่เหลือยังคงเหมือนเดิม
ขั้นตอนที่ 5: บทสรุป
โครงการประสบความสำเร็จ แต่มีข้อบกพร่องมากมาย ตอนที่ฉันใช้งานเครื่องรับสัญญาณในห้องเรียนที่มีเสียงดัง โปรแกรมจะระบุได้ยากว่าเสียงอะไรและน้ำเสียงที่เล่นคืออะไร เป็นไปได้ว่าวงจรปรีแอมป์นั้นธรรมดามาก และไมโครโฟนก็มีราคาถูกมาก เมื่อมันเงียบ โปรแกรมทำงานด้วยความน่าเชื่อถือที่ดีเพื่อตรวจสอบโน้ตที่พยายามจะเล่น เนื่องจากข้อจำกัดด้านเวลา ฉันไม่ได้ทำการเปลี่ยนแปลงใดๆ เพิ่มเติม แต่ถ้าฉันทำโปรเจ็กต์นี้ซ้ำ ฉันจะซื้อไมโครโฟนที่ดีกว่านี้และใช้เวลามากขึ้นในวงจรปรีแอมป์
แนะนำ:
Arduino Keyboard Joystick Extender Box และ Sound Controller Thing โดยใช้ Deej: 8 ขั้นตอน
Arduino Keyboard Joystick Extender Box และ Sound Controller Thing โดยใช้ Deej: ทำไมฉันจึงต้องการเพิ่มจอยสติ๊กขนาดเล็กลงในแป้นพิมพ์เพื่อควบคุมองค์ประกอบอินเทอร์เฟซหรืองานขนาดเล็กอื่นๆ ในเกมและเครื่องจำลอง (MS Flight Sim, Elite: Dangerous, Star Wars: ฝูงบิน ฯลฯ) สำหรับ Elite: Dangerous ฉันเคย
วิธีการสร้างเครื่องเล่น MP3 ด้วย LCD โดยใช้ Arduino และ DFPlayer Mini MP3 Player Module: 6 ขั้นตอน
วิธีการสร้างเครื่องเล่น MP3 ด้วย LCD โดยใช้ Arduino และ DFPlayer Mini MP3 Player Module: วันนี้เราจะสร้างเครื่องเล่น MP3 พร้อม LCD โดยใช้ Arduino และ DFPlayer mini MP3 Player Module โครงการสามารถอ่านไฟล์ MP3 ในการ์ด SD และสามารถหยุดชั่วคราว และเล่นเหมือนเครื่องเมื่อ 10 ปีที่แล้ว และยังมีเพลงก่อนหน้าและเพลงถัดไปที่สนุก
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C - เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C โดยใช้ Arduino IDE: 5 ขั้นตอน
Neopixel Ws2812 Rainbow LED เรืองแสงพร้อม M5stick-C | เรียกใช้ Rainbow บน Neopixel Ws2812 โดยใช้ M5stack M5stick C การใช้ Arduino IDE: สวัสดีทุกคนในคำแนะนำนี้ เราจะเรียนรู้วิธีใช้ neopixel ws2812 LED หรือแถบนำหรือเมทริกซ์นำหรือวงแหวน LED พร้อมบอร์ดพัฒนา m5stack m5stick-C พร้อม Arduino IDE และเราจะทำ ลายรุ้งกับมัน
การควบคุมวิทยุ RF 433MHZ โดยใช้ HT12D HT12E - การสร้างรีโมทคอนโทรล Rf โดยใช้ HT12E & HT12D ด้วย 433mhz: 5 ขั้นตอน
การควบคุมวิทยุ RF 433MHZ โดยใช้ HT12D HT12E | การสร้างการควบคุมระยะไกล Rf โดยใช้ HT12E & HT12D ด้วย 433mhz: ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างรีโมทคอนโทรล RADIO โดยใช้โมดูลตัวรับส่งสัญญาณ 433mhz พร้อมการเข้ารหัส HT12E & IC ถอดรหัส HT12D ในคำแนะนำนี้ คุณจะสามารถส่งและรับข้อมูลโดยใช้ส่วนประกอบราคาถูกมาก เช่น HT
DIY ECG โดยใช้ Analog Discovery 2 และ LabVIEW: 8 ขั้นตอน
DIY ECG โดยใช้ Analog Discovery 2 และ LabVIEW: ในคำแนะนำนี้ ฉันจะแสดงวิธีทำคลื่นไฟฟ้าหัวใจแบบโฮมเมด (ECG) เป้าหมายของเครื่องนี้คือการขยาย วัด และบันทึกศักย์ไฟฟ้าตามธรรมชาติที่สร้างขึ้นโดยหัวใจ ECG สามารถเปิดเผยข้อมูลมากมายเกี่ยวกับ