Search Code

Bài học 6/10: Điều khiển động cơ DC bằng Bộ Kit Xe Thông Minh 4WD Raspberry Pi Pico

Bài học này là một phần của: Xe thông minh Raspberry Pi Pico 4WD

Bài học 6/10: Điều khiển động cơ DC bằng Bộ Kit Xe Thông Minh 4WD Raspberry Pi Pico

Hướng dẫn dự án này dựa trên Bài 6 của khóa học Robojax Raspberry Pi Pico Smart Car. Trong buổi học này, bạn sẽ học cách tích hợp động cơ servo và cảm biến siêu âm để tạo ra hệ thống tránh vật cản thông minh cho xe 4WD của mình. Thay vì chỉ dừng lại khi phát hiện vật thể, dự án này biến chiếc xe của bạn thành một robot tự hành mini chủ động quét môi trường xung quanh, xác định đường đi rõ ràng nhất và di chuyển vòng qua các vật cản.

Đây không chỉ là một bài tập lý thuyết; nó là một dự án nền tảng để xây dựng các robot phức tạp hơn. Dưới đây là một vài ứng dụng thực tế cho logic tránh vật cản này:

  • Robot thám hiểm tự động: Chế tạo một robot có thể tự di chuyển trong phòng hoặc mê cung mà không cần điều khiển từ xa.
  • Máy hút bụi thông minh: Sử dụng logic tương tự để tạo ra một robot hút bụi đơn giản có thể tránh đồ đạc và tường khi làm sạch sàn nhà.
  • Robot tuần tra an ninh: Lập trình cho xe tuần tra một khu vực và sử dụng cảm biến siêu âm để phát hiện và di chuyển vòng qua các vật thể bất ngờ.
  • Nền tảng robot giáo dục: Sử dụng dự án này làm cơ sở để thử nghiệm các thuật toán tìm đường nâng cao hơn và kết hợp cảm biến.

Khái niệm cốt lõi là sử dụng động cơ servo để xoay cảm biến siêu âm, hoạt động như một "radar" quét khu vực từ trái sang phải. Bằng cách đo khoảng cách ở các góc khác nhau, xe có thể xây dựng bản đồ về môi trường xung quanh ngay lập tức và đưa ra quyết định tiến về phía trước, rẽ trái hoặc rẽ phải để tìm đường đi rõ ràng (trong video ở phút 02:47).

Phần cứng/Linh kiện

Dự án này được xây dựng dựa trên Bộ Kit Xe Thông Minh 4WD SunFounder Raspberry Pi Pico. Các linh kiện chính được sử dụng trong bài học này là:

  • Bo mạch Raspberry Pi Pico
  • Khung xe thông minh 4WD với động cơ
  • Bo điều khiển động cơ (có trong bộ kit)
  • Cảm biến siêu âm (loại HC-SR04)
  • Động cơ servo
  • Bộ pin

Hướng dẫn đấu dây

Video đề cập rằng bộ kit đi kèm với tài liệu đầy đủ, hướng dẫn từng bước và sơ đồ đấu dây. Việc đấu dây cho servo và cảm biến siêu âm thường được kết nối với bo điều khiển động cơ, nơi tập trung các kết nối cho Pico.

Vui lòng tham khảo sơ đồ bên dưới để biết các kết nối chân cụ thể cho bộ kit của bạn.

Giải thích mã code

Video tập trung vào logic trong tệp obstacle_avoid.py. Mặc dù mã đầy đủ có sẵn trong bộ kit, bài học này nêu bật các tham số có thể tùy chỉnh bởi người dùng để kiểm soát hành vi của xe. Đây là các biến bạn có thể sẽ muốn điều chỉnh để tinh chỉnh hiệu suất của robot.

Ở đầu chương trình chính, bạn sẽ tìm thấy các cài đặt chính xác định hành vi của xe (trong video ở phút 13:07):

# Cài đặt tránh vật cản
RADAR_REFERENCE = 20  # Khoảng cách tính bằng cm để coi là vật cản
STEP_ANGLE = 10       # Số độ servo di chuyển cho mỗi bước quét
FORWARD_SPEED = 30    # Tốc độ động cơ khi tiến về phía trước
TURN_SPEED = 50       # Tốc độ động cơ khi quay
FORWARD_SCAN_ANGLE = 50  # Số độ cho quét nhanh về phía trước
  • RADAR_REFERENCE: Đây là cài đặt quan trọng nhất. Nó xác định khoảng cách an toàn tối thiểu tính bằng cm. Nếu cảm biến siêu âm phát hiện vật thể gần hơn giá trị này, xe coi đó là "nguy hiểm" và bắt đầu quy trình tránh vật cản (trong video ở phút 22:03).
  • STEP_ANGLE: Điều này xác định độ phân giải của quét radar. Giá trị nhỏ hơn (ví dụ: 10 độ) làm cho quét chính xác hơn nhưng chậm hơn. Giá trị lớn hơn làm cho nó nhanh hơn nhưng ít chi tiết hơn.
  • FORWARD_SPEED & TURN_SPEED: Đây là các giá trị PWM (0-100) kiểm soát nguồn điện cho động cơ. Bạn có thể điều chỉnh chúng để thay đổi tốc độ xe tiến về phía trước và tốc độ quay (trong video ở phút 13:33).
  • FORWARD_SCAN_ANGLE: Sau khi tránh được vật cản, xe thực hiện quét nhanh để đảm bảo đường phía trước thông thoáng. Biến này đặt góc cho quét đó. Giá trị 50 có nghĩa là nó quét từ -25 đến +25 độ so với trung tâm (trong video ở phút 13:40).

Dự án trực tiếp/Minh họa

Trong video, giảng viên minh họa dự án theo từng giai đoạn. Đầu tiên, ông chạy một bài kiểm tra đơn giản để cho thấy cảm biến siêu âm đo khoảng cách và in các giá trị ra shell, xác nhận rằng "0" đại diện cho vật cản và "1" đại diện cho đường đi rõ ràng (trong video ở phút 03:48).

Sau đó, ông giải thích sơ đồ quyết định, là bộ não của hoạt động. Xe sử dụng một hàm gọi là get_direction() để phân tích dữ liệu radar. Hàm này chia dữ liệu quét thành các đoạn không gian mở và xác định đoạn rộng nhất. Dựa trên vị trí của đường rộng này (trái, giữa hoặc phải), xe quyết định hướng rẽ (trong video ở phút 11:19).

Cuối cùng, giảng viên thiết lập một mê cung vật cản và minh họa xe di chuyển qua đó. Bạn có thể thấy xe quét trái và phải, lùi lại nếu bị kẹt, và cuối cùng tìm đường để đi qua các vật cản mà không cần điều khiển thủ công (trong video ở phút 22:53).

Các chương

  • [00:00] Giới thiệu về tính năng tránh vật cản với xe Pico
  • [01:31] Tổng quan về tính năng của bộ kit và tài liệu hướng dẫn
  • [02:47] Trình diễn tính năng tránh vật cản
  • [03:48] Kiểm tra cảm biến siêu âm và đo khoảng cách
  • [07:45] Giải thích thuật toán tránh vật cản và sơ đồ luồng
  • [12:49] Phân tích mã chính cho tránh vật cản
  • [15:50] Trình diễn mã trực tiếp và diễn giải dữ liệu
  • [18:11] Tìm hiểu sâu về logic xác định hướng và quay xe
  • [22:53] Kiểm tra trực tiếp cuối cùng với mê cung vật cản
Không có mã đính kèm.

Tài nguyên & tài liệu tham khảo

Chưa có tài nguyên nào.

Tập tin📁

Không có tệp nào khả dụng.