Mục lục:

MIDI Sonar "Theremin": 10 bước (có hình ảnh)
MIDI Sonar "Theremin": 10 bước (có hình ảnh)

Video: MIDI Sonar "Theremin": 10 bước (có hình ảnh)

Video: MIDI Sonar
Video: Build your own Theremin Kit with MicroKits! 2024, Tháng mười một
Anonim
MIDI Sonar
MIDI Sonar

Đây là một nhạc cụ sử dụng hai cảm biến khoảng cách sonar để kiểm soát cao độ và chất lượng của các nốt. Tất nhiên, nó không thực sự là Theremin nhưng "Theremin" đã trở thành thuật ngữ chung cho các nhạc cụ được chơi bằng cách vẫy tay của bạn.

Nó được tích hợp bộ tổng hợp MIDI, bộ khuếch đại và loa. Các nốt nhạc được tạo ra bởi chip MIDI - VS1053 - có 127 giọng nói (tức là các nhạc cụ khác nhau). Nó có độ phức điệu cao (lên đến 64) để nó có thể chơi các nốt đơn hoặc hợp âm.

Tay phải của bạn điều khiển nốt nhạc đang được chơi. Trong chế độ "rời rạc", không gian bên phải được chia thành "thùng". Khi tay bạn đi vào một thùng, ghi chú cho thùng đó sẽ bắt đầu. Khi bạn rời khỏi thùng, nốt nhạc có thể dừng lại (ví dụ: đàn organ) hoặc chết đi một cách tự nhiên (ví dụ: đàn piano).

Trong chế độ "liên tục", khoảng trống bên phải xác định cao độ liên tục thay đổi - giống như Theremin ban đầu. Nốt bắt đầu khi tay bạn đi vào khoảng trống và dừng lại khi bạn rời khỏi khoảng trống.

Tay trái của bạn kiểm soát chất lượng của nốt nhạc đang được chơi. Nó có thể điều khiển âm lượng, tremolo, rung, uốn cong cao độ, hồi âm, v.v.

Một màn hình LCD nhỏ có một menu cho phép bạn chọn nhạc cụ hiện tại, chức năng của tay trái, thang âm (hoặc "phím") của tay phải, rung, tremolo, v.v. Bạn có thể lưu và tải các "Cài đặt" khác nhau "và nhanh chóng chuyển đổi giữa chúng trong khi biểu diễn.

Toàn bộ nhạc cụ MIDI "Theremin" hoạt động độc lập với loa riêng và pin sạc.

Nếu bạn định sao chép bản dựng của tôi, bạn sẽ cần có Arduino Nano (£ 1,50), mô-đun VS1053 (£ 4,50), màn hình LCD 1,44 ST7735 (£ 3,50), hai mô-đun HC-SR04 (£ 1 mỗi mô-đun) và một vài điện trở. Bạn cũng sẽ cần một số loa được hỗ trợ, có lẽ là pin lithium và PSU nhưng các chi tiết sẽ phụ thuộc vào cách bạn quyết định chế tạo nó. Tôi nhận được tất cả những thứ bổ sung đó từ các cửa hàng bán đồ ủng hộ ô tô và cửa hàng từ thiện. Thêm nữa, bạn Tôi sẽ cần các đồ dùng hội thảo điện tử thông thường.

Bước 1: Điều khiển VS1053

Điều khiển VS1053
Điều khiển VS1053
Điều khiển VS1053
Điều khiển VS1053

Tôi đã chọn mô-đun VS1053 được hiển thị trong hình. (Lưu ý hai bộ điều chỉnh SOT223, hai ổ cắm giắc cắm và vị trí của đầu nối.) Tìm kiếm trên eBay, Alibaba hoặc nhà cung cấp yêu thích của bạn để tìm mô-đun VS1053 trông giống như vậy. Chúng có sẵn từ Aliexpress ở đây và ở đây.

Tôi đã mua nó vài năm trước và nó dường như không còn có sẵn trên eBay nữa, chỉ có trên Alibaba. Phiên bản PCB màu đỏ hiện đã có trên eBay. Nó có vẻ giống nhau về mặt chức năng nhưng sơ đồ chân khác nhau, vì vậy bạn sẽ cần điều chỉnh sơ đồ và bố cục của tôi. Tôi đã không thử nghiệm nó. Trong phần thảo luận (bên dưới), bạn có thể tìm thấy hướng dẫn về cách thêm điện trở vào PCB màu đỏ để kích hoạt MIDI "sống". Hoặc bạn có thể gửi các lệnh bổ sung trong quá trình thiết lập để kích hoạt nó.

VS1053 là một con chip tốt nhưng khá phức tạp. Tôi chỉ sử dụng phần MIDI của nó. Có thể điều khiển VS1053 qua giao diện nối tiếp nhưng tôi đang sử dụng bus SPI vì nó thuận tiện hơn với Arduino Nano. Bất kỳ byte nào bạn gửi qua bus SPI đều được coi là lệnh MIDI.

Bạn sẽ tìm thấy danh sách các lệnh MIDI trên web. VS1053 đáp ứng một số nhưng không phải tất cả chúng. Chương trình Miditheremin0.exe hiển thị những chương trình mà tôi biết là hoạt động.

Bạn có thể tải xuống bảng dữ liệu VS1053 từ web. Đó là một tài liệu khổng lồ và khó thực hiện. Phần "8.9 Các định dạng MIDI được hỗ trợ" gần như là tất cả những gì nó nói về MIDI. Phần "10.10 Real-Time MIDI" nói về việc sử dụng GPIO0 và GPIO1 để kích hoạt MIDI nhưng bảng tôi không yêu cầu bất kỳ kích hoạt đặc biệt nào. Bạn cũng có thể tải xuống danh sách các thông báo MIDI (không phải tất cả đều được VS1053 hỗ trợ).

Nối mô-đun VS1053 với Arduino Nano như được hiển thị và tải tệp INO lên Arduino. Tôi đã sử dụng một breadboard không hàn. Tôi không có ảnh của nó ở giai đoạn này nhưng bạn có thể xem breadboard với các thành phần khác trong bước dưới đây.

Bản phác thảo INO nhận một byte từ PC qua dòng nối tiếp và gửi byte tới VS1053. Đây là một chương trình rất đơn giản cho phép bạn kiểm tra VS1053. Kết nối ổ cắm giắc cắm đầu ra với tai nghe hoặc loa máy tính.

Chương trình Windows Miditheremin0.exe (tải xuống Step1.zip từ github) gửi lệnh đến VS1053. Nhấp vào nút "90 note vel" để chơi một ghi chú. Hoặc bạn có thể viết chương trình Windows của riêng mình. Hoặc sử dụng một trong nhiều chương trình đầu cuối có sẵn trên web.

Mô-đun VS1053 có các chân sau:

  • xe buýt SPI có MISO, MOSI và SCLK thông thường
  • nếu XRST thấp, chip sẽ đặt lại
  • XDCS không làm bất cứ điều gì trong chế độ SPI vì vậy hãy gắn nó với XCS
  • XCS là lựa chọn chip
  • DREQ cho bạn biết khi nào chip đã sẵn sàng cho một lệnh mới.

XCS nên được đặt ở mức thấp khi bạn đang gửi một byte; sau đó cao. Bằng cách đó, bạn chắc chắn rằng bạn đã đồng bộ hóa bit đầu tiên của mỗi byte. Đọc DREQ cho bạn biết rằng chip đã sẵn sàng nhận lệnh mới.

Sau khi Arduino gửi một byte, nó phải gửi một byte giả để chuyển đổi đồng hồ và cho phép VS1053 gửi lại một byte để phản hồi. Hàm SPItransfer () cho bạn biết cách thực hiện.

Mô-đun màu đỏ có sẵn trên eBay bao gồm một khe cắm thẻ SD nên nó có thêm một vài chân cắm. Bỏ qua chúng.

Bây giờ bạn tự tin rằng bạn có thể làm cho VS1053 hoạt động, chúng tôi sẽ biến nó thành một nhạc cụ hơn.

Bước 2: Sử dụng Sonars

Sử dụng Sonars
Sử dụng Sonars
Sử dụng Sonars
Sử dụng Sonars

Nối các mô-đun HC-SR04 với Arduino Nano như được hiển thị và tải tệp INO lên Arduino.

Lưu ý trong sơ đồ rằng DC3 - tụ điện tách cho các mô-đun HC-SR04 - nên được kết nối gần với các mô-đun HC-SR04. Chúng nhận một dòng điện khá lớn khi chúng truyền tải mà DC3 giúp cung cấp.

Trong giai đoạn này của dự án, PC Windows vẫn gửi lệnh tới VS1053 nhưng VS1053 cũng được điều khiển bởi cảm biến sonar HC-SR04 (tải xuống Step2.zip từ github).

Tất cả các lệnh mới đều bắt đầu bằng 0xFF và được giải thích bằng bản phác thảo Arduino (thay vì được gửi thẳng đến VS1053). Các byte không phải "FF-command" được gửi đến VS1053.

Có các lệnh để thay đổi nhạc cụ, thay đổi thang âm, thêm rung và tremolo, v.v. Chương trình có thể chạy ở chế độ "rời rạc" nơi có các nốt riêng biệt (như đàn piano) hoặc ở chế độ "liên tục" khi có một nốt duy nhất. cúi lên và xuống (giống như một theremin).

Nó thực hiện khá tốt mọi thứ mà công cụ cuối cùng sẽ làm nhưng nó được điều khiển bởi PC.

Cảm biến sonar HC-SR04 bên phải chọn cao độ của nốt nhạc được phát. Trong chế độ "rời rạc", không gian bên phải được chia thành "thùng". Khi tay bạn đi vào một thùng, ghi chú cho thùng đó sẽ bắt đầu. Khi bạn rời khỏi thùng, nốt nhạc có thể dừng lại (ví dụ: đàn organ) hoặc chết đi một cách tự nhiên (ví dụ: đàn piano). Khi tay bạn đi vào thùng, thùng sẽ mở rộng một chút để bạn không bị rung ở mép.

Hàm GetSonar () trả về thời gian thực hiện cho đến khi có tiếng vọng đầu tiên. Nó bỏ qua những tiếng vọng rất nhanh (thời lượng <10) mà HC-SR04 đôi khi báo cáo. Nếu không nhận được tiếng vọng bởi maxDuration, nó sẽ trả về maxDuration. Thời lượng không được đo bằng bất kỳ đơn vị cụ thể nào - nó chỉ là một con số.

Trong chế độ Rời rạc, thời lượng được lọc trước tiên để loại bỏ các trường hợp bỏ học không thường xuyên (khi không nhận được tiếng vọng). Bàn tay được cho là chỉ xuất hiện sau khi nhận được 10 mẫu maxDuration. Sau đó, thời lượng được lọc bằng bộ lọc Trung vị. Bộ lọc trung vị rất tốt trong việc loại bỏ tiếng ồn "bốc đồng" (tức là thỉnh thoảng có đột biến). Khoảng thời gian đã lọc được sử dụng để chọn một thùng.

Ở chế độ Liên tục, thời lượng lại được lọc để loại bỏ những người bỏ học không thường xuyên. Sau đó, nó được làm mịn bằng cách sử dụng bộ lọc theo cấp số nhân. Khoảng thời lượng được lọc được sử dụng để đặt tần số của nốt nhạc bằng cách sử dụng "độ cong cao độ".

Bước 3: Thêm màn hình

Thêm màn hình
Thêm màn hình
Thêm màn hình
Thêm màn hình
Thêm màn hình
Thêm màn hình

Màn hình hiển thị là màn hình LCD TFT màu 1,44 với bộ điều khiển ST7735, 128x128 pixel. Có rất nhiều màn hình có sẵn trên eBay, chẳng hạn như bạn có thể muốn phát triển nhạc cụ của mình với màn hình cảm ứng lớn hơn. Tôi không sử dụng ST7735 và muốn dùng thử.

Tôi nhận được của tôi từ nhà cung cấp này. Mô-đun tương tự được bán rộng rãi trên eBay - chỉ cần mua một mô-đun giống như trong ảnh.

Màn hình LCD có các chân sau:

  • GND mặt đất
  • VCC 3.3V
  • SCL SPI bus SCLK
  • MOSI bus SDA SPI của Arduino
  • RES đặt lại
  • Dữ liệu / lệnh DC
  • Chọn chip CS
  • Đèn nền BL

Mô-đun chạy trên 3.3V vì vậy bạn không nên kết nối trực tiếp với Arduino 5V của mình. Tôi đã sử dụng điện trở 1k để giảm điện áp. Đó không phải là thực tiễn tốt (nói chung, người ta nên sử dụng một bộ chia điện thế hoặc một chip nhỏ giọt điện áp) nhưng hoạt động hoàn toàn tốt trong mạch này. Tôi đã được lười biếng.

Màn hình được cung cấp bởi 3.3V do Arduino cung cấp. Bộ điều chỉnh Arduino có vẻ đủ hạnh phúc.

Adafruit rất vui lòng xuất bản thư viện ST7735 và một số thư viện khác có sẵn trên Github và các nơi khác. Tôi đã thử một vài cái và không thích cái nào trong số chúng. Một số đơn giản là không hoạt động và tất cả đều rất lớn. Bạn viết một bản phác thảo Arduino vẽ một đường thẳng và một số văn bản và bạn sẽ tìm thấy bộ nhớ của mình nếu đầy 75%. Vì vậy, tôi đã viết thư viện của riêng mình.

Thư viện SimpleST7735 có thể được tải xuống (tải xuống Step3.zip từ github).

Nó có một bộ lệnh vẽ tiêu chuẩn rất giống với tất cả các thư viện như vậy.

Một số thư viện "nhanh" mà bạn có thể tải xuống sử dụng các vòng lặp thời gian đặc biệt và rất khó chịu khi các thiết bị khác, có thể chậm hơn, được sử dụng trên cùng một xe buýt. SimpleST7735 được viết bằng C chứ không phải là trình lắp ráp nên không nhanh như nó có thể nhưng dễ di động hơn và nó chia sẻ bus SPI một cách lịch sự với các thiết bị khác. Có thể tải xuống một chương trình Windows cho phép bạn tạo phông chữ và biểu tượng của riêng mình.

Bạn có thể tải xuống bảng dữ liệu ST7735 từ web. Bạn nói chuyện với nó bằng

  • đặt CS thấp
  • đặt DC ở mức thấp
  • gửi một byte lệnh
  • đặt DC cao
  • gửi không hoặc nhiều byte dữ liệu
  • đặt CS cao

Bạn có thể xem cách tôi thực hiện trong hàm spiSend_TFT_CW () trong thư viện. Các byte dữ liệu có thể là toàn bộ hàng pixel hoặc cài đặt cho một thanh ghi điều khiển.

Hàm ST7735Begin () trong thư viện hiển thị cho bạn bộ lệnh khởi tạo mà tôi đã chọn. Bạn có thể muốn thay đổi các lệnh nếu bạn chọn một màn hình ST7735 khác (ví dụ: với nhiều pixel hơn) hoặc muốn một hướng khác. Tôi hy vọng mã của tôi dễ dàng để bạn xem cách thay đổi nếu bạn cần.

Sơ đồ hiển thị nút điều khiển "SW1" và bàn đạp chân SW2 ". Nút điều khiển chọn các" Thiết lập "khác nhau (xem bước tiếp theo) hoặc chọn chế độ Menu. Bàn đạp chân là tùy chọn và chỉ chọn các Thiết lập khác nhau - Tôi đã không tự lắp bàn đạp chân. Việc thiết lập rất hữu ích trong quá trình biểu diễn khi bạn muốn nhanh chóng thay phím hoặc thay đổi nhạc cụ.

Bước 4: Hệ thống Menu

Hệ thống menu
Hệ thống menu
Hệ thống menu
Hệ thống menu

Bản phác thảo Miditheremin3.ino Arduino này thêm một hệ thống lập trình đơn vào MIDI Theremin và điều khiển nhạc cụ hoàn chỉnh cuối cùng.

MIDI Theremin thường chạy ở chế độ "Phát". Tay phải của bạn chọn ghi chú và tay trái của bạn kiểm soát chất lượng của ghi chú. Màn hình LCD hiển thị bàn phím đàn piano với nốt hiện tại được đánh dấu.

Nếu bạn giữ nút điều khiển trong một giây, chương trình sẽ chuyển sang chế độ "Menu". Ở chế độ Menu, nếu bạn giữ nút điều khiển trong một giây, chương trình sẽ trở về chế độ "Phát".

Thực đơn có cấu trúc dạng cây với các mục chính và mục phụ. Mục menu hiện tại được tô sáng. Bạn di chuyển lựa chọn lên / xuống thông qua sonar bên trái. Các menu phụ cho một mục chính chỉ được mở rộng khi mục chính được chọn.

Sau khi chọn một menu phụ, khi bạn nhấp vào nút, giá trị của mục đó sẽ được tô sáng. Bây giờ tay trái tăng hoặc giảm giá trị. Nhấp lại vào nút để quay lại chọn menu phụ.

Ở chế độ Rời rạc, cây menu là

  • Dụng cụ

    • 0: Đại dương cầm
    • Trao đổi tay: bình thường
  • Tay phải

    Chế độ: rời rạc

  • Tay trái

    • Chế độ: Vibrato
    • Độ sâu tối đa: 10
  • Tỉ lệ

    • Quy mô: lớn Heptatonic
    • Quãng tám: 2
    • Nốt thấp nhất: 60 C
  • Dây nhau

    • Hợp âm: Bộ ba chính
    • Đảo ngược: 0
    • Đa âm: 1
  • Tremolo

    • Kích thước: 20
    • Thời gian: 10
  • Vibrato

    • Kích thước: 20
    • Thời gian: 10

Nhạc cụ có thể là "Grand Piano", "Church Organ", "Violin", v.v … Có 127 nhạc cụ trong VS1053, nhiều nhạc cụ trong số đó có âm thanh giống hệt nhau và nhiều nhạc cụ giống như "tiếng súng". Menu phụ Swap Hands cho phép bạn hoán đổi các chức năng của tay trái và tay phải - có lẽ bạn thích nó theo cách đó hoặc có lẽ bạn muốn người nói đối diện với khán giả.

Tay Phải có thể là "Rời rạc" hoặc "Liên tục". Xem bên dưới để biết menu "liên tục".

Tay trái có thể điều khiển "Volume", "Tremolo", "Vibrato", "PitchBendUp", "PitchBendDown", "Reverb", "Polyphony" hoặc "ChordSize".

"Khối lượng" là hiển nhiên. "Tremolo" là một biến thể nhanh về âm lượng; tay trái điều khiển kích thước của biến thể; khoảng thời gian được đặt bởi một mục menu khác. "Vibrato" là một biến thể nhanh về cao độ; tay trái điều khiển kích thước của biến thể; khoảng thời gian được đặt bởi một mục menu khác. "PitchBendUp" và "PitchBendDown" thay đổi cao độ của nốt nhạc đang được chơi; tay trái điều khiển kích thước của khúc cua. "Reverb" là khá không ấn tượng trong VS1053; tay trái điều khiển kích thước của hồi âm. "Polyphony" kiểm soát số lượng nốt nhạc đang phát cùng lúc lên đến mức tối đa do menu Polyphony đặt (xem bên dưới). "ChordSize" có nghĩa là tay trái điều khiển số lượng nốt của một hợp âm (xem bên dưới) được chơi.

Trong âm nhạc, "thang âm" hoặc "phím" là tập hợp con của các nốt mà bạn đang sử dụng. Ví dụ, nếu bạn tự giới hạn mình trong thang âm Heptatonic của C Major, bạn sẽ chỉ chơi những nốt trắng của piano. Nếu bạn chọn C # Major Pentatonic thì bạn sẽ chỉ sử dụng các nốt đen (ví dụ: cho các giai điệu dân gian Scotland).

Menu Scale chọn nốt nào mà khoảng trống bên tay phải tương ứng và bao nhiêu quãng tám mà khoảng trống bên tay phải bao phủ. Vì vậy, nếu bạn chọn 1 quãng tám của E Major thì không gian bên tay phải được chia thành 8 thùng với E ở âm độ thấp nhất và E một quãng tám ở trên ở âm vực cao nhất.

Menu Scale cho phép bạn chọn rất nhiều thang âm "không phải nhạc phương Tây" khác thường nhưng nó giả định tất cả các nốt đều từ bàn phím nhiệt độ đồng đều - đó là cách MIDI hoạt động, bạn không thể dễ dàng chỉ định tần số của một nốt. Vì vậy, nếu bạn muốn, chẳng hạn như thang âm phần tư tiếng Ả Rập, bạn sẽ gặp rắc rối.

Menu phụ Octaves cho phép bạn chọn bao nhiêu quãng tám của thang âm mà bạn muốn. Và ghi chú Thấp nhất cho biết quy mô bắt đầu từ đâu.

Thông thường khi một nốt nhạc được chơi, chỉ nốt nhạc đó được phát ra. Menu Hợp âm cho phép bạn chơi nhiều nốt cùng một lúc. Hợp âm Bộ ba chính có nghĩa là 'chơi nốt đã chọn cộng với nốt cao hơn bốn nửa cung, cộng với nốt cao hơn bảy nửa cung.

Menu phụ Inversion cung cấp cho bạn các đảo hợp âm. Điều đó có nghĩa là nó di chuyển một số nốt của hợp âm xuống một quãng tám bên dưới. Đảo ngược đầu tiên di chuyển tất cả các nốt "thêm" xuống một quãng tám, Đảo ngược thứ hai di chuyển ít hơn một trong số các nốt phụ xuống, v.v.

Menu phụ Polyphony cho biết có bao nhiêu nốt nhạc đang phát cùng một lúc; nếu đa âm là 1 thì khi một nốt bắt đầu, nốt trước đó sẽ bị dừng lại; nếu phức điệu lớn hơn thì một số nốt có thể chồng lên nhau - hãy thử nó với đàn organ của nhà thờ.

Menu Tremolo chỉ định độ sâu của bất kỳ tremolo nào và khoảng thời gian của chu kỳ tremolo. Khoảng thời gian "100" có nghĩa là một chu kỳ mỗi giây. Nếu tay trái đang điều khiển tremolo thì menu phụ Kích thước sẽ bị ẩn.

Menu Vibrato chỉ định kích thước của bất kỳ âm rung nào và khoảng thời gian của chu kỳ rung. Nếu tay trái đang điều khiển rung thì menu phụ Kích thước sẽ bị ẩn.

Chương trình cho phép bạn lưu và tải lên đến 5 "Thiết lập" khác nhau. Cài đặt lưu trữ tất cả các giá trị bạn có thể đặt trong menu. Khi bạn thoát khỏi chế độ Menu, thiết lập hiện tại sẽ được lưu. Các thiết lập được lưu vào EEPROM.

Trong chế độ Phát, nhấp vào nút sẽ thay đổi thiết lập tiếp theo. Nếu bạn giữ nút trong một giây, menu sẽ xuất hiện. Nhấn bàn đạp chân cũng thay đổi đối với thiết lập tiếp theo; bàn đạp chân không bao giờ chọn menu.

Trong chế độ Liên tục, cây menu là

  • Dụng cụ

    • 0: Đại dương cầm
    • Trao đổi tay: bình thường
  • Tay phải

    Chế độ: liên tục

  • Phạm vi

    • Num nửa cung: 12
    • Nốt giữa: 60 C
  • Tay trái

    • Chế độ: Tremolo
    • Độ sâu tối đa: 10
  • Tremolo

    • Kích thước: 20
    • Thời gian: 10
  • Vibrato

    • Kích thước: 20
    • Tiết 10

Menu Phạm vi chọn phạm vi tần số mà bên phải chỉ định: số lượng nửa cung được bao phủ và nốt giữa.

Tay trái chỉ có thể điều khiển "Âm lượng", "Tremolo" và "Vibrato".

Bước 5: Hàn nó lại với nhau

Hàn nó với nhau
Hàn nó với nhau
Hàn nó với nhau
Hàn nó với nhau
Hàn nó với nhau
Hàn nó với nhau

Tôi đã xây dựng mạch trên bảng dải. Tôi không thể thấy điểm của việc nhận được một PCB được sản xuất một lần chỉ với 4 điện trở nhưng tôi nhận ra rằng một số người không thích dải bảng.

Bố cục bảng xếp hạng của tôi được hiển thị ở trên. Bốn bảng - Arduino, VS1053, màn hình và bảng dải - tạo thành một chiếc bánh sandwich. Trong bố cục, đường viền của Arduino có màu vàng, VS1053 có màu xanh lam, màn hình hiển thị màu xanh lá cây và bảng dải màu cam.

Các đường màu lục lam là các dải đồng của bảng dải - hãy đảm bảo bạn đặt các dấu ngắt ở những nơi cần thiết. Các đường màu đỏ là các liên kết trên mặt thành phần của bảng dải hoặc các dây đi nơi khác.

Tôi đã sử dụng các chân dài thêm cho bảng VS1053 vì nó đứng phía trên Arduino. Các ghim ở các góc xa của màn hình và bo mạch VS1053 giúp ổn định chúng. Các lỗ gắn kết của các mô-đun được mạ để bạn có thể hàn chúng. Hãy chắc chắn rằng của bạn không được kết nối với đất - các lỗ gắn kết của các mô-đun của tôi không.

Nếu bạn có mô-đun VS1053 khác hoặc màn hình khác, bạn có thể thay đổi các chân Arduino:

  • D2 đến D10 và A0 đến A5 có thể được sử dụng theo bất kỳ thứ tự nào bạn thích; cập nhật các số pin gần đầu của bản phác thảo INO
  • D11, D12, D13 dành riêng cho SPI và không thể gán lại
  • D0, D1 dành riêng cho I / O nối tiếp
  • A6, A7 không thể được sử dụng làm chân kỹ thuật số

Các mô-đun HC-SR04 nằm ở góc 90 ° với nhau được kết nối bằng một miếng bìa cứng. Nút bấm nằm giữa chúng. Không nghi ngờ gì nữa, bạn sẽ có thiết kế ưa thích của riêng mình.

Nếu bạn quyết định sử dụng bàn đạp chân, hãy kết nối nó qua ổ cắm giắc cắm.

Bước 6: Thêm PSU

Thêm một PSU
Thêm một PSU
Thêm một PSU
Thêm một PSU
Thêm một PSU
Thêm một PSU

Tôi đã đo tổng dòng điện của Arduino, VS1053 và hiển thị là 79mA. Theo bảng dữ liệu, Arduino là 20mA, màn hình hiển thị là 25mA, VS1053 là 11mA và HC-SR04 là 15mA mỗi khi "làm việc" - vì vậy 80mA có vẻ đúng.

Màn hình sử dụng 25mA và được cấp nguồn từ đầu ra 3V3 của Arduino được đánh giá là cung cấp 50mA. Vì vậy, mạch không nên gây căng thẳng cho bộ điều chỉnh 3V3 của Arduino.

Chúng ta có thể cấp nguồn cho mạch thông qua chân Vin của Arduino không? Tôi không thể tìm thấy câu trả lời cho điều đó ở bất cứ đâu trên web. Nó không có trong tài liệu Arduino. Bộ điều chỉnh 5V trên bo mạch sẽ tiêu tán (Vin-5) * 80 mW. Độ tiêu tán tối đa của nó là bao nhiêu? Có vẻ như không ai thực sự biết. Theo bảng dữ liệu của nó, bộ điều chỉnh NCP1117 trong gói SOT-223 với miếng đồng tối thiểu có thể tiêu hao 650mW. Vì vậy, đối với dòng điện 80mA,

  • Vin Power
  • 8V 240mW
  • 9 320
  • 10 400
  • 11 480
  • 12 560
  • 13 640
  • 14 720

Để an toàn, tôi cho rằng chúng ta không nên vượt quá 9V trên Vin.

PSU 5V bên ngoài sẽ an toàn hơn nhiều nhưng tôi đã sử dụng bộ điều chỉnh của Arduino và nó ổn.

Để cấp nguồn cho mạch, tôi đã chọn một mô-đun kết hợp bộ sạc LI-ion và một PSU tăng áp. Chúng được phổ biến rộng rãi trên eBay hoặc tìm kiếm "Li Charger Boost".

Bộ sạc sử dụng chip TC4056 có thuật toán dòng điện ổn định và điện áp không đổi phức tạp. Khi bạn tháo đầu vào nguồn USB, thiết bị sẽ chuyển sang chế độ chờ với mức tiêu hao pin dưới 2uA. TC4056 có một đầu vào để cảm biến nhiệt độ nhưng nó không có sẵn trên bảng mô-đun (chân nối đất).

Mạch tăng cường được cho là có hiệu suất 87-91% so với dải điện áp pin thông thường với dòng ra 50-300mA. (Tôi đã không tự mình đo lường nó.) Điều đó khá tốt.

Tuy nhiên, dòng "chờ" của nó khi bạn bỏ tải là 0,3mA là kém. Một tế bào 300mAH sẽ được rút hết trong 6 tuần. Có lẽ nó sẽ bị rút cạn cho đến nay điện áp của nó sẽ giảm xuống mức gây hại.

Có một rãnh duy nhất kết nối pin với PSU tăng cường. Bạn có thể cắt đoạn nhạc một cách dễ dàng (xem ảnh). Hàn một dây vào điện trở lớn ở trên cùng để bạn có thể nối vết cắt qua một công tắc.

Dòng điện được rút ra bây giờ là 0,7uA với bảng tôi đã thử nghiệm. Vì vậy, tế bào sẽ tồn tại được 50 năm - dĩ nhiên là không, lượng tự thải của tế bào Li-ion là khoảng 3% mỗi tháng. 3% mỗi tháng cho một tế bào 300mAH là dòng điện 13uA. So sánh với 300uA mà mạch tăng cường có. Tôi nghĩ rằng nó đáng để tắt mạch tăng cường.

Bạn không nên bật tải khi pin đang sạc. Dòng điện do tải rút ra sẽ gây nhầm lẫn trong thuật toán tính phí.

Vì vậy, bạn cần một công tắc chuyển đổi 2 cực (ví dụ: công tắc trượt) ở vị trí "Bật" hoặc "Sạc".

Bạn có thể bỏ qua ổ cắm USB tích hợp và hàn các dây riêng biệt với công tắc và ổ cắm USB của riêng bạn.

Hoặc bạn có thể giữ ổ cắm gắn sẵn và cắt kết nối giữa ổ cắm và chip. Sơ đồ trên cho thấy nơi cần cắt.

Kết nối đầu ra 5V của PSU tăng cường với chân 5V của Arduino. Mọi người nói "đừng làm điều đó - bạn đang vượt qua diode bảo vệ của Arduino". Nhưng Nano không có chốt kết nối với mặt USB của diode. Chỉ cần kết nối với chân 5V. Điều tồi tệ nhất có thể xảy ra là gì? Bạn mất một Nano có giá dưới £ 3.

Mạch PSU cũng phải cấp nguồn cho bộ khuếch đại cho loa.

Bước 7: Thêm loa

Thêm loa
Thêm loa

Tôi muốn MIDI Theremin có thể di động được. Nó nên bao gồm loa và bộ khuếch đại của riêng nó.

Bạn có thể chế tạo bộ khuếch đại của riêng mình hoặc mua một mô-đun bộ khuếch đại, sau đó mua loa và đặt chúng trong một hộp đựng. Nhưng vấn đề là gì? Ở trung tâm công nghệ của mình, tôi có nửa tá loa được hỗ trợ mà tôi đã mua từ các cửa hàng từ thiện và các cửa hàng bán ủng cho xe hơi, tất cả đều với giá dưới 1 bảng Anh mỗi chiếc.

Các loa màu xanh nhạt chỉ sử dụng 30mA ở 5V nhưng có phản ứng âm trầm kém. Chiếc radio màu đen có hình dáng đẹp - tôi có thể hình dung việc lắp các mô-đun HC-SR04 ở các góc và màn hình hiển thị ở bề mặt trên cùng. Những chiếc "bảng điều khiển phẳng" màu xám được cấp nguồn từ ổ cắm USB là lý tưởng.

Với một chút tìm kiếm, bạn sẽ tìm thấy loa được hỗ trợ đã có vỏ đẹp. Đảm bảo rằng chúng sẽ chạy ở điện áp của nguồn điện của bạn. Nếu nó được cung cấp bởi bốn tế bào AA, nó có thể sẽ hoạt động OK ở 5V.

Nhưng tôi đã đào sâu hơn vào techno-midden và tìm thấy một đế cắm rất đẹp mà tôi có tại một quầy hàng "mọi thứ với giá 0,50 bảng Anh". Nó đã bị mất bộ sạc và điều khiển từ xa IR nhưng hoạt động tốt.

Nếu bạn quyết tâm xây dựng loa có công suất của riêng mình, thì đây là một tài liệu hướng dẫn hữu ích. Hoặc tìm kiếm Sách hướng dẫn cho PAM8403 hoặc Bộ khuếch đại.

Bước 8: Trạm lắp

Trạm đế
Trạm đế
Trạm đế
Trạm đế
Trạm đế
Trạm đế
Trạm đế
Trạm đế

Đây là một đế cắm di động Logitech rất đẹp. Không chắc bạn sẽ nhận được một cái giống nhau nhưng các nguyên tắc xây dựng sẽ giống nhau.

Đế cắm bao gồm tế bào Li-ion có thể sạc lại của riêng nó và PSU tăng cường. (Nếu bạn không có thì hãy xây dựng PSU được mô tả ở trên và bỏ qua một vài đoạn tiếp theo.)

Nếu amp của bạn có tế bào Li-ion thì nó có thể có PSU tăng cường. (Điện áp của một tế bào Li-ion thấp một cách bất tiện nên cần phải tăng cường.)

Đầu tiên, tìm các kết nối cho nguồn điện với bộ khuếch đại. PSU sẽ có các tụ điện làm mịn lớn - xem ảnh của PCB rác. Đo điện áp tại miếng hàn của chúng ở mặt dưới. Đệm âm phải là đệm "đất" của mạch. Nếu pcb đã bị ngập lụt sẽ được nối đất. Hoặc mặt đất có thể là một đường dày đi đến nhiều vị trí trên bàn cờ.

Có thể có các tụ điện lớn trên tầng đầu ra của amp - đó là cách làm cũ. Đo điện áp trên chúng trong khi nó hoạt động. Nó có thể sẽ thay đổi theo nhạc và có thể trung bình bằng một nửa điện áp của tụ điện cung cấp điện. Đó là những tụ điện sai - bạn muốn có những tụ điện trong PSU.

Rất ít khả năng bo mạch sẽ có cả công suất âm và dương (bộ khuếch đại công suất âm thanh nổi lớn thì có nhưng tôi chưa bao giờ thấy một cái nào nhẹ như vậy). Hãy chắc chắn rằng bạn thực sự đã chọn mặt bằng và sức mạnh tích cực.

Trạm nối Logitech mà tôi đang sử dụng có mạch kỹ thuật số phức tạp cũng như bộ khuếch đại tương tự. Nếu của bạn là như vậy, nó sẽ có tụ làm mịn cho 5V hoặc 3.3V cộng với có thể là 9V cho amp. Đo hiệu điện thế trên tất cả các tụ điện lớn và chọn hiệu điện thế lớn nhất.

Đảm bảo rằng điện áp của kết nối nguồn bạn đã chọn phụ thuộc vào công tắc bật / tắt. (Khi bạn tắt công tắc, điện áp có thể giảm một lúc khi tụ điện hết.)

Hàn dây với bất cứ thứ gì bạn đã chọn làm nguồn điện. Trạm nối Logitech tạo ra xung quanh 9V sẽ kết nối độc đáo với chân Vin của Arduino.

Loa hoặc đế cắm được cấp nguồn của bạn phải có giắc cắm 3,5 mm để đầu vào âm thanh. Một trong các mối hàn sẽ được mài - có thể là mối nối gần mép bảng nhất. Sử dụng ohm-mét để kiểm tra xem nó có kết nối với mặt đất mà bạn cho là không. Với một số đầu vào âm thanh, "lá chắn" của giắc cắm không được kết nối trực tiếp với đất. Nó đang trôi. Vì vậy, nếu không có chân giắc cắm nào được nối đất, đừng lo lắng vào lúc này. ("Tấm chắn" của giắc cắm trên mô-đun VS1053 cũng nổi.)

Sử dụng đồng hồ để kiểm tra xem chân "nối đất" của giắc cắm có cùng điện áp với mặt đất của nguồn điện hay không.

Trạm nối Logitech thật kỳ lạ. Nếu tôi kết nối "mặt đất" của ổ cắm giắc cắm Logitech với "mặt đất" của bảng VS1053 (bằng cách sử dụng cáp âm thanh, nó hoạt động tốt nhưng dòng điện đến hệ thống Theremin của tôi đã tăng từ 80mA lên hơn 200mA. Vì vậy, tôi đảm bảo Tôi đã không kết nối hai "căn cứ" đó. Nó hoạt động tốt nhưng tôi không biết chuyện gì đang xảy ra.

Bước 9: Làm một trường hợp

Làm một trường hợp
Làm một trường hợp
Làm một trường hợp
Làm một trường hợp
Làm một trường hợp
Làm một trường hợp
Làm một trường hợp
Làm một trường hợp

Trường hợp bạn làm sẽ phụ thuộc vào vật liệu bạn có trong tay, những gì bạn thích làm việc với và loa được hỗ trợ mà bạn đã chọn. Dù bạn làm gì cũng nên đảm bảo rằng các sonars hướng ra xa nhau và hướng lên 45 °. Sau đó sẽ có màn hình hiển thị và nút bấm.

Nếu bạn đã xem các Instuctables khác của tôi, bạn sẽ biết rằng tôi là một fan hâm mộ lớn của sắt tây. Nó có thể được uốn cong để tạo hình, hàn mềm và sơn. Những bức ảnh cho thấy tôi đã sắp xếp mọi thứ như thế nào.

Hình tam giác trên cùng là sắt tây uốn cong, hàn, lấp đầy, làm nhẵn và sơn. Các pcb được dán nóng trong hình tam giác và có các mảnh gỗ nhỏ để hoạt động như miếng đệm lót.

"Mặt trước" là tấm polystyrene 1mm. Các tấm bìa cứng được làm từ nhiều tấm polystyrene hơn và các vít tự khai thác giữ tấm bảng ở vị trí cố định. Giá đỡ bằng gỗ được dán nóng vào khoang ở phía trước của đế cắm và các tấm ván được vặn vào chúng bằng các vít tự khai thác dài.

Tôi đoán tôi có thể in 3D thứ gì đó nhưng tôi thích các phương pháp cũ hơn, nơi tôi có thể điều chỉnh mọi thứ khi tôi tiếp tục. Tạo ra mọi thứ là một hành trình khám phá chứ không phải là "kỹ thuật".

Bước 10: Phát triển trong tương lai

Sự phát triển tương lai
Sự phát triển tương lai

Làm thế nào bạn có thể phát triển nhạc cụ hơn nữa? Bạn có thể thay đổi giao diện người dùng. Bạn có thể thay thế nút bằng cảm biến khoảng cách IR để không phải chạm vào thiết bị. Hoặc có thể sử dụng màn hình cảm ứng thay vì nút và bên tay trái để điều khiển menu.

Menu Scale cho phép bạn chọn các thang âm "không phải âm nhạc phương Tây" nhưng nó giả định tất cả các nốt đều từ bàn phím được làm đều - đó là cách MIDI hoạt động. Thang âm phần tư Ả Rập có các nốt không nằm trên thang âm đều. Các thang âm khác không liên quan đến bàn phím nóng đều theo bất kỳ cách nào. Có thể sử dụng cách uốn cong cao độ để tạo ra các nốt như vậy. Bạn sẽ cần một số cách để menu chỉ định tần suất của mỗi nốt nhạc. Tôi nghĩ rằng độ cong cao độ có thể áp dụng cho tất cả các nốt trong kênh. Tôi hiện chỉ sử dụng một kênh - kênh 0. Vì vậy, nếu nó đa âm hoặc có hợp âm, bạn sẽ phải chơi từng nốt trong một kênh khác nhau.

Nhạc cụ có thể trở thành một bộ tổng hợp trống. Tay trái có thể xác định cao độ của Melodic Tom trong khi sonar bên phải được thay thế bằng cảm biến piezo mà bạn nhấn để phát ra tiếng trống.

Hai tay có thể điều khiển hai nhạc cụ khác nhau.

Tay trái có thể chọn một nhạc cụ.

Khoảng nửa chặng đường của dự án này, tôi đã khám phá ra Bộ điều khiển MIDI Altura MkII Theremin của Zeppelin Design Labs. Nó trông giống như một nhạc cụ tốt.

Họ có một vài video rất đáng xem:

(Tôi đã lấy cắp từ "thùng" từ Altura và ý tưởng rằng thùng sẽ mở rộng khi bạn nhập nó để giúp bạn ở trong đó.)

MIDI Theremin của tôi khác với Altura ở một số điểm. Của tôi tạo ra âm thanh của riêng mình với bộ tổng hợp MIDI, amp, v.v.; Altura gửi tin nhắn đến một hệ thống tổng hợp bên ngoài. Bạn có thể thích cách làm của họ hơn. Của tôi có màn hình TFT hơn là màn hình 7 đoạn - điều đó chắc chắn tốt hơn nhưng bạn có thể nghĩ rằng màn hình lớn hơn sẽ là một cải tiến. Của tôi sử dụng các menu để thiết lập các thông số trong khi của chúng sử dụng các nút bấm. Thực đơn là bắt buộc vì tôi cần rất nhiều điều khiển cho thiết bị đầu vào (sonars) và synth; Altura cần ít điều khiển hơn. Có lẽ các nút bấm tốt hơn trong một buổi biểu diễn trực tiếp. Có lẽ của tôi nên có nút bấm. Một núm để chọn Thiết lập có thể tốt.

Altura có một điều khiển "Articulation" để thiết lập tốc độ phát các nốt nhạc. Tôi chưa đưa nó vào phần mềm của mình - có lẽ nó nên ở đó. Altura có một Arpeggiator (bộ tuần tự bước). Đó là một ý kiến hay; của tôi có hợp âm không hoàn toàn giống nhau.

À chính nó đấy. Tôi hy vọng bạn thích xây dựng và sử dụng MIDI-Theremin. Hãy cho tôi biết nếu bạn tìm thấy bất kỳ lỗi nào trong mô tả của tôi hoặc nếu bạn có thể nghĩ ra bất kỳ cải tiến nào.

Đề xuất: