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

bài tập lớn vi xử lý chủ đề xe tự động tránh vật cản

25 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Chương 1: Tổng quan đề tài1.1 Giới thiệu chung về robotRobot hay người máy là một loại máy có thể thực hiện những công việc mộtcách tự động bằng sự điều khiển của máy tính hoặc các vi mạ

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘIKHOA CƠ ĐIỆN TỬ - TRƯỜNG CƠ KHÍ

’BÀI TẬP LỚN

VI XỬ LÝ

Chủ đề: Xe Tự Động Tránh Vật CảnGiảng viên hướng dẫn:

Sinh viên:

TS Đặng Thái ViệtPhạm Hữu ThốngBùi Đình Thạch AnhBùi Duy TânNguyễn Minh NghĩaNguyễn Văn Toàn

MSSV: 20205436MSSV: 20184334MSSV: 20195166MSSV: 20170845MSSV: 20205439

Trang 2

Mục lục

Chương 1 : Tổng quan để tài ……… 4

1.1 Giới thiệu chung về robot ……… 4

1.2 Lý do chọn đề tài……….6

1.3 Bài toán tránh vật cản ……… 7

Chương 2: Các linh kiện chính và thiết kế mạch ……….8

2.1 Các linh kiện chính ……… 8

2.2 Thiết kế cơ khí, sơ đồ mạch điều khiển động cơ ……… 15

Chương 3: Vi xử lý ATmega328P tương tác với các thiết bị ngoại vi………19

3.1 Cách thức hoạt động của AVR……… 19

3.2 Vi xử xý tương tác với các thiết bị ngoại vi………22

Chương 4 : Kết quả và định hướng phát triển………26

4.1 Kết luận………26

4.2 Hướng phát triển………26

4.3 Ý nghĩa……….26

Trang 3

Đánh giá của giảng viên hướng dẫn

Trang 4

Chương 1: Tổng quan đề tài1.1 Giới thiệu chung về robot

Robot hay người máy là một loại máy có thể thực hiện những công việc mộtcách tự động bằng sự điều khiển của máy tính hoặc các vi mạch điện tử được lậptrình.Robot là một tác nhân cơ khí, nhân tạo, ảo, thường là một hệ thống cơ khí-điện tử.Với sự xuất hiện và chuyển động của mình, robot gây cho người ta cảm giác rằng nó giácquan giống như con người Từ "robot" (người máy) thường được hiểu với hainghĩa: robot cơ khí và phần mềm tự hoạt động Về lĩnh vực người máy Nhật Bản là nướcđi đầu thế giới về lĩnh vực này

Khái niệm Robot xuất hiện lần đầu tiên ở NewYork vào ngày 9/10/1922 trong vởkịch“Rossum’s Universal Robot” của nhà soạn kịch người Tiệp Khắc là Karen Chapek,còn từ Robot là một cách gọi khác của từ Robota-theo tiếng Tiệp có nghĩa là công việclao dịch Khi đó, Karen Chapek cho rằng Robot là những người máy có khả năng làmviệc nhưng không có khả năng suy nghĩ.Gần một thế kỷ tiếp theo, khái niệm robot đã liêntục được phát triển, đóng góp thêm bởi nhiều nhà nghiên cứu, nhiều công ty chuyên vềlĩnh vực robot.

Trước những năm 1970, người ta chỉ tập trung vào việc phát triển những robot taymáy hoạt động trong các nhà máy công nghiệp Sau đó mới xuất hiện những khái niệm vềrobot thông minh, và các nghiên cứu bắt đầu tập trung hơn vào robot di động Một trongnhững chuyên gia đầu ngành về robot di động là Hans P Moravec (bắt đầu nghiên cứu từnăm 1964), và hiện nay, chuyên nghiên cứu về robot di động là Sebastien Thruns.

Trang 5

Các robot di động có người điều khiển đã được dùng cho các mục đích quân sự,các nhiệm vụ nguy hiểm như phá mìn, thăm dò đáy đại dương, hầm mỏ, kiểm tra cácđường ống ngầm, hay thăm dò sao Hoả…Sản phẩm robot di động được sản xuất đại tràvà đưa vào thị trường lần đầu tiên là robot hút bụi Roomba và Trilobite của hãngElectrolux năm 2003.

Một số hình ảnh về robot và ứng dụng:

Hình 1.1: Robot tự hành trên sao Hỏa

Trang 6

Hình 1.2 Robot dò mìn

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

Theo dự đoán thì sau cuộc cách mạng lớn về internet sẽ là cuộc cách mạng về lĩnh vực robot Các robot được ứng dụng trong đời sống ngày càng nhiều như robot vận chuyển hàng hóa, robot kiểm tra nguy hiểm, robot xe lăn cho người khuyết tật, robot phục vụ sinh hoạt gia đình,… Điểm hạn chế của các robot tự hành hiện tại là tính thiếu linh hoạt và khả năng thích ứng thì làm việc ở những vị trí khác nhau Từ những lý do đó nảy sinh vấn đề tránh vật cản cho robot tự hành nhằm nâng cao tính linh hoạt cho robot Hầu hết các robot hiện đại đều có một kiểu tránh vật cản nào đó robot xác định vật cản và dừng lại ở khoảng cách ngắn so với vật cản để tránh va chạm, đến các thuật toán tinh tế hơn cho phép robot di chuyển theo đường viền quanh vật cản.

Nhằm từng bước tiếp cận và nâng cao cho quá trình nghiên cứu ứng dụng các công nghệ vào sản phẩm phù hợp thực tế vì thế nhóm chúng em chọn đề tài này.

Trang 7

1.3 Bài toán tránh vật cản

Tìm đường (Navigation) là một khoa học dẫn hưởng robot từ hành di chuyển trong khônggian làm việc của nó Trong vấn đề tìm đường bài toán được quan tâm nhiều nhất là bài toán tìm đường về đích mà không chạm vào vật cản trên đường đi.

Có 2 loại bài toán tìm đường cho robot:

+ Bài toán cục bộ (local): Môi trường làm việc của robot hoàn toàn không biết trước hoặcchỉ biết một phần Robot hoàn toàn nhờ vào sự cảm nhận môi trường trong quá trình di chuyển thông qua cảm biến gắn trên nó để dò đường.

+ Bài toán toàn cục (Global): Bản đồ môi trường làm việc của robot hoàn toàn được biết trước, vấn đề chính phải giải quyết là tìm đường đi cho robot trước khi nó xuất phát.Trong báo cáo, chúng em tập trung giải quyết vấn đề cục bộ với cảm biến sử dụng là cảmbiến siêu âm Môi trường hoạt động của Robot là mặt phẳng giới hạn bởi những bức tường xuất hiện ngẫu nhiên.

Trang 8

Chương 2: Các linh kiện chính và thiết kế mạch2.1 Các linh kiện chính của xe.

2.1.1 Arduino Uno

a, Cấu trúc chung.

Hình 2.1 Cấu trúc phần cứng Arduino Uno

Arduino Uno là một bo mạch vi điều khiển dựa trên chip Atmega328 Nó co 14 chân vào ra bằng tín hiệu số, trong đó có 6 chân có thể sử dụng để điều chế đô rộng xung Có 6 chân đầu vào tín hiệu tương tự cho phép chúng ta kết nối với các bộ cảm biến bên ngoài để thu thập số liệu, sứ dụng một dao động thạch anh tần số dao động 16MHz, có một cổng kết nối bằng chuẩn USB để chúng ta nạp chương trình vào bo mạch và một chân cấp nguồn cho mạch, một ICSP header, một nút reset Nó chứa tất cả mọi thứ cần thiết đểhỗ trợ các vi điều khiển, nguồn cung cấp cho Arduino có thể là từ máy tính thông qua cổng USB hoặc là từ bộ nguồn chuyên dụng được biến đổi từ xoay chiều sang một chiều hoặc là nguồn lấy từ pin.

b, Thông số kỹ thuật

Chân Vin: Điện áp đầu vào Arduino khi chúng ta dùng nguồn điện bên ngoài (khác với nguồn 5V lấy từ USB hoặc nguồn thông qua jack cắm nguồn riêng) Chúng ta có thể cung cấp nguồn thông qua chân này

Chân 5V: Cung cấp nguồn vi điều khiển và các bộ phận khác trên bo mạch và cung cấp nguồn cho các thiết bị ngoại vi khi kết nối tới bo mạch

Chân 3,3V: Cung cấp nguồn cho các thiết bị cảm biến

Trang 9

Chân GND: Chân nối đất.

Chân Aref: Tham chiếu điện áp đầu vào analog.

Chân IOREF: Cung cấp điện áp cho các vi điều khiển hoạt động Một shield được cấu hình đúng có thể đọc điện áp chân IOREF và lựa chọn nguồn thích hợp hoặc kích hoạt bộ chuyển đổi điện áp để là việc ở mức 5V hoặc 3,3V.Các chân digital chúng ta có thể cấu hình để làm chân nhần dữ liệu vào từ các thiết bị ngoại vihoặc làm chân để truyền tín hiêu ra các thiết bị ngoại vi Bằng cách sử dụng các hàm pinMode(), digitalWrite() và digitalRead() Mỗi chân có thể cung cấp hoặc nhận một dòng điện tối đa 40mA và có một điện trở kéo nội (mặc định không nối) 20 - 50 kOhms Ngoài ra có một số chân có chức năng đặcbiệt:

Chân 0 (Rx): Chân được dùng để nhận dữ liệu nối tiếp Chân 1 (Tx): Chân được dùng để truyền dữ liệu nối tiếp.Chân 2 và 3: Chân ngắt ngoài.

Chân 3, 5, 6, 9, 10 và 11: Chân vào/ra số hoặc để điều chế độ rộng xung (chân 13 được nối với một LED đơn, sáng tắt tương ứng với mức logic của chân này).

Chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Chuẩn giao tiếp SPI.Các chân analog có độ phân giải 10 bit (tương ứng với 1024 mức giá trị khác nhau) ứng với mức từ 0 – 5V Ngoài ra một số chân có các chức năng đặc biệt:

Chân A4 (SDA) và A5 (SCL): Hỗ trợ truyền thông TWI.

Trang 10

2.1.2 Cảm biến siêu âm HC-SR04 a, Giới thiệu

Cảm biến siêu âm HC-SR04 (Ultrasonic Sensor) được sử dụng rất phổ biến để xác định khoảng cách vì giá thành rẻ và khá chính xác Cảm biến siêu âm HC-SR04 sử dụng sóng siêu âm và có thể đo khoảng cách trong khoảng từ 2 -> 300cm.

b, Thông số kỹ thuật

c, Nguyên lý làm việc

Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn (5 microSeconds) từ chân Trig Sau đó, cảm biến siêu âm sẽ tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được sóng phản xạ ở pin này Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được phát từ cảm biển và quay trở lại

Tốc độ của âm thanh trong không khí là 340 m/s (hằng số vật lý), tương đương với29,412 microSeconds/cm (106 / (340*100)) Khi đã tính được thời gian, ta sẽ chia cho 29,412 để nhận được khoảng cách.

Trang 11

Hình 2.2 Biểu đồ thời gian

2.1.3 Module điều khiển động cơ L293D

a, Cấu trúc chung

Hình 2.3 IC điều khiển động cơ

Trang 12

1 Enable 1,2 1(2) và Input 2(7)Chân này cho phép (enable) các chân ngõ vào Input

2 Input 1 các mạch kỹ thuật sốĐiều khiển trực tiếp chân Output 1 Điều khiển bằng 3 Output 1 Kết nối đến một đầu của động cơ 1

6 Output 2 Kết nối đến đầu còn lại của động cơ 1

7 Input 2 các mạch kỹ thuật sốĐiều khiển trực tiếp chân Output 2 Điều khiển bằng

8 Vcc2 (Vs) Kết nối với chân nguồn cho động cơ đang chạy (4.5V đến 36V)

9 Enable 3,4 3(10) và Input 4(15)Chân này cho phép (enable) các chân ngõ vào Input

10 Input 3 các mạch kỹ thuật sốĐiều khiển trực tiếp chân Output 3 Điều khiển bằng 11 Output 3 Kết nối đến một đầu của động cơ 2

14 Output 4 Kết nối đến đầu còn lại của động cơ 2

15 Input 4 các mạch kỹ thuật sốĐiều khiển trực tiếp chân Output 4 Điều khiển bằng

16 Vcc2 (Vss) Kết nối với nguồn +5V để cho phép IC hoạt động

b, Thông số kỹ thuật

Trang 13

Có thể được sử dụng để điều khiển 2 động cơ DC với cùng một lúc.Có thể điều khiển được tốc độ và chiều quay của động cơ.Điện áp động cơ Vcc2 (Vs): 4.5V đến 36V

Dòng điện động cơ cực đại: 1.2ADòng điện động cơ liên tực cực đại: 600mAĐiện áp cung cấp cho Vcc1(vss): 4.5V đến 7VThời gian chuyển tiếp: 300ns (ở 5V và 24V)

2.2 Thiết kế cơ khí, mạch điều khiển động cơ2.2.1 Sơ đồ mạch

Hình 2.5 Sơ đồ mạch

Trang 14

Sơ đồ khối

2.2.2 Thiết kế cơ khí

Bản vẽ các chi tiết tạo thành xe

2.2.3 Điều khiển động cơ.

Điều khiển động cơ DC dùng IC L293D và Arduino:

Trang 15

Khi nói điều khiển hoàn toàn động cơ DC thì tức là chúng ta phải điều khiển được chiều quay của nó Để thực hiện được điều này chúng ta sử dụng kết hợp kỹ thuật sau đây:

b, Mạch cầu H (H-Bridge) – Để điều khiển chiều quay

Chiều quay của động cơ DC có thể được điều khiển bằng cách thay đổi cực tính của điện áp đầu vào Một kỹ thuật phổ biến để làm điều này là sử dụng mạch cầu H (H-Bridge).Một mạch cầu H gồm có bốn công tắc với động cơ ở trung tâm tạo thành một sắp xếp giống như hình chữ H.

Đóng hai công tắc cụ thể cùng một lúc sẽ đảo ngược cực tính của điện áp đặt vào động cơ Điều này gây ra sự thay đổi hướng quay của động cơ.

Hình 2.7 Minh họa hoạt động của một mạch cầu H.

Trang 16

Chương 3 : Vi điều khiển ATmega328P tương tác với các thiết bịngoại vi

3.1 Cách thức hoạt động của AVR

- Atmega328P có một CPU AVR 8-bit với một tập lệnh được tối ưu hóa Nó hoạt động với tốc độ xung nhịp nội tại và có thể đạt tới hàng MHz

- Vi điều khiển có bộ nhớ trong, bao gồm bộ nhớ Flash (để lưu trữ chương trình), bộ nhớ SRAM (để lưu trữ dữ liệu tạm thời) và EEPROM (để lưu trữ dữ liệu không bị mất khi nguồn điện được cắt)

- Atmega328P có các chân GPIO (General-Purpose Input/Output) để tương tác với các

linh kiện ngoại vi như LED, cảm biến, màn hình LCD, vv.

- Nó cũng có các thanh ghi điều khiển và module như ADC để đọc giá trị tín hiệu analog,

UART để giao tiếp với các thiết bị ngoại vi qua giao thức RS-232, Timer/Counter và PWM để tạo ra xung, I2C và SPI để giao tiếp với các thiết bị ngoại vi khác

Trang 17

Sơ đồ chân của ATmega328P

32 thanh ghi trong Register File được kết nối trực tiếp với Arithmetic Logic Unit –ALUALU cũng được xem là CPU of AVR

ALU có thể truy xuất trực tiếp cùng lúc 2 thanh ghi RF trong 1 chu kỳ xung đồng hồ (vùng được khoanh tròn màu đỏ trong hình )

Dữ liệu được chứa trong chương trình bộ nhớ Flash dưới dạng thanh ghi 16 bitBộ nhớ sẽ được tải vào thanh ghi lệnh

Địa chỉ của lệnh được quyết định bởi một bộ đếm chương trình – PC

Trang 18

Cấu hình bên trong AVRCác nhiệm vụ ATMega328p thực hiện:

+Nhận tín hiệu từ cảm biến HC-SR04+Xử lý dữ liệu từ cảm biến.

+Tính toán khoảng cách của vật cản phía trước+Tính toán hướng di chuyển của bánh xe.

+Điều khiển động cơ thông thông qua L293D ( quay trái, quay phải, lùi sau)

Trang 19

3.2.Vi điều khiển xử lý tương tác với các thiết bị ngoại vi

Truyền thông giữa ATmega328P với HC-SR04-Sử dụng giao tiếp I2C :

+SDA chân đường dữ liệu (tất cả tất cả các thông tin về địa chỉ hoặc dữ liệu đều được truyền trên đường này theo thứ tự từng bit một )

+SCL điều khiển xung giữ nhịp để giao tiếp

B1: AVR gửi xung xuống cảm biến

- Đặt chân Trig của HC-SR04 làm chân xuất (output) trên vi điều khiển AVR.- Gửi một xung ngắn (10 µs) từ chân Trig bằng cách đưa nó lên cao trong một khoảng thời gian ngắn, sau đó đưa nó xuống thấp.

Đặt chân Echo của HC-SR04 làm chân nhập (input) trên vi điều khiển AVR.

Đo thời gian mà chân Echo duy trì ở mức cao Thời gian này tương ứng với thời gian mà sóng siêu âm đi và trở lại

Trang 20

Khai báo biến và chân vào ra

• Để đo khoảng cách

Ta sẽ phát 1 xung rất ngắn (10 microSeconds ) từ chân Trig.

Sau đó, cảm biến sẽ tạo ra 1 xung HIGH ở chân Echo cho đến khi nhận lại được sóng phản xạ ở pin này.

Chiều rộng của xung sẽ bằng với thời gian sóng siêu âm được phát từ cảm biển và quay trở lại

Trang 21

Dùng các chân tín hiệu để khởi tạo các biến :

Điều khiển chiều quay

Trang 22

TWI trên AVR được vận hành bởi 5 thanh ghi bao gồm

+) TWBR ( Thanh ghi tốc độ bit TWI ): là 1 thanh ghi 8 bit quy định tốc độ tốc độ phát

xung nhịp trên đường SCL của chip Master

+) TWCR ( TWI Control Register ): là thanh ghi 8 bit điều khiển hoạt động của TWI.

+) TWSR ( TWI Status Register ): là 1 thanh ghi 8 bit trong đó có 5 bit chứa code trạng

thái của TWI và 2 bit chọn prescaler.

+) TWDR ( TWI Data Register ): là thanh ghi dữ liệu chính của TWI Trong quá trình

nhận, dữ liệu nhận về sẽ được lưu trong TWDR Trong quá trình gởi, dữ liệu chứa trong TWDR sẽ được chuyển ra đường SDA

+) TWAR ( TWI Address Register ): là thanh ghi chứa device address của chip Slave

Cấu trúc thanh ghi được trình bày trong hình dưới

Trang 23

Chương 4: Kết quả và định hướng phát triển3.1 Kết luận

Mô hình xe tương đối chính xác Tuy nhiên tốc độ còn tương đối chậm.

Những góc nhỏ hẹp thì xe di chuyển còn khó khăn và mắc nhiều hạn chế

3.2 Hướng phát triển

Cải tiến xe lớn hơn, chạy nhanh hơn và khắc phục các hạn chế còn mắc phải.Xây dựng mô hình kết hợp với dò đường và điều khiển từ xa qua mạng wifi.Tích hợp hiển thỉ và vẽ bản đồ khu vực đã di chuyển.

3.3 Ý nghĩa

a,Ý nghĩa khoa học:

Nghiên cứu về trí tuệ nhân tạo: Xe tự hành cần phải có khả năng nhận biết, hiểu và phản ứng theo môi trường xung quanh, từ đó đạt được trình độ tương tự với con người Việc nghiên cứu về xe tự hành đóng góp vào việc phát triển trí tuệ nhân tạo

Ứng dụng robot tự động: Xe tự hành là một dạng robot di động, nghiên cứu về xe tự hànhcung cấp kiến thức và kỹ thuật để phát triển các loại robot tự động khác như robot dịch vụ, robot hỗ trợ trong y tế, robot dò tìm

b, Ý nghĩa thực tiễn

Hiện nay việc điều khiển các phương tiện thiết bị di chuyển còn phụ thuộc khá nhiều vào con người, dẫn đến các vấn đề về an toàn, ùn tắc giao thông, không tối ưu được quãng đường di chuyển gây lãng phí tài nguyên năng lượng Việc nghiên cứu phát triển xe tự hành sẽ là một giải pháp giải quyết các vấn đề trên.

Trang 24

Kết quả đạt được

Trang 25

Tài liệu tham khảo:http://www.hocavr.com

Microcontrollers-ATmega328P_Datasheet.pdf

Ngày đăng: 17/06/2024, 17:07

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w