Vai trò và cấu tạo của robot

 1. Vai trò của robotics  trong cuộc cách mạng công nghiệp lần thứ 4

Trước hết robot mang lại lợi ích to lớn cho con người. Dưới đây xin liệt kê vài lợi ích cơ bản của robot:

  • Thay thế con người làm việc tại những môi trường khắc nghiệt mà con người không thể tới như: trên sao hỏa, miệng núi lửa, dưới đáy biển sâu, vv
  • Giúp con người làm những công việc nặng nhọc
  • Năng xuất lao động của robot cao hơn con người
  • Robot có khả năng xử lý công việc đòi hỏi có độ chính xác cao và nhanh.

Ngày nay việc ứng dụng các giải pháp thông minh giúp robot có khả năng tự học và tự giải quyết vấn đề, tạo tiền đề cho phạm vi ứng dụng robot không chỉ giới hạn trong các dây chuyền gia công, chế tạo của nhà máy xí nghiệp, mà ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực của đời sống  của con người như trong  nông nghiệp,  xây dựng, y học, an ninh quốc phòng và trong lĩnh vực dân dụng.

Trong cuộc Cách mạng Công nghiệp lần thứ Tư, đòi hỏi các hệ thống sản xuất hướng đến những cấp độ cao hơn của tự động hóa đó là các hệ thống sản xuất thông minh, nhà máy thông minh. Để giải quyết vấn đề đó  chúng ta cần tập trung phát triển và ứng dụng robot   vào hệ thống sản xuất hiện đại.   Sự kết hợp giữa kỹ thuật robot truyền thống và trí tuệ nhân tạo chính là giải pháp cho các hệ thống sản xuất thông minh ngày nay.

SophiaRobot

2. Cấu tạo của robot

Chúng ta có thể xem robot như một hệ thống điều khiển. Với cách nhìn đó robot được tạo bởi các thành phần cơ bản sau:

  • Bộ vi điều khiển (microcontroller): Công nghệ điện tử, Toán học
  • Động cơ (motor): Cơ học, điện, Điện tử
  • Các cảm biến (sensor): Công nghệ điện tử
  • Phần mềm nhúng (imbeded software): Tin học, Toán học và AI.

Dưới đây chúng ta sẽ tìm hiểu chi tiết hơn từng thành phần cấu tạo nên robot.

2.1 Bộ vi điều khiển

Khi các cảm biến  tiếp nhận thông tin từ bên ngoài vào, nó gửi tín hiệu tới bộ não của robot (hay máy tính). Tại đây bộ vi xử lý sẽ phân tích để xử lý tín hiệu rồi ra lệnh cho động cơ làm việc. Có nhiều bộ vi điều khiển khác nhau, dưới đây  chúng tôi  xin liệt kê vài bộ vi điều khiển quen thuộc như:  Basic Stamp, Arduino Uno R3,  Arduino Mega, Arduino Nano, Raspberry Pi, vv

Arduino Undo

2.2. Động cơ 

Robot muốn hoạt động được cần phải có động cơ(motor). Hoạt động của Motor được điều khiển bởi bộ vi xử lý (microcontroller, micro processing). Thông thường với các robot dân dụng,  người ta sử dụng các động cơ như: DC Motors hay  Servo motor. Chúng  được gắn với các bánh xe hoặc các bộ truyền động khác để giúp  robot chuyển động.

Motor 1

2.3. Cảm biến 

Cảm biến hay còn gọi là sensor, giúp robot cảm nhận được sự thay đổi của môi trường xung quanh. Khi cảm nhận được thay đổi, sensor sẽ gửi tín hiệu về cho micro controller xử lý và rồi microcontroller điều khiển động cơ hoạt động theo mong muốn. Có vô số sensor: Cám biến nhiệt độ, cảm biến âm thanh, cảm biến độ ẩm, cảm biến chuyển động,…

sensors

2.4 Phần mềm nhúng

Phần mềm nhúng là các chương trình được viết, thiết kế, lập trình chuyên biệt cho các thiết bị số và hoạt động song song với các thiết bị đó. Nó không giống với các phần mềm hệ thống hay phần mềm ứng dụng là phải cần sự tác động, giao tiếp của con người mới hoạt động. Phần mềm nhúng sẽ tự hoạt động song song với các thiết bị mà không cần con người kích hoạt.  Không những thế, phần mềm nhúng có thể được cài đặt trên nhiều thiết bị hệ thống, tuy nhiên nó sẽ được sửa đổi để phù hợp với thiết bị để đáp ứng các công việc, chức năng khác nhau. Để cài đặt được các phần mềm nhúng đòi hỏi các thiết bị phải có cấu hình, khả năng phần cứng cố định. Mỗi phần mềm nhúng sẽ được tạo riêng cho mỗi thiết bị nhất định, với các chức năng, thông số, bộ xử lý của thiết bị đó.

Hệ thống bao gồm các phần mềm nhúng và cả phần cứng cùng thực hiện một chức năng nhất định trong một môi trường hay hệ thống lớn hơn được gọi là hệ thống nhúng. Đây là các hệ thống chuyên dụng, đảm bảo một nhiệm vụ nhất định, nó có khả năng tự trị và nhúng vào các hệ thống mẹ. Chúng ta  có thể kể ra  rất nhiều các hệ thống nhúng trong cuộc sống như:  đồng hồ, điện thoại,  xe ô tô, cột đèn giao thông, cửa tự động trong siêu thị,… Hệ thống nhúng có các đặc điểm sau:

  • Hệ thống nhúng  chỉ thực hiện một chức năng riêng biệt chứ không thực hiện hết các chức năng như các phần mềm ứng dụng, hệ thống khác.
  • Để có được một hệ thống nhúng, các thiết bị, phần cứng đòi hỏi phải có các thông số, kỹ thuật và yêu cầu nhất định. Một khi hệ thống nhúng xảy ra lỗi sẽ ảnh hưởng rất nặng. Do đó đòi hỏi nó phải có các yêu cầu sát sao.
  • Khác với các hệ thống phần mềm thông thường sẽ được cài đặt vào máy tính khi cần thiết, còn hệ thống nhúng sẽ là một hệ thống phức tạp nằm sẵn trong thiết bị mà nó có nhiệm vụ điều khiển.
  • Đặc điểm khác là hệ thống nhúng có thể tương tác với môi trường, thế giới bên ngoại. Thông thường sẽ qua các cảm nhận môi trường, tác động trở lại thế giới bên ngoài, nó có thể tương tác hoặc không tương tác với người dùng như máy tính cá nhân.
  • Hệ thống nhúng có thể có hoặc  không có giao diện để giao tiếp với người dùng. Với những hệ thống đơn giản, hệ thống sẽ giao tiếp với người dùng thông qua các nút bấm, đèn led. Còn đối với các hệ thống phức tạp hơn sẽ có các giao diện, màn hình đồ hoạ, cảm ứng,.. để có thể dễ dàng giao tiếp với người dùng.

 Việc tạo ra các phần mềm nhúng được gọi là lập trình nhúng. Với mỗi loại robot  tùy thuộc vào chức năng, người ta sẽ sử dụng các bộ vi xử lý, vi điều khiển khác nhau cũng như các phần cứng khác. Do đó chúng ta cần phải chọn một ngôn ngữ lập trình cùng với  IDE thích hợp  để viết phần mềm nhúng.   Chẳng hạn nếu bạn sử dụng vi điều khiển Arduino, thì phải dùng ngôn ngữ lập trình kiểu C và IDE chuyên biệt cho Arduino để viết và dịch chương trình trên PC của bạn. Sau  đó bạn nhúng hay tải chương trình  lên Arduino . Trong khi, nếu bạn dùng vi điều khiển Raspberry Pi, thì ngôn ngữ lập trình Python là lựa chọn phù hợp.

3. Thực hành xây dựng xe tự hành 3 bánh tránh vật cản và  dò đường đi

3.1. Linh kiện lắp ghép

LinhKien

Bộ linh kiện bao gồm:

  • 01Vi điều khiển Arduino Uno
  • 01Cảm biến siêu âm tránh vật cản
  • 01Cảm biến dò đường đi bằng tia hồng ngoại
  • 02 động cơ DC
  • 01 cầu điều khiển động cơ H-Bridge L 298
  • 02 bánh xe
  • 01 khung xe
  • Jack cắm và chân cắm
  • 04 Pin 3vDC

UntitledH Bridge 1 1 

H-Bridge L298

Trong cầu điều khiển L298:

-Cổng 1 và 2 điều khiển motor 1

-Cổng 3, 4 điều khiển motor 2;

-Cổng 5 và 7 nguồn 5v;  6 là nguồn GND.

-C1 và C2 nhận tín hiệu điều khiển từ motor 1

-C3, C4 nhận tín hiệu điều khiển từ motor 2

sensor Sieu am

Sensor do line

DC motor

Banh xe

Jack

Pin

ModelComplete

 

3.2 Code cho Arduino 

int motorPins[] = {2, 3, 4, 5};

int irPin[] = {6, 7};

void setup() {

Serial.begin(9600);

for (int i = 0; i < 4; i++) {

pinMode(motorPins[i], OUTPUT);

}

pinMode(irPin[1], INPUT);

pinMode(irPin[2], INPUT);

}

long lastLeft = 0;

long lastRight = 0;

void loop() {

//go();

bool leftInput = digitalRead(irPin[0]);

bool rightInput = digitalRead(irPin[1]);

if (!leftInput && !rightInput) {

if (lastLeft > lastRight) {

while(leftInput || rightInput) {

turnAroundLeft();

leftInput = digitalRead(irPin[0]);

rightInput = digitalRead(irPin[1]);

}

}

else {

while(leftInput || rightInput) {

turnAroundRight();

leftInput = digitalRead(irPin[0]);

rightInput = digitalRead(irPin[1]);

}

}

return;}

if (!leftInput) {

turnLeft();

return;

}

if (!rightInput) {

turnRight();

return;}

if (rightInput && leftInput) {

go();

return;

}

if (leftInput) lastLeft = millis();

if (rightInput) lastRight = millis();

}

void stopMotor() {

rotate(0, 0, 0);

rotate(1, 0, 0);

}

void turnLeft()

{

rotate(0, 1, 230);

rotate(1, 0, 0);

}

void turnRight()

{

rotate(0, 0, 0);

rotate(1, 1, 230);

}

void turnAroundLeft()

{

rotate(0, 1, 200);

rotate(1, 0, 200);

}

void turnAroundRight()

{

rotate(0, 0, 200);

rotate(1, 1, 200);

}

void go()

{

rotate(0, 1, 230);

rotate(1, 1, 230);

}

void rotate(int motorIndex, bool dir, int motorSpeed) {

int pulse1 = 0;

int pulse2 = 0;

if (dir) {

pulse2 = motorSpeed;

} else {

pulse1 = motorSpeed;

}

analogWrite(motorPins[motorIndex * 2], pulse1);

analogWrite(motorPins[motorIndex * 2 + 1], pulse2);

}

 

Tài liệu tham khảo

  1. Gordon MaCom, Robot Builder’s BONAZA, Fourth edition, McGraw-Hill, 2011
  2. link: https://cloudify.vn/phan-mem-nhung-la-gi