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

Đồ án xe tránh vật cản.

37 2,5K 60
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

Thông tin cơ bản

Định dạng
Số trang 37
Dung lượng 4,63 MB
File đính kèm ĐỒ ÁN xe tranh vat can.rar (5 MB)

Nội dung

Ngày nay việc ứng dụng khoa học kỹ thuật vào sản xuất rất phổ biến. Đặt biệt là công nghệ Robot. Không chỉ đóng vai trò là thành phần sản xuất công nghệ Robot còn được ứng dụng vào các nghành khác như: Y tế, Quốc phòng,Cứu hộ cứu nạn, nghiên cứu khoa học địa chất, hàng không vũ trụ,v.v…Ngoài việc dùng PLC để lập trình thì chúng ta hoàn toàn có thể dùng ARDUINO để giảm thiểu chi phí. Qua đó nhóm chúng em xin giới thiệu đề tài:” XE TRÁNH VẬT CẢN” sử dụng ARDUINO. Nghành công nghiệp không người lái ngành càng phát triển dược ứng dụng nhiều ở nghành công nghiệp ô tô, Quốc phòng hàng không mà ở đó máy bay không người lái đóng vai trò quan trọng. Nhóm em đã quyết định đưa ra đề tài đề mô phỏng lại công nghệ đó bằng việc sử dụng ARDUINO.

Trang 1

H VẬT CẢN

Giảng viên hướng dẫn: ThS Lê Tiến Đạt

Sinh viên thực hiện: Châu Minh Thi

Trang 2

H VẬT CẢN

Giảng viên hướng dẫn: Lê Tiến Đạt

Sinh viên thực hiện: Châu Minh Thi

Trang 3

MỤC LỤC

Lời cảm ơn: 4

Nhận xét của giáo viên hướng dẫn: 5

Nhận xét của giáo viên phản biện: 6

Lời mở đầu: 7

CHƯƠNG I: TỔNG QUAN VỀ XE TRÁNH VẬT CẢN: 8

CHƯƠNG II:CÁC LÝ THUYẾT LIÊN QUAN: 9

2.1 ARDUINO R3 là gì ? : 9

2.2 Một số thuật ngữ cần lưu ý khi sử dụng Arduino: 9

2.3 Tóm tắt thông số kỹ thuật của Arduino: 10

2.4 Một số lưu ý khi sử dụng Arduino: 10

2.5 Các thao tác có thể gây hư tổn cho Arduino: 10

2.6 Các chân năng lượng: 12

2.7 Các cổng vào ra: 12

2.8 Lập trình cho Arduino: 13

2.2.1 Module điều khiển động cơ L293D: 13

a) Module điều khiển động cơ L293D là gì?: 13

b) Các thành phần Module L293D có thể điều khiển: 13

2.2.2 Module cảm biến siêu âm SRF-05: 14

a)Ứng dụng: 14

b) Thông số kỹ thuật: 14

c) Sơ đồ chân: 15

d)Nguyên lí hoạt động: 15

2.2.3 Servo SG90: 16

a)Servo là gì ?: 16

b) Servo được thiết kế như thế nào ?: 16

CHƯƠNG III: Lắp ráp và code nạp: 17

3.1 Linh kiện: 17

3.2 Tiến hành lắp ráp & nạp code cho L293D: 17

a)Điều khiển Motor DC: 17

b)Lập trình cho Module L293D: 17

c)Tiến hành nạp code cho L293D: 18

d)Nạp code cho Servo SG05: 19

1)Kết nạp: 19

2)Nạp code để thiết lập Servo: 19

3)Code tổng: 20

CHƯƠNG IV:TIẾN HÀNH ĐỒ ÁN & BÁO CÁO GIÁ THÀNH: 26

4.1 Sơ đồ giải thuật 26

4.2 Tiến hành thực hiện: 27

1)Linh kiện tổng: 27

2)Các bước tiến hành: 28

4.3 Bảng báo cáo giá tiền sản phẩm: 34

CHƯƠNG V:HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI: 35

Trang 4

5.1 Hướng phát triển của đề tài: 35

5.2 Hướng đi cho đề tài: 36

a)Hướng đi hiện tại: 36

b)Hướng phát triển trong tương lai gần: 36

Trang 5

LỜI CẢM ƠN

Lời đầu tiên nhóm chúng em xin tỏ lòng biết ơn sâu sắc đến giáo viên hướng dẫn là thầy Lê Tiến Đạt đã nhiệt tình giúp dỡ chúng em tìm hiểu đề tài, cung cấp một số tài liệu cơ bản, tận tình hướng dẫn chúng em trong suốt quá trình thực hiện đề tài Nhờ vậy mà chúng em đã hoàn thiện đề tài đúng thời hạn

Và quan trọng hơn sau đó chúng em được học thêm nhiều khiến thức mới, những kinh nghiệm thực tế trong quá trình xây dựng đồ án, lập trình và làm việcvới những thiết bị chuyên môn

Chúng em xin chân thành cảm ơn các Thầy, Cô trong khoa Điện-Điện tử, khoa cơ khí, và đặt biệt là các thầy các cô trong bộ môn Tự Động Hóa-Trường cao đẳng Lý Tự Trọng đã nhiệt tình giúp đỡ và giảng dạy, cung cấp những kiến thức cơ bản để chúng em có cơ sở chuyên môn thực hiện và hoàn thành đề tài

Cuối cùng em xin chúc quý Thầy, Cô và gia đình dồi dào sức khỏe, và thành công trong sự nghiệp cao quý

Chúng em xin chân thành cảm ơn !

Trang 6

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 7

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Trang 8

LỜI MỞ ĐẦU

Trong quá trình phát triển công nghiệp của đất nước ta hiện nay, nhu cầu

về tự động hóa đang là một trong những yếu tố được đặt lên hàng đầu Điều này đảm bảo cho nhiều nghành công nghiệp những thế đứng của mình trong điều kiện cạnh tranh khác biệt của nền kinh tế thị trường ngày nay Trong quá trình sản xuất, Tự động hóa đóng vai trò rất quan trọng đặt biệt trong các nhà máy công nghiệp

Ngày nay việc ứng dụng khoa học kỹ thuật vào sản xuất rất phổ biến Đặtbiệt là công nghệ Robot Không chỉ đóng vai trò là thành phần sản xuất công nghệ Robot còn được ứng dụng vào các nghành khác như: Y tế, Quốc

phòng,Cứu hộ cứu nạn, nghiên cứu khoa học địa chất, hàng không vũ trụ,v.v…Ngoài việc dùng PLC để lập trình thì chúng ta hoàn toàn có thể dùng

ARDUINO để giảm thiểu chi phí Qua đó nhóm chúng em xin giới thiệu đề tài:”

XE TRÁNH VẬT CẢN” sử dụng ARDUINO Nghành công nghiệp không người lái ngành càng phát triển dược ứng dụng nhiều ở nghành công nghiệp ô

tô, Quốc phòng hàng không mà ở đó máy bay không người lái đóng vai trò quan trọng Nhóm em đã quyết định đưa ra đề tài đề mô phỏng lại công nghệ đó bằng việc sử dụng ARDUINO

Trong thời gian một tháng tiến hành nghiên cứu và thực hiện đề tài, được

sự hướng dẫn của thầy Lê Tiến Đạt, chúng em đã hoàn thành đề tài của mình.Tuy nhiên do còn sự hạn chế của thời gian cũng như kinh nghiệm Đồng thời giữa lý thuyết và thực tế là một khoảng cách khá xa cho nên đề tài của chúng emkhông tránh khỏi những sai xót Chúng em rất mong dược sự chỉ bảo và giúp đỡ của các Thầy, Cô để chúng em có thể hiểu rõ hơn về đề tài nghiên cứu của mình

Trang 9

*Tổng quan về robot tránh vật cản

Các Robot tự hành đượ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 khi làmviệc ở những vị trí khác nhau

Robot tự động là lĩnh vực đang rất phát triển Các ứng dụng của robot đang dần thay thế sức lao động của con người Và sự tiên tiến của Robot ngày càng gia tăng nhờ vào sự phát triển của KH-KT

Khái niệm Robot tự động đang phát triển nhanh chóng về số lượng, Robot tự động và cấu tạo phức tạp củ nó ngày càng nâng cao để phù hợp với từng lĩnh vực khác nhau

Có rất nhiều loại điều khiển Robot tự động như: Thiết lập đường đi, định vị GPS,v.v… Robot tránh vật cản là loại Robot có khả năng tránh va chạm với những trở ngại bất ngờ

Một số hãng xe đa áp dụng công nghệ tự động không người lái có thể kể đến như:

+Hãng xe Tesla: với dòng xe Model S

+Hãng Volvo: Xe tự động sử dụng công nghệ GPS dể định vị và công nghệ điện toán đám mây(cloud computing).

+Hãng Areo Mobil: với sản phẩm xe thông minh không chỉ tự lái mà còn

có thể cất cánh được phát triển dựa trên phiên bản Concept vào năm 1990

Trong đồ án này, một xe tránh vật cản được nghiên cứu và thực nghiệm Xe được sử dụng bằng Arduino sử dụng cảm biến siêu âm để dò tìm để tránh va chạm .

Trang 10

đó có 6 pin PWM, được đánh dấu ~ trước mã số của pin) Song song đó, ta có

thêm 6 pin nhận tín hiệu analog được đánh kí hiệu từ A0 - A5, 6 pin này cũng có

thể sử dụng được như các pin ra / vào bình thường (như pin 0 - 13) Ở các pin được đề cập, pin 13 là pin đặc biệt vì nối trực tiếp với LED trạng thái trên

board.Trên board còn có 1 nút reset, 1 ngõ kết nối với máy tính qua cổng USB

và 1 ngõ cấp nguồn sử dụng jack 2.1mm lấy năng lượng trực tiếp từ AC-DC adapter hay thông qua ắc-quy nguồn

2.2 Một số thuật ngữ cần lưu ý khi sử dụng Arduino.

Flash Memory: bộ nhớ có thể ghi được, dữ liệu không bị mất ngay cả khi tắt

điện Về vai trò, ta có thể hình dung bộ nhớ này như ổ cứng để chứa dữ liệu trên board Chương trình được viết cho Arduino sẽ được lưu ở đây Kích thước của vùng nhớ này thông thường dựa vào vi điều khiển được sử dụng,

ví dụ như ATmega8 có 8KB flash memory Loại bộ nhớ này có thể chịu được khoảng 10,000 lần ghi / xoá

RAM: tương tự như RAM của máy tính, sẽ bị mất dữ liệu khi ngắt điện

nhưng bù lại tốc độ đọc ghi xoá rất nhanh Kích thước nhỏ hơn Flash

Memory nhiều lần

EEPROM: một dạng bộ nhớ tương tự như Flash Memory nhưng có chu kì

ghi / xoá cao hơn - khoảng 100,000 lần và có kích thước rất nhỏ Để đọc / ghi

dữ liệu ta có thể dùng thư viện EEPROM của Arduino

Ngoài ra, board Arduino còn cung cấp cho ta các pin khác nhau như pin cấp nguồn 3.3V, pin cấp nguồn 5V, pin GND ;

*Sơ đồ chân của

IC ATMega328:

2.3 Thông số kỹ thuật của Arduino board được tóm tắt trong bảng sau:

Trang 11

Điện áp hoạt động 5V

2.4 Một số lưu ý khi sử dụng Arduino

Mặc dù Arduino có cầu chi tự phục hồi (resettable fuse) bảo về mạch khi xảy ra quá tải, tuy nhiên cầu chì này chỉ được mắc cho cổng USB nhằm tự động ngắt điện khi nguồn vào USB lớn hơn 5V.Vì vậy, khi thao tác với Arduino, ta

cần tính toán cẩn thận để tránh gây hư tổn đến board

2.5 Các thao tác có thể gây hư tổn cho Arduino

Nối trực tiếp dòng 5V vào GND.Khi nối trực tiếp dòng 5V vào GND mà không qua bất kì một điện trở kháng nào sẽ gây ra hiện tượng đoản mạch và phá hỏng Arduino, các trường hợp phổ biến có thể mắc phải:

+Nối trực tiếp dòng 5V vào 1 trong 2 chân GND

+Nối 1 pin OUT bất kì vào GND

Trong trường hợp này, ta nối pin 7 với GND và trong Arduino IDE ta có

đoạn code sau:

Trang 12

+ Nối một pin HIGH vào một pin LOW bất kì: Về mặt ý nghĩa thì cách nối

này cũng tương tự như ở trên, sẽ gây ra đoản mạch và phá hủy Arduino Đoạn code sau sẽ minh họa vấn đề này

+Cấp nguồn lớn hơn 5V cho bất kì pin I/O nào: Theo tài liệu của nhà sản

xuất, với vi điều khiển ATmega328P thì 5V là ngưỡng lớn nhất mà vi điều khiểnnày có thể chịu được Nếu bất kì pin nào bị cấp điện áp vượt quá 5V sẽ gây ra hỏng vi điều khiển này

+Tổng cường độ dòng điện trên các I/O pin vượt quá ngưỡng chịu được:

Dựa theo datasheet của vi điều khiển ATmega328P, tổng cường độ dòng điện cấp cho các I/O pin tối đa là 200mA Vì vậy, ví dụ như trong trường hợp ta ép Arduino cấp nguồn cho hơn 10 đèn LED (mỗi đèn thông thường sẽ cần 20mA) hay dùng trực tiếp các chân I/O cấp nguồn cho động cơ sẽ có thể gây tổn hại đến

vi điều khiển

Khi Arduino đang vận hành, việc thanh đổi các kết nối có thể gây ra sự không ổn định của điện áp dẫn đến hư hỏng Arduino Vì vậy, trong thực tế làm việc ta nên ngắt nguồn Arduino trước khi thực hiện bất kì các thay đổi nào

2.6 Các chân năng lượng

Trang 13

GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn

dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau

5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.

3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.

Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực

dương của nguồn với chân này và cực âm của nguồn với chân GND

IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể

được đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn

RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương

đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ

Một số chân digital có các chức năng đặc biệt như sau:

2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận

(receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nói nôm na chính là kết nối Serial không dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng 2 chân này nếu không cần thiết

Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn xuất ra xung PWM

với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, bạn có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác

Trang 14

Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài

các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác

LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi

bấm nút Reset, bạn sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng

Arduino UNO: có 6 chân analog (A0 → A5) cung cấp độ phân giải tín

hiệu 10bit (0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn

Và Wiring lại là một biến thể của C/C++ Một số người gọi nó là Wiring, một

số khác thì gọi là C hay C/C++ Riêng mình thì gọi nó là “ngôn ngữ Arduino”,

và đội ngũ phát triển Arduino cũng gọi như vậy Ngôn ngữ Arduino bắt nguồn

từ C/C++ phổ biến hiện nay do đó rất dễ học, dễ hiểu.

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

a) Module điều khiển động cơ L293D là gì?

-Motor Driver Shield L293D là shield mở rộng dành cho Arduino

-Motor Driver Shield L293D tương thích tốt với board Arduino Uno R3, Arduino Leonado, Arduino Mega 2560

-Motor Driver Shield L293D sử dụng 2 IC cầu H L293D và 1 IC logic 74HC595 điều khiển Do đó, shield này có thể điều khiển nhiều loại motor khác nhau với mức áp lên đến 36V, dòng tối đa 600mA mỗi kênh điều khiển

L293D là một IC cầu H tương tự như IC SN754410 Các bạn có thể tham khảo thêm về cách hoạt động của cầu H tại bài viết Mạch cầu H và điều khiển động

cơ với SN754410 Motor Driver Shield L293D tích hợp sẵn 2 IC L293D giúp bạn có thể dễ dàng thao tác với IC hơn

b)Các thành phần Motor Driver

Shield L293D có thể điều khiển

-2 servo

-4 motor điện DC (M1, M2, M3, M4) theo

các hướng khác nhau (mỗi motor có thể

Trang 15

chạy với 1 hướng tới/lùi bất kì) thông qua 4 cầu H của L293D dòng 600mA (cực

đại 1.2A)

-2 stepper motor loại đơn cực (unipolar) hoặc lưỡng cực (bipolar)

Motor driver shield L293D có sẵn các điện trở nối GND nhằm tránh các motor tự quay lúc khởi động và nút RESET để khởi động lại board Arduino mà

nó đang gắn vào

c)Các chân trên Shield được kết nối với board Arduino như sau

2 dây điều khiển 2 servo kết nối với chân số 9 và 10 Nguồn nuôi lấy trực tiếp từ board Arduino (nguồn 5V)

Motor 1 nối với chân 11

Motor 2 nối với chân 3

Motor 3 nối với chân 5

Motor 4 nối với chân 6

Chân 4, 7, 8, 12 dùng điều khiển motor thông qua IC 74HC595

- Các chân chưa sử dụng: 2, 13, A0, A1, A2, A3, A4, A5

- Trên shield có 1 jumper màu vàng PWR được sử dụng: nếu kết nối nguồn

ngoài cho board Arduino thông qua jack DC (dùng pin 9V chẳng hạn) thì nguồn

nuôi motor được lấy luôn từ jack này, không cần nối nguồn với EXT_PWR Nếu ngắt jumper, bạn cần nối 1 nguồn riêng vào terminal EXT_PWR để nuôi

motor

Sơ đồ chân L293D

Lưu ý!

Khi chạy thử, bạn không nên để motor bì ì vì lúc

này cường độ dòng điện sẽ tăng cao, dễ làm cháy nguồn

nuôi Nếu cần, hãy cấp nguồn ngoài có công suất cao

cho nó (hãy quên pin tiểu và pin vuông 9V đi)

2.2.2 Module cảm biến siêu âm SRF-05

a) Ứng dụng

Dùng đo khoảng cách, đo mực chất lỏng, robot dò

đường,phát hiện các vết đứt gãy trong dây cáp

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

- Điện áp vào: 5V

Trang 16

2 Trig(T) : digital input.

3 echo (R): digital output

4 OUT

5 GND

d) Nguyên lý hoạt động

*Ở chế độ 1: Tách biệt, kích hoạt và phản hồi

Để đo khoảng cách, ta phát 1 xung rất ngắn (5 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 được xung phản xạ ở chân 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 quay trở lại Tốc độ của âm thanh trong không khí là

340 m/s tương đương với 29,412 microSeconds/cm(1000000/(340*100)) Khi đãtính được thời gian ta chia cho 29,412 để được khoảng cách cần đo

+Ở chế độ 2: Dùng 1 chân cho cả kích hoạt và phản hồi

Ta sử dụng chân OUT để nó vừa phát ra xung rồi nhận xung phản xạ về,chân chế độ thì nối đất.Tín hiệu hồi tiếp sẽ suất hiện trên cùng 1 chân với tín hiệu kích hoạt.SR05 sẽ không tăng dòng phản hồi cho đến 700uS sau khi kết thúc cáctín hiệu kích hoạt và bạn đã có thời gian để kích hoạt pin xoay quanh và làm cho

nó trở thành 1 đầu vào

Trang 17

2.2.3 Servo SG90

a) Servo là gì

Servo là một dạng động cơ điện đặc biệt Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển (bằng xung PPM) với góc quay nằm trong khoảng bất kì từ 0o - 180o Mỗi loại servo có kích thước, khối lượng và cấu tạo khác nhau Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô mình), có loại thì sở hữu một momen lực (vài chục Newton/m), hoặc có loại thì khỏe và nhông sắc chắc chắn, .

b) SERVO được thiết kế như thế nào.

Động cơ servo được thiết kế những hệ thống hồi tiếp vòng kín Tín hiệu ra của động cơ được nối với một mạch điều khiển Khi động cơ quay, vận tốc và vịtrí sẽ được hồi tiếp về mạch điều khiển này Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn Mạch điều khiển tiếp tục chỉnh sai lệch cho động cơ đạt được điểm chính xác Các động cơ servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ servo RC (radio-controlled) Trong thực tế, bản thân động cơ servo không phải được điều khiển bằng vô tuyến, nó chỉ nối với máy thu vô tuyến trên máy bay hay xe hơi Động cơ servo nhận tín hiệu từ máy thu này

Trang 18

3.1 Linh kiện

 Một bộ khung xe robot

 Một cảm biến siêu âm SRF05

 Một Broad Arduini UNO R3

 Một module điều khiển động cơ

a) Điều khiển motor DC

Trước tiên, bạn sẽ ghép board Arduino UNO R3 và Motor Shield Driver

L293D lại với nhau như hình:

Sau để kết nối với một động cơ, chỉ cần hàn hai dây để các thiết bị đầu

cuối và sau đó kết nối chúng vào một trong hai M1, M2, M3,hoặc M4, ở đây mình test thử với chân M2.

Ngày đăng: 05/01/2019, 08:12

TỪ KHÓA LIÊN QUAN

w