1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đồ án thiết kế: Xe tự hành Robot tự hành Robot dò đường

29 159 1

Đ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

Định dạng
Số trang 29
Dung lượng 4,8 MB

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

Nội dung

Xe tự hành hay còn gọi là Robot tự hành “là một thành phần có vai trò quan trọng trong ngành Robot học. Đề tài tập trung tìm hiểu về nguyên lý hoạt động và cách thức thực hiện xe tự hành (cụ thể là xe dò đường). Điểm khác biệt của xe tự hành này với các loại xe khác (ô tô, xe nâng…) là khả năng tự động đi theo một đường đã vạch sẵn mà không cần sự điều khiển của con người trong quá trình di chuyển

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN ĐIỆN TỬ - VIỂN THÔNG

Trang 2

MỤC LỤC

DANH MỤC HÌNH VẼ 2

DANH MỤC BẢNG BIỂU 3

DANH MỤC THUẬT NGỮ 4

NỘI DUNG 5

1 Lý do chọn đề tài 5

2 Yêu cầu chức năng và phi chức năng 5

2.1 Yêu cầu chức năng 5

2.2 Yêu cầu phi chức năng 6

3 Thiết kế hệ thống 6

3.1 Sơ đồ khối 6

3.2 Sơ đồ chi tiết từng khối 7

3.3 Ước tính chi phí 10

3.4 Phân tích nhân lực 11

3.5 Phân công công việc 12

4 Thực hiện 12

4.1 Thực hiện phần cứng 12

4.2 Thực hiện phần mềm 17

4.3 Nạp code 20

5 Kiểm thử 23

5.1 Kiểm tra cảm biến hồng ngoại 23

5.2 Kiểm tra hoạt động của xe 25

KẾT LUẬN 26

HƯỚNG PHÁT TRIỂN 27

TÀI LIỆU THAM KHẢO 28

Trang 3

DANH MỤC HÌNH V

Hình 3-1: Sơ đồ khối tổng quát 6

Hình 3-2: Khối cảm biến 7

Hình 3-3: Khối điều khiển 8

Hình 3-4: Khối điều khiển động cơ 9

Hình 3-5: Động cơ giảm tốc 9

Hình 3-6: Khối nguồn 10

Hình 4-1: Tổng thể sản phẩm 13

Hình 4-2: Khối cảm biến 14

Hình 4-3: Arduino UNO R3 14

Hình 4-4: Khối điều khiển động cơ 16

Hình 4-5: 2 quả pin 9V 17

Hình 4-6: Mở sửa sổ Device Manager 21

Hình 4-7: Giao diện cửa sổ Device Manager 21

Hình 4-8: Chọn Board 22

Hình 4-0-9: Nạp chương trình 22

Hình 5-1: Test cảm biến 1 trên nền đen, còn lại trên nền trắng 23

Hình 5-2: Test cảm biến 1 trên nền đen, còn lại trên nền trắng 24

Hình 5-3: Test cảm biến 2 và 3 trên nền đen còn lại trên nền trắng 24

Hình 5-4: Test cảm biến 3 và 4 trên nền đen, còn lại trên nền trắng 25

DANH MỤC BẢNG BIỂ

Trang 4

Bảng 3.1: Ước tính chi phí 10 Bảng 3.2: Phân tích nhân lực 11 Bảng 3.3: Phân công công việc 12

Trang 6

NỘI DUNG

1 Lý do chọn đề tài

Xe tự hành hay còn gọi là Robot tự hành “là một thành phần có vai trò quan trọng trong ngành Robot học Cùng với sự phát triển mạnh mẽ của các hệ thống tự động hóa, robot tự hành ngày một được hoàn thiện và càng cho thấy lợi ích của nó trong công nghiệp và sinh hoạt.”[1] Với yêu cầu của môn Đồ Án Thiết Kế 2, nhóm chúng em nhận thấy xe tự hành là một đề tài thú vị, giúp chúng em có thêm kiến thức về các lĩnh vực khác như cơ khí, điện, điện tử… và chúng em có thể thực hiện thành công đề tài này Do đó, xe tự hành đã được lựa chọn để chúng em nghiên cứu cho môn Đồ Án Thiết Kế 2 này

Đề tài tập trung tìm hiểu về nguyên lý hoạt động và cách thức thực hiện xe tựhành (cụ thể là xe dò đường) Điểm khác biệt của xe tự hành này với các loại xe khác (ô tô, xe nâng…) là khả năng tự động đi theo một đường đã vạch sẵn mà không cần sự điều khiển của con người trong quá trình di chuyển

Trong quá trình thực hiện, chúng em không thể tránh khỏi những thiếu sót Chúng em mong nhận được sự đóng góp của thầy cô và các bạn để đồ án được hoànthiện hơn

Chúng em xin chân thành cảm ơn PGS.TS Nguyễn Văn Khang, người đã trực tiếp hướng dẫn chúng em thực hiện đồ án này Thầy đã giúp đỡ, tận tình chỉ bảo chúng em trong suốt quá trình học tập và nghiên cứu

2 Yêu cầu chức năng và phi chức năng

2.1 Yêu cầu chức năng

- Xe chạy cheo 1 đường đi màu đen đã vạch sẵn trên nền trắng

- Khi xe không thể nhận diện được đường đi, quay trái để tìm đường

- Xe có nút nhấn cho phép hoạt động hoặc không hoạt động

Trang 7

2.2 Yêu cầu phi chức năng

- Số bánh xe: 3 bánh Hai bánh sau truyền động (mỗi bánh được điều khiển bởi một động cơ), bánh trước dẫn động

- Số cảm biến: 4 cặp cảm biến hồng ngoại chia làm 2 bên đối xứng với nhau

so với mặt phẳng trung trực của xe và ở trước bánh dẫn động Đặt tên các cảm biến (tính từ trái qua phải của xe: A1, A2, B1, B2) Khoảng cách giữa hai cảm biến cạnh nhau: 2 cm

- Đường đi:

o Màu: Màu đen

o Chiều rộng: 3,5 cm

- Nguồn: 18V

o Nguồn cho mạch điều khiển trung tâm: 9V

o Nguồn cho động cơ: 9V

- Chất liệu sàn xe: nhựa mica

- Kích thước: 25cm x 12cm x 8cm (chiều dài x chiều rộng x chiều cao)

- Chi phí sản xuất: 700.000 đồng

- Ngày hoàn thành: 12/01/2017

Trang 8

3 Thiết kế hệ thống

3.1 Sơ đồ khối

Hình 3-1: Sơ đồ khối tổng quát

- Khối cảm biến: xác định xe đi đúng đường, lệch phải hay lệch trái.

- Khối điều khiển trung tâm: Nhận tín hiệu từ khối cảm biến, từ đó đưa ra

quyết định điều khiển khối điều khiển động cơ

- Khối điều khiển động cơ: điều khiển các động cơ của xe quay hay dừng.

- Khối nguồn: Cung cấp nguồn điện cho các khối còn lại hoạt động

3.2 Sơ đồ chi tiết từng khối

3.2.1 Khối cảm biến

Khối cảm biến bao gồm 1 module hồng ngoại và các cảm biến hồng ngoại Các cảm biến hồng ngoại sẽ nằm ở 2 bên so với mặt phảng trung trực của xe Module hồng ngoại sẽ nhận tín hiệu từ các cảm biến hồng ngoại thông qua các chân IN1, IN2, IN3, IN4 Giá trị của chân OUT của cảm biến hồng ngoại sẽ trả về giá trị anolog Module hồng ngoại sẽ nhận tín hiêụ, sau đó dùng triết áp để quyết định ngưỡng trả về tại các chân OUT là 0 hay 1 Các chân OUT1, OUT2, OUT3, OUT4 nối với các chân tương ứng của khối điều khiển

Trang 9

Hình 3-2: Khối cảm biến

3.2.2 Khối điều khiển trung tâm

Ta dùng module Arduino làm trung tâm điều khiển Lý do: Arduino có hệ thống thư viện phong phú, lập trình dễ dàng, dễ kết nối với các khối khác

Hình 3-3: Khối điều khiển

Trang 10

3.2.3 Khối điều khiển động cơ

Khối điều khiển động cơ gồm module L298 và 2 động cơ điều khiển 2 bánh trái,phải của xe Module L298 là một IC tích hợp gồm hai mạch cầu H bên trong Điện

áp làm tăng công suất đầu ra từ 5V đến 47V,dòng có thể lên đến 4A.Các chân IN1, IN2, IN3, IN4 là các chân tín hiệu điều khiển, được nối với các chân tương ứng của khối điều khiển, quyết định xem các motor sẽ quay như thế nào Các chân OUT1, OUT2, OUT3, OUT4 sẽ được nối với động cơ Hai chân ENA và ENB để điều khiển các mạch cầu H trong L298 Nếu ở mức logic “1” thì cho phép mạch cầu H hoạt đông, còn nếu ở mức logic “0” thì mạch cầu H không hoạt động

Hình 3-4: Khối điều khiển động cơ

Mỗi động cơ được gắn với 1 bánh xe truyền động cho xe Khi xe muốn rẽ trái, động cơ bên phải sẽ quay, động cơ bên trái không quay và ngược lại, khi xe muốn rẽphải thì động cơ bên trái quay, động cơ bên phải không quay Ở đây, chúng em dùngđộng cơ giảm tốc để đảm bảo khả năng chịu tải của xe, có thể kéo theo các vật khác

Trang 11

Hình 3-6: Khối nguồn

Trang 12

- Có khả năng lập trình, thuyết trình tốt.

- Bảo thủ trong công việc, đôi khi không tôn trọng ý kiến thành viên trong nhóm

- Các buổi chiều trong tuần và ngày nghỉ cuối tuần

- Xe máy

- Laptop

- Arduino UnoR3

- Module L298

2 - Đúng giờ - Nhà xa - Các ngày - Xe máy

Trang 13

Quang

Hoàn - Tinh thần tráchnhiệm trong

công việc

-Có khả năng gắn kết các thành viên trongnhóm

- Chưa có kỹ năng lập trìnhcho Arduino

trong tuần trừ cuối tuần

- Laptop

- Mỏ hàn

3.5 Phân công công việc

Từ bảng đánh giá phân tích nhân lực và các công việc cần thực hiện, nhóm đã phân chia công việc cho từng thành viên như sau:

Bảng 3.3: Phân công công việc

ST

- Yêu cầu chức năng, phi chức năng

- Tìm hiểu giá thành sản phẩm

- Viết và test code

- Mua linh kiện

- Test động cơ

2 Lê Quang Hoàn - Sơ đồ khối và chi tiết các khối

- Mô phỏng trên proteus

- Phân tích nhân lực và phân công công việc

- Mua linh kiện

- Làm đường cho xe chạy

4 Thực hiện

4.1 Thực hiện phần cứng

Dưới đây là sản phẩm sau khi hoàn thành:

Trang 14

Hình 4-7: Tổng thể sản phẩm

Chiếc xe có 3 bánh, sàn xe được làm bằng nhựa mica Đặt trên sàn xe là module L298N, module Arduino Uno R3 và module cảm biến hồng ngoại Bên cạnh module Arduino là 1 nút bấm màu đỏ cho phép bật/tắt thiết bị Hai bên của module cảm biến hồng ngoại là 2 quả pin 9V Lý dó không đặt nguồn pin cạnh module L298N vì khi hoạt động, vi điều khiển L298 có thể bị nóng, làm ảnh hưởng đến nguồn pin Bốn cảm biến hồng ngoại được đặt ở đầu xe

4.1.1 Khối cảm biến

Khối cảm biến có hình dạng như sau:

Trang 15

4.1.2 Khối điều khiển trung tâm

Khối điều khiển trung tâm chúng em sử dụng là Arduino uno R3 có hình dạng sau:

Hình 4-9: Arduino UNO R3

Trang 16

-Bảng 4.1: Thông số của Arduino UNO R3 [5]

Số chân Digital I/O 14 (6 chân cho phép sử dụng PWM)

Dòng tối đa trên mỗi chân I/O 30 mA

- Các chân chức năng:

o GND: cực âm của nguồn điện cấp cho UNO

o 5V: Điện áp 5V đầu ra với dòng tối đa là 500 mA

o 3.3V: Điện áp 3.3V đầu ra với dòng tối đa 50 mA

o Vin: Cấp nguồn ngoài cho Arduino UNO

- Bộ nhớ:

o Bộ nhớ Flash (32KB): những đoạn lệnh lập trình sẽ được lưu trữ trong

bộ nhớ Flash của vi điều khiển

o Bộ nhớ SRAM (2KB): giá trị các biến được khai báo khi lập trình sẽ lưu ở đây Khi mất điện, dữ liệu trêu SRAM sẽ bị mất

o EEPROM (1KB): đây giống như ổ cứng mini – nơi có thể đọc và ghi

dữ liệu và không bị mất khi mất điện

4.1.3 Khối điều khiển động cơ

Khối điều khiển động cơ là module L298 có hình dạng sau:

Trang 17

Hình 4-10: Khối điều khiển động cơ

Hai nguồn 5V và 9V đều nối cực âm với chân GND của module Nguồn 5V (lấy từ chân ra 5V của Kit Arduino UNO R3) để nuôi module, nguồn 9V để cấp dòng cho 2 động cơ A và B

4.1.4 Khối nguồn

Vì đây là thiết kế xe nên không thể dùng nguồn cắm dây được Chính vì thế, chúng em quyết định dùng nguồn là 2 pin 9V Một pin dùng để cấp nguồn cho Arduino, một pin dùng để cấp nguồn cho động cơ

Trang 18

Hình 4-11: 2 quả pin 9V

4.2 Thực hiện phần mềm

Chúng em sử dụng phầm mềm Arduino 1.6.12 để viết chương trình cho xe chạy Code bao gồm các phần:

4.2.1 Khai báo chân

Đầu tiên, ta cần khai báo các chân tín hiệu của các khối khác sẽ được nối với cácchân nào của Arduino UNO

#define inA1 6 //Định nghĩa chân inA1 của động cơ A nối với chân 6 của Arduino UNO

#define inA2 7 //Định nghĩa chân inA2 của động cơ A nối với chân 7 của Arduino UNO

#define inB1 8 //Định nghĩa chân inB1 của động cơ A nối với chân 8 của Arduino UNO

#define inB2 9 //Định nghĩa chân inB2 của động cơ A nối với chân 9 của Arduino UNO

#define sensor1 10 //Định nghĩa cảm biến 1 nối với chân 10 của Arduino UNO

#define sensor2 11 //Định nghĩa cảm biến 1 nối với chân 11 của Arduino UNO

#define sensor3 12 //Định nghĩa cảm biến 1 nối với chân 12 của Arduino UNO

#define sensor4 13 //Định nghĩa cảm biến 1 nối với chân 13 của Arduino UNO

4.2.2 Khai báo chân input, ouput

Sau khi khai báo các chân tín hiệu, ta xác định chân nào sẽ nhận tín hiệu đầu vào, chân nào sẽ cho tín hiệu đầu ra Để kiểm tra hoạt động của hệ thống sau này, ta

dùng lệnh Serial.begin() để gửi tín hiệu về máy tính

Trang 19

Serial.begin(9600); // thiet lap su dung serial gui tin hieu ve may tinh

pinMode(sensor1, INPUT); //Set chân sensor của module hồng ngoại là input

4.2.3 Hàm điều khiển chiều quay của một động cơ

void motorControlNoSpeed(byte in1, byte in2, byte direct)

{

// in1, in2 là 2 tín hiệu điều khiển chiều quayd dộng cơ

switch (direct)

{

digitalWrite(in1, LOW); //Thiết lập in1 ở mức thấp (LOW)

4.2.4 Hàm điều khiển hướng di chuyển của xe

void robotMover(byte inR1, byte inR2, byte inL1, byte inL2, byte action)

{

/*

inR1 inR2 là 2 chân tín hiệu động cơ bên phải

inL1 inL2 là 2 chân tín hiệu động cơ bên trái

Trang 20

4.2.5 Các hàm kiểm tra vị trí cảm biến hồng ngoại

int deviationDarkLine4Sensor( int PinNumb1, int PinNumb2, int PinNumb3, int PinNumb4) {

int left = 0; //biến kiểm tra lệch trái

int right = 0; // biến kiểm tra lệch phải

left = IRSensor(PinNumb1) + IRSensor(PinNumb2); //kiểm tra mấy cảm biến trái ở trong màu đen

right = IRSensor(PinNumb3) + IRSensor(PinNumb4); //kiểm tra mấy cảm biến phải ở trong màu đen

Serial.print( "left=" ); // In lên màn hình máy tính (nếu kết nối máy tính)

4.2.6 Hàm điều khiển động cơ dựa theo cảm biến hồng ngoại

void darkLineFollower(byte inR1, byte inR2, byte inL1, byte inL2, byte sen1, byte sen2, byte sen3, byte sen4)

{

//Hàm điều khiển robot bám line màu tối

//inR1, inR2 và inL1, inL2 là các chân tín hiệu lần lượt điều khiển động cơ di chuyển bên phải và trái

Trang 21

//sen1 đến sen4 là chân nhận tín hiệu từ cảm biến hồng ngoại

switch (deviationDarkLine4Sensor(sen1, sen2, sen3, sen4))

- Bước 1: Kết nối Arduino Kết nối với máy tính

- Bước 2: Tìm cổng kết nối của Arduino UNO với máy tính[6]

Mở cử sổ Run và gõ lệnh “mmc devmgmt.msc”

Trang 22

Hình 4-12: Mở sửa sổ Device Manager

Sau đó bấn Enter, cửa sổ Device Manager sẽ hiện lên

Hình 4-13: Giao diện cửa sổ Device Manager

Trang 23

Chọn mục Ports (COM & LPT), ta sẽ thấy cổng COM Arduino UNO R3

- Bước 3: Khởi động Arduino IDE

- Bước 4: Cấu hình làm việc cho Arduino IDE

Vào menu Tools -> Board -> chọn Arduino Uno

Hình 4-14: Chọn Board

- Bước 5: Mở file code và nạp chương trình

Trang 24

5 Kiểm thử

5.1 Kiểm tra cảm biến hồng ngoại

Trong phần báo cáo này, chúng em kiểm thử các cảm biến Chúng em kiểm thử bằng cách viết một chương trình riêng để kiểm tra hoạt động của cảm biến Chương trình có ghi nếu cảm biến nhận màu đen thì màn hình máy tính hiện lên chữ “black”còn nếu cảm biến nhận màu trắng thì màn hình máy tính hiện lên 1 nét liền Chúng

em thực hiện kiểm tra tất cả 4 con cảm biến bằng 4 trường hợp và ghi lại trong các bức ảnh

if (digitalRead (sensor1) == 0) Serial.print(" _");

elseSerial.print ("black ");

if (digitalRead (sensor2) == 0) Serial.print (" _");

elseSerial.print ("black ");

if (digitalRead (sensor3) == 0) Serial.print (" _");

elseSerial.print ("black ");

if (digitalRead (sensor4) == 0) Serial.print (" _\n");

elseSerial.print ("black \n");

Trang 25

 Trường hợp 2: test cảm biến 2 trên nền đen còn lại trắng Kết quả được ghi lại như sau:

Hình 5-17: Test cảm biến 1 trên nền đen, còn lại trên nền trắng

 Trường hợp 3: test cảm biến 2 và 3 trên nền đen còn lại trắng Kết quả thu được như sau:

Hình 5-18: Test cảm biến 2 và 3 trên nền đen còn lại trên nền trắng

Trang 26

 Trường hợp 4: test cảm biến 3 và 4 trên nền đen còn lại trắng Kết quả thu được như sau:

Hình 5-19: Test cảm biến 3 và 4 trên nền đen, còn lại trên nền trắng

5.2 Kiểm tra hoạt động của xe

Sau khi thấy cảm biến hồng ngoại đã hoạt động chính xác, chúng em tiến hành nạp code để test hoạt động của cả xe, bao gồm cảm biến hồng ngoại và điều khiển động cơ Kết quả cho thấy xe chạy đúng với yêu cầu chức năng là đi theo đường đã

kẻ sẵn, không có trường hợp xe bị mất vạch

Trang 27

KẾT LUẬN

Như vậy, trong một kỳ học, chúng em đã thực hiện thành công đồ án 2 với đề tài “Xe tự hành” Qua những lần được thực hành làm trực tiếp chiếc xe trong môn học này, chúng em đã rút ra được rất nhiều bài học bổ ích Từ đây, chúng em đã thấy được những ưu, nhược điểm của bản thân để từ đó có thể khắc phục Chúng

em xin chân thành cảm ơn PGS.TS Nguyễn Văn Khang đã tạo điều kiện cho chúng

em để chúng em có những kinh nghiệm quý báu và tự tin hơn để chuẩn bị hành trang bước vào đời

Trang 29

TÀI LIỆU THAM KHẢO

[1] Phạm Trọng Đạt, Phạm Đức Linh, Nguyễn Văn Lượm, “Thiết kế robot mini

tự hành dò đương trong mê cung” trong Tuyển tập Báo cáo Hội nghị sinh viên Nghiên cứu Khoa học lần thứ 7 Đại học Đà Nẵng năm 2010

truy cập lần cuối ngày 26/11/2016

14/01/2017

cuối ngày 14/01/2017

Ngày đăng: 12/04/2021, 08:28

TỪ KHÓA LIÊN QUAN

w