Skip to content

is-buiquocdoanh/Line_follower_STM32F4

Repository files navigation

Robot Dò Line với 7 Cảm Biến Hồng Ngoại sử dụng STM32F4

1. Mô tả dự án

Đây là một dự án robot dò line sử dụng vi điều khiển STM32F4, với các đặc điểm chính:

  • Sử dụng 7 cảm biến hồng ngoại để phát hiện vạch line.
  • 2 động cơ DC 12V điều khiển qua PWM.
  • Tích hợp PID control để điều chỉnh tốc độ động cơ khi lệch khỏi đường line.
  • Hỗ trợ quay đầu gấp nếu phát hiện mất line về một bên (sharp turn).
  • Tối ưu hoạt động với tốc độ ổn định và phản hồi chính xác.

2. Phần cứng sử dụng

Thiết bị Số lượng
STM32F103C8T6 (Bluepill) 1
Cảm biến hồng ngoại (IR Sensor) 7
Driver cầu H (L298N / L9110) 1
Động cơ DC 12V 2
Bánh tự do (caster wheel) 1
Nguồn cấp 12V 1

3. Sơ đồ kết nối chân

3.1. Cảm biến hồng ngoại

Tên cảm biến Chân STM32
SENSOR1 PA0
SENSOR2 PA1
SENSOR3 PA2
SENSOR4 PA3
SENSOR5 PA4
SENSOR6 PA5
SENSOR7 PA6

Lưu ý: Các cảm biến trả về GPIO_PIN_SET nếu phát hiện line (tùy theo loại cảm biến đen/trắng).

3.2. Điều khiển động cơ

TIM3 (Motor Trái)

Tên chức năng Chân STM32 TIM Channel
PWM_LEFT_FORWARD PB4 TIM3_CH1
PWM_LEFT_BACKWARD PB5 TIM3_CH2

TIM4 (Motor Phải)

Tên chức năng Chân STM32 TIM Channel
PWM_RIGHT_FORWARD PB6 TIM4_CH1
PWM_RIGHT_BACKWARD PB7 TIM4_CH2

4. Nguyên lý hoạt động

  • Robot đọc trạng thái 7 cảm biến hồng ngoại.
  • Tính toán vị trí line theo trọng số.
  • Dùng thuật toán PID để điều chỉnh tốc độ 2 động cơ:
    • P: lỗi hiện tại.
    • I: tổng lỗi tích lũy.
    • D: độ lệch so với lần trước.
  • Nếu mất vạch hoàn toàn:
    • Dựa trên cảm biến ngoài cùng trái/phải để quay đầu đúng hướng (sharp turn).

5. Cấu hình PWM

  • Timer Prescaler = 79
  • Auto-reload = 999
  • Tần số PWM: ~1 kHz
  • Hệ số PWM điều chỉnh qua ARR * tốc độ phần trăm

6. Cách sử dụng

  1. Nạp chương trình main.c vào STM32F4 bằng STM32CubeIDE hoặc ST-Link.
  2. Cấp nguồn 12V cho động cơ, 5V cho board STM32 (qua USB hoặc module AMS1117).
  3. Đặt robot lên đường line (màu đen/trắng tùy cảm biến).
  4. Robot sẽ tự động dò line và di chuyển theo.

7. Thông số PID (có thể tinh chỉnh)

float Kp = 0.05;
float Ki = 0.0;
float Kd = 0.001;

Link video demo: https://youtu.be/-mvY5BXTrck

Author

About

Line Follower with 7 sensors, 2 motor DC, STM32F4xx, Module L298N and using PID control algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages