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ỘI
KHOA 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 2Mụ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
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Hà Nội, ngày 29 tháng 1 năm 2024 Giảng viên hướng dẫn
Trang 4Chươ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 5Cá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 6Hì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 71.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 8Chương 2: Các linh kiện chính và thiết kế mạch
2.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 9Châ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 102.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 11Hì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 121 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 13Có 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.2A
Dò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 7V
Thờ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 14Sơ đồ 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 15Khi 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 16Chương 3 : Vi điều khiển ATmega328P tương tác với các thiết bị
ngoại vi3.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
Bộ nhớ Flash: 32KB, EEPROM: 1KB, SRAM: 2KB
Bộ định thời: 2 bộ 8bit và 1 bộ 16 bit
Giao tiếp hỗ trợ: UART, I2C, SPI
Số chân 28 (23 chân I/O)
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 bit
Bộ 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 18Cấu hình bên trong AVR
Cá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 193.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 20Khai 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 21Dù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 22TWI 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 23Chương 4: Kết quả và định hướng phát triển
3.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