Raspberry Pi Sound Sensor (Cảm Biến Âm Thanh)

Cảm biến âm thanh có khả năng phát hiện sự hiện diện của âm thanh trong môi trường xung quanh. Nó có thể được sử dụng để tạo các dự án phản ứng với âm thanh, như đèn kích hoạt bằng tiếng vỗ tay hoặc máy cho thú cưng ăn phản ứng với tín hiệu âm thanh.

Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi và cảm biến âm thanh để phát hiện âm thanh. Chúng ta sẽ khám phá:

Sau đó, bạn có thể linh hoạt điều chỉnh code và tùy chỉnh để kích hoạt LED hoặc đèn (sử dụng relay) khi phát hiện âm thanh. Hoặc bạn cũng có thể cấu hình để điều khiển xoay của servo motor.

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×Sound Sensor (Cảm Biến Âm Thanh)
1×dây jumper (Dây Jumper)
1×(Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi
1×(Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit
1×(Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Âm Thanh

Cảm biến âm thanh có thể phát hiện âm thanh trong môi trường xung quanh. Bạn có thể dễ dàng điều chỉnh độ nhạy của cảm biến bằng cách sử dụng biến trở tích hợp sẵn.

Sơ Đồ Chân

Cảm biến âm thanh bao gồm ba chân:

  • Chân VCC: cần được kết nối với VCC (3.3V đến 5V)
  • Chân GND: cần được kết nối với GND (0V)
  • Chân OUT: là chân output: HIGH khi im lặng và LOW khi phát hiện âm thanh. Chân này cần được kết nối với chân input của Raspberry Pi.
cảm biến âm thanh sơ đồ chân
image source: diyables.io

Cảm biến âm thanh có một biến trở tích hợp tiện lợi cho phép bạn điều chỉnh độ nhạy. Ngoài ra, nó có hai đèn LED báo hiệu:

  • Một LED báo trạng thái nguồn điện.
  • LED còn lại báo trạng thái âm thanh, bật khi có âm thanh và tắt khi im lặng.

Nguyên Lý Hoạt Động

Module bao gồm một biến trở tiện lợi cho phép bạn điều chỉnh độ nhạy âm thanh. Đây là cách chân output của cảm biến hoạt động:

  • Khi phát hiện âm thanh, chân output được đặt ở mức LOW.
  • Khi không phát hiện âm thanh, chân output được đặt ở mức HIGH.

Sơ Đồ Đấu Nối

Raspberry Pi cảm biến âm thanh sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình Cho Cảm Biến Âm Thanh

  • Khởi tạo chân Raspberry Pi ở chế độ digital input bằng hàm GPIO.setup().
GPIO.setup(SENSOR_PIN, GPIO.IN)
  • Đọc trạng thái của chân Raspberry Pi bằng hàm GPIO.input().
sound_state = GPIO.input(SENSOR_PIN)

Code Raspberry Pi - Phát Hiện Âm Thanh

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích Raspberry Pi nào khác trên Pi của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
  • Đảm bảo Raspberry Pi của bạn được kết nối internet nếu bạn cần cài đặt một số thư viện.
  • Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, hãy xem Raspberry Pi - Cài Đặt Phần Mềm
  • Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client tích hợp sẵn trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
  • Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, hãy cài đặt bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Tạo file Python script sound_sensor.py và thêm code sau:
# Mã Raspberry Pi này được phát triển bởi newbiely.vn # Mã Raspberry Pi này được cung cấp để sử dụng công khai, không có ràng buộc. # Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: # https://newbiely.vn/tutorials/raspberry-pi/raspberry-pi-sound-sensor import RPi.GPIO as GPIO from time import sleep # Set the Raspberry Pi GPIO pin number where the sound sensor is connected SOUND_SENSOR_PIN = 7 # Set the GPIO mode and configure the sound sensor pin as INPUT GPIO.setmode(GPIO.BCM) GPIO.setup(SOUND_SENSOR_PIN, GPIO.IN) # Initialize the previous state variable with the current state prev_sound_state = GPIO.input(SOUND_SENSOR_PIN) try: while True: # Read the current state of the sound sensor sound_state = GPIO.input(SOUND_SENSOR_PIN) # Check for a state change (LOW to HIGH or HIGH to LOW) if sound_state != prev_sound_state: if sound_state == GPIO.LOW: print("Sound detected!") # Update the previous state variable prev_sound_state = sound_state # Add a small delay to prevent continuous readings sleep(0.1) except KeyboardInterrupt: # Clean up GPIO settings when Ctrl+C is pressed GPIO.cleanup() print("\nExiting the program.")
  • Lưu file và chạy Python script bằng cách thực hiện lệnh sau trong terminal:
python3 sound_sensor.py
  • Vỗ tay trước cảm biến âm thanh
  • Xem kết quả trong Terminal.
PuTTY - Raspberry Pi
Sound detected! Sound detected! Sound detected!

Script chạy trong vòng lặp vô hạn liên tục cho đến khi bạn nhấn Ctrl + C trong terminal.

Hãy lưu ý rằng nếu bạn nhận thấy LED báo trạng thái liên tục bật hoặc tắt, ngay cả khi có âm thanh, bạn có thể cần điều chỉnh biến trở để tinh chỉnh độ nhạy âm thanh của cảm biến.

Bây giờ, chúng ta có thể linh hoạt điều chỉnh code và làm cho nó kích hoạt LED hoặc đèn khi phát hiện âm thanh. Ngoài ra, chúng ta thậm chí có thể lập trình để xoay servo motor. Để biết hướng dẫn chi tiết và thông tin thêm, vui lòng tham khảo các tutorial được cung cấp ở cuối hướng dẫn này.

Khắc Phục Sự Cố

Nếu bạn gặp bất kỳ vấn đề nào với chức năng của cảm biến âm thanh, hãy thử các bước khắc phục sự cố sau:

  • Giảm rung động: Cảm biến âm thanh nhạy cảm với rung động cơ học và tiếng ồn gió. Gắn nó trên bề mặt ổn định có thể giúp giảm thiểu những nhiễu loạn này.
  • Xem xét phạm vi cảm nhận: Hãy nhớ rằng cảm biến âm thanh này có phạm vi cảm nhận hạn chế khoảng 10 inch. Để có được kết quả chính xác, hãy đảm bảo nguồn âm thanh được đặt gần cảm biến hơn.
  • Kiểm tra nguồn điện: Đảm bảo rằng nguồn điện ổn định và không có nhiễu điện. Cảm biến âm thanh, là một mạch analog, có thể bị ảnh hưởng bởi nhiễu loạn nguồn điện.

Bằng cách làm theo các bước này, bạn sẽ có thể giải quyết bất kỳ vấn đề tiềm ẩn nào với cảm biến âm thanh.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tham Khảo Các Hàm

Bình Luận

Bài hướng dẫn liên quan