Tải bản đầy đủ (.doc) (25 trang)

XE tự HÀNH dò LINE bám VẠCH DÙNG PIC (có code và layout)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 25 trang )

ĐỒ ÁN 2

XE TỰ HÀNH DÒ LINE - BÁM VẠCH
DÙNG PIC

i


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ VI
DANH MỤC CÁC TỪ VIẾT TẮT VII
CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 1
1.1

GIỚI THIỆU 1

1.1.1

Tổng quan về đề tài

1.1.2

Yêu cầu đề tài 1

1.1.3

Phương án thực hiện 1

1.2

1



CÁC THÀNH PHẦN CHÍNH TRONG MẠCH

1.2.1

Vi điều khiển PIC16F877A

1.2.2

Cảm biến hồng ngoại 4

1.2.3

Module L298 5

1.2.4

Động cơ DC và bánh xe

2

2

6

CHƯƠNG 2. THIẾT KẾ THI CÔNG 7
2.1

NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH 7


2.2

SƠ ĐỒ KHỐI CỦA MẠCH 7

2.3

SƠ ĐỒ NGUYÊN LÝ 8

2.3.1

Sơ đồ nguyên lý mạch nguồn 8

2.3.2

Sơ đồ nguyên lý xe 9

2.3.3

Mạch in

9

CHƯƠNG 3. GIẢI THUẬT ĐIỀU KHIỂN
3.1

LƯU ĐỒ GIẢI THUẬT

10

3.2


TRÌNH BIÊN DỊCH MIKROC PRO

3.3

KẾT QUẢ MÔ HÌNH THỰC TẾ

11

11

CHƯƠNG 4. NHẬN XÉT 12
4.1

NHẬN XÉT 12

ii

10


CHƯƠNG 5. KẾT LUẬN 13
5.1

KẾT LUẬN 13

5.1.1

Ưu điểm


5.1.2

Nhược điểm

5.2

13
13

HƯỚNG PHÁT TRIỂN

13

TÀI LIỆU THAM KHẢO 14
PHỤ LỤC 15

iii


DANH MỤC CÁC HÌNH VẼ
Hình 1-1. Vi điều khiển PIC16F877A. [3].................................................................2
Hình 1-2. Sơ đồ chân Vi điều khiển PIC16F877A.[3]...............................................3
Hình 1-3. Module Cảm biến hồng ngoại.[6]..............................................................4
Hình 1-4. Sơ đồ nguyên lý Module Cảm biến hồng ngoại.........................................5
Hình 1-5. Module điều khiển động cơ L298N.[5].....................................................5
Hình 1-6. Động Cơ một chiều (DC) và bánh xe......................................................................................6

Hình 2-1. Sơ đồ khối hoạt động của xe......................................................................7
Hình 2-2. Sơ đồ nguyên lý mạch nguồn. [1]..............................................................8
Hình 2-3. Mạch in mạch nguồn.................................................................................8

Hình 2-4. Sơ đồ nguyên lý hoạt động của xe.[1].......................................................9
Hình 2-5. Mạch in khối điều khiển của xe.............................................................................................9

Hình 3-1. Lưu đồ giải thuật.....................................................................................10
Hình 3-2. Giao diện trình biên dịch mikroC PRO....................................................11
Hình 3-3. Mô hình xe thực tế...................................................................................11

iv


DANH MỤC CÁC TỪ VIẾT TẮT

CMOS

Complementary Metal Oxide Semiconductor

IC

Integrated Circuit

PWM

Pulse Width Modulation

RAM

Random Access Memory

ROM


Read Only Memory

v


ĐỒ ÁN 2
Trang 1/20

CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1.1 Giới thiệu
Với sự phát triển nhanh chóng của công nghệ điện tử ứng dụng trong các lĩnh
vực khác nhau, Robot tự hành là một hướng phát triển của lĩnh vực robotic mà trọng
tâm là nghiên cứu chuyển động của robot trong không gian nhất định.
Robot tự hành có thể di chuyển được trong môi trường nguy hiểm, độc hại mà
con người không đặt chân lên được; có thể vẽ lại bản đồ khu vực thuận tiện cho việc
quan sát và đưa ra những kế hoạch tiếp theo để tránh nguy ngại cho con người và
giảm tối đa sức lực con người.
1.1.1 Tổng quan về đề tài
Sử dụng cảm biến hồng ngoại kết nối với PIC16F877A điều khiển động cơ chạy
vào đường line do người dùng tạo ra để tránh trường hợp có chướng ngại vật trên
đường đi.
1.1.2 Yêu cầu đề tài
-

Thiết kế mô hình robot xe tự hành chạy theo line đen.

-

Viết chương trình điều khiển robot xe hoạt động.


-

Thiết kế mạch nguồn cấp cho xe hoạt động.

1.1.3 Phương án thực hiện
-

Khảo sát nhu cầu thị trường để biết được người dùng cần thiết kế mạch theo
hình dáng và kích thước xe cùng với cách vận hành xe.

-

Bắt đầu lên ý tưởng thiết kế mạch, tìm hiểu các linh kiện cần sử dụng.

-

Phân tích, xử lý ý tưởng đi đến mô hình xe cuối cùng.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 2/20

1.2 Các thành phần chính trong mạch
1.2.1 Vi điều khiển PIC16F877A

Hình 1-1. Vi điều khiển PIC16F877A. [3]

PIC16F877A là họ vi điều khiển có 40 chân, mỗi chân có một chức năng khác

nhau. Trong đó có một số chân nhiều chức năng, mỗi chân có khả năng hoạt động
như một đường xuất/nhập (I/O) độc lập hoặc là một chức năng đặc biệt dùng để
giao tiếp với những thiết bị ngoại vi.
1.2.1.1

Cấu trúc chung

-

8K Flash ROM.

-

238 bytes RAM.

-

256 bytes EEPROM.

-

5 port xuất nhập (A, B, C, D, E).

-

2 bộ định thời 8 bit Timer 0, Timer 2.

-

1 bộ định thời 16 bit Timer 1.


-

2 bộ CCP, Capture /Compare/PWM (Bắt giữ/ So sánh/ Điều rộng xung).

-

1 bộ biến đổi tương tự - số (ADC) 10 bit, 8 ngõ vào.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 3/20

-

2 bộ so sánh tương tự.

-

1 bộ định thời giám sát.

-

1 cổng song song 8 bit với những tín hiệu điều khiển.

-

1 cổng nối tiếp.


-

15 nguồn ngắt ( interrupt).

-

Nguồn dao động lập trình được tạo bởi công nghệ CMOS.

-

Sử dụng tập lệnh RISC gồm 35 lệnh cơ bản có độ dài 14 bit.

-

Tần số hoạt động tối đa 20MHz.

1.2.1.2

Chức năng các chân sử dụng trong đề tài

Hình 1-2. Sơ đồ chân Vi điều khiển PIC16F877A.[3]
-

RA1: Xuất nhấp số - bit thứ 1 của port A.

-

RA2: Xuất nhập số - bit thứ 2 của port A.


-

RE0: Xuất nhập số.

-

RE1: Xuất nhập số.

-

RE2: Xuất nhập số.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 4/20

-

RC1/CPP2: Xuất nhập số/ ngõ ra PWM2.

-

RC2/CPP1: Xuất nhập số/ ngõ ra PWM1.

-

RC4: Xuất nhấp số - bit thứ 4 của port C.


-

RC5: Xuất nhấp số - bit thứ 5 của port C.

-

RC6: Xuất nhấp số - bit thứ 6 của port C.

-

RC7: Xuất nhấp số - bit thứ 7 của port C.

1.2.2 Cảm biến hồng ngoại

Hình 1-3. Module Cảm biến hồng ngoại.[6]

-

Module cảm biến hồng ngoại dùng để phát hiện vật trong phạm vi hoạt
động của cảm biến. Tia hồng ngoại phát ra một tần số nhất định, khi phát
hiện hướng truyền có vật cản (mặt phản xạ), phản xạ vào đèn thu hồng
ngoại, sau khi so sánh, đèn màu xanh sẽ sáng lên, đồng thời cho tín hiệu
số đầu ra.

-

Khoảng cách làm việc hiệu quả từ 2 đến 5cm.

-


Điện áp làm việc từ 3.3V - 5V.

-

Bộ so sánh LM358 làm việc ổn định.

-

Độ nhạy sáng của cảm biến được điều chỉnh bằng chiết áp.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 5/20

Hình 1-4. Sơ đồ nguyên lý Module Cảm biến hồng ngoại.

1.2.3 Module L298

Hình 1-5. Module điều khiển động cơ L298N.[5]

Mạch điều khiển động cơ DC L298 có thể điều khiển 2 động cơ DC.
Thông số kỹ thuật:
-

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

-


Dòng cấp tối đa 2A.

-

Điện áp tín hiệu điều khiển 5V đến 12V.

-

Dòng tín hiệu điều khiển 0 đến 36mA.

-

Công suất phí: 20W.

-

Nhiệt độ hoạt động từ -25 độ đến 130 độ.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 6/20

Chức năng các chân :
Chân 12V, 5V : Cấp nguồn nuôi driver L298N.
Chân GND : Nối đất.
Chân ENA, ENB : Cấp xung cho động cơ.
Chân IN1, IN2, IN3, IN4 : Điều khiển chiều quay động cơ.
1.2.4 Động cơ DC và bánh xe


Hình 1-6. Động Cơ một chiều (DC) và bánh xe.

Động cơ DC hoạt động khi được cấp nguồn từ 3V đến 5V, đồng thời khi cấp
nguồn ngược thì động cơ sẽ quay ngược và nếu cấp nguồn thuận thì động cơ sẽ
quay thuận.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 7/20

CHƯƠNG 2. THIẾT KẾ THI CÔNG
2.1 Nguyên lý hoạt động của mạch
- Khi nhấn nút nguồn pin 12v một chiều sẽ cấp vào để hạ từ 12v xuống 5v cấp
cho mạch hoạt động.
- Khi những cảm biến hồng ngoại nhận được tín hiệu từ line đen sẽ có giá trị
điện áp 5v cũng như khi ra khỏi line cảm biến hồng ngoại sẽ trả về giá trị 0v
vào vi điều khiển. Khi đó vi điều khiển sẽ gửi tín hiệu tới các chân ra do người
dùng lập trình sẵn để cấp tín hiệu cho module L298N hoạt động, đồng thời
điều biến xung PWM cho 2 động cơ hoạt động.
- Trường hợp xe chạy lệch khỏi line đen về bên trái hoặt bên phải thì vi điều
khiển sẽ nhận tín hiệu từ cảm biến hồng ngoại và điều khiển cho xe chạy lại
vào line đen.
2.2 Sơ đồ khối của mạch
Nguồn

Vi điều khiển


Thực hiện

Cảm biến

Hình 2-. Sơ đồ khối hoạt động của xe.

-

Khối nguồn 5V một chiều: Cấp cho Vi điều khiển hoạt động.

-

Khối vi điều khiển: Xử lý tín hiệu từ cảm biến trả về để đưa ra yêu cầu điều
khiển cho khối thực hiện.

-

Khối cảm biến : Sử dụng cảm biến hồng ngoại để nhận dạng tín hiệu từ đó
gửi về vi điều khiển để xử lý.

-

Khối thực hiện: Có nhiệm vụ chấp hành những yêu cầu do khối vi điều khiển
gửi xuống.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 8/20


2.3 Sơ đồ nguyên lý
2.3.1 Sơ đồ nguyên lý mạch nguồn

Hình 2-. Sơ đồ nguyên lý mạch nguồn.

Hình 2-. Mạch in mạch nguồn.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 9/20

2.3.2 Sơ đồ nguyên lý xe

Hình 2-. Sơ đồ nguyên lý hoạt động của xe.[1]

2.3.3 Mạch in

Hình 2-. Mạch in khối điều khiển của xe.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 10/20

CHƯƠNG 3. GIẢI THUẬT ĐIỀU KHIỂN
3.1 Lưu đồ giải thuật

Bắt đầu

Động cơ chạy

Kiểm tra vạch đen

Động cơ xe chạy thẳng

Kết thúc

Hình 3-. Lưu đồ giải thuật.

Xe tự hành dò line, bám vạch

Động cơ xe chạy ngược


ĐỒ ÁN 2
Trang 11/20

3.2 Trình biên dịch MikroC PRO

Hình 3-. Giao diện trình biên dịch mikroC PRO.

Với mikroC PRO thì sẽ có được công cụ đầy đủ tính năng và mạnh mẽ,
đồng thời rất trực quan và thuận tiện cho việc viết chương trình điều khiển
trên PIC.
3.3 Kết quả mô hình thực tế

Hình 3-. Mô hình xe thực tế


Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 12/20

CHƯƠNG 4. NHẬN XÉT
4.1 Nhận xét
-

Mạch hoạt động đúng với yêu cầu đã đặt ra.

-

Hệ thống mô hình xe dò line, bám vạch hoạt động ổn định xe chạy tốc độ
tương đối cao và có thể né tránh vật cản.

-

Độ xử lý của xe tương đối mịn và chính xác.

-

Do thời gian nghiêm cứu còn hạn hẹp nên chưa khắc phục được nhiễu và
dừng lại ở việc tự hành.

Xe tự hành dò line, bám vạch



ĐỒ ÁN 2
Trang 13/20

CHƯƠNG 5. KẾT LUẬN
5.1 Kết luận
5.1.1 Ưu điểm
-

Thao tác vận hành xe đơn giản.

-

Các linh kiện dễ dàng tìm kiếm và chi phí không cao.

-

Sử dụng nguồn 5V một chiều nên có thể đảm bảo an toàn.

5.1.2 Nhược điểm
-

Mạch có nhiều thành phần được nối dây với nhau nên có thể dây nối không
ăn khớp.

-

Các chân linh kiện có thể bị nhiễu do tác động bên ngoài.

-


Cảm biến hồng ngoài có độ nhạy cao và rất khó để điều chỉnh để có độ chính
xác tuyệt đối.

5.2 Hướng phát triển
-

Tối ưu kích thước mạch thực.

-

Nâng cao khả năng giao tiếp với máy tính, smartphone hoặc với các thiết bị
khác.

-

Có thể thêm các cảm biến khác hay chức năng định vị cho xe.

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 14/20

TÀI LIỆU THAM KHẢO
Giáo Trình :
[1]

Lê Tiến Thường (2008) , Mạch Điện Tử 1, Đại Học Quốc Gia Tp. Hồ Chí

Minh

[2]

TS. Phạm Hữu Lộc – KS. Phạm Quang Trí (2010) , Kỹ Thuật Vi Xử Lý, Nhà

Xuất bản Đại Học Công Nghiệp Thành Phố Hồ Chí Minh.
Internet :
[3]

/>
[4]

/>
[5]

/>
cau-h-de-dieu-khien-dong-co-dc
[6]

/>
Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 15/20

PHỤ LỤC
Chương trình điều khiển:
void navetcan()
{
If (((PORTA.B2=0)&(PORTA.B1=0))//(PORTA.B2=0)//(PORTA.B1=0))

{[
int t = 0;
while (t < 40 )
{
t + +;
PORTC.F7 = 0 ;
PORTC.F6 = 1 ;
PORTC.F5 = 0 ;
PORTC.F4 = 1 ;
PWM1_Set_Dulty(130) ;
PWM2_Set_Dulty(130) ;
delay_ms(10) ;
]}
While ( t < 70)
{[(
t++;
PORTC.F7 = 1 ;
PORTC.F6 = 0 ;
PORTC.F5 = 1 ;
PORTC.F4 = 0 ;
PWM1_Set_Durty(0);

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 16/20

PWM2_Set_Durty(120);
delay_ms(10);

)}
while( t < 150 )
{
t++;
PORTC.F7 =1 ;
PORTC.F6 =0 ;
PORTC.F5 =1 ;
PORTC.F4 =0 ;
PWM1_Set_Duaty(110) ;
PWM2_Set_Duaty(110) ;
delay_ms(10.0);
}
while( t < 180)
{[
t + +;
PORTC.F7=1;
PORTC.F6=0;
PORTC.F5=1;
PORTC.F4=0;
PWM1_Set_Duty(120);
PWM2_Set_Duty(0);
delay_ms(10);
]}
while(PORTE.B0l=1)
{[
PORTC.F7=1;
PORTC.F6=0;

Xe tự hành dò line, bám vạch



ĐỒ ÁN 2
Trang 17/20

PORTC.F5=1;
PORTC.F4=0;
PWM1_Set_Duty(110);
PWM2_Set_Duty(90);
delay_ms(10);
]}
}
}
void dieukien()
{
if ( (PORTE.B0=1) & (PORTE.B1=0) & (PORTE.B2=1) )
{( PORTC.F7 = 1 ;
PORTC.F6 = 0 ;
PORTC.F5 = 1 ;
PORTC.F4 = 0 ;
PWM1_Set_Duty(115) ;
PWM2_Set_Duty(115) ;
)
}
if ( (PORTE.B0= 0) & (PORTE.B1=0) & (PORTE.B2=0) )
{
PWM2_Set_Duty(115);
PWM1_Set_Duty(115);
PORTC.F7 = 0 ;
PORTC.F6 = 1 ;
PORTC.F5 = 0 ;

PORTC.F4 = 1 ;
}

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 18/20

if ( (PORTE.B0=0) &(PORTE.B1=0) &(PORTE.B2=1) )
{
PORTC.F7 = 1 ;
PORTC.F6 = 0 ;
PORTC.F5 = 1 ;
PORTC.F4 = 0 ;
PWM1_Set_Duty(30);
PWM2_Set_Duty(115);
}
if ( (PORTE.B0=0) & (PORTE.B1=1) & (PORTE.B2=1) )
{
PORTC.F7 = 1 ;
PORTC.F6 = 0 ;
PORTC.F5 = 1 ;
PORTC.F4 = 0 ;
PWM1_Set_Duty 30);
PWM2_Set_Duty (115);
}
if ( (PORTE.B0=1) & (PORTE.B1=0) & (PORTE.B2=0) )
{(
PORTC.F7 = 1 ;

PORTC.F6 = 0 ;
PORTC.F5 = 1 ;
PORTC.F4 = 0 ;
PWM1_Set_Duty(115);
PWM2_Set_Duty(30);
)}
if ( (PORTE.B0=1) &(PORTE.B1=1) & (PORTE.B2=0) )

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 19/20

{
PORTC.F7 = 1 ;
PORTC.F6 = 0 ;
PORTC.F5 = 1 ;
PORTC.F4 = 0 ;
PWM1_Set_Duty(115) ;
PWM2_Set_Duty(30) ;
}
if ( (PORTE.B0=1) && (PORTE.B1=1) && (PORTE.B2=1) )
(
PORTC.F7 = 1 ;
PORTC.F6 = 0 ;
PORTC.F5 = 1 ;
PORTC.F4 = 0 ;
PWM1_Set_Duty(115) ;
PWM2_Set_Duty(115) ;

)
}
void main()
{
ADCON1 = 0x06;
TRIRSA = 0xFF ;
TRIRSE = 0xFF ;
TRIRSC = 0x00 ;
PWM1_Init(3000) ;
PWM1_Start( ) ;
PWM2_Init(3000) ;
PWM2_Start( ) ;
while(1)

Xe tự hành dò line, bám vạch


ĐỒ ÁN 2
Trang 20/20

{(
navetcan();
dieukien();
)}
}

Xe tự hành dò line, bám vạch



×