Mục lục:

Robot Mecanum Omni Wheels với động cơ bước GRBL Lá chắn Arduino: 4 bước
Robot Mecanum Omni Wheels với động cơ bước GRBL Lá chắn Arduino: 4 bước

Video: Robot Mecanum Omni Wheels với động cơ bước GRBL Lá chắn Arduino: 4 bước

Video: Robot Mecanum Omni Wheels với động cơ bước GRBL Lá chắn Arduino: 4 bước
Video: Robot Testing - Stepper Motor Installation 2024, Tháng mười một
Anonim
Robot Mecanum Omni Wheels với Động cơ bước GRBL Lá chắn Arduino
Robot Mecanum Omni Wheels với Động cơ bước GRBL Lá chắn Arduino
Robot Mecanum Omni Wheels với Động cơ bước GRBL Lá chắn Arduino
Robot Mecanum Omni Wheels với Động cơ bước GRBL Lá chắn Arduino
Robot Mecanum Omni Wheels với Động cơ bước GRBL Lá chắn Arduino
Robot Mecanum Omni Wheels với Động cơ bước GRBL Lá chắn Arduino

Robot Mecanum - Một dự án tôi muốn xây dựng kể từ khi tôi nhìn thấy nó trên blog cơ điện tử gread của Dejan: howtomechatronics.com

Dejan thực sự đã hoàn thành xuất sắc nhiệm vụ bao gồm tất cả các khía cạnh từ phần cứng, in 3D, điện tử, mã và ứng dụng Android (Nhà phát minh ứng dụng của MIT)

Đây là một dự án đại tu tuyệt vời làm mới tất cả các kỹ năng của một nhà sản xuất.

Tôi đã có một số thay đổi đối với các dự án

Tôi không muốn sử dụng PCB sản xuất tùy chỉnh mà anh ấy đã sử dụng, nhưng một tấm chắn GRBL cũ mà tôi có ở nhà.

Tôi muốn sử dụng BlueTooth

Vì thế:

Quân nhu

Arduino Uno + Lá chắn GRBL

Động cơ bước

Mô-đun BlueTooth HC-06

Pin Lipo 12V

Bước 1: Phần cứng

Phần cứng
Phần cứng
Phần cứng
Phần cứng

In các bánh xe và lắp ráp chúng như ở đây:

Đã kết nối 4 Động cơ bước với khung máy (trong trường hợp của tôi là ngăn kéo không sử dụng từ trên xuống)

Định tuyến cáp đến đầu rô bốt.

Bước 2: Điện tử

Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử
Thiết bị điện tử

Tôi đã sử dụng mô-đun HC-06 BT của mình, Phần khó nhất là đặt tấm chắn GRBL hoạt động với 4 động cơ Bước vì không có hướng dẫn tốt cho điều đó, Có nhu cầu đặt Jumper như có thể thấy trong hình đính kèm, để tạo ra "Công cụ" của tấm chắn cũng để điều khiển một động cơ bước. cũng cần đặt Jumper "Bật"

nối dây 4 bước và đó là nó.

Tôi cũng cấp nguồn từ pin 12V - hai stes - một cho Arduino và một cho GRBl Shield

Bước 3: Mã Arduino

/ * === Arduino Mecanum Wheels Robot === Điều khiển điện thoại thông minh qua Bluetooth của Dejan, www. HowToMechatronics.com Các thư viện: RF24, www. HowToMechatronics.com AccelStepper của Mike McCauley: www. HowToMechatronics.com

* / / * 2019-11-12 Gilad Meller (https://www.keerbot.com - sửa đổi mã để hoạt động với tấm chắn động cơ arduino GRBL Động cơ bước trong tấm chắn được ánh xạ dưới dạng (bước / hướng): 2/5 3 / 6 4/7 12/13 sử dụng A4988 trình điều khiển 12V

Mã của Dejan sử dụng SoftwareSerial và của tôi sẽ sử dụng các chân RX, TX tiêu chuẩn (0, 1) của Arduino Uno Lưu ý: Đảm bảo rempve các chân RX TX khi tải bản phác thảo lên arduino nếu không quá trình tải lên sẽ không thành công.

*/ #bao gồm

// Xác định các động cơ bước và các chân sẽ sử dụng AccelStepper LeftBackWheel (1, 2, 5); // (Loại: trình điều khiển, STEP, DIR) - Stepper1 AccelStepper LeftFrontWheel (1, 3, 6); // Stepper2 AccelStepper RightBackWheel (1, 4, 7); // Stepper3 AccelStepper RightFrontWheel (1, 12, 13); // Bước 4

int incomingByte = 0, c; // cho dữ liệu nối tiếp đến int wheelSpeed = 100;

void setup () {Serial.begin (9600); // mở cổng nối tiếp, đặt tốc độ dữ liệu là 9600 bps // Đặt giá trị hạt giống ban đầu cho các bước LeftFrontWheel.setMaxSpeed (600); LeftBackWheel.setMaxSpeed (600); RightFrontWheel.setMaxSpeed (600); RightBackWheel.setMaxSpeed (600);

}

void loop () {if (Serial.available ()> 0) {// đọc byte đến: incomingByte = Serial.read ();

c = incomingByte; switch (c) {case 71: Serial.println ("Tôi đã nhận được Xoay phải W"); xoay phải(); nghỉ; case 65: Serial.println ("Tôi đã nhận Xoay trái Q"); xoay trái(); nghỉ; case 1: Serial.println ("Tôi đã nhận được BK / LFT"); moveRightBackward (); nghỉ; case 2: Serial.println ("Tôi đã nhận được BK"); moveBackward (); nghỉ; case 3: Serial.println ("Tôi đã nhận được BK / RT"); moveRightBackward (); nghỉ; case 4: Serial.println ("Tôi nhận được LEFT"); moveSidewaysLeft ();

nghỉ; case 5: Serial.println ("Tôi nhận được STOP"); stopMoving (); nghỉ; case 6: Serial.println ("Tôi đã nhận được RT"); moveSidewaysRight (); nghỉ; case 7: Serial.println ("Tôi đã nhận được FWD / LFT"); moveLeftForward (); nghỉ; case 8: Serial.println ("Tôi đã nhận được FWD"); tiến về phía trước(); nghỉ; case 9: Serial.println ("Tôi đã nhận được FWD / RT"); moveRightForward (); nghỉ; default: Serial.print ("Không phải lệnh"); Serial.println (incomingByte, DEC); nghỉ; }} // moveBackward (); moveRobot ();

}

void moveRobot () {LeftBackWheel.runSpeed (); LeftFrontWheel.runSpeed (); RightFrontWheel.runSpeed (); RightBackWheel.runSpeed (); }

void moveForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (Tốc độ bánh xe); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void moveBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void moveSidewaysRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void moveSidewaysLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (Tốc độ bánh xe); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void xoayLeft () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (wheelSpeed); } void xoayRight () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (Tốc độ bánh xe); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (-wheelSpeed); } void moveRightForward () {LeftFrontWheel.setSpeed (wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (wheelSpeed); } void moveRightBackward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (-wheelSpeed); RightFrontWheel.setSpeed (-wheelSpeed); RightBackWheel.setSpeed (0); } void moveLeftForward () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (Tốc độ bánh xe); RightFrontWheel.setSpeed (wheelSpeed); RightBackWheel.setSpeed (0); } void moveLeftBackward () {LeftFrontWheel.setSpeed (-wheelSpeed); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (-wheelSpeed); } void stopMoving () {LeftFrontWheel.setSpeed (0); LeftBackWheel.setSpeed (0); RightFrontWheel.setSpeed (0); RightBackWheel.setSpeed (0); }

Bước 4: Nhà phát minh

Một ứng dụng appinventor mới với các chức năng khác nhau và đơn giản hơn (Không có bản ghi)

Vui lòng gửi tin nhắn và tôi gửi cho bạn - tải lên không thành công.

Bảo trọng.

Đề xuất: