1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đề tài Thiết kế xe tự động tránh vật cản sử dụng Arduino và L293D

20 8 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

Trang 1

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

Trang 2

Lời mở đầu

Ngày nay, sự phát triển mạnh mẽ của khoa học đời sống, cuộc sống của con người đã thay đổi ngày một tốt hơn, với những trang thiết bị hiện đại phục vụ trong công cuộc công nghiệp hóa, hiện đại hóa Đặc biệt góp phần không nhỏ đó là ngành kĩ thuật điện – điện tử trong sự nghiệp xây dựng đất nước Những thiết bị điện, điện tử được phát triển và ứng dụng rộng rãi trong đời sống hằng ngày Từ những thời gian đầu phát triển vi xử lý đã cho thấy sự ưu việt của nó và cho tới ngày nay tính ưu việt đó ngày càng được khẳng định thêm Những thành tựu của nó đã có thể biến được những cái tưởng chừng như không thể thành những cái có thể, góp phần nâng cao đời sống vật chất và tinh thần cho con người

Để góp phần làm sáng tỏ hiệu quả của những ứng dụng trong thực tế của môn vi xử lý, sau một thời gian học tập được thầy cô trong khoa giảng về kiến thức chuyên ngành, em đã thiết kế “robot tránh vật cản bằng arduino và cảm biến siêu âm” Nhưng do thời gian, kiến thức và kinh nghiệm của em còn hạn chế khó tránh khỏi có những sai sót Em rất mong được sự giúp đỡ và tham khảo ý kiến của thầy cô và các bạn nhằm đóng góp phát triển thêm đề tài

Mục lục

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

1.1 Giới thiệu đề tài 4

1.2 Mục đích chọn đề tài 4

1.3 Sơ lược bước thực hiện 4

Chương 2: Giới thiệu Arduino và thành phần mạch 5

2.1 Giới thiệu về Arduino 5

2.1.1 Sơ lược về Arduino Uno R3 5

Trang 3

2.2.1 Cảm biến siêu âm HC – SR04 7

Chương 3: Nội dung 14

3.1 Sơ đồ khối và chức năng các khối 14

3.2 Chương trình điều khiển 16

Trang 4

Chương 1: Tổng quan về đề tài

1.1 Giới thiệu đề tài

Ngày nay, robot đã đạt được những thành tựu to lớn trong sản xuất công nghiệp cũng như trong đời sống Sản xuất robot là ngành công nghiệp giá trị hàng tỉ USD và ngày càng phát triển mạnh, trong các họ robot chúng ta không thể không nhắc tới robot tránh vật cản với những đặc thù riêng mà các loại robot không có

Mobile robot có thể di chuyển một cách linh hoạt, do đó tạo nên hoạt động lớn và cho đến nay nó đã dần khẳng định vai trò quan trọng không thể thiếu trong nhiều lĩnh vực, thu hút được nhiều sự đầu tư và nghiên cứu Mobile robot cũng được chia làm nhiều loại: robot học đường đi, robot dò đường, robot tránh vật cản, robot tìm đường trong mê cung,… trong đó robot trán vật cản dễ dàng ứng dụng nhiều trong cuộc sống Việc phát triển loại robot này sẽ phục vụ rất đắc lực cho con người

1.2 Mục đích đề tài

Robot rò đường vừa có nhiều ứng dụng trong thực tế vừa dễ dàng để sinh viên vận dụng những kiến thức tiếp thu trên giảng đường vào nó Với những kết cấu đơn giản nhưng lại có thể kết hợp với khá nhiều thành phần điện tử(sevor, cảm biến, arduino, module,…) nên những robot này rất phù hợp để sinh viên học tập và nghiên cứu thêm về ngành tự động hóa một cách cụ thể

1.3 Sơ lược bước thực hiện

Trước tiên ta phải chế tạo được khung xe của robot Khung xe phải đảm bảo bền chắc và đạt độ chính xác nhất định về việc bố trí các bánh xe và động cơ thông qua việc vẽ và lắp đặt động cơ

Và cuối cùng là công đoạn lập trình dụa trên những kiến thức đã học

Trang 5

Chương 2: Giới thiệu arduino và các thành phần mạch

2.1 Giới thiệu về arduino

2.1.1 Sơ lược về Arduino Uno R3

Arduino Uno R3 là một bo mạch vi điều khiển dựa trên chip atmega328p Uno R3 có 14 chân I/O digital (trong đó có 6 chân xuất xung PWM), 6 chân input analog, 1 thạch anh 16Mhz, 1 cổng USB, 1 jack nguồn DC, 1 nút reset

Chân I/O digital 14 (có 6 chân xung PWM) Chân Input Analog 6(A0-A5)

Dòng điện mỗi chân I/0O 20 mA

Trang 6

Kích thước 68.6 x 53.4 mm

2.1.3 I/O PINS

Sơ đồ chân vi điều khiển Atmega328P:0

Hình 1.2 Sơ đồ chân của Atmega328P

• Digital: Các chân I/O digital( chân số 2-13)được sử dụng làm

chân nhập, xuất tín hiệu số thông qua các hàm chính: pinMode(), digitalWrite(), digitalRead() Điện áp hoạt động lag 5V, dòng điện qua các chân này ở chế độ bình thường là 20mA, cấp dòng quá 40mA sẽ phá hỏng vi điều khiển

• Analog: Uno có 6 chân Input analog (A0 – A5), độ phân giải mỗi

chân là 10 bit (0 – 1023 ) Các chân này dùng để đọc tín hiệu điện áp 0 – 5V (mặc định) tương ứng với 1024 giá trị, sử dụng hàm

analogRead()

• PWM: Các chân được đánh số 3,5,6,9,10,11; có chức năng cấp xung PWM (8bit) thông qua hàm analogWrite()

• UART: Atmega328P cho phép truyền dữ liệu thông qua 2 chân 0 (RX) và 1 chân (TX)

Trang 7

2.1.4 Nguồn

Có hai cách cấp nguồn chính cho bo mạch Uno: cổng USB và jack DC

Giới hạn điện áp cấp cho Uno là 6-20V Tuy nhiên, dải điện áp khuyên dùng là 7-12V (tốt nhất là 9V) Lý do là nếu nguồn cấp dưới 7V thì điện áp ở chân 5V có thế thấp hơn 5V và mạch có thể hoạt động không ổn định; nếu nguồn cấp lớn hơn 12V có thể gấy nóng bo mạch hoặc phá hỏng

Các chân nguồn trên Uno:

-Vin: chúng ta có thể cấp nguồn cho Uno thông qua chân này Cách cấp nguồn này ít được sử dụng

-5V: chân này có thể cho nguồn 5V từ bo mạch Uno Việc cấp nguồn vào chân này hay chân 3.3V đều có thể phá hỏng bo mạch -3.3V: chân này cho nguồn 3.3V và dòng điện maximum là 50mA -GND: chân đất

2.2 Các thành phần của mạch

2.2.1 Cảm biến siêu âm HC – SR04

Trang 8

Hình dáng :

Trang 10

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

Hình 1.4 module điều khiển động cơ L293D Thông số kỹ thuật:

- Module L293D có thể điều khiển 4 động cơ DC hoặc 2 động cơ Servo - Điện áp đầu vào: 4.5V~36V

- Tương thích: Arduino Uno R3, Leonardo R3, Mega 2560 - Điều khiển tối đa: 4 động cơ DC, 2 servo, 2 động cơ bước - 2 cổng điều khiển động cơ servo có điện áp vào 5V

- Mỗi cầu H có dòng ra tối đa 0.6A (max1 2A) ở mỗi kênh điều khiển - Có sẵn nút RESET để khởi động lại board Arduino

Công dụng:

- Arduino Motor Shield L293D là một phần board mở rộng cho các board arduino, dùng để điều khiển các loại động cơ DC, động cơ bước và động cơ servo Arduino Motor Shield được thiết kế gọn gàng, đẹp mắt và tương thích hoàn toàn với các board Arduino: arduino uno r3, arduino leonardo, arduino mega2560, giúp bạn có thể sử dụng và điều khiển một cách dễ dàng và nhanh chóng

- Arduino Motor Shield sử dụng 2 IC cầu H L293D hoàn chỉnh với các chế độ bảo vệ và 1 IC logic 74HC595 để điều khiển các động cơ

Trang 11

- Arduino Motor Shield L293D có thể điều khiển nhiều loại motor khác nhau như step motor, servo motor, motor DC, với mức áp lên đến 36V, dòng tối đa 600mA cho mỗi kênh điều khiển

Cụ thể là điều khiển được số lượng motor như sau: 2 jack cắm điều khiển 2 động cơ RC servo

4 ngõ ra điều khiển đến 4 động cơ DC độc lập

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

Mạch tích hợp điện trở nối GND giúp cho không tự chạy khi khởi động board Các chân mà Arduino Motor Shield sử dụng là:

Chân điều khiển 2 RC servo được kết nối với chân số 9 và 10 Nguồn cung cấp được lấy trực tiếp từ board Arduino

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

Ngoài ra để tiện cho việc sử dụng nguồn cắm ngoài, trên Arduino Motor Shield sử dụng 1 jumper PWR mục đích để lấy nguồn ngoài thông qua jack DC của board arduino để cung cấp nguồn cho motor hoạt động Nếu trong trường hợp chúng ta không sử dụng jumper này thỉ phải cấp 1 nguồn riêng vào chân EXT_PWR để cấp nguồn cho motor hoạt động

Sơ đồ mạch cứng và chức năng

Hình 1.5 sơ đồ mạch cứng và chức năng

Trang 14

Chương 3 Nội dung

3.1 Sơ đồ khối và chức năng các khối

b Khối điều khiển trung tâm: nhận được tín hiệu vào từ khối cảm biến vị trí, thực hiện thuật toán để điều khiển mạch công suất để đáp

c Khối điều khiển công suất: nhận tín hiệu từ khối điều khiển trung tâm, điều khiển công suất khối thực thi

d Khối hiển thị: nhận tín hiệu từ khối điều khiển trung tâm, thể hiện trạng thái vị trí của xe

e Khối thực thi: 2 động cơ đọc lập được điều khiển tốc độ bằng khối điều khiển công suất

f Khối nguồn: đưa điện áp vào khối hạ áp, cấp nguồn trực tiếp cho khối điều khiển công suất

g Khối hạ áp: lấy điện áp từ khối nguồn, đưa khối điện áp ra 5V để nuôi khối cảm biến vị trí, khối điều khiển trung tâm, và khối hiển thị

Trang 15

3.2 Sơ đồ phần cứng thực tế

Trang 16

3.3 Chương trình điều khiển

#include "AFMotor.h" #include <Servo.h>

#define echopin A4 // echo pin #define trigpin A5 // Trigger pin

Servo myservo;

const int MOTOR_1 = 1; const int MOTOR_2 = 2; const int MOTOR_3 = 3; const int MOTOR_4 = 4;

AF_DCMotor motor1(MOTOR_1, MOTOR12_64KHZ); // create motor object, 64KHz pwm AF_DCMotor motor2(MOTOR_2, MOTOR12_64KHZ); // create motor object, 64KHz pwm AF_DCMotor motor3(MOTOR_3, MOTOR12_64KHZ); // create motor object, 64KHz pwm AF_DCMotor motor4(MOTOR_4, MOTOR12_64KHZ); // create motor object, 64KHz pwm

Trang 17

Serial.println("Start");

myservo.attach(10); myservo.write(90);

pinMode (trigpin, OUTPUT); pinMode (echopin, INPUT );

Trang 18

else if (distance_R > distance_L){

motor1.run(FORWARD); // the other right

Trang 20

VII Kết quả

1 Robot:

• Robot hoàn thành kịp tiến độ Quá trình làm việc nhóm hiệu quả, phần gắn mạch và đấu nối mạch, lập trình đực phân chia đảm bảo sự liên kết giữa các thành viên trong nhóm

• Cảm biến siêu âm được bố trí khoa học, giảm tình trạng nhiễu và gây cản trở servo hoạt động

2 Kết quả chạy và đánh giá:

Robot chạy đúng quy trình và chính xác, đúng thuật toán thiết kế, hoàn thành nhiệm vụ và thể hiện được khả năng hoạt động mà không cần can thiệp của cn người

• Hạn chế:

-Do thiếu kinh nghiệm nên robot ko đạt chỉ tiêu thẩm mĩ -Robot chạy chưa ổn định

Kết luận chung:

Quá trình thực hiện đề tài đã giúp chúng em thu được kết quả tốt bổ sung nhiều kiến thức chưa hiểu rõ trong qua trình học tập và hiểu rõ quá trình thiết kế đến thực hiện 1 ý tưởng kĩ thuật đơn giản Môn học đã cho sinh viên chúng môi trường làm việc thân thiện, sáng tạo, kích thích sự tìm tòi, sáng tạo Chúng em xin gửi lời cảm ơn tới thầy Phạm Hữu Chiến đã hướng dẫn và góp ý chúng e trong qua trình thực hiện đề tài

Ngày đăng: 11/04/2024, 04:24

Xem thêm:

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w