Tải bản đầy đủ (.docx) (24 trang)

XE tự HÀNH bám TƯỜNG PHẢI 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.1 MB, 24 trang )

ĐỒ ÁN 2

XE TỰ HÀNH BÁM TƯỜNG PHẢI


MỤC LỤC
DANH MỤC CÁC HÌNH VẼ.................................................................................
CHƯƠNG 1.GIỚI THIỆU....................................................................................1
1.1

GIỚI THIỆU VỀ XE TỰ HÀNH BÁM TƯỜNG PHẢI:..............................................1

1.2

CÁC THÔNG SỐ KĨ THUẬT:..............................................................................1

CHƯƠNG 2.THIẾT KẾ MẠCH..........................................................................2
2.1

SƠ ĐỒ GIẢI THUẬT:........................................................................................2

2.2

KHỐI PHÁT HIỆN VẬT CẢN TỪ MODULE HỒNG NGOẠI:....................................3

2.3

KHỐI ĐIỀU KHIỂN ĐỘNG CƠ:...........................................................................5

2.4


KHỐI XỬ LÝ TRUNG TÂM:...............................................................................6

2.5

NGUYÊN LÝ HOẠT ĐỘNG:...............................................................................9

2.6

ĐIỀU CHẾ ĐỘ RỘNG XUNG:.............................................................................9

CHƯƠNG 3.KẾT QUẢ MÔ PHỎNG VÀ LÀM MẠCH THỰC TẾ...............11
3.1

KẾT QUẢ MÔ PHỎNG ĐIỀU KHIỂN ĐỘNG CƠ:.................................................11

3.2

MẠCH PCB VÀ MẠCH THẬT:..........................................................................12

3.2.1

Mạch pcb của khối xử lý trung tâm:......................................................12

3.2.2

Mạch thật của khối xử lý trung tâm:......................................................13

CHƯƠNG 4.KẾT LUẬN....................................................................................16
4.1


KẾT QUẢ:......................................................................................................16

4.2

HƯỚNG PHÁT TRIỂN:.....................................................................................16

TÀI LIỆU THAM KHẢO...................................................................................17
PHỤ LỤC……….................................................................................................18


DANH MỤC CÁC HÌNH VẼ
Hình 2.2.1 khối phát hiện vật cản.......................................................3
Hình 2.2.2 cấu tạo bên trong của IC LM393......................................4
Hình 2.3.1 khối điều khiển động cơ....................................................5
Hình 2.6.1 Các tham số của PWM………………………………………9
Hình 3.1.1 kết quả mô phỏng...........................................................12
Hình 3.2.1 mạch pcb........................................................................13
Hình 3.2.2. 1 mạch thật tế mặt trên.................................................14
Hình 3.2.2.2 mạch thật tế mặt dưới................................................15
Hình 3.2.2.3 mạch thật Module hồng ngoại....................................16
Hình 3.2.2.4 mạch thật tế Module L298..........................................16


ĐỒ ÁN 2
1/20

CHƯƠNG 1. GIỚI THIỆU
1.1 Giới thiệu về xe tự hành bám tường phải:
Đề tài về Robot là một lĩnh vực lớn trong cuộc cách mạng khoa học công nghệ.
Ngày nay con người phát triển rất nhiều loại Robot tự hành như: Robot dò đường,

Robot giúp việc, Robot vận chuyển… Do môi trường của các Robot khác nhau và
dể thay đổi nên việc thiết lập thêm cho Robot chức năng tự tránh vật cản hay bám
tường là rất cần thiết. Đề tài của tôi là xe tự hành bám tường phải sử dụng cảm biến
hồng ngoại.
1.2 Các thông số kĩ thuật:
 Sử dụng PIC 16F877A làm bộ xử lí trung tâm.
 Sử dụng Module LM298 điều khiển động cơ.
 Sử dụng Module hồng ngoại để phát hiện vật cản.
 Sữ dụng mô hình xe làm bằng vật liệu nhựa.
 Động cơ DC 12v.
 Nguồn cung cấp là PIN 18650.

Xe tự hành bám tường phải


ĐỒ ÁN 2
2/20

CHƯƠNG 2. THIẾT KẾ MẠCH
1.3 Sơ đồ giải thuật:

Bắt đầu

Nhận tín hiệu từ hồng ngoại
Hồng
ngoại1==0

Đúng
Rẽ trái


Đúng
Hồng
ngoại2 ==0
Sai

Đi thẳng

Xe tự hành bám tường phải

Rẽ trái


ĐỒ ÁN 2
3/20

1.4 Khối phát hiện vật cản từ module hồng ngoại:

Hình 2.2.0: khối phát hiện vật cản.

 Module hồng ngoại sử dụng IC LM393 làm IC so sánh áp. Khi không có vật
cản V 1+ > V- nên ngõ ra của LM393 ở mức 1. Ngược lại khi có vật cản
LED thu hồng ngoại nhận được tín hiệu từ LED phát hồng ngoại, nội trở của
LED thu hồng ngoại giảm xuống, ở trường hợp này V+ < V- nên ngõ ra của
LM393 ở mức 0.

Xe tự hành bám tường phải


ĐỒ ÁN 2
4/20


 IC LM393: gồm 2 Op-Amp so sánh hoạt động độc lập nhau. Dùng trong bộ
chuyển đổi tương tự sang mạch số, mạch tạo thời gian trễ, mạch sóng vuông,
dao động.
Cấu tạo bên trong:

Hình 2.2.2: cấu tạo bên trong của IC LM393

Nguyên lý hoạt động:
Nếu V+ > V- V_out=1 (mức cao).
Nếu V+ < V- V_out=0 (mức thấp).
Chức năng các chân:
Chân 1: ngõ ra opamp so sánh thứ nhất.
Chân 2: ngõ vào đảo opamp so sánh thứ nhất.
Chân 3: ngõ vào không đảo opamp so sánh thứ nhất.
Chân 4: chân nối đất.
Chân 5: ngõ vào không đảo opamp so sánh thứ hai.
Chân 6: ngõ vào đảo opamp so sánh thứ hai.
Chân 7: ngõ ra của opamp so sánh thứ 2.
Chân 8: chân nguồn vcc 2- 36v.

Xe tự hành bám tường phải


ĐỒ ÁN 2
5/20

1.5 Khối điều khiển động cơ:

Hình 2.3.0: khối điều khiển động cơ.


 Khối điều khiển động cơ gồm 6 ngõ vào: 4 chân INPUT và 2 chân ENA,
ENB để điều khiển tốc độ của hai động cơ.
 Các trường hợp hoạt động:
ENA=0 Động cơ 1 không hoạt động.
IN1=1, IN2=0 Động cơ quay thuận.
IN1=0, IN2=1 Động cơ quay nghịch.
IN1=IN2 Động cơ ngừng quay.
Đối với động cơ thứ 2 với các chân điều khiển ENB, IN3, IN4 cũng tương
tự.
:

Xe tự hành bám tường phải


ĐỒ ÁN 2
6/20

1.6 Khối xử lý trung tâm:

Hình 2.4. 0: khối xử lý trung tâm

Khối xử lý trung tâm sử dụng PIC 16F877A là loại vi điều khiển được sản xuất từ
công ty Microchip Technology.
Cấu trúc tổng quát của PIC 16f8777A:
 Bộ nhớ chương trình: 8K×14bit.
 Bộ nhớ dữ liệu368×8 byte RAM.
 Bộ nhớ dữ liệu EEPROM:256×8 byte.

Xe tự hành bám tường phải



ĐỒ ÁN 2
7/20

 Có 5 ports xuất nhập là: A, B, C, D, E.
 Có 2 bộ định thời 8 bits là: timer 0 và timer 2.
 Một bộ định thời 16 bits: timer 1 hoạt động trong chế độ tiết kiệm năng
lượng với nguồn xung clock cung cấp từ bên ngoài vào.
 Hai bộ CCP.
 Một bộ biến đổi ADC 10 bits, 8 ngõ vào.
 Hai bộ so sánh tương tự.
 Một bộ định thời giám sát.
 Một cổng song song 8 bits có các tín hiệu điều khiển.
 Một cổng nối tiếp.
 15 nguồn ngắt.
 Có chế độ tiết kiệm năng lượng.
 Nạp chương trình bằng cổng nối tiếp ICSP.
 35 tập lệnh có độ dài 14 bits.
 Tần số hoạt động tối đa là: 20Mhz.

Xe tự hành bám tường phải


ĐỒ ÁN 2
8/20

Hình 2.4.0: Sơ đồ khối PIC 16F877A

Xe tự hành bám tường phải



ĐỒ ÁN 2
9/20

1.7 Nguyên lý hoạt động:
Xe tự hành hoạt động dựa trên các cảm biến hồng ngoại được đặt phía trước xe khi
gặp vật cản các Module hồng ngoại đặt trước xe sẽ truyền tín hiệu vào bộ xử lý
trung tâm. Sau khi bộ xử lý trung tâm nhận tín hiệu sẽ đưa ra mệnh lệnh hợp lý để
xuất ra 4 ngõ ra đưa vào Module L298 để điều khiển hai động cơ của xe.
Cụ thể từng trường hợp:
+ Khi có vật cản ở phía trước thì hồng ngoại một nhận tín hiệu và xuất ra output
bằng 0 đưa về bộ xử lý trung tâm. Ở đây PIC sẽ nhận tín hiệu và xuất tín hiệu ngõ
ra vào module L298, lúc này L298 sẽ cho xe quẹo trái. Khi không có vật cản ở phía
trước thì Module hồng ngoại 1 sẽ xuất ra tín hiệu mức 1 đưa về bộ xử lý trung tâm,
tương tự như trường hợp ở trên PIC sẽ nhận tín hiệu và điều khiển Module L298
cho xe chạy thẳng.
+ Cũng cách thức truyền nhận dữ liệu như trên nếu không có vật cản bên phải thì xe
sẽ quẹo phải để tìm tường ngược lại khi có vật cản thì xe sẽ rẻ trái để tránh vật cản.
1.8 Điều chế độ rộng xung:
Để điều khiển tốc độ động cơ trên xe ta sử dụng phương pháp điều chế xung PWM.
PIC 16F877A sử dụng hai chân: CPP1 và CPP2 là hai chân điều chế độ rộng xung.

Hình 2.6. 0 Các tham số của PWM

Xe tự hành bám tường phải


ĐỒ ÁN 2
10/20


Giá trị một chu kì(period) được tính:







PWM period= [(PR2)+1]*4*TOSC*(giá trị bộ chia tần số của TMR2).
Timer2 có 3 bộ chia tần:1, 4 và 16.
Khi giá trị thanh ghi PR2 bằng giá trị Timer2:
Thanh ghi Timer2 được xoá.
Chân CCP được set.
Giá trị thanh ghi CCPR1L chứa giá trị điều chế độ rộng xung được đưa vào
thanh ghi CCPR1H.

Công thức tính độ rộng xung:
 PWM duty cycle = (CCPRxL:CCPxCON<5:4>)*TOSC*(giá trị bộ chia tần
số TMR2).
Các điểm chú ý khi sử dụng PWM:
 Trong Timer2 có hai bộ chia tần: Prescaler và Postscaler nhưng bọ Postscaler
không sử dụng trong quá trình điều chế độ rộng xung.
 Nếu thời gian điều chế độ rộng xung dài hơn thời gian chu kì xung thì ngõ ra
vẫn mức cao khi giá trị PR2 bằng với giá trị thanh ghi Timer2.

Xe tự hành bám tường phải


ĐỒ ÁN 2

11/20

CHƯƠNG 3. KẾT QUẢ MÔ PHỎNG VÀ LÀM MẠCH THỰC TẾ
1.9 Kết quả mô phỏng điều khiển động cơ:

Hình 3.1.0 kết quả mô phỏng

Xe tự hành bám tường phải


ĐỒ ÁN 2
12/20

1.10

Mạch PCB và mạch thật:

1.1.1 Mạch PCB của khối xử lý trung tâm:

Hình3.2.0 mạch PCB

Xe tự hành bám tường phải


ĐỒ ÁN 2
13/20

1.1.2 Mạch khối xử lý trung tâm:

3.2.2. 0 mạch khối xử lý trung tâm mặt trên.


Xe tự hành bám tường phải


ĐỒ ÁN 2
14/20

Hình 3.2.2.0: mạch khối xử lý trung tâm mặt dưới.

Xe tự hành bám tường phải


ĐỒ ÁN 2
15/20

Hình 3.2.2.0: Module hồng ngoại

3.2.2.0 Mạch Module L298

Xe tự hành bám tường phải


ĐỒ ÁN 2
16/20

CHƯƠNG 4. KẾT LUẬN
1.11 Kết quả:
Thi công mạch thành công. Xe chạy bám tường được nhưng còn chậm và xe chạy
còn lắc.
1.12 Hướng phát triển:

Có thể sử dụng động cơ tốt hơn để cho xe chạy ổn định hơn.

Xe tự hành bám tường phải


ĐỒ ÁN 2
17/20

TÀI LIỆU THAM KHẢO
[1] Datasheet 16F877A.
[2] Datasheet LM393.
[3] Datasheet L298.
.

Xe tự hành bám tường phải


ĐỒ ÁN 2
18/20

PHỤ LỤC
Code:
#include<16f877a.h>
#fuses nowdt,hs,noput,noprotect,nodebug,nolvp,nocpd,nowrt
#use delay(clock=20M)
#bit hn1=0x0A.0
#bit hn2=0x0A.1
void dunglai()
{
output_high(pin_B0);

output_high(pin_B1);
output_high(pin_B2);
output_high(pin_B3);
}
void dithang1()
{
output_high(pin_B0);
output_low(pin_B1);
output_high(pin_c2);
set_pwm1_duty((int16)250);
output_low(pin_B2);
output_high(pin_B3);
output_high(pin_c1);
set_pwm2_duty((int16)200);
}
void retrai()
{
output_low(pin_B0);

Xe tự hành bám tường phải


ĐỒ ÁN 2
19/20

output_high(pin_B1);
output_high(pin_c2);
set_pwm1_duty((int16)0);
output_low(pin_B2);
output_high(pin_B3);

output_high(pin_c1);
set_pwm2_duty((int16)180);
}
void main()
{
setup_timer_2(T2_DIV_BY_16,155,1);
setup_ccp1(CCP_PWM);
setup_ccp2(CCP_PWM);
set_pwm1_duty((int16)0);
set_pwm2_duty((int16)0);
while(true)
{
dithang1();
hn1 = input_state(PIN_A0);
hn2 = input_state(PIN_A1);
if(hn1==0)
{
dunglai();
delay_ms(50);
while(hn1==0)
{
retrai();
hn1 = input_state(PIN_A0);

Xe tự hành bám tường phải


ĐỒ ÁN 2
20/20


}
}
if(hn2==0)
{
dunglai();
delay_ms(20);
while(hn2==0)
{
retrai();
hn2 = input_state(PIN_A1);
}
}
}

Xe tự hành bám tường phải


ĐỒ ÁN 2
20/20

Xe tự hành bám tường phải



×