Mục lục:
Video: Robot tự cân bằng - Thuật toán điều khiển PID: 3 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:30
Dự án này được hình thành vì tôi muốn tìm hiểu thêm về Thuật toán điều khiển và cách triển khai hiệu quả các vòng lặp PID chức năng. Dự án vẫn đang trong giai đoạn phát triển vì mô-đun Bluetooth vẫn chưa được thêm vào sẽ cho phép điều khiển robot từ điện thoại thông minh hỗ trợ Bluetooth.
Động cơ DC N20 được sử dụng tương đối rẻ và do đó có nhiều tác dụng đáng kể trong đó. Điều này dẫn đến một lượng nhỏ giật khi động cơ khắc phục tình trạng 'chùng' khi nó tác dụng mô-men xoắn lên các bánh xe. Do đó, không thể đạt được chuyển động hoàn toàn mượt mà. Đoạn mã tôi đã viết khá đơn giản nhưng thể hiện hiệu quả các khả năng của thuật toán PID.
Tóm tắt dự án:
Khung của robot được in 3D bằng máy in Ender 3 và được thiết kế để ép khít với nhau.
Robot được điều khiển bởi Arduino Uno lấy dữ liệu cảm biến từ MPU6050 và điều khiển động cơ DC thông qua trình điều khiển động cơ bên ngoài. Nó chạy bằng pin 7.4V, 1500mAh. Trình điều khiển động cơ điều chỉnh mức này thành 5V để cấp nguồn cho Arduino và cung cấp 7.4V cho động cơ.
Phần mềm được viết từ đầu với sự hỗ trợ của thư viện 'Arduino-KalmanFilter-master' và 'Arduino-MPU6050-master' từ gitHub.
Quân nhu:
- Bộ phận in 3D
- Arduino UNO
- Cảm biến 6 trục MPU6050
- Trình điều khiển động cơ D. C
- Động cơ N20 D. C (x2)
- Pin 9V
Bước 1: Chế tạo Robot
In và lắp ráp
Toàn bộ cấu trúc phải vừa vặn với máy ép nhưng tôi đã sử dụng chất liệu siêu dính để giữ chặt các thành phần nhằm đảm bảo rô bốt hoàn toàn cứng cáp khi giữ thăng bằng.
Tôi đã thiết kế các bộ phận trong Fusion 360 và đã tối ưu hóa từng bộ phận để in mà không cần hỗ trợ để cho phép dung sai chặt chẽ hơn và bề mặt hoàn thiện sạch hơn.
Các cài đặt được sử dụng trên Máy in Ender 3 là: Độ sáng lớp 0,16mm @ 40% infill cho tất cả các bộ phận.
Bước 2: Robot in 3D
Khung xe (x1)
Bánh xe trái (x2)
Vỏ động cơ bên trái (x2)
Vỏ Arduino (x1)
Bước 3: Thuật toán điều khiển PID
Tôi đã viết Thuật toán điều khiển PID từ đầu bằng thư viện 'Arduino-KalmanFilter-master' và 'Arduino-MPU6050-master' từ gitHub.
Tiền đề của Thuật toán như sau:
- Đọc dữ liệu thô từ MPU6050
- Sử dụng Bộ lọc Kalman để phân tích dữ liệu từ cả Con quay hồi chuyển và Gia tốc kế để loại bỏ những điểm không chính xác trong số đọc của con quay hồi chuyển do gia tốc của cảm biến. Điều này trả về một giá trị tương đối mịn cho cao độ của cảm biến theo độ đến hai chữ số thập phân.
- Tính sai số E theo góc, tức là: Góc giữa cảm biến và điểm đặt.
- Tính toán sai số theo tỷ lệ dưới dạng (Hằng số tỷ lệ x sai số).
- Tính lỗi Tích hợp dưới dạng tổng đang chạy của (Hằng số tích hợp x lỗi).
- Tính toán sai số phái sinh dưới dạng hằng số như [(Hằng số phân biệt) x (Thay đổi lỗi / Thay đổi theo thời gian)]
- Tính tổng tất cả các lỗi để đưa ra đầu ra tốc độ được gửi đến động cơ.
- Tính toán hướng quay động cơ dựa trên dấu hiệu của góc sai số.
- Vòng lặp sẽ chạy vô thời hạn và xây dựng dựa trên đầu ra khi đầu vào thay đổi. Nó là một vòng lặp phản hồi, sử dụng các giá trị đầu ra làm giá trị đầu vào mới cho lần lặp tiếp theo.
Bước cuối cùng là điều chỉnh các thông số Kp, Ki & Kd của vòng lặp PID.
- Điểm khởi đầu tốt là tăng từ từ Kp cho đến khi rô bốt dao động quanh điểm cân bằng và có thể rơi được.
- Tiếp theo, bắt đầu Kd ở khoảng 1% giá trị của Kp và tăng từ từ cho đến khi dao động biến mất và robot lướt nhẹ khi được đẩy.
- Cuối cùng, bắt đầu với Ki khoảng 20% Kp và thay đổi cho đến khi robot "vượt quá" điểm đặt để chủ động bắt ngã và quay trở lại phương thẳng đứng.
Đề xuất:
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: 5 bước
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: Đây là các hướng dẫn để tạo ô tô được điều khiển từ xa của riêng bạn, được điều khiển bằng bộ điều khiển Xbox 360 không dây
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Chuyển đổi Cần điều khiển cổng trò chơi cũ thành Cần điều khiển USB bằng Arduino: 5 bước
Chuyển đổi Cần điều khiển cổng trò chơi cũ thành Cần điều khiển USB bằng Arduino: Tuyên bố từ chối trách nhiệm nhanh: Điểm của dự án này là không thực hiện chuyển đổi cần điều khiển cổng trò chơi rẻ tiền. Mục tiêu của dự án này là tạo ra một cần điều khiển linh hoạt và có thể tùy chỉnh, có thể dễ dàng sửa đổi. lý do để tôi chọn Arduino là
Servo điều khiển bằng cần điều khiển bằng Arduino (có lập trình): 4 bước
Servo điều khiển cần điều khiển sử dụng Arduino (có lập trình): Trong hướng dẫn này, chúng tôi sẽ tạo một servo điều khiển cần điều khiển bằng cách sử dụng Arduino Uno .ervo sẽ di chuyển theo chuyển động của cần điều khiển
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước
Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu