Trong phần này, chúng ta sẽ sử dụng Raspberry Pi và các hàm PYGAME để tạo bảng âm thanh. Nói một cách dễ hiểu, chúng ta sẽ kết nối một vài nút với các chân GPIO của Raspberry Pi và khi các nút này được nhấn, Raspberry Pi sẽ phát các tệp âm thanh được lưu trữ trong bộ nhớ của nó. Các tệp âm thanh này có thể được phát từng tệp một hoặc tất cả chúng có thể được phát cùng nhau. Nói cách khác, bạn có thể nhấn một hoặc nhiều nút cùng lúc, Raspberry Pi sẽ phát một hoặc nhiều tệp âm thanh tương ứng cùng một lúc. Kiểm tra Video giới thiệu ở cuối bài viết này. Ngoài ra, hãy xem Series Hướng dẫn Raspberry Pi của chúng tôi cùng với một số Dự án IoT tốt.
Chúng tôi có 26 chân GPIO trong Raspberry Pi có thể được lập trình, trong đó một số chân được sử dụng để thực hiện một số chức năng đặc biệt và sau đó chúng tôi còn lại 17 chân GPIO. Mỗi chân GPIO có thể phân phối hoặc vẽ tối đa 15mA. Và tổng dòng điện từ tất cả các GPIO không được vượt quá 50mA. Vì vậy, chúng tôi có thể vẽ trung bình tối đa 3mA từ mỗi chân GPIO này. Chúng tôi sẽ sử dụng điện trở để hạn chế dòng điện. Tìm hiểu thêm về Ghim GPIO và nút giao diện với Raspberry Pi tại đây.
Các thành phần bắt buộc:
Ở đây chúng tôi đang sử dụng Raspberry Pi 2 Model B với Hệ điều hành Raspbian Jessie. Tất cả các yêu cầu cơ bản về Phần cứng và Phần mềm đã được thảo luận trước đây, bạn có thể tra cứu nó trong phần Giới thiệu Raspberry Pi và Nhấp nháy đèn LED Raspberry PI để bắt đầu, ngoài những điều chúng tôi cần:
- Raspberry Pi với hệ điều hành được cài đặt sẵn
- Nguồn cấp
- Loa
- Điện trở 1KΩ (6 miếng)
- Nút đẩy (6 miếng)
- Tụ điện 1000uF
Giải thích làm việc:
Ở đây chúng tôi đang Phát âm thanh bằng Nút với Raspberry Pi. Chúng tôi đã sử dụng 6 nút nhấn để phát 6 tệp âm thanh. Chúng ta có thể thêm nhiều nút và tệp âm thanh để mở rộng bảng này để tạo ra các mẫu đẹp hơn bằng cách nhấn các nút này. Trước khi giải thích thêm, hãy hoàn thành các bước bên dưới.
1. Trước hết, hãy tải xuống 6 tệp Âm thanh từ liên kết dưới đây hoặc bạn có thể sử dụng các tệp âm thanh của mình, nhưng sau đó bạn cần thay đổi tên tệp trong Mã.
Tải xuống tệp âm thanh từ đây
2. Tạo một thư mục mới trên màn hình nền Raspberry Pi và đặt tên là “PI SOUND BOARD”.
3. Giải nén các tệp âm thanh đã tải xuống vào thư mục mà chúng tôi đã tạo trên DESKTOP ở bước trước.
4. Mở cửa sổ terminal trong Raspberry Pi và nhập lệnh dưới đây:
sudo amixer cset numid = 3 1
Lệnh này yêu cầu PI cung cấp đầu ra âm thanh thông qua giắc cắm âm thanh 3,5 mm trên bo mạch.
Nếu bạn muốn đầu ra âm thanh từ Cổng HDMI thì bạn có thể sử dụng lệnh dưới đây:
$ sudo amixer cset numid = 3 2
5. Kết nối loa với giắc cắm đầu ra âm thanh 3,5 mm trên bo mạch Raspberry Pi.
6. Tạo tệp PYTHON (đuôi *.py) và lưu trong cùng một thư mục. Kiểm tra hướng dẫn này để tạo và chạy Chương trình Python trong Raspberry Pi.
7. Máy trộn Pygame sẽ được cài đặt theo mặc định trong hệ điều hành. Nếu chương trình, sau khi thực thi, không gọi lại PYMIXER, thì hãy cập nhật hệ điều hành của Raspberry Pi bằng cách nhập lệnh dưới đây vào cửa sổ đầu cuối. Đảm bảo rằng Pi được kết nối với internet.
sudo apt-get cập nhật
Chờ vài phút để hệ điều hành cập nhật.
Bây giờ kết nối mọi thành phần theo sơ đồ mạch được đưa ra bên dưới, Sao chép chương trình PYHTON vào tệp PYHTON được tạo trên màn hình và cuối cùng nhấn run để phát tệp âm thanh thông qua các nút. Chương trình Python được đưa ra ở cuối cùng với Video giới thiệu.
Sơ đồ mạch:
Giải thích lập trình:
Ở đây chúng tôi đã tạo Chương trình Python để phát các tệp âm thanh theo cách nhấn nút. Ở đây chúng ta cần hiểu một số lệnh mà chúng ta đã sử dụng trong chương trình.
nhập RPi.GPIO dưới dạng IO
Chúng tôi sẽ nhập tệp GPIO từ thư viện, lệnh trên cho phép chúng tôi lập trình các chân GPIO của PI. Chúng tôi cũng đang đổi tên “GPIO” thành “IO”, vì vậy trong chương trình bất cứ khi nào chúng tôi muốn đề cập đến các chân GPIO, chúng tôi sẽ sử dụng từ 'IO'.
IO.setwarnings (Sai)
Đôi khi, khi các chân GPIO mà chúng tôi đang cố gắng sử dụng có thể đang thực hiện một số chức năng khác. Sau đó, bạn sẽ nhận được cảnh báo bất cứ khi nào bạn thực hiện một chương trình. Lệnh này yêu cầu Raspberry Pi bỏ qua các cảnh báo và tiếp tục với chương trình.
IO.setmode (IO.BCM)
Ở đây chúng ta sẽ tham khảo các chân i / o của PI theo tên chức năng của chúng. Vì vậy, chúng tôi đang lập trình GPIO theo số pin BCM, cho phép chúng tôi gọi các mã PIN bằng số pin GPIO của chúng. Giống như chúng ta có thể gọi PIN39 là GPIO19 trong chương trình.
nhập pygame.mixer
Chúng tôi đang gọi máy trộn pygame để phát các tệp âm thanh.
audio1 = pygame.mixer.Sound ("buzzer.wav")
Chúng tôi đang kêu gọi tệp âm thanh 'buzzer.wav' được lưu trữ trong thư mục máy tính để bàn. Nếu bạn muốn phát bất kỳ tệp nào khác, chỉ cần thay đổi tên tệp âm thanh trong chức năng đã cho ở trên. Bạn có thể đặt tên cho bất kỳ tệp nào có trong thư mục trên màn hình.
channel1 = pygame.mixer.Channel (1)
Ở đây chúng tôi đang thiết lập kênh cho mỗi nút để chúng tôi có thể phát đồng thời tất cả các tệp âm thanh.
if (IO.input (21) == 0): channel1.play (audio1)
Trong trường hợp, điều kiện trong câu lệnh if là đúng, câu lệnh bên dưới nó sẽ được thực hiện một lần. Vì vậy, nếu chân GPIO 21 xuống thấp hoặc tiếp đất, thì nó sẽ phát tệp âm thanh được gán cho biến audio1 . Theo Sơ đồ mạch, chúng ta có thể thấy rằng chân GPIO 21 ở mức thấp khi chúng ta nhấn nút đầu tiên. Vì vậy, chúng ta có thể phát bất kỳ tệp âm thanh nào bằng cách nhấn nút tương ứng.
while 1: được sử dụng như vòng lặp forever, với lệnh này các câu lệnh bên trong vòng lặp này sẽ được thực thi liên tục.
Bạn có thể thực hiện các thay đổi đối với chương trình python để tạo ra Bảng âm thanh hài lòng nhất với Raspberry Pi. Bạn thậm chí có thể thêm nhiều nút hơn để làm cho mọi thứ thú vị hơn và phát nhiều tệp âm thanh hơn.