1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận - Thiết Kế Hệ Thống Số - Đề Tài - Lập Trình Điều Khiển Cánh Tay Robot Sử Dụng Arduino Nano

32 15 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập Trình Điều Khiển Cánh Tay Robot Sử Dụng Arduino Nano
Tác giả Chu Khánh Duy, Nguyễn Thế Hải, Ngô Diên Phong, Đào Duy Quý
Người hướng dẫn Nguyễn Văn Thành
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Báo cáo đồ án
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 32
Dung lượng 1,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. I. GIỚI THIỆU CHUNG (5)
  • 2. Các thành phần linh kiện và chức năng (6)
  • 3. Mục tiêu đồ án (9)
  • II. NGÔN NGỮ LẬP TRÌNH (9)
    • 1. Ngôn ngữ lập trình của Arduino (9)
    • 2. Microsoft Visual C# (11)
  • III. THỰC THI CHƯƠNG TRÌNH (13)
    • 1. Sơ đồ khối hệ thống (13)
    • 2. Một vài lệnh điều khiển động cơ servo cơ bản (14)
      • 2.1 Lệnh điều khiển động cơ servo cơ bản (14)
      • 2.2 Thuật toán quét động cơ servo (14)
    • 3. Điều khiển cánh tay với nút bấm (15)
    • 4. Điều khiển động cơ servo bằng chiết áp (17)
    • 5. Điều khiển động cơ servo với Visual C# (19)
  • IV. KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI (31)
    • 1. Điều khiển động cơ Servo bằng Visual C# thông qua kết nối bluetooth của (31)
    • 2. Hướng phát triển đề tài (31)
    • 3. Một vài lưu ý khi lắp ghép và điều khiển cánh tay (32)

Nội dung

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG  BÁO CÁO ĐỒ ÁN THIẾT KẾ HỆ THỐNG SỐ Đề tài LẬP TRÌNH ĐIỀU KHIỂN CÁNH TAY ROBOT SỬ DỤNG ARDUINO NANO Giảng viên hƣớng dẫn NGUYỄ[.]

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

- -

BÁO CÁO ĐỒ ÁN THIẾT KẾ HỆ THỐNG SỐ

Đề tài: LẬP TRÌNH ĐIỀU KHIỂN CÁNH TAY

ROBOT SỬ DỤNG ARDUINO NANO Giảng viên hướng dẫn: NGUYỄN VĂN THÀNH

Nhóm sinh viên thực hiện: NHÓM 06

Sinh viên thực hiện: CHU KHÁNH DUY – B17DCDT052

NGUYỄN THẾ HẢI – B17DCDT063 NGÔ DIÊN PHONG – B17DCDT140 ĐÀO DUY QUÝ – B17DCDT153

Hệ: ĐẠI HỌC CHÍNH QUY

HÀ NỘI – 2021

Trang 2

Lời mở đầu

1 I GIỚI THIỆU CHUNG 5

1.Tổng quan về đồ án 5

2 Các thành phần linh kiện và chức năng 6

3 Mục tiêu đồ án 9

II NGÔN NGỮ LẬP TRÌNH 9

1 Ngôn ngữ lập trình của Arduino 9

2 Microsoft Visual C# 11

III THỰC THI CHƯƠNG TRÌNH 13

1 Sơ đồ khối hệ thống 13

2 Một vài lệnh điều khiển động cơ servo cơ bản 14

2.1 Lệnh điều khiển động cơ servo cơ bản 14

2.2 Thuật toán quét động cơ servo 14

3 Điều khiển cánh tay với nút bấm 15

4 Điều khiển động cơ servo bằng chiết áp 17

5 Điều khiển động cơ servo với Visual C# 19

IV KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 31

1 Điều khiển động cơ Servo bằng Visual C# thông qua kết nối bluetooth của module HC06 31

2 Hướng phát triển đề tài 31

3 Một vài lưu ý khi lắp ghép và điều khiển cánh tay 32

Trang 3

V.TÀI LIỆU THAM KHẢO 32

Trang 4

Những cánh tay robot đang được sử dụng phổ biến hiện nay trên thế giới: Robot Palletizing – Bốc xếp hàng hóa, Robot Arc Welding – Hàn gia công cơ khí, Robot Pick and Place – Gắp và sắp xếp sản phẩm, Robot Foundry and Forging – Hỗ trợ đúc và rèn, Robot Waterjet Cutting – Cắt bằng tia nước,Robot đánh bóng v.v…

Có thể thấy cánh tay robot hỗ trợ rất nhiều cho con người trong công việc, giúp tăng năng suất và hạn chế rủi ro trong các ngành công nghiệp nặng có tính chất nguy hiểm với mạng sống của con người, vì vậy nhóm chúng em xây dựng đề tài này, hy vọng có thể góp một phần nào đó về ý tưởng tự động hóa, hiện đại hóa và

sự kết nối công nghệ trong thời kì 4.0 hiện nay

Trang 5

1 I GIỚI THIỆU CHUNG

1.Tổng quan về đồ án

Đề tài của đồ án là “Lập trình điều khiển cánh tay robot sử dụng Arduino Nano”,

đề tài này được chúng em xây dựng dựa trên nhu cầu thiết yếu của cuộc sống, đặc biệt mà trong hoàn cảnh robot ngày càng có vai trò quan trọng, giúp con người hoàn thành công việc hiệu quả hơn, giúp tiết kiệm thời gian, của cải, tiền bạc, giảm tải nhiều rủi ro trong lao động, đặc biệt là các ngành công nghiệp có tính chất nguy hiểm, một cánh tay robot được lập trình bởi các thuật toán thông minh, có thể được điều khiển tự động, có khả năng ghi nhớ chính xác là một thứ cực kì hữu ích để cải thiện năng suất công việc, giúp nâng cao năng suất, góp phần vào công cuộc hiện đại hóa đất nước, nâng cao hiểu biết về IoT và công nghệ 4.0 và đồ án của bọn em

sẽ thể hiện được điều đó

Hình 1: Hình ảnh sản phẩm khi sau khi hoàn thành

Trang 6

2 Các thành phần linh kiện và chức năng

1 Arduino Nano V3 Thực hiện các lệnh từ máy tính truyền xuống

2 Mạch mở rộng cho

Arduino Nano Mở rộng chân tín hiệu cho Arduino Nano

3 Động cơ servo mini

MG90S Điều khiển các khớp của cánh tay robot

4 Bộ khung cánh tay

robot Tạo hình cho cánh tay robot

5 Cáp nạp code cho

Arduino nano Truyền tín hiệu từ máy tính sang Arduino

6 Cáp 7 màu cái cái Dây nối mạch điện

7 Cáp 7 màu đực cái Dây nối mạch điện

8 Chiết áp Điều khiển động cơ bằng chiết áp

9 Nút bấm Điều khiển động cơ bằng nút bấm

10 Breadboard Dùng để cắm mạch điện

11 Pin UltraFire Cấp nguồn (dự phòng) cho cánh tay

12 Đế pin Ultra Fire đôi Dùng để đựng pin Ultra Fire

13 Chốt nối dây Nối các dây cắm với nhau

14 Module bluetooth

HC06

Dùng để kết nối Bluetooth từ máy tính sang cánh tay

15 Sạc đơn Sạc pin Ultra Fire

♦ Một vài linh kiện cần thiết:

- Arduino Nano V3:

Hình 2: Arduino Nano V3

Trang 7

Thông số kỹ thuật:

Chức năng: nhỏ gọn, dễ sử dụng, chi phí thấp, có thể lắp luôn vào board mở rộng

để mở rộng các chân tín hiệu, nhưng số lượng chân cắm tín hiệu hạn chế

- Board mở rộng:

Hình 3: Board mở rộng

Chức năng: có thể mở rộng thêm chân cắm cần thiết cho Arduino

Trang 8

- Động cơ Servo MG90S:

Hình 4: Động cơ Servo MG90S

Chức năng: Điều khiển các khớp của cánh tay robot, giúp nâng hạ, kéo thả, động

cơ servo MG90S có ưu điểm là trục bằng sắt, giúp giữ được trụ xoay của cánh tay

ổn định, không bị nghiêng và động cơ hoạt động khỏe hơn các động cơ mà trục được làm bằng nhựa

- Pin Ultra Fire:

Hình 5: Pin Ultra Fire

Chức năng: Giúp cấp nguồn cho cánh tay khi sử dụng kết nối bluetooth và ổn định

nguồn cho cánh tay khi cáp truyền dữ liệu từ máy tính sang Arduino dài, giúp hoạt động hiệu quả hơn do tính ổn định của pin

Trang 9

- Module Bluetooth HC06 :

Hình 6: Module Bluetooth HC06

Chức năng: Tạo được kết nối không dây giữa máy tính và cánh tay robot, giúp

việc điều khiển thực hiện dễ dàng hơn từ xa thay vì điều khiển bằng chiết áp hay nút bấm thông qua dây kết nối

3 Mục tiêu đồ án

Đưa ra được những tính năng hữu ích và giải pháp về tính ứng dụng của nó trong sản xuất công nghiệp, đặc biệt là các ngành công nghiệp nặng, ngoài ra giúp phát triển kĩ năng đội nhóm, kĩ năng lập trình, tạo lập xây dựng, báo cáo đồ án, kiến thức căn bản về robotics, hệ thống IOT và sự kết nối công nghệ với ngành công nghiệp robot nói chung và sự phát triển của công nghệ 4.0 nói riêng

II NGÔN NGỮ LẬP TRÌNH

1 Ngôn ngữ lập trình của Arduino

- Ngôn ngữ lập trình của Arduino chính là C/C++, những khác với lập trình trực tiếp với vi điều khiển, lập trình Arduino dễ dàng hơn rất nhiều nhờ vào các bo mạch mở rộng (library) đa dạng Tùy thuộc vào loại ứng dụng mình muốn thiết kế, một số loại bo mạch mở rộng hiện có sẵn trên website Những gì ta cần làm chỉ đơn giản là kết hợp các bo mạch này để tạo ra ứng dụng như mong muốn của mình

Trang 10

- Để lập trình bằng Arduino, ta chỉ cần tải xuống IDE , dây kết nối USB loại A-B

và một bo mạch Arduino, ở đây ta sử dụng Arduino Nano V3.Đây là một bo mạch

đã được xử lý để thiết kế các tương tác với các thiết bị phần cứng như động cơ robot, cảm biến,

- Đặc điểm của ngôn ngữ lập trình này nằm ở khả năng mở rộng của ngôn ngữ Arduino là bo mạch đã được xử lý và chuẩn hóa cho phép ta có thể mở rộng bằng các bo mạch khác Tùy vào mục đích sử dụng , ta có thể cắm chồng các bo mạch

mở rộng (shield) lên bo mạch Arduino Ta có thể dễ dàng sáng tạo và phát minh ra các ứng dụng tùy ý nhờ vào khả năng mở rộng của ngôn ngữ lập trình Arduino Khả năng mở rộng nhờ vào các bo mạch mở rộng cũng khiến ngôn ngữ này trở thành ưu tiên đối với các lập trình viên Ví dụ như khi ta muốn thiết kế khả năng kết nối Internet, ta có thể sử dụng Ethernet shield, muốn thiết kế khả năng điều khiển động cơ thì có Motor shield, và khả năng kết nối nhận tin nhắn thì có GSM shield v.v

Hình 7: Ví dụ một chương trình code điều khiển động cơ Servo

Trang 11

Một số tính năng thú vị của ngôn ngữ Arduino có thể kể đến như:

+ Thiết kế bộ xử lý trung tâm của các loại robot nhờ vào khả năng xử lý dữ liệu của các thiết bị cảm biến, động cơ, …

+ Thiết kế các trò chơi tương tác như Tetrix, Mario,

+ Ứng dụng trong máy bay không người lái,…

=> Như vậy với đặc điểm đã được xử lý và chuẩn hóa, Arduino là lựa chọn tối

ưu cho việc thiết kế bất cứ ứng dụng phần cứng nào mà ta cần một cách đơn giản và dễ dàng

2 Microsoft Visual C#

- C# (C Sharp) là một ngôn ngữ lập trình hướng đối tượng đa năng vô cùng mạnh

mẽ được phát triển bởi Microsoft, C# là phần khởi đầu cho kế hoạch NET của họ Tên của ngôn ngữ bao gồm ký tự thăng theo Microsoft nhưng theo ECMA là C#, chỉ bao gồm dấu số thường Microsoft phát triển C# dựa trên C++ và Java C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java

- Đặc trƣng của ngôn ngữ C#:

+ C# là ngôn ngữ đơn giản, mạnh mẽ

+ C# là ngôn ngữ đa năng và hiện đại, C# phù hợp cho việc phát triển trong thời đại 4.0, bao gồm việc phát triển web, mobile app, game, học máy và trí tuệ nhân tạo, phát triển đám mây, IoT, blockchain, microservices

+ C# là một ngôn ngữ lập trình hướng đối tượng đồng thời hỗ trợ lâp trình chức năng, C# hỗ trợ mạnh mẽ cho phương pháp lâp trình hướng đối tượng, ngoài ra C# còn hỗ trợ các phương pháp lập trình chức năng thông qua các biểu thức lamba, khớp mẫu, functions, các thuộc tính bất biến

+ C# là ngôn ngữ gõ tĩnh, định kiểu mạnh, hỗ trợ gõ động

+ C# là một ngôn ngữ ít từ khóa, C# có khoảng hơn 80 từ khóa

- Trong đồ án này, C# đóng một vai trò cực kì quan trọng là tạo ra được một ứng dụng dùng để điều khiển cánh tay robot với sự kết nối cùng với code của Arduino thông qua các cổng COM trên bảng điều khiển của ứng dụng, sau khi được hoàn thiện, ứng dụng dùng để điều khiển cánh tay của robot thông qua các tín hiệu gửi

Trang 12

lên và nhận lại, đó là các giao tiếp Serial, ngoài ra có thể giúp cánh tay ghi nhớ các hành động đã thực hiện trước đó và tự thực hiện lại các hành động này nếu ta cho phép

-Dưới đây là một chương trình C# rất đơn giản, với ví dụ "Hello World" kinh điển:

Hình 8: Ví dụ về chương trình trong Visual C#

Trang 13

III THỰC THI CHƯƠNG TRÌNH

1 Sơ đồ khối hệ thống

Hình 9: Sơ đồ khối hệ thống điều khiển của cánh tay robot

♦ Giải thích sơ đồ:

Nguồn: Cung cấp nguồn nuôi cho máy tính và các khối xử lý dữ liệu, động cơ,

đảm bảo việc thực hiện không bị gián đoạn

Chương trình: Các chương trình thuật toán điều khiển động cơ thông minh, đạt

hiệu quả và chính xác cao

Bộ điều khiển và máy tính: Gửi các dữ liệu của thuật toán cho khối xử lí dữ liệu Khối xử lí dữ liệu: Xử lí dữ liệu và gửi các tín hiệu điều khiển động cơ Servo Động cơ servo: Thực hiện các thao tác với các khớp của cánh tay robot

Cánh tay robot: Thực hiện thao tác kéo, thả ,nâng, hạ, xoay , kẹp và gửi lại số liệu

về góc quay, góc nâng - hạ, góc kẹp- thả về cho khối xử lý dữ liệu để ghi nhớ hành động

Trang 14

2 Một vài lệnh điều khiển động cơ servo cơ bản

2.1 Lệnh điều khiển động cơ servo cơ bản

Trang 15

3 Điều khiển cánh tay với nút bấm

Hình 10: Sơ đồ mắc động cơ servo với nút bấm -Code Arduino: Điều khiển 2 động cơ servo với 4 nút bấm

Trang 17

4 Điều khiển động cơ servo bằng chiết áp

Hình 11: Cách mắc động cơ servo và chiết áp ứng với các chân tín hiệu trên

Arduino nano Code Arduino: Điều khiển động cơ với 4 chiết áp và hiển thị góc quay lên máy

Trang 19

Serial.print(myservo3.read());

Serial.print(" Servo4: ");

Serial.println(myservo4.read());

}

5 Điều khiển động cơ servo với Visual C#

Hình 12: Điều khiển cánh tay robot với Visual C#

Trang 23

khop3.write(khop3.read() + soBuoc * soDoTrongBuoc);

Trang 25

void servoPosition (byte servo1, byte servo2, byte servo3, byte servo4)

Trang 30

private void button7_MouseUp(object sender, MouseEventArgs e)

Trang 31

IV KẾT QUẢ THỰC HIỆN VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

1 Điều khiển động cơ Servo bằng Visual C# thông qua kết nối bluetooth của module HC06

Hình 13: Điều khiển cánh tay robot bằng bluetooth

Kết quả: Cánh tay robot được điều khiển bằng bằng máy tính bằng Visual C#

thông qua các nút chức năng trên ứng dụng đã tạo bằng việc lắp module HC06 vào Arduino Nano, nhờ đó mà có thể kết nối máy tính với cánh tay robot và điều khiển một cách dễ dàng ,thuận tiện

=> Kết nối bằng bluetooth giúp cho việc điều khiển cánh tay robot thuận tiện và

linh hoạt hơn

2 Hướng phát triển đề tài

Nhờ vào việc sử dụng kết nối bluetooth, nên ta có thể nghĩ đến trường hợp ta điều khiển cánh tay robot bằng smartphone thông qua một ứng dụng được lập trình, do

đó càng đem lại tính thuận tiện, ngoài ra ta có thể lắp cánh tay robot lên một chiếc

xe cũng được điều khiển bằng ứng dụng thông qua bluetooth bằng việc tạo ra hai client cho hai kết nối Serial bluetooth Từ đó ta vừa có thể điều khiển xe, vừa có thể điều khiển cánh tay robot chỉ bằng một ứng dụng trên smartphone, ngoài ra có thể lắp thêm cảm biến trên cánh tay robot để gửi dữ liệu ngược lại về trung tâm dữ liệu

Trang 32

3 Một vài lưu ý khi lắp ghép và điều khiển cánh tay

- Cần set góc cho servo trước khi lắp đặt

- Các lỗ của bộ lắp ghép cánh tay khi đặt từ nhà sản xuất, cần khoan rộng, và dùng các ốc vít phù hợp

- Động cơ servo cần lắp đúng chiều

- Chú ý nguồn dự phòng cho Arduino

V.TÀI LIỆU THAM KHẢO

https://dientutuonglai.com/gioi-thieu-arduino-nano.html

502.html

https://ilook.asia/sach/chia-se-tai-lieu-ve-arduino-10-tai-lieu-hay-nhat-ve-arduino-Winform -Dai-hoc-Hutech-Ho-Chi-Minh/57a6f077f7f353e9.html

https://laptrinhvb.net/bai-viet/ebook-it/ EBOOK -Tai-lieu-lap-trinh Csharp https://itviec.com/blog/lap-trinh-c-2/

https://daynhauhoc.com/t/tai-lieu-co-ban-ve-c/1444

http://monhoc.vn/tai-lieu/visual-csharp/

Ngày đăng: 19/03/2023, 18:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w