Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Chào mừng tất cả mọi người, Tôi muốn cho bạn xem Giao diện kỹ thuật số âm nhạc của riêng tôi. Tôi đã thực hiện nó trong thời gian tốt nghiệp kỹ thuật âm thanh của tôi, đây là tài liệu nghiên cứu của tôi. Để bắt đầu, tôi đã hỏi tôi làm thế nào tôi có thể sáng tác nhạc mà không cần DAW, với các nguồn cung cấp tái chế và khả năng chơi độc lập.
Trong phần hướng dẫn này, tôi sẽ dạy bạn cách sử dụng giao tiếp nối tiếp để gửi / nhận thông tin cảm biến (tương tự và kỹ thuật số) từ Arduino đến Raspberry pi theo hướng dữ liệu phần mềm để kích hoạt âm thanh.
Vật liệu được yêu cầu là:
x1 Raspberry PI3
x1 Boîter de bảo vệ PI3
x1 Micro SD (32G)
x1 Arduino UNO
x1 Cảm biến IR Sharp GP2Y0E02B
x1 Breadbord
x1 Máy đo thử nghiệm dạng tấm (0,2)
x28 Kháng 10MΩ
x2 Kháng 1.8kΩ
x1 Điện trở 10kΩ
x20 vấu đầu cuối Nam / Nữ
x1 Chất mang hàn
x1 cuộn dây thiếc (1 mét)
x1 Sắt hàn
x25 Dây đai Flexibles Nam / Nam
Bước 1: Cảm biến
Tôi đã sử dụng 4 áp điện từ điều khiển từ xa Harmonix XBOX 360 của "Guitar Hero". Tôi đã sử dụng nút bật / tắt do công tắc sậy từ của điều khiển từ xa của bàn đạp guitar hero bị kẹt.
Tôi đã sử dụng cảm biến IR Sharp GP2Y0E02B. Đối với tất cả các cảm biến này, tôi đã lắp ráp kéo lên để hoạt động hiệu quả…
Vì vậy, theo kinh nghiệm tôi đã tìm thấy giá trị điện trở đối với cảm biến nút và cảm biến hồng ngoại. Tuy nhiên, tôi đã thử nghiệm áp điện để biết toàn bộ quy mô của cái này và giá trị của điện trở cố định là điều kiện cần và áp dụng cho 4 cảm biến tương tự.
Bước 2: Kéo lên Montage
Sau khi thử nghiệm áp điện với máy phát điện áp, tôi cố định giá trị của điện trở là 7MΩ.
Cụm điện trở nút kéo lên là 10 kΩ.
Đối với cảm biến IR, tôi đã sử dụng hai điện trở 1, 8kΩ giữa điện áp cung cấp tương ứng và SDA (dữ liệu) và SCL (đồng hồ).
Hãy cẩn thận vì các giá trị của điện trở đó dành cho RTX Arduino UNO; một số điều cần biết về đầu vào trở kháng Arduino: 10MΩ.
Bạn có thể thấy phần dựng phim kéo lên trên hình cuối cùng của bước này; Tôi đã cố định dây đeo áp điện ở chân 0 1 2 3 trên UNO, dây đeo nút ở 2 chân kỹ thuật số nhưng giao tiếp giá trị trên chân 6 trên UNO và dây đeo cảm biến IR ở 4 chân 5 trên UNO, tất cả các đầu vào tương tự của Arduino Uno.
Bước 3: Mã Arduino
Để đảm bảo rằng hoạt động có hiệu quả, tôi đã thử nghiệm gửi / nhận thông tin của các cảm biến tới Arduino.
Tôi đặt các tệp trong mô tả nhưng bạn có thể tìm thấy chúng trong phần ví dụ về lập trình Arduino Genuino, ngoại trừ cảm biến IR vì nó chưa hoàn chỉnh, tôi đã thay đổi một số thông tin trong phần "xác định" như "dịch chuyển" và tôi đã thay đổi phép tính đo lường thành thường xuyên. trong các biến thể khoảng cách. Bạn có thể đã thấy "Wire" trong mã cảm biến IR. Thật vậy, tôi đã sử dụng giao thức I2C để giao tiếp, mời bạn xem giao thức I2C, rất thú vị, bạn có thể sử dụng giao thức này để truyền trong thời gian thực tất cả các cảm biến số mà bạn muốn.
Bước 4: Cả giao tiếp nối tiếp Arduino Raspberry
Zê: D
Như bạn có thể thấy trong hình đầu tiên, liên kết Arduino-Raspberry là đầu cắm USB.
Tôi đã tìm thấy một cách để nhận thông tin của cảm biến trực tiếp bằng PureData Extented được cài đặt trong Raspberry PI. Tại sao lại mở rộng PureData? Bởi vì phiên bản Vanilla không sử dụng cùng một thư viện với một ứng dụng trong môi trường Raspbian.
Vì vậy, hãy khởi chạy StandardFirmata trong Arduino Genuino để sửa lỗi I / O và định giá các biến thể theo đúng cách!
Để lấy lại thông tin của giá trị trong Raspberry PI, tồn tại 2 giao thức: Firmata và Msg.
Tôi chọn Firmata vì một lý do, nó đơn giản hơn để nhận thông tin trong PureData thông qua bản vá Pduino, một môi trường.
Tôi mời bạn khám phá Msg nếu bạn sử dụng giao thức OSC.
Bước 5: Đã nhận được bản vá PureData
Thật vậy, sau nhiều tuần viết mã trên Genuino, tôi đã thành công nhận được tất cả thông tin từ cảm biến của mình trong một trang, điều này cho phép thấy các biến thể trong thời gian thực nhờ Pduino, một bản vá trong Puredata, các thư viện phần bổ sung.
Từ bước này, chúng ta không chạm vào mã Arduino nữa. Thông tin của Value có thể đọc được.
Như tôi nhận thấy ở bước 3, tôi nhận được thông tin từ nút kỹ thuật số ở dạng analog 6 chân, thật đơn giản để thấy hoạt động hiệu quả của giao tiếp. Tất cả trong một dòng.
Bước 6: Phát triển PureData
PureData là một ngôn ngữ cụ thể và bạn phải dành thời gian rảnh rỗi để thực hiện thành công việc chắp vá tốt đẹp.
Một số bản vá PureData sẽ có sẵn trong GitHub.
Tôi hy vọng rằng những gì tôi viết ở đây đã giúp bạn bắt đầu dự án của riêng bạn gần với dự án của tôi.