Mục lục:

Bộ chỉnh Ukelele bằng LabView và NI USB-6008: 5 bước
Bộ chỉnh Ukelele bằng LabView và NI USB-6008: 5 bước

Video: Bộ chỉnh Ukelele bằng LabView và NI USB-6008: 5 bước

Video: Bộ chỉnh Ukelele bằng LabView và NI USB-6008: 5 bước
Video: bqThanh Đã Làm Gì Khiến Ốc Khóc Rồi Bỏ Đi Trong Minecraft ??? 2024, Tháng bảy
Anonim
Bộ chỉnh Ukelele bằng LabView và NI USB-6008
Bộ chỉnh Ukelele bằng LabView và NI USB-6008
Bộ chỉnh Ukelele bằng LabView và NI USB-6008
Bộ chỉnh Ukelele bằng LabView và NI USB-6008

Là một dự án học tập dựa trên vấn đề cho khóa học LabVIEW & Instrumentation của tôi tại Cao đẳng Humber (Công nghệ Kỹ thuật Điện tử), tôi đã tạo một bộ chỉnh ukulele sẽ lấy đầu vào tương tự (âm dây ukulele), tìm tần số cơ bản, quyết định nốt nào đang thử để được điều chỉnh và cho người dùng biết nếu chuỗi cần được điều chỉnh lên hoặc xuống. Thiết bị tôi sử dụng để chuyển đầu vào tương tự thành đầu vào kỹ thuật số là National Instruments USB-6008 DAQ (thiết bị thu thập dữ liệu) và giao diện người dùng được triển khai với LabVIEW.

Bước 1: Điều chỉnh Ukelele tiêu chuẩn

Điều chỉnh Ukelele tiêu chuẩn
Điều chỉnh Ukelele tiêu chuẩn
Điều chỉnh Ukelele tiêu chuẩn
Điều chỉnh Ukelele tiêu chuẩn

Bước đầu tiên là tìm ra các tần số cơ bản của các nốt nhạc và các dây đàn ukulele thường được điều chỉnh ở dải tần nào. Tôi đã sử dụng hai biểu đồ này và quyết định rằng tôi sẽ đặt dải âm của mình trong khoảng 262 Hz (C) đến 494Hz (B cao). Bất kỳ âm thanh nào nhỏ hơn 252 Hz sẽ được coi là quá thấp để chương trình giải mã nốt nhạc đang cố phát và bất kỳ âm thanh nào lớn hơn 500 Hz sẽ bị coi là quá cao. Tuy nhiên, chương trình vẫn cho người dùng biết họ đang ở cách nốt nhạc gần nhất có thể giải mã được bao nhiêu Hz và liệu dây đàn nên được điều chỉnh lên (nốt quá thấp) hay xuống (nốt quá cao) để đạt được nốt có sẵn.

Ngoài ra, tôi đã tạo phạm vi cho mỗi nốt nhạc, thay vì chỉ một tần số duy nhất, để chương trình dễ dàng tìm thấy nốt nhạc nào đang được phát. Ví dụ: chương trình sẽ cho người dùng biết rằng một nốt C đang được phát nếu nốt có tần số cơ bản trong khoảng 252 Hz (nửa chừng B) và 269Hz (nửa chừng C #), nhưng để quyết định xem nó có cần được điều chỉnh hay không hoặc xuống, nó vẫn sẽ so sánh nốt đang được chơi với tần số cơ bản của C là 262Hz.

Bước 2: Tạo mô hình lý thuyết kỹ thuật số hoàn toàn

Tạo mô hình lý thuyết kỹ thuật số hoàn toàn
Tạo mô hình lý thuyết kỹ thuật số hoàn toàn
Tạo mô hình lý thuyết kỹ thuật số hoàn toàn
Tạo mô hình lý thuyết kỹ thuật số hoàn toàn

Trước khi đi sâu vào khía cạnh tương tự của dự án, tôi muốn xem liệu tôi có thể tạo một chương trình LabVIEW ít nhất sẽ thực hiện quá trình xử lý chính của một mẫu âm thanh, chẳng hạn như đọc mẫu.wav âm thanh, tìm tần số cơ bản và các so sánh cần thiết với biểu đồ tần số để tìm xem nên điều chỉnh âm thanh lên hay xuống.

Tôi đã sử dụng SoundFileSimpleRead. VI có sẵn trong LabVIEW để đọc tệp.wav từ đường dẫn mà tôi đã chỉ định, đặt tín hiệu vào một mảng được lập chỉ mục và đưa tín hiệu đó vào HarmonicDistortionAnalyzer. VI để tìm tần số cơ bản. Tôi cũng lấy tín hiệu từ SoundFileSimpleRead. VI và kết nối nó trực tiếp với chỉ báo biểu đồ dạng sóng để người dùng có thể thấy dạng sóng của tệp trên bảng điều khiển phía trước.

Tôi đã tạo ra 2 cấu trúc trường hợp: một để phân tích nốt nhạc nào đang được chơi, và cấu trúc còn lại để xác định xem chuỗi cần được chuyển lên hay xuống. Đối với trường hợp đầu tiên, tôi tạo phạm vi cho mỗi nốt và nếu tín hiệu tần số cơ bản từ HarmonicDistortionAnalyzer. VI nằm trong phạm vi đó, nó sẽ cho người dùng biết nốt nào đang được phát. Khi nốt nhạc được xác định, giá trị nốt đã phát sẽ được trừ đi bởi tần số cơ bản thực tế của nốt nhạc, và sau đó kết quả được chuyển sang trường hợp thứ hai xác định như sau: nếu kết quả trên 0, thì chuỗi đó cần được điều chỉnh xuống; nếu kết quả là false (không phải trên 0), thì trường hợp kiểm tra xem giá trị có bằng 0 hay không, và nếu đúng, thì chương trình sẽ thông báo cho người dùng rằng nốt nhạc đang được điều chỉnh; nếu giá trị không bằng 0, thì có nghĩa là nó phải nhỏ hơn 0 và chuỗi cần được điều chỉnh. Tôi lấy giá trị tuyệt đối của kết quả để cho người dùng biết họ cách nốt nhạc thật bao nhiêu Hz.

Tôi quyết định rằng một chỉ báo đồng hồ sẽ là tốt nhất để hiển thị trực quan cho người dùng những gì cần phải làm để ghi chú phù hợp.

Bước 3: Tiếp theo, Mạch tương tự

Tiếp theo, mạch tương tự
Tiếp theo, mạch tương tự
Tiếp theo, mạch tương tự
Tiếp theo, mạch tương tự
Tiếp theo, mạch tương tự
Tiếp theo, mạch tương tự

Micrô tôi sử dụng cho dự án này là micrô điện tử tụ điện CMA-6542PF. Bảng dữ liệu cho micrô này ở bên dưới. Không giống như hầu hết các micrô tụ điện thuộc loại này, tôi không phải lo lắng về cực tính. Biểu dữ liệu cho thấy điện áp hoạt động cho mic này là 4,5 - 10V, nhưng khuyến nghị là 4,5 V và mức tiêu thụ hiện tại của nó là tối đa 0,5mA, do đó, đó là điều cần cẩn thận khi thiết kế mạch tiền khuếch đại cho nó. Tần số hoạt động là 20Hz đến 20kHz, hoàn hảo cho âm thanh.

Tôi đã triển khai một thiết kế mạch tiền khuếch đại đơn giản trên breadboard và điều chỉnh điện áp đầu vào, đảm bảo không có quá 0,5mA trên micrô. Tụ điện được sử dụng để lọc tiếng ồn DC có thể được ghép cùng với tín hiệu điện (đầu ra) và tụ điện có cực tính, vì vậy hãy đảm bảo kết nối đầu dương với chân đầu ra của micrô.

Sau khi mạch hoàn tất, tôi kết nối đầu ra của mạch với chân đầu vào tương tự đầu tiên (AI0, chân 2) của USB-6008 và kết nối mặt đất của bảng mạch với chân nối đất tương tự (GND, chân 1). Tôi đã kết nối USB-6008 với PC bằng USB và đã đến lúc điều chỉnh chương trình LabVIEW để thu nhận tín hiệu tương tự thực tế.

Bước 4: Đọc tín hiệu tương tự với DAQ Assistant

Đọc tín hiệu tương tự với hỗ trợ DAQ
Đọc tín hiệu tương tự với hỗ trợ DAQ
Đọc tín hiệu tương tự với hỗ trợ DAQ
Đọc tín hiệu tương tự với hỗ trợ DAQ

Thay vì sử dụng SoundFileSimpleRead. VI và HarmonicDistortionAnalyzer. VI, tôi đã sử dụng DAQ Assistant. VI và ToneMeasurements. VI để xử lý đầu vào tương tự. Việc thiết lập DAQ Assistant khá đơn giản và chính VI sẽ hướng dẫn bạn qua các bước. ToneMeasurements. VI có nhiều đầu ra để lựa chọn (biên độ, tần số, pha), vì vậy tôi đã sử dụng đầu ra tần số cung cấp tần số cơ bản của âm đầu vào (từ DAQ Assistant. VI). Đầu ra của ToneMeasurements. VI phải được chuyển đổi và đưa vào một mảng trước khi nó có thể được sử dụng trong các cấu trúc trường hợp, nhưng phần còn lại của lập trình / chỉ báo LabVIEW vẫn giữ nguyên.

Bước 5: Kết luận

Phần kết luận
Phần kết luận

Dự án đã thành công nhưng chắc chắn còn rất nhiều sai sót. Khi tôi vận hành bộ chỉnh trong một lớp học ồn ào, chương trình rất khó xác định đâu là tiếng ồn và đâu là âm đang được phát. Điều này có thể là do mạch tiền khuếch đại rất cơ bản và micrô rất rẻ. Tuy nhiên, khi nó yên lặng, chương trình hoạt động với độ tin cậy tốt để xác định nốt nhạc đang cố gắng phát. Do hạn chế về thời gian, tôi đã không thực hiện bất kỳ thay đổi bổ sung nào, nhưng nếu tôi lặp lại dự án, tôi sẽ mua một micrô tốt hơn và dành nhiều thời gian hơn cho mạch tiền khuếch đại.

Đề xuất: