Raspberry Pi Điều Khiển Servo Motor qua Bluetooth

Hướng dẫn này sẽ chỉ cho bạn cách lập trình Raspberry Pi để quản lý Servo Motor bằng cách sử dụng Bluetooth (HC-05 module) hoặc BLE (HM-10 module). Hướng dẫn từng bước cho cả hai loại module sẽ được cung cấp.

Chúng ta sẽ sử dụng Bluetooth Serial Monitor App trên smartphone để truyền giá trị góc đến Raspberry Pi. Raspberry Pi sẽ điều chỉnh servo motor dựa trên giá trị nhận được.

Raspberry Pi động cơ servo Bluetooth

Linh Kiện Cần Thiết

1×Raspberry Pi 5
1×HC-05 Bluetooth Module
1×(Thay thế) HM-10 BLE Module
1×động cơ servo
1×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ề Servo Motor và Bluetooth Module

Nếu bạn chưa quen thuộc với Servo Motor, Bluetooth Module, sơ đồ chân, khả năng và cách lập trình, vui lòng tham khảo các hướng dẫn sau để có thêm thông tin:

Sơ Đồ Đấu Nối

  • Để quản lý Servo Motor với Classic Bluetooth, nên sử dụng HC-05 Bluetooth module và tham khảo sơ đồ đấu nối được cung cấp.
Raspberry Pi động cơ servo Bluetooth sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

  • Để quản lý Servo Motor với BLE, nên sử dụng HM-10 BLE module. Sơ đồ đấu nối được cung cấp dưới đây để tham khảo.
Raspberry Pi động cơ servo ble sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Code Raspberry Pi - điều khiển Servo Motor qua Bluetooth/BLE

Code được cung cấp ở đây có thể được sử dụng với cả HC-05 Bluetooth module và HM-10 BLE module.

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ộ như 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, cài đặt nó bằng lệnh sau:
sudo apt-get update sudo apt-get install python3-rpi.gpio
pip install pyserial
  • Tạo file Python script bluetooth_servo.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-control-servo-motor-via-bluetooth import serial import RPi.GPIO as GPIO from time import sleep # Define pins SERVO_PIN = 16 # GPIO 16 (Servo pin) # Set up GPIO GPIO.setmode(GPIO.BCM) GPIO.setup(SERVO_PIN, GPIO.OUT) # Create serial port for Bluetooth communication bluetooth = serial.Serial('/dev/ttyS0', baudrate=9600, timeout=1) # Create servo object servo = GPIO.PWM(SERVO_PIN, 50) # 50 Hz frequency for standard servo # Start PWM with 0% duty cycle (servo at 0 degrees) servo.start(0) def rotate_servo(angle): duty_cycle = 2 + (angle / 18) # Map angle to duty cycle (for a standard servo) servo.ChangeDutyCycle(duty_cycle) sleep(1) # Give servo time to move # Main program try: bluetooth.flushInput() # Clear any existing data in the input buffer while True: bluetooth.write(b"Raspberry Pi here, command me!\n") if bluetooth.inWaiting() > 0: angle = bluetooth.parseInt() if 0 <= angle <= 180: rotate_servo(angle) bluetooth.write(b"Rotated servo to angle: ") bluetooth.write(str(angle).encode('utf-8')) bluetooth.write(b"\n") else: bluetooth.write(b"Invalid angle: ") bluetooth.write(str(angle).encode('utf-8')) bluetooth.write(b"\n") # Add a delay to avoid excessive looping sleep(0.1) except KeyboardInterrupt: pass finally: servo.stop() GPIO.cleanup() bluetooth.close()
  • Lưu file và chạy Python script bằng cách thực thi lệnh sau trong terminal:
python3 bluetooth_servo.py

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.

  • Cài đặt Bluetooth Serial Monitor App trên smartphone của bạn.
  • Mở Bluetooth Serial Monitor App trên smartphone và chọn tùy chọn Classic Bluetooth hoặc BLE, tùy thuộc vào module bạn đang sử dụng.
Bluetooth serial monitor app
  • Kết nối app với HC-05 Bluetooth module hoặc HM-10 BLE module.
Bluetooth serial monitor pairing
  • Nhập một góc, chẳng hạn như 45 hoặc 90, sau đó nhấn nút Send.
Bluetooth serial monitor app
  • Quan sát sự thay đổi góc của Servo Motor.
  • Kiểm tra kết quả trên Android App.
Bluetooth serial monitor app

Nếu bạn thấy Bluetooth Serial Monitor app hữu ích, vui lòng đánh giá 5 sao trên Play Store. Cảm ơn bạn đã ủng hộ!

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.