Mục lục:
- Bước 1: Thành phần
- Bước 2: Kết nối Cảm biến siêu âm với Bo mạch Octasonic
- Bước 3: Kết nối Bộ chuyển đổi mức logic với Bảng Octasonic
- Bước 4: Kết nối Bộ chuyển đổi cấp độ logic với Raspberry Pi
- Bước 5: Kết nối Raspberry Pi 5V với Octasonic 5V
- Bước 6: Cài đặt phần mềm
- Bước 7: Tạo một số bản nhạc
- Bước 8: Điều khiển bằng cử chỉ
- Bước 9: Làm bao vây
- Bước 10: Khắc phục sự cố và các bước tiếp theo
Video: Piano Pi siêu âm với điều khiển bằng cử chỉ!: 10 bước (có hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Dự án này sử dụng cảm biến siêu âm HC-SR04 rẻ tiền làm đầu vào và tạo các nốt MIDI có thể được phát qua bộ tổng hợp trên Raspberry Pi để có âm thanh chất lượng cao.
Dự án cũng sử dụng một hình thức điều khiển cử chỉ cơ bản, trong đó nhạc cụ có thể được thay đổi bằng cách giữ tay của bạn trên hai cảm biến ngoài cùng trong vài giây. Một cử chỉ khác có thể được sử dụng để tắt Raspberry Pi sau khi bạn hoàn tất.
Video trên cho thấy sản phẩm hoàn chỉnh trong một bao vây được cắt bằng laser đơn giản. Có một video chuyên sâu hơn sau trong hướng dẫn này giải thích cách hoạt động của dự án.
Tôi đã tạo dự án này cùng với The Gizmo Dojo (không gian nhà sản xuất địa phương của tôi ở Broomfield, CO) để thực hiện một số cuộc triển lãm tương tác mà chúng tôi có thể tham gia các sự kiện STEM / STEAM địa phương và Maker Faires.
Vui lòng xem tài liệu và hướng dẫn mới nhất tại https://theotherandygrove.com/octasonic/ hiện bao gồm thông tin về phiên bản Python của dự án này (hướng dẫn này được viết cho phiên bản Rust).
Bước 1: Thành phần
Đối với hướng dẫn này, bạn sẽ cần các thành phần sau:
- Raspberry Pi (2 hoặc 3) với thẻ SD
- 8 cảm biến siêu âm HC-SR04
- Bảng đột phá Octasonic
- Bộ chuyển đổi mức logic hai hướng
- 32 x 12 "Dây Jumper Nữ-Nữ để kết nối các cảm biến siêu âm
- Dây Jumper Nữ-Nữ 13 x 6 "để kết nối Bộ chuyển đổi mức độ logic Raspberry Pi, Octasonic và Logic
- Nguồn điện phù hợp cho Raspberry Pi
- Loa PC hoặc tương tự
Tôi khuyên bạn nên sử dụng Raspberry Pi 3 nếu có thể vì nó có sức mạnh tính toán cao hơn, mang lại âm thanh dễ chịu và nhạy hơn. Nó có thể hoạt động tốt với Raspberry Pi 2 với một chút tinh chỉnh nhưng tôi sẽ không cố gắng sử dụng Raspberry Pi gốc cho dự án này.
Cảm biến siêu âm HC-SR04 có 4 kết nối - 5V, GND, Trigger và Echo. Thông thường, Trigger và Echo được kết nối với các chân riêng biệt trên vi điều khiển hoặc Raspberry Pi nhưng điều đó có nghĩa là bạn sẽ cần sử dụng 16 chân để kết nối 8 cảm biến và điều này không thực tế. Đây là nơi xuất hiện của bảng đột phá Octasonic. Bảng này kết nối với tất cả các cảm biến và có một bộ vi điều khiển chuyên dụng giám sát các cảm biến và sau đó giao tiếp với Raspberry Pi qua SPI.
HC-SR04 yêu cầu 5V và Raspberry Pi chỉ là 3,3V, vì vậy đây là lý do tại sao chúng ta cũng cần bộ chuyển đổi mức logic sẽ kết nối Raspberry Pi với bảng đột phá Octasonic.
Bước 2: Kết nối Cảm biến siêu âm với Bo mạch Octasonic
Sử dụng 4 dây jumper cái-cái để kết nối mỗi cảm biến siêu âm với bo mạch, hãy cẩn thận để kết nối chúng đúng cách xung quanh. Bo mạch được thiết kế để các chân có thứ tự giống như các chân trên cảm biến siêu âm. Từ trái sang phải trên bo mạch, các chân là GND, Trigger, Echo, 5V.
Bước 3: Kết nối Bộ chuyển đổi mức logic với Bảng Octasonic
Raspberry Pi và Octasonic Board giao tiếp qua SPI. SPI sử dụng 4 dây:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Đồng hồ nối tiếp (SCK)
- Lựa chọn nô lệ (SS)
Ngoài ra, chúng ta cần kết nối nguồn (5V và GND).
Bộ chuyển đổi mức logic có hai mặt - điện áp thấp (LV) và điện áp cao (HV). Raspberry sẽ kết nối với phía LV vì nó là 3,3V. Octasonic sẽ kết nối với phía HV vì nó là 5V.
Bước này là để kết nối Octasonic với phía HV của bộ chuyển đổi mức logic
Xem ảnh đính kèm ở bước này cho biết chân nào nên được kết nối với bộ chuyển đổi mức logic.
Các kết nối từ Octasonic đến bộ chuyển đổi Mức Logic phải như sau:
- 5V đến HV
- SCK sang HV4
- MISO sang HV3
- MOSI sang HV2
- SS sang HV1
- GND sang GND
Bước 4: Kết nối Bộ chuyển đổi cấp độ logic với Raspberry Pi
Raspberry Pi và Octasonic Board giao tiếp qua SPI. SPI sử dụng 4 dây:
- Master In, Slave Out (MISO)
- Master Out, Slave In (MOSI)
- Đồng hồ nối tiếp (SCK)
- Lựa chọn nô lệ (SS)
Ngoài ra, chúng ta cần kết nối nguồn (3.3V và GND). Bộ chuyển đổi mức logic có hai mặt - điện áp thấp (LV) và điện áp cao (HV). Raspberry sẽ kết nối với phía LV vì nó là 3,3V. Octasonic sẽ kết nối với phía HV vì nó là 5V.
Bước này là để kết nối Raspberry Pi với phía LV của bộ chuyển đổi mức logic
Các kết nối từ Raspbery Pi đến bộ chuyển đổi Mức logic phải như sau:
- 3.3V sang LV
- GPIO11 (SPI_SCLK) đến LV4
- GPIO09 (SPI_MISO) đến LV3
- GPIO10 (SPI_MOSI) đến LV2
- GPIO08 (SPI_CE0_N) SS đến LV1
- GND sang GND
Sử dụng sơ đồ kèm theo bước này để xác định vị trí các chân chính xác trên Raspberry Pi!
Bước 5: Kết nối Raspberry Pi 5V với Octasonic 5V
Có một dây cuối cùng để thêm vào. Chúng tôi thực sự cần cấp nguồn cho bo mạch Octasonic với 5V, vì vậy chúng tôi thực hiện điều đó bằng cách kết nối một trong các chân 5V của Raspberry Pi với chân 5V trên đầu cắm Octasonic AVR. Đây là chân dưới cùng bên trái trong khối tiêu đề AVR (đây là khối 2 x 3 ở trên cùng bên phải của bảng). Xem ảnh đính kèm cho biết vị trí của khối AVR.
Xem sơ đồ đính kèm khác để tìm chân 5V trên Raspberry Pi.
Bước 6: Cài đặt phần mềm
Cài đặt Raspian
Bắt đầu với một bản cài đặt mới Raspbian Jessie, sau đó cập nhật nó lên phiên bản mới nhất:
sudo apt-get cập nhật
sudo apt-get nâng cấp
Bật SPI
Bạn phải kích hoạt SPI trên Raspberry Pi để dự án này hoạt động! Sử dụng tiện ích Cấu hình Raspberry Pi để thực hiện việc này.
Điều quan trọng là phải khởi động lại Pi sau khi bật SPI để nó có hiệu lực
Cài đặt FluidSynth
Fluidsynth là một phần mềm MIDI synth miễn phí tuyệt vời. Bạn có thể cài đặt nó từ dòng lệnh bằng lệnh này:
sudo apt-get install Fluynth
Cài đặt ngôn ngữ lập trình Rust
Ultrasonic Pi Piano được triển khai bằng Ngôn ngữ lập trình Rust của Mozilla (nó giống như C ++ nhưng không có các bit xấu). Đó là thứ mà tất cả những đứa trẻ sành điệu đang sử dụng ngày nay.
Làm theo hướng dẫn tại https://rustup.rs/ để cài đặt Rust. Để tiết kiệm thời gian cho bạn, hướng dẫn là chạy một lệnh này. Bạn có thể chấp nhận câu trả lời mặc định cho bất kỳ câu hỏi nào trong quá trình cài đặt.
LƯU Ý: Kể từ khi đăng bài hướng dẫn này, có một số vấn đề với việc cài đặt Rust trên Raspberry Pi. Thời gian không hợp lệ: - / nhưng tôi đã sửa đổi lệnh bên dưới để giải quyết vấn đề. Hy vọng rằng họ sẽ sớm sửa lỗi này. Tôi đang làm việc để tạo ra một hình ảnh mà mọi người có thể tải xuống và ghi vào thẻ SD. Nếu bạn muốn điều đó, xin vui lòng liên hệ với tôi.
xuất RUSTUP_USE_HYPER = 1curl https://sh.rustup.rs -sSf | NS
Tải xuống mã nguồn Ultrasonic Pi Piano
Mã nguồn của mã nguồn Ultrasonic Pi Piano được lưu trữ trên github. Có hai tùy chọn để lấy mã. Nếu bạn đã quen với git và github, bạn có thể sao chép repo:
git clone [email protected]: TheGizmoDojo / UltrasonicPiPiano.git
Ngoài ra, bạn có thể tải xuống tệp zip có mã mới nhất.
Biên dịch mã nguồn
cd UltrasonicPiPiano
đóng hàng - làm ơn
Kiểm tra mã
Trước khi chuyển sang tạo nhạc ở bước tiếp theo, hãy đảm bảo rằng phần mềm chạy và chúng ta có thể đọc dữ liệu hợp lệ từ các cảm biến.
Sử dụng lệnh sau để chạy ứng dụng. Thao tác này sẽ đọc dữ liệu từ các cảm biến và dịch chúng thành các ghi chú MIDI sau đó được in ra trên bảng điều khiển. Khi bạn di chuyển bàn tay của mình trên các cảm biến, bạn sẽ thấy dữ liệu được tạo ra. Nếu không, hãy chuyển đến phần khắc phục sự cố ở cuối hướng dẫn này.
vận chuyển hàng hóa - xin vui lòng
Nếu bạn tò mò, cờ "--release" cho Rust biên dịch mã hiệu quả nhất có thể, trái ngược với cài đặt "--debug" mặc định.
Bước 7: Tạo một số bản nhạc
Đảm bảo rằng bạn vẫn ở trong thư mục mà bạn đã tải xuống mã nguồn và chạy lệnh sau.
Tập lệnh "run.sh" này đảm bảo rằng mã đã được biên dịch và sau đó chạy mã, chuyển đầu ra thành chất lỏng.
./run.sh
Đảm bảo rằng bạn đã kết nối loa khuếch đại với giắc cắm âm thanh 3,5 mm trên Raspberry Pi và bạn sẽ nghe thấy nhạc khi di chuyển tay qua các cảm biến.
Nếu bạn không nghe thấy nhạc và bạn có gắn màn hình HDMI, thì đầu ra âm thanh có thể sẽ ở đó. Để khắc phục điều này, chỉ cần chạy lệnh này và sau đó khởi động lại Pi Piano:
sudo amixer cset numid = 3 1
Thay đổi âm lượng
Âm lượng (hoặc "độ lợi") được chỉ định với tham số "-g" thành chất lỏng. Bạn có thể sửa đổi tập lệnh run.sh và thay đổi giá trị này. Xin lưu ý rằng những thay đổi nhỏ trong thông số này dẫn đến thay đổi lớn về khối lượng, vì vậy hãy thử tăng nó lên một lượng nhỏ (như 0,1 hoặc 0,2).
Bước 8: Điều khiển bằng cử chỉ
Xem video được đính kèm với bước này để biết minh họa đầy đủ về dự án, bao gồm cả cách hoạt động của các điều khiển cử chỉ.
Khái niệm này là rất đơn giản. Phần mềm theo dõi cảm biến nào được che phủ (trong vòng 10cm) và cảm biến nào không. Điều này chuyển thành 8 số nhị phân (1 hoặc 0). Điều này rất thuận tiện, vì một chuỗi 8 số nhị phân tạo thành một "byte" có thể đại diện cho các số từ 0 đến 255. Nếu bạn chưa biết về số nhị phân thì tôi thực sự khuyên bạn nên tìm kiếm một hướng dẫn. Số nhị phân là một kỹ năng cơ bản cần học nếu bạn muốn học thêm về lập trình.
Phần mềm ánh xạ trạng thái hiện tại của các cảm biến thành một byte duy nhất đại diện cho cử chỉ hiện tại. Nếu số đó giữ nguyên trong một số chu kỳ, thì phần mềm sẽ hoạt động theo cử chỉ đó.
Bởi vì cảm biến siêu âm không phải là siêu đáng tin cậy và có thể có sự can thiệp giữa các cảm biến, bạn sẽ cần kiên nhẫn khi sử dụng các cử chỉ. Thử thay đổi khoảng cách mà bạn nắm tay từ các cảm biến cũng như góc mà bạn cầm tay. Bạn cũng nên thử cầm vật gì đó bằng phẳng và chắc chắn trên các cảm biến để phản xạ âm thanh tốt hơn.
Bước 9: Làm bao vây
Nếu bạn muốn biến nó thành một cuộc triển lãm lâu dài và có thể giới thiệu nó với mọi người, có thể bạn sẽ muốn làm một loại bao vây nào đó. Điều này có thể được làm từ gỗ, bìa cứng hoặc nhiều vật liệu khác. Đây là một video cho thấy bao vây mà chúng tôi đang thực hiện cho dự án này. Cái này được làm từ gỗ, có khoan lỗ để giữ các cảm biến siêu âm tại chỗ.
Bước 10: Khắc phục sự cố và các bước tiếp theo
Xử lý sự cố
Nếu dự án không hoạt động, nó thường là do lỗi dây dẫn. Hãy dành thời gian của bạn để kiểm tra lại tất cả các kết nối.
Một vấn đề phổ biến khác là không thể bật SPI và khởi động lại pi.
Vui lòng truy cập https://theotherandygrove.com/octasonic/ để có tài liệu đầy đủ bao gồm các mẹo khắc phục sự cố, với các bài viết cụ thể về Rust và Python cũng như thông tin về cách nhận hỗ trợ.
Bước tiếp theo
Khi bạn đã có dự án hoạt động, tôi khuyên bạn nên thử nghiệm với mã và thử các loại nhạc cụ khác nhau. Mã công cụ MIDI nằm trong khoảng từ 1 đến 127 và được ghi lại ở đây.
Bạn có muốn một nhạc cụ duy nhất với mỗi cảm biến chơi một quãng tám khác nhau không? Có lẽ bạn muốn mỗi cảm biến là một công cụ riêng biệt? Khả năng gần như là vô hạn!
Tôi hy vọng bạn thích hướng dẫn này. Hãy thích nó nếu bạn đã làm và nhớ đăng ký với tôi tại đây và kênh YouTube của tôi để xem các dự án trong tương lai.
Đề xuất:
Điều khiển bằng cử chỉ đơn giản - Điều khiển đồ chơi RC của bạn bằng chuyển động của cánh tay: 4 bước (có hình ảnh)
Điều khiển bằng cử chỉ đơn giản - Điều khiển đồ chơi RC của bạn bằng chuyển động của cánh tay: Chào mừng bạn đến với 'ible' # 45 của tôi. Cách đây một thời gian, tôi đã tạo một phiên bản RC hoàn chỉnh của BB8 bằng cách sử dụng các phần Lego Star Wars … https://www.instructables.com/id/Whats-Inside-My-R…Khi tôi thấy nó thú vị như thế nào Force Band do Sphero tạo ra, tôi nghĩ: " Ok, tôi c
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Tự làm bộ điều khiển bay điều khiển đa hệ điều khiển Arduino: 7 bước (có hình ảnh)
Tự làm bộ điều khiển máy bay đa năng điều khiển Arduino: Dự án này là tạo ra một bảng logic máy bay không người lái đa năng linh hoạt nhưng tùy chỉnh dựa trên Arduino và Multiwii
Diều hâu: Robot điều khiển bằng cử chỉ bằng tay sử dụng giao diện dựa trên xử lý hình ảnh: 13 bước (có hình ảnh)
Gesture Hawk: Robot điều khiển bằng cử chỉ bằng tay sử dụng giao diện dựa trên xử lý hình ảnh: Gesture Hawk đã được giới thiệu trong TechEvince 4.0 như một giao diện người-máy xử lý hình ảnh đơn giản. Tiện ích của nó nằm ở chỗ không cần thiết bị cảm biến hoặc thiết bị đeo bổ sung nào ngoại trừ một chiếc găng tay để điều khiển chiếc xe robot chạy trên
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu