Hướng dẫn làm cánh tay Robot 4 bậc sử dụng Arduino + Code

Hướng dẫn làm cánh tay Robot 4 bậc sử dụng Arduino + Code

Một đề tài mà được rất nhiều bạn sinh viên tìm kiếm trong thời gian trở lại đây là hướng dẫn làm cánh tay Robot 4 bậc sử dụng Arduino. Robot là một trong những lĩnh vực công nghệ đang phát triển mạnh mẽ, và tự tay chế tạo đang trở thành một xu hướng phổ biến.

Trong bài viết này, mình sẽ hướng dẫn cho các bạn cách sử dụng Arduino Mega 2560 và mạch điều khiển động cơ ULN2003 để tạo ra cánh tay robot arduino đơn giản và hiệu quả. Các bước hướng dẫn sẽ được giải thích một cách chi tiết, đồng thời có kèm theo hình ảnh minh họa để giúp các bạn có thể dễ dàng thực hiện được dự án của mình. Nếu bài viết này hay và mang lại nhiều lợi ích hãy đừng ngần ngại Donate cho mình nhé, vì đây là một động lực to lớn để mình tiếp tục chia sẻ nhiều bài viết hay hơn.

Xem ngay: Chế tạo gậy thông minh cho người mù sử dụng Arduino

Các linh kiện cần thiết cho dự án

Dưới đây là toàn bộ linh kiện phục vụ cho dự án. Các bạn có thể tìm mua trên các sàn thương mại điện tử như Shopee hoặc Cytron.

TÊN LINH KIỆN SỐ LƯỢNG MUA HÀNG
Arduino Mega 2560 1 Shopee | Cytron
Nút nhấn 4 chân 7 Shopee | Cytron
Động cơ bước 28BYJ-48 (12V) + ULN2003 3 Shopee | Cytron
Động Servo MG90S 1 Shopee | Cytron
Breadboard 1 Shopee | Cytron
Dây cắm 1 Shopee | Cytron
Jack nối nguồn 5.5*2.1mm – Cái 1 Shopee | Cytron
Adapter 12V DC 2A 1 Shopee | Cytron

Lưu ý: Mình không kinh doanh bất kỳ sản phẩm linh kiện nào, trên đây chỉ là những đề xuất dựa trên mức độ uy tín của cửa hàng mà mình đã từng mua, nên sẽ không chịu trách nhiệm khi các bạn mua hàng tại đây.

Arduino Mega 2560

Arduino Mega 2560 là một trong những board Arduino được sử dụng rất phổ biến. Nó là một phiên bản nâng cấp từ Arduino UNO với các tính năng và hiệu suất vượt trội. Được trang bị vi xử lý ATmega2560, có 54 chân I/O kết nối được với các cảm biến, module và thiết bị ngoại vị khác, 16 chân PWM, 4 UARTs (giao tiếp chuẩn serial), tần số hoạt động 16 MHz, 256 KB bộ nhớ flash và 8 KB SRAM.

Arduino Mega 2560 thường được sử dụng trong các dự án yêu cầu sử dụng nhiều chân kết nối, như các dự án IoT, điều khiển và tự động hóa, robotics, máy in 3D… Nó cũng được cộng đồng Arduino đánh giá cao vì khả năng mở rộng, giúp người dùng có thể dễ dàng tùy chỉnh và thay đổi chức năng của board.

Mạch điều khiển động cơ bước ULN2003

Mạch điều khiển động cơ ULN2003 là một module chuyên dụng được sử dụng để điều khiển các động cơ bước như 28BYJ-48.

Ngoài ra, mạch còn có khả năng chịu được dòng tới 500mA trên mỗi đầu ra, giúp đảm bảo ổn định trong quá trình hoạt động của động cơ. Với thiết kế nhỏ gọn, dễ sử dụng và tính năng ưu việt, ULN2003 là lựa chọn phù hợp trong các dự án DIY của sinh viên và người đam mê công nghệ.

Động cơ bước 28BYJ-48

Động cơ bước 28BYJ-48 5V là một trong những thành phần quan trọng trong dự án Hướng dẫn làm cánh tay Robot 4 bậc sử dụng Arduino. Đây là loại động cơ bước unipolar với 4 pha và 5 dây điện, có khả năng xoay 1.8 độ mỗi bước. Điều khiển động cơ bước 28BYJ-48 5V có thể được thực hiện thông qua mạch điều khiển ULN2003, cũng được sử dụng trong dự án này.

Với tính năng chính của động cơ bước 28BYJ-48 5V, nó được sử dụng để điều khiển chuyển động các khớp cánh tay của robot. Nhờ khả năng xoay chính xác và độ chính xác cao, động cơ bước 28BYJ-48 5V giúp cánh tay robot di chuyển một cách chính xác đến các vị trí cần thiết.

Sơ đồ nguyên lý hoạt động của dự án

Trong bài viết này mình sẽ dùng 3 Mạch điều khiển động cơ ULN2003 để thay đổi góc quay của cánh tay robot:

  • Mạch ULN2003 1: IN1, IN2, IN3, IN4 sẽ tương ứng với các chân trên Arduino Mega 2560 (22, 24, 26, 28)
  • Mạch ULN2003 2: IN1, IN2, IN3, IN4 sẽ tương ứng với các chân trên Arduino Mega 2560 (30, 32, 34, 36)
  • Mạch ULN2003 3: IN1, IN2, IN3, IN4 sẽ tương ứng với các chân trên Arduino Mega 2560 (38, 40, 42, 44)

Chân Servo MG90S sẽ được nối tương ứng: Dây đỏ — 5V, Dây nâu — GND, Dây cam — 8

Các nút nhấn để điều khiển chuyển động các khớp của cánh tay robot arduino sẽ nối vào các chân A0, A1, A2, A3, A4, A5, A6 của board Arduino Mega 2560.

Xem ngay: Hướng dẫn làm máy chơi Game xếp gạch sử dụng OLED 0.96 với Arduino

Các bước lắp ráp cánh tay Robot 4 bậc

Assembly instructions EEZYbotArm MK3 by Stichting Consortium Beroepsonderwijs on Sketchfab

Ở đây, mình đã liệt kê chi tiết các loại và số lượng ốc, vít cho từng bước lắp ráp cánh tay Robot 4 bậc, các bạn chỉ cần dựa vào bảng này để mua nhé, những loại ốc, vít bên dưới cũng khá dễ tìm và thông dụng.

HƯỚNG DẪN TÊN ỐC VÍT SỐ LƯỢNG
Bước 1 Bolt M4x18 1
Washer M4 9.0 x 0.9 2
Locknut M4 2
Bolt M4x25 1
Bước 2 Bolt M3x20 1
Washer M3 – 7.0 x 0.6 1
Locknut M3 1
Bolt M4x22 1
Washer M4 – 9.0 x 0.9 2
Locknut M4 1
Bước 3 Bolt M4x35 1
Washer M4 – 9.0 x 0.9 1
Locknut M4 1
Bước 4 Bolt M3x16 4
Nut M3 4
Nut M6 1
Bolt M6x40 1
606 Bearing 1
Bước 5 Bolt M3x10 2
Nut M3 2
Nut M6 1
Bước 6 Bolt M6x30 1
606 Bearing 1
Bước 7 Bolt M3x10 1
Nut M3 3
Bolt M3x16 2
Bước 8
Bước 9 Bolt M3x16 2
Nut M3 2
Bolt M1.2×8 (Servo) 2
Bout M2x12 (Servo) 1
Bước 10,11,12
Bước 13 Nut M3 4
Brass Pipe 4x30mm 1
Bước 14 Bolt M3x6 4
Bolt M4x16 1
Locknut M4 1
Washer M4 – 9.0 x 0.9 1
Bước 15 Bolt M3x22 2
Washer M3 – 7.0 x 0.6 2
Locknut M3 2

Ghi chú:

TÊN LINH KIỆN GIẢI THÍCH NƠI MUA
Bolt M4x18 Ốc lục giác đầu trụ M4x18 Shopee
Washer M4 9.0 x 0.9 Long đền M4 9.0 x 0.9 Shopee
Locknut M4 Tán keo đai ốc chống trượt M4 Shopee
Nut M3 Ốc tán M3 Shopee
606 Bearing Vòng bi 606 Shopee
Brass Pipe 4x30mm Ống đồng thau 4x30mm Shopee

File in 3D cánh tay Robot 4 bậc

Code

// on définit les Pins utilisé par les moteurs
const int Bt1 = A0;
const int Bt2 = A1;
const int Bt3 = A2;
const int Bt4 = A3;
const int Bt5 = A4;
const int Bt6 = A5;
const int Bt7 = A6;

// on inclut la bibliothèque pour piloter les moteurs PAP
#include <Stepper.h>
const int stepsPerRevolution = 512;
Stepper myStepper1(stepsPerRevolution, 22, 26, 24, 28);
Stepper myStepper2(stepsPerRevolution, 30, 34, 32, 36);
Stepper myStepper3(stepsPerRevolution, 38, 42, 40, 44);
int motorSpeed = 40;

// on inclut la bibliothèque pour piloter un servomoteur
#include <Servo.h>
Servo monServo;

boolean EtatBt1;
boolean Etatpince = 0;
unsigned long currentTime = 0;
unsigned long previousTime = 0;

void setup() {
  Serial.begin(9600);

  pinMode(Bt1, INPUT_PULLUP);
  pinMode(Bt2, INPUT_PULLUP);
  pinMode(Bt3, INPUT_PULLUP);
  pinMode(Bt4, INPUT_PULLUP);
  pinMode(Bt5, INPUT_PULLUP);
  pinMode(Bt6, INPUT_PULLUP);
  pinMode(Bt7, INPUT_PULLUP);

  myStepper1.setSpeed(motorSpeed);
  myStepper2.setSpeed(motorSpeed);
  myStepper3.setSpeed(motorSpeed);

  // on définit le Pin utilisé par le servomoteur
  monServo.attach(8);

}

void loop() {
  currentTime = millis();
  if ((currentTime - previousTime) > 100) {
    if (digitalRead(Bt1) == LOW && EtatBt1 == LOW) {
      Etatpince = !Etatpince;
      EtatBt1 = HIGH;
      previousTime = currentTime;
      if (Etatpince == 1) {
        monServo.write(3);
      }
      else {
        monServo.write(70);
      }
    }
    if (digitalRead(Bt1) == HIGH && EtatBt1 == HIGH) {
      EtatBt1 = LOW;
      previousTime = currentTime;
    }
  }

  if (digitalRead(Bt2) == LOW && digitalRead(Bt3) == HIGH) {
    myStepper1.step(1);
  }
  if (digitalRead(Bt3) == LOW && digitalRead(Bt2) == HIGH) {
    myStepper1.step(-1);
  }
  if (digitalRead(Bt2) == HIGH && digitalRead(Bt3) == HIGH) {
    digitalWrite(22, LOW);
    digitalWrite(26, LOW);
    digitalWrite(24, LOW);
    digitalWrite(28, LOW);
  }

  if (digitalRead(Bt4) == LOW && digitalRead(Bt5) == HIGH) {
    myStepper2.step(1);
  }
  if (digitalRead(Bt5) == LOW && digitalRead(Bt4) == HIGH) {
    myStepper2.step(-1);
  }
  if (digitalRead(Bt4) == HIGH && digitalRead(Bt5) == HIGH) {
    digitalWrite(30, LOW);
    digitalWrite(34, LOW);
    digitalWrite(32, LOW);
    digitalWrite(36, LOW);
  }

  if (digitalRead(Bt6) == LOW && digitalRead(Bt7) == HIGH) {
    myStepper3.step(1);
  }
  if (digitalRead(Bt7) == LOW && digitalRead(Bt6) == HIGH) {
    myStepper3.step(-1);
  }

  if (digitalRead(Bt6) == HIGH && digitalRead(Bt7) == HIGH) {
    digitalWrite(38, LOW);
    digitalWrite(42, LOW);
    digitalWrite(40, LOW);
    digitalWrite(44, LOW);
  }
}

Thư viện

Câu hỏi thường gặp

Kết luận

Tóm lại, thông qua bài viết các bạn đã tìm hiểu về cách làm cánh tay Robot 4 bậc sử dụng Arduino. Đây là một đề tài thú vị và có thể áp dụng trong nhiều lĩnh vực, với việc sử dụng động cơ bước 28BYJ-48, mạch điều khiển động cơ ULN2003 và Arduino Mega 2560 sẽ giúp cho các bạn hiểu rõ hơn về cấu tạo cũng như biết cách lập trình và vận hành chúng. Hy vọng thông qua bài viết này, các bạn sẽ có thêm kiến thức và kinh nghiệm để tạo ra những cánh tay Robot 5 bậc, cánh tay robot 6 bậc cho riêng mình.

Bài viết liên quan

Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments