Raspberry Pi Cảm Biến Phát Hiện Vật Cản

Hướng dẫn này sẽ chỉ cho bạn cách sử dụng Raspberry Pi với cảm biến phát hiện vật cản hồng ngoại. Cụ thể, chúng ta sẽ học:

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×IR Obstacle Avoidance Sensor (Cảm Biến Phát Hiện Vật Cản)
1×Alternatively, TCRT5000 Obstacle Avoidance Sensor
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 Phát Hiện Vật Cản IR

Cảm biến phát hiện vật cản hồng ngoại có khả năng phát hiện sự hiện diện của vật thể phía trước bằng cách sử dụng tín hiệu hồng ngoại. Phạm vi phát hiện từ 2cm đến 30cm, và có thể điều chỉnh bằng biến trở tích hợp.

Sơ Đồ Chân Cảm Biến Phát Hiện Vật Cản Hồng Ngoại

Cảm biến phát hiện vật cản IR có ba chân:

  • Chân GND: phải được kết nối với GND (0V)
  • Chân VCC: phải được kết nối với VCC (5V hoặc 3.3v)
  • Chân OUT: là chân đầu ra, LOW khi có vật cản, HIGH khi không có vật cản. Chân này nên được kết nối với chân đầu vào của Raspberry Pi.
ir cảm biến tránh vật cản sơ đồ chân

Nguyên Lý Hoạt Động

Module cảm biến phát hiện vật cản hồng ngoại có bộ phát IR và bộ thu IR tích hợp. Bộ phát IR phát ra tín hiệu IR. Bộ thu IR tìm kiếm tín hiệu IR phản xạ để phát hiện xem có vật thể hiện diện hay không. Chân OUT của cảm biến phản ánh sự hiện diện của vật cản:

  • Nếu có vật cản phía trước cảm biến, chân OUT của cảm biến sẽ ở mức LOW
  • Nếu không có vật cản phía trước cảm biến, chân OUT của cảm biến sẽ ở mức HIGH

※ Lưu ý:

Trong quá trình vận chuyển, cảm biến có thể bị biến dạng, điều này có thể gây ra trục trặc. Nếu cảm biến không hoạt động đúng, hãy điều chỉnh bộ phát và bộ thu IR để đảm bảo chúng song song với nhau.

Sơ Đồ Kết Nối

Raspberry Pi ir cảm biến tránh vật cản 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 Phát Hiện Vật Cản IR

  • Khởi tạo chân Raspberry Pi ở chế độ đầu vào số bằng hàm GPIO.setup().
GPIO.setup(SENSOR_PIN, GPIO.IN)
  • Sử dụng hàm GPIO.input() để kiểm tra trạng thái của chân Raspberry Pi.
obstacle_state = GPIO.input(SENSOR_PIN)

Code Raspberry Pi

Có hai cách tiếp cận khi lập trình cho ứng dụng phát hiện vật cản:

  • Thực hiện hành động tùy thuộc vào việc vật cản có hiện diện hay không
  • Thực hiện hành động dựa trên việc vật cản được phát hiện hoặc bị loại bỏ

Code Raspberry Pi để kiểm tra xem vật cản có hiện diện

Các Bước Nhanh

  • Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành nào khác tương thích với Raspberry Pi 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 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 script Python obstacle_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-obstacle-sensor import RPi.GPIO as GPIO # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the ir obstacle avoidance sensor SENSOR_PIN = 12 # Set the GPIO pin as an input GPIO.setup(SENSOR_PIN, GPIO.IN) try: while True: # Read the state from the ir obstacle avoidance sensor obstacle_state = GPIO.input(SENSOR_PIN) # The ir obstacle avoidance sensor outputs LOW (0) when obstacle is present, otherwise HIGH (1) if obstacle_state == GPIO.LOW: print("The obstacle is present") else: print("The obstacle is NOT present") except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực hiện lệnh sau trong terminal:
python3 obstacle_sensor.py
  • Đặt vật cản phía trước cảm biến trong một khoảng thời gian, sau đó lấy nó ra.
  • Kiểm tra kết quả trong Terminal.
PuTTY - Raspberry Pi
The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is present The obstacle is present The obstacle is present The obstacle is present The obstacle is NOT present The obstacle is NOT present

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.

Code Raspberry Pi để phát hiện vật cản

Các Bước Nhanh

  • Tạo file script Python obstacle_sensor_events.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-obstacle-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the ir obstacle avoidance sensor SENSOR_PIN = 12 # Set the GPIO pin as an input GPIO.setup(SENSOR_PIN, GPIO.IN) # Variable to track the ir obstacle avoidance sensor state prev_obstacle_state = GPIO.HIGH # Assuming no obstacle initially try: while True: obstacle_state = GPIO.input(SENSOR_PIN) if obstacle_state != prev_obstacle_state: if obstacle_state == GPIO.LOW: # obstacle is detected print("An obstacle is detected") else: # An obstacle is removed print("An obstacle is removed") prev_obstacle_state = obstacle_state time.sleep(0.1) # A small delay to debounce the input except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Lưu file và chạy script Python bằng cách thực hiện lệnh sau trong terminal:
python3 obstacle_sensor_events.py
  • Đặt vật cản phía trước cảm biến trong một lúc, sau đó lấy nó ra.
  • Kiểm tra kết quả trên Terminal.
PuTTY - Raspberry Pi
An obstacle is detected An obstacle is removed

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.

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