Mục lục:

Synesthesia Player Piano: 4 bước
Synesthesia Player Piano: 4 bước

Video: Synesthesia Player Piano: 4 bước

Video: Synesthesia Player Piano: 4 bước
Video: Billie's Song ('Upright') - Piano Synesthesia Tutorial 2024, Tháng mười một
Anonim
Image
Image
Synesthesia Player Piano
Synesthesia Player Piano
Synesthesia Player Piano
Synesthesia Player Piano

Máy chơi piano này chơi nhạc bằng bánh xe màu và máy ảnh! Hình ảnh được máy ảnh ghi lại, xử lý và diễn giải như các nốt nhạc. Ngay bây giờ, nó được lập trình để chơi các giai điệu thiếu nhi có thể thay đổi bằng cách tải lên một bản phác thảo arduino mới, trong đó chỉ định các nốt nhạc nên được phát (Màu sắc nào sẽ được hiển thị trước máy ảnh).

PC chạy hệ điều hành Linux tích hợp bắt đầu một dịch vụ khi khởi động để chụp ảnh bằng máy ảnh, tính toán hàm của các giá trị RGB trong ảnh và phát ra âm thanh dựa trên giá trị trả về của hàm. Trước khi phát âm thanh, nó sẽ gửi tín hiệu yêu cầu Arduino xoay một servo, hiển thị màu sắc tương ứng với nốt nhạc tiếp theo sẽ được phát. Sau đó, vòng lặp lại bắt đầu, một bức ảnh được chụp, bánh xe màu được quay và một âm thanh được phát trong thời gian ngắn.

Dự án này là một cách thú vị để tích hợp âm nhạc, lập trình hệ thống Linux hiện đại, lập trình bộ điều khiển vi mô, vẽ nguệch ngoạc inkscape, cắt laser và tái định hình một số hộp các tông rác.

Tất cả mã và inkscape SVG đều có sẵn trên github tại:

github.com/melvyniandrag/pyMusic

Vật liệu được sử dụng:

  1. Nhãn trắng trống
  2. Thùng các - tông
  3. Webcam
  4. bút chì màu
  5. Arduino
  6. Beagleboard-xM
  7. Dây điện
  8. Cáp nối tiếp
  9. Kiến thức cơ bản về xử lý hình ảnh và âm nhạc

Bước 1: Nội dung máy tính

Nội dung máy tính
Nội dung máy tính
Nội dung máy tính
Nội dung máy tính
Nội dung máy tính
Nội dung máy tính

Trên bo mạch, bạn sẽ cần một máy tính nhỏ có khả năng chạy Linux, chẳng hạn như Raspberry Pi. Tôi đã sử dụng BeagleBoard-xM cũ vì tôi tình cờ đặt nó và tôi đã có hệ điều hành trên thẻ SD. Bạn có thể sử dụng bất cứ thứ gì, miễn là nó có thể xử lý webcam, có thể chạy OpenCV (thư viện thị giác máy tính được sử dụng để chụp và xử lý hình ảnh của bánh xe màu) và có giắc cắm ngõ ra âm thanh.

Tôi thiết lập hệ điều hành để chạy mã python chụp ảnh khi khởi động theo hướng dẫn systemd. Để tập lệnh chạy, bạn sẽ cần sudo apt-get install python-pyaudio python-opencv để nhận các thư viện được chỉ định. Bạn cũng sẽ cần phải cài đặt numpy pyserial để lấy các thư viện đó. pyaudio được sử dụng để phát âm thanh, opencv được sử dụng để chụp và xử lý hình ảnh, numpy cũng được sử dụng để xử lý hình ảnh và pyserial cần thiết để giao tiếp với Arduino.

Arduino được sử dụng để quay động cơ servo có gắn bánh xe màu trên đó. Nếu bạn có Raspberry Pi, bạn có thể sử dụng các chân GPIO trên đó và loại bỏ Arduino, nhưng bạn cần phải sửa đổi mã Python.

Trong các hình ảnh, bạn có thể thấy công nghệ của hoạt động và một vài đoạn mã.

Bước 2: Piano

Đàn piano
Đàn piano
Đàn piano
Đàn piano
Đàn piano
Đàn piano

Tôi làm đàn piano bằng bìa cứng từ một số hộp cũ mà tôi có. Tôi có may mắn được sống gần một không gian sản xuất có máy cắt laser. Trong cả năm, tôi đã tự hỏi cái quái gì muốn có một chiếc máy cắt laser, và hóa ra cuối cùng tôi đã tìm thấy một công dụng cho nó.

Tôi đo máy tính, arduino và servo để biết mình cần bao nhiêu không gian, vẽ các bộ phận của cây đàn piano trong inkscape và cắt chúng ra trên máy cắt laser. (Chỉnh sửa: Tôi đã hết bìa cứng để làm hộp đựng máy tính và arduino, vì vậy tôi đã không đặt chúng vào. Chúng ở bên ngoài hộp đựng. Không thành vấn đề, có thể đã lấy một hộp khác từ đâu đó, nhưng nó đã không cuối cùng thì không thành vấn đề.)

Các mảnh được ghép lại với nhau bằng epoxy.

Bước 3: Lắp ráp

cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp
cuộc họp

Dưới đây là một số hình ảnh đàn được lắp ráp và tô màu. Máy in hết mực nên tôi không thể in màu lên nhãn trắng như tôi đã định. Vì vậy, tôi đã sử dụng bút chì màu của con gái tôi. Và tôi không thể tìm thấy một con dao xacto để cắt nhãn theo hình dạng của bìa cứng, vì vậy tôi chỉ sử dụng một con dao bít tết và đặt một cái gì đó bảo vệ trên quầy bếp. Sử dụng những gì bạn có!

Bước 4: Thách thức kỹ thuật và cân nhắc trong tương lai

Những thách thức kỹ thuật và những cân nhắc trong tương lai
Những thách thức kỹ thuật và những cân nhắc trong tương lai
Những thách thức kỹ thuật và những cân nhắc trong tương lai
Những thách thức kỹ thuật và những cân nhắc trong tương lai

Một phần thách thức của dự án này là nhận được các giá trị RGB thích hợp để máy ảnh đọc được. Webcam tôi có có một số đèn LED cực sáng trên đó mà tôi không biết làm thế nào để tắt trong Linux. Tôi nghĩ rằng có một trình điều khiển Windows cho phép bạn bật và tắt chúng. Tôi đã thử nghiệm với việc dán các đèn LED bằng băng dính điện và để chúng bật sáng. Tôi cũng đã kiểm tra độ bền của phần mềm bằng cách không chỉ cho nó xem giấy màu mà còn viết một trang web nhỏ hiển thị màu sắc.

Những âm thanh do máy tính tạo ra đôi khi có tiếng nổ và lách tách, và điều này xuất phát từ thực tế là tôi có rất ít kinh nghiệm về lập trình âm thanh Linux. Thư viện pyaudio đưa ra hàng loạt lời phàn nàn về việc JACK không được cài đặt trên PC, nhưng theo mặc định JACK không muốn chạy không cần thiết (không có máy tính để bàn gui và màn hình). Đây là một nhiệm vụ lập trình mà tôi nghĩ là một sự cải tiến, nhưng không cần thiết để thể hiện bản chất của cây đàn piano cơ mà tôi có trong đầu.

Tôi đã cân nhắc việc sử dụng một tay quay để thay đổi màu sắc, và có lẽ để chúng trên một loại ghim lăn, nhưng điều đó tạo ra những phức tạp riêng của nó. Servo có một chút ồn ào, nhưng hiện hoạt động tốt.

Đàn piano cơ hiện chỉ được lập trình để chơi 4 nốt. Điều này là do servo chỉ di chuyển 180 độ, hầu hết các bài hát thiếu nhi chỉ có thể chơi với 3-4 nốt nhạc và tôi không muốn bánh xe màu lộn xộn với các vùng màu, có thể gây nhầm lẫn cho máy ảnh. Vì vậy, thông qua sự kết hợp của may mắn âm nhạc và hạn chế kỹ thuật, 4 nốt là ổn.

Đề xuất: