Mục lục:
- Bước 1: Vị trí hướng dẫn đã thay đổi
- Bước 2: Xây dựng Robot truyền động vi sai SnappyXO
- Bước 3: Kết nối thiết bị điện tử
- Bước 4: Cài đặt Thư viện Arduino PreciseMovement
- Bước 5: Mã
- Bước 6: Cách thức hoạt động
Video: Robot di chuyển chính xác SnappyXO: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Làm cho rô bốt Arduino của bạn đi thẳng trong một khoảng cách xác định hoặc xoay theo một góc xác định bằng cách sử dụng thư viện Arduino PreciseMovement.
Robot cần có bánh lăn hoặc bánh xe tương đương để giảm thiểu ma sát trong khi xoắn.
www.pololu.com/product/954
Bạn có thể ra lệnh cho rô-bốt tiến tới một khoảng cách xác định hoặc vặn theo một góc xác định. Chương trình xác định vị trí của nó bằng cách sử dụng tính toán chết. Vì các ước tính vị trí chỉ dựa vào vận tốc của bánh xe, nên sự trượt sẽ gây ra sai số đáng kể. Người thiết kế robot nên cẩn thận để giảm thiểu nguy cơ trượt.
Điều này đã được thử nghiệm để hoạt động với robot SnappyXO.
Bước 1: Vị trí hướng dẫn đã thay đổi
Hướng dẫn đã được chuyển đến trang bên dưới. Hướng dẫn này không còn được duy trì.
sites.google.com/stonybrook.edu/premo
Bước 2: Xây dựng Robot truyền động vi sai SnappyXO
Thư viện PreciseMovement mà chúng tôi sẽ sử dụng chỉ tương thích với rô bốt truyền động vi sai. Bạn có thể chọn sử dụng các loại rô bốt dẫn động 2 bánh khác.
Bước 3: Kết nối thiết bị điện tử
Đối với bộ mã hóa quang học SnappyXO tiêu chuẩn:
D0 (đầu ra bộ mã hóa) -> Pin kỹ thuật số Arduino
VCC -> Arduino 5V
GND -> GND
Động cơ và nguồn Arduino:
Nguồn điện động cơ phải đủ cho động cơ bạn đang sử dụng. Đối với bộ SnappyXO, pin 4AA được sử dụng cho nguồn động cơ và pin 9V cho nguồn Arduino. Đảm bảo rằng tất cả chúng đều có GND chung.
Bước 4: Cài đặt Thư viện Arduino PreciseMovement
Tải xuống:
github.com/jaean123/PreciseMovement-library/releases
Cách cài đặt Thư viện Arduino:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Bước 5: Mã
Mã Arduino:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Các thông số này yêu cầu điều chỉnh. Các thông số khác được gắn nhãn khuyến nghị trên mã có thể được điều chỉnh để có hiệu suất tốt hơn.
- Kiểm tra và đặt các chân động cơ dưới ARDUINO PINS.
-
Đặt LENGTH và RADIUS.
- CHIỀU DÀI là khoảng cách từ bánh xe bên trái đến bánh xe bên phải.
- RADIUS là bán kính của bánh xe.
-
Đặt PULSES_PER_REV, là số xung mà bộ mã hóa đầu ra cho một vòng quay.
- Lưu ý rằng điều này khác với số lượng xung mà bộ mã hóa đầu ra cho một vòng quay của trục động cơ trừ khi các bộ mã hóa được kết nối để đọc trực tiếp từ trục bánh xe.
- PULSES_PER_REV = (xung trên một vòng quay của trục động cơ) x (tỷ số truyền)
-
Đặt STOP_LENGTH nếu bạn thấy rô bốt vượt quá sau khi di chuyển về phía trước.
Robot sẽ dừng khi vị trí ước tính cách mục tiêu STOP_LENGTH. Do đó, STOP_LENGTH, là khoảng cách gần đúng cần thiết để rô bốt dừng lại
-
Thông số PID
KP_FW: Đây là thành phần tỷ lệ của chuyển động tịnh tiến. Tăng điều này cho đến khi robot đi thẳng. Nếu bạn không thể làm cho nó hoạt động bình thường bằng cách điều chỉnh điều này, thì có thể phần cứng đã bị lỗi. (ví dụ: lệch bánh xe, v.v.)
KP_TW: Đây là thành phần tỷ lệ của PID chuyển động xoắn. Đơn giản chỉ cần bắt đầu từ giá trị thấp và tăng giá trị này cho đến khi tốc độ xoắn, hoặc vận tốc góc của robot trong khi xoắn, đủ nhanh nhưng không gây ra hiện tượng vọt lố. Để quan sát, bạn có thể cho rô bốt thay thế từ 0 đến 90 và quay lại bằng cách chèn phần sau vào hàm vòng lặp
Đặt điều này trong vòng lặp để điều chỉnh KP_FW:
mover.earch (99999);
Đặt điều này trong vòng lặp để thay thế từ 0 đến 90 để điều chỉnh KP_TW:
mover.twist (90); // Xoắn 90 CW
chậm trễ (2000);
mover.twist (-90) // Xoắn 90 CCW
chậm trễ (2000);
Lưu ý rằng để thực sự xoắn vận tốc góc tại TARGET_TWIST_OMEGA, KI_TW cũng cần được điều chỉnh vì bộ điều khiển tỷ lệ sẽ không bao giờ cố định mục tiêu chính xác. Tuy nhiên, không cần thiết phải xoắn với vận tốc góc chính xác đó. Vận tốc góc chỉ cần đủ chậm.
Bước 6: Cách thức hoạt động
Nếu bạn tò mò về cách nó hoạt động, hãy đọc tiếp.
Chuyển động về phía trước được giữ thẳng bằng cách sử dụng thuật toán theo đuổi thuần túy trên một đường thẳng. Thông tin thêm về Theo đuổi thuần túy:
Bộ điều khiển PID xoắn cố gắng giữ vận tốc góc xoắn ở TARGET_TWIST_OMEGA. Lưu ý rằng vận tốc góc này là vận tốc góc của toàn bộ rô bốt không phải của các bánh xe. Chỉ một bộ điều khiển PID được sử dụng và đầu ra là tốc độ ghi PWM của cả động cơ trái và phải. Tính toán chết được thực hiện để tính toán góc. Khi góc đạt đến ngưỡng lỗi, rô bốt sẽ dừng lại.
Đề xuất:
Đồng hồ đo điện áp chính xác & chính xác Arduino (0-90V DC): 3 bước
Đồng hồ đo điện áp chính xác & chính xác Arduino (0-90V DC): Trong tài liệu hướng dẫn này, tôi đã chế tạo một vôn kế để đo điện áp cao DC (0-90v) với độ chính xác và độ chính xác tương đối bằng cách sử dụng Arduino Nano. Các phép đo thử nghiệm tôi đã thực hiện đủ chính xác, chủ yếu là trong khoảng 0,3v so với điện áp thực được đo bằng
Pingo: Trình phát bóng Ping Pong phát hiện chuyển động và có độ chính xác cao: 8 bước
Pingo: Máy phát bóng Ping Pong phát hiện chuyển động và có độ chính xác cao: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
Xúc xắc điện tử - Arduino Die / xúc xắc 1 đến 6 Xúc xắc + D4, D5, D8, D10, D12, D20, D24 và D30: 6 bước (có Hình ảnh)
Xúc xắc điện tử - Arduino Die / xúc xắc 1 đến 6 Xúc xắc + D4, D5, D8, D10, D12, D20, D24 và D30: Đây là một dự án arduino đơn giản để tạo ra một con xúc xắc điện tử. Có thể chọn cho 1 đến 6 viên xúc xắc hoặc 1 trong 8 viên xúc xắc đặc biệt. Lựa chọn được thực hiện đơn giản bằng cách xoay một bộ mã hóa quay. Đây là các tính năng: 1 xúc xắc: hiển thị các chấm lớn 2-6 xúc xắc: hiển thị các chấm
Một thí nghiệm chỉnh lưu chính xác: 11 bước
Thử nghiệm chỉnh lưu chính xác: Gần đây tôi đã thực hiện một thử nghiệm về mạch chỉnh lưu chính xác và nhận được một số kết luận sơ bộ. Xét rằng mạch chỉnh lưu chính xác là mạch thông dụng, kết quả của thí nghiệm này có thể cung cấp một số thông tin tham khảo
Arduino: Lib chính xác cho động cơ bước: 19 bước
Arduino: Precision Lib cho Động cơ bước: Hôm nay, tôi sẽ giới thiệu cho bạn một thư viện dành cho trình điều khiển động cơ bước đầy đủ với các công tắc giới hạn và chuyển động của động cơ với gia tốc và bước vi mô. Lib này, hoạt động trên cả Arduino Uno và Arduino Mega, cho phép bạn di chuyển các động cơ không dựa trên