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

vi điều khiển robot dò đường

20 1,1K 2

Đ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 20
Dung lượng 1,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cấu trúc của một vi điều khiển gồm CPU, bộ nhớ chương trình thường là bộ nhớ ROM hoặc bộ nhớ Flash, bộ nhớ dữ liệu RAM, các bộ định thời, các cổng vào/ra để giao tiếp với các thiết bị bê

Trang 1

-o-VIỆN

ĐIỆN-o-BỘ MÔN TỰ ĐỘNG HÓA CÔNG NGHIỆP

BÁO CÁO

Đề tài:

Mạch đèn ngủ và báo thức tự động

sử dụng IC555

GVHD: Thầy Nguyễn Công Phương SVTH: Võ Thanh Tùng MSSV:20146832 Nguyễn Thanh Long MSSV:20146450

Hà Nội,ngày…tháng…năm 2016

Trang 2

LỜI MỞ ĐẦU

Lời đầu tiên cho em xin cám ơn Thầy Nguyễn Công Phương đã giúp đỡ nhóm em rất nhiều trong quá trình thực hiện làm đề tài này.

Ngày nay ngành điều khiển tự động hóa ngành càng phát triển, đáp ứng đúng nhu cầu phát triển về khoa học kĩ thuật, đặc biệt hơn nó càng có ứng dụng thực tiễn trong đời sống con người Chính vì thế em đã lựa chọn đề tài mạch đèn ngủ và báo thức tự động làm đề tài cho đồ án 1 của mình Trong quá trình hoàn thành em đã học hỏi là tích lũy được rất nhiều kiến thức:

+ Phương pháp làm việc khoa học, kĩ năng làm việc nhóm thể hiện tinh thần đồng đội, tính đoàn kết và tự giác

+ Giúp chúng em cải thiện khả năng tìm tòi kiến thức, tự lập tìm kiếm kiến thúc từ nhiều nguồn khác nhau

Tuy nhiên trong quá trình hoàn thành đề tài cũng còn gặp nhiều khó khan Vì vậy kết quả còn nhiều thiếu sót, không được như mong đợi Mong thầy Nguyễn Công Phương giúp đỡ chúng em hơn nữa để hoàn thiện hơn Từ đó có thể mở rộng

ra những ứng dụng khác, thực tiễn hơn đối với đời sống con người.

Một lần nữa, em xin chân thành cảm ơn Thầy đã giúp và hướng dẫn nhóm em hoàn thành được đề tài này ạ.

SVTH

Võ Thanh Tùng

Trang 3

MỤC LỤC

1 GIỚI THIỆU CHUNG

Vi điều khiển là một máy tính được tích hợp trên một chíp, nó thường được sử dụng

để điều khiển các thiết bị điện tử Vi điều khiển thực chất gồm một vi xử lý có hiệu suất

đủ cao và giá thành thấp (so với các vi xử lý đa năng dùng trong máy tính) kết hợp với các thiết bị ngoại vi như các bộ nhớ, các mô đun vào/ra, các mô đun biến đổi từ số sang tương tự và từ tương tự sang số, mô đun điều chế độ rộng xung (PWM)

Vi điều khiển thường được dùng để xây dựng hệ thống nhúng Nó xuất hiện nhiều trong các dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, dây truyền tự động

Hầu hết các loại vi điều khiển hiện nay có cấu trúc Harvard là loại cấu trúc mà bộ nhớ chương trình và bộ nhớ dữ liệu được phân biệt riêng

Trang 4

Cấu trúc của một vi điều khiển gồm CPU, bộ nhớ chương trình (thường là bộ nhớ ROM hoặc bộ nhớ Flash), bộ nhớ dữ liệu (RAM), các bộ định thời, các cổng vào/ra để giao tiếp với các thiết bị bên ngoài, tất cả các khối này được tích hợp trên một vi mạch

Đề tài thiết kế xe chạy theo đường vẽ sẵn được chúng em thực hiện dựa trên nền kiến thức về mạch điện tử, vi xử lý nói chung và vi điều khiển họ 8051 nói riêng được thầy giáo hướng dẫn trên lớp Thực hiện đề tài này là tiền đề để chúng em nắm được những kiến thức cơ bản về vi điều khiển 8051, từ đó tạo cơ sở để tiếp tục nghiên cứu những họ

vi điều khiển khác như AVR, PIC, ARM… phục vụ trong quá trình học tập và làm việc sau này

Chúng em chân thành cảm ơn thầy Nguyễn Hồng Quang đã hướng dẫn chúng em hoàn thành bài tập này

2 MÔ TẢ KỸ THUẬT

2.1 THIẾT KẾ MẠCH

A) Mạch nguồn

Trong khối nguồn chúng ta sử dụng 3 pin 3.7V là 11.1V.Mặt khác hệ thống điều khiển cần phải có nguồn 5V để cung cấp cho khối VI ĐIỀU KHIỂN và khối SENSORS Để tạo nguồn 5V DC chúng ta sử dụng IC ổn áp 7805, với đầu vào gồm đất chung của toàn hệ thống và nguồn 12 VDC lấy trực tiếp từ nguồn pin IC ổn áp LM7805 được lắp một tản nhiệt loại nhỏ để tản bớt nhiệt khi hoạt động giúp khối nguồn cũng như toàn bộ mạch hoạt động ổn định

Trang 5

Hình 2.1: Sơ đồ nguyên lý khối mạch nguồn

1

2

2 1

2 1

1 2

1

2

3 2 1

2 1

2 1

Hình 2.2: Sơ đồ mạch in của mạch nguồn

B) Mạch cảm biến

Đường đi của xe được vẽ bằng vạch đen nằm trên nền trắng Để xe nhận ra được đường đi, chúng em sử dụng các cặp led thu phát hồng ngoại đặt gần nhau Các led phát phát ra ánh sáng đỏ, các led thu có điện trở phụ thuộc vào có nhận được ánh sáng phản xạ

từ đường đi hay không

Trang 6

Khi cặp thu phát ở vị trí nền trắng, ánh sáng từ led phát phát ra phản xạ trên nền trắng

và tới led thu Led thu thu được ánh sáng này thì điện trở giảm xuống, điện áp ở cực Anot của led thu gần về 0 Ngược lại, ở vị trí vạch đen, ánh sáng từ led phát phát ra không phản xạ lại được do bị vạch đen hấp thụ Led thu không nhận được ánh sáng này nên điện

áp ở cực Anot của nó gần bằng 5 V Điện áp ra từ led thu được đem so sánh với điện áp chuẩn đã được chỉnh hợp lý qua IC LM324 để cho ra mức logic 0-1, đưa vào vi điều khiển xử lý

IC LM324 gồm 4 kênh so sánh Trong đó, đầu vào đảo nối với cực Anot của led thu và đầu vào không đảo nối với điện áp so sánh từ chiết áp

Khi led ở ngoài nền trắng, mức điện áp trên led thu đo được là 3.0V, ngược lại, mức điện áp thu đo được khi bắt vào vạch đen là 4.6 V Điện áp so sánh (Vref) được đặt qua biến trở 10k là 3.8 V

Khi ở ngoài nền trắng: Vled thu <Vref nên Output=1

Khi bắt vạch đen: Vled thu >Vref nên Output=0

Hình 2.4: Sơ đồ nguyên lý khối led thu phát

Trang 7

Hình 2.6: Mạch so sánh sử dụng LM324

3 2 1 3 2 1

2 1

2 1

2 1

2

1

2 1 2

1

2 1 2

1

1 2 3 4 5 6 7

14 13 12 11 10 9 8

1 2

1

2

8 9 10 11 12 13 14

7 6 5 4 3 2

1 7

5

1 2 3 4 6 8

1

2

1 2

1 2

1

2

1 2

1 2

1 2

1

2

1

2

1

2

1

2

1

2

1

2

1

2

1

2

3 2

1

3

2 1

3

2 1

3 2 1

Hình 2.5: Mạch in của hệ thống cảm biến

C) Mạch điều khiển

Khối này gồm có Vi điều khiển AT89S52, mạch RESET, mạch tạo dao động, các led báo vạch về từ mạch SENSORS, Jumpers đầu vào dùng để nạp ISP

+Vi điều khiển AT89S52 được chúng ta sử dụng vì nó có đầy đủ những chức năng của

vi điều khiển AT89C51 Ngoài ra còn có thêm một timer (timer2) và có bộ nhớ Flash,

Trang 8

công nghệ nạp ISP (In System Programming) tức là nạp mà không cần tháo chip ra khỏi mạch, giúp việc lập trình và test rất thuận tiện

+ Mạch RESET có chức năng reset lại hoạt động của vi điều khiển, được nối vào chân

số 9 của vi điều khiển là chân tích cực cao Khi chân số 9 được set lên 1 thì vi điều khiển được reset lại Để chống rung khi ấn nút, chúng ta dùng một tụ hóa nối song song với nút ấn

+ Mạch DAO ĐỘNG sử dụng thạch anh 12Mhz, như vậy một chu kì máy là 1us, rất thuận tiện cho việc tính toán và lập trình Tuy nhiên có hạn chế là không thể truyền thông với máy tính qua cổng COM (đòi hỏi thạch anh 11.0592Mhz) Thạch anh này được nối đất với tụ gốm 33p để lọc nhiễu

+ Các led báo vạch về dùng để phản ánh tình trạng của các led thu phát ở mạch SENSORS Khi một cặp thu-phát bắt vào vạch đen thì led báo tương ứng sẽ sáng lên và ngược lại Nói cách khác, các led báo này phản ánh vị trí lệch của xe so với vạch đen, từ

đó giúp tìm và khắc phục lỗi chương trình thuận tiện hơn rất nhiều

Trang 9

Hình 2.8: Sơ đồ nguyên lý mạch điều khiển

8 6 4 3 2 1

5

7

2 1

1 2 1

2 21

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

5

1 2 3 4

6

1 2

1 2

1 2

1 2

1 2

1 2

1 2

1 2

1

2

1

2

1

2 1 2

1 2

1 2

2

1

Hình2.9: Mạch in của khối điều khiển

D) Khối động cơ

Sử dụng IC L298 là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong Với điện áp làm tăng công suất nhỏ như động cơ DC loại vừa.Mình tóm tắt qua chức năng các chân của L298:

- 4 chân INPUT: IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5, 7, 10, 12 của L298 Đây là các chân nhận tín hiệu điều khiển

- 4 chân OUTUT: OUT1, OUT2, OUT3, OUT4 (tương ứng với các chân INPUT) được nối với các chân 2, 3,13,14 của L298 Các chân này sẽ được nối với động cơ

- Hai chân ENA và ENB dùng để điều khiển mạch cầu H trong L298 Nếu ở mức logic

“1” (nối với nguồn 5V) cho phép mạch cầu H hoạt động, nếu ở mức logic “0” thì mạch cầu H không hoạt động

Với bài toán của mình ở trên, các bạn chỉ cần lưu ý đến cách điều khiển chiều quay với L298:

- Khi ENA = 0: Động cơ không quay với mọi đầu vào

- Khi ENA = 1:

INT1 = 1; INT2 = 0: Động cơ quay thuận

INT1 = 0; INT2 = 1: Động cơ quay nghịch

INT1 = INT2: Động cơ dùng ngay tức thì

Trang 10

Với ENB cũng tương tự với INT3, INT4.

Hình2.12: Mạch nguyên lý khối động cơ

2.2 MÔ TẢ PHẦN CỨNG CPU

Cấu trúc chung của bộ vi điều khiển họ 8051

Một số thành phần chính của bộ vi điều khiển 8051:

hoặc cũng có thể dùng để định địa chỉ khi sử dụng bộ nhớ ngoài

hoạt động của vi điều khiển

Trang 11

 Các bộ timer, bộ đếm: được sử dụng rất nhiều để tạo trễ, dùng trong hoạt động ngắt

 ……

khiển

Vi điều khiển sử dụng trong bài tập này là AT89S52 của hãng Atmel Một số đặc điểm chỉnh của vi điều khiển này như sau:

Sơ đồ chân của vi điều khiển AT89S52 được minh họa như hình dưới:

2.3 MÔ TẢ THIẾT KẾ CÁC PHẦN KHÁC

Trang 12

Thân xe gồm có 2 bánh trước để dẫn động, bánh sau quay được 360o , 2 động cơ sử dụng là loại 12V một chiều được gắn vào thân xe Mạch cảm biến kết nối với vi điều khiển qua dây bus 6 gồm có 2 chân cấp nguồn 5V, vào 4 chân tín hiệu

2.4 THIẾT KẾ PHẦN MỀM

Chương trình viết cho vi điều khiển sử dụng ngôn ngữ C với trình dịch là phần mềm

MẠCH SENSORS MẠCH

VI ĐIỀU KHIỂN ĐIỀU KHIỂN ĐỘNG CƠ

XE CHUYỂN ĐỘNG

Lưu đồ thuật toán điều khiển:

KHỞI TẠO GIỚI THIỆU

DÒ ĐƯỜNG LỆCH

YES

NO

Cua trái

Or Cua phải

Đi thẳng

Trang 13

NO

Chương trình con khi bắt vạch đích

VẠCH

2.5 CÁC BƯỚC KIỂM TRA

3 KẾT QUẢ ĐẠT ĐƯỢC VÀ PHÂN TÍCH LỖI

Vấn đề 1: Đọc và xử lý tín hiệu SENSORS

Tính toán, thu thập các trường hợp xe lệch ra khỏi đường, xe gặp khúc cua, xe không bắt được vạch đen, xe bắt vạch đích, xe cua ở góc cua gấp…

Xử lý các trường hợp trên như thế nào?

Trong quá trình test xe, nhiều khi Sensors bắt không chuẩn hoặc không ổn định

Khắc phục: Để thu thập các trường hợp, dùng tay đẩy xe đi theo đường đặc biệt là các

khúc cua và ghi tín hiệu hiển thị trên các led báo về, tính toán các trường hợp lệch trái, lệch phải, lệch ít, lệch nhiều, không lệch, bắt vạch đích…

Hàn chắc các mối hàn mạch SENSORS, kiểm tra cáp nối với mạch vi điều khiển, điều chỉnh biến trở để lấy điện áp so sánh hoạt động ổn định đưa vào IC LM324 là 3.8V

Kết quả:Mạch hoạt động ổn định, SENSORS bắt rất tốt, tín hiệu báo về trên mạch vi

điều khiển chuẩn xác

Vấn đề 2: Cách điều chế độ rộng xung PWM để đưa vào chân EN1, EN2 điều khiển

chiều quay cũng như tốc độ quay của hai động cơ truyền động

Trong quá trình test xe, chúng em gặp các vấn đề: băm xung xe không chạy, cùng băm xung với hai giá trị bằng nhau vào EN1 và EN2 nhưng tốc độ quay của hai động cơ không bằng nhau hoặc trường hợp động cơ quay không đúng với chương trình Ví dụ cùng một trường hợp Led báo về nhưng có lúc động cơ quay thuận, lúc quay ngược

Khắc phục: Hiệu chỉnh chương trình băm xung cho hợp lý Mô phỏng chương trình

nói riêng cũng như mạch vi điều khiển, động cơ nói chung bằng phần mềm mô phỏng rất mạnh là Proteus

Trang 14

4.KẾT LUẬN

Qua quá trình làm bài tập lớn vi điều khiển với sản phẩm thực tế là chiếc xe chạy theo đường đi này, chúng em đã học hỏi được rất nhiều kiến thức: thiết kế xe, thiết kế mạch, làm mạch in, lập trình, hiệu chỉnh… Điều quan trọng là chúng em đã làm được một sản phẩm dựa trên những kiến thức đã học vì từ lý thuyết ra thực tế là cả một quãng đường dài

Bài tập này giúp chúng em hiểu thêm cấu trúc của Vi điều khiển 8051 cũng như tập lệnh của nó, tạo tiền đề để tiếp tục nghiên cứu các vi điều khiển ứng dụng mạnh hơn như AVR, PIC, ARM…., các bộ PLC, các hệ thống SCADA, DSC…, phục vụ cho quá trình làm việc, nghiên cứu sau khi tốt nghiệp

Chúng em chân thành cảm ơn thầy giáo Nguyễn Hồng Quang đã hướng dẫn, truyền đạt kiến thức để có thể hoàn thành được bài tập này

5 MỞ RỘNG ĐỀ TÀI

Để có được chiếc xe tự hành có khả năng di chuyển bắt vạch với độ phức tạp cao của đường đi, xe đạt tốc độ lớn thì đề tài có thể nghiên cứu tiếp như sau:

nhanh chóng ổn định ở tốc độ cao

Có thể đưa thêm các nút bấm để lựa chọn chiến thuật trên LCD khi xe chạy trên đường

có nhiều ngã tư và nhiều lối đi Và để dễ dàng trong việc phát triển thuật toán hơn thì việc nghiên cứu sử dụng các vi điều khiển có nhiều tính năng như AVR hay PIC có thể là hướng tiếp theo

Tuy nhiên việc xe tự hành di chuyển bắt vạch không có ứng dụng thực tế lắm, nên để có thể phát triển đề tài thành ứng dụng có tính thực tiễn thì phần sensor cần phát triển để có thể nhận biết vật cản nói chung chứ không chỉ là vạch đen đơn thuần Công nghệ xử lý ảnh có thể là một hướng phát triển hợp lý cho phần sensor.Từ đó xe tự hành có thể di chuyển trên đường bất kì và ta có thể nghiên cứu phát triển phần cơ khí và các bộ điều khiển để xe có thể thực hiện một số công việc nào đó khi gặp vật cản như nhặt đồ bị rơi, gắp quà (trong cuộc thi robocon), thậm chí có thể là thu dọn rác hay ấn nút mở cửa…!

6 TÀI LIỆU THAM KHẢO

1. Bài giảng trên lớp

2. Cấu trúc và lập trình họ vi điều khiển 8051 – Nguyễn Tăng Cường

Phan Quốc Thắng

3 Họ vi điều khiển 8051- Tống Văn On_Hoàng Đức Hải

Trang 15

4 Một số trang web:

……

7 PHỤ LỤC

7.1 DANH SÁCH THIẾT BỊ

Tụ điện các loại: tụ sứ 33p, tụ hóa 10uF, 330uF,

0.1uF

Vài

Phíp đồng, hóa chất

7.2 MÃ NGUỒN

Trang 16

#include <REGX52.H>

sbit PWM1=P0^5; // bam xung dong co phai

sbit LED1=P3^4; // sensor 1 o vi tri ben trai xa

sbit LED2=P3^3; // sensor 2 o vi tri ben trai gan

sbit LED4=P3^1; // sensor 6 o vi tri ben phai xa

sbit EN1=P0^0; // dieu khien dong co trai

sbit IN1=P0^1; // dong co trai quay thuan

sbit IN2=P0^2; // dong co trai quay nguoc

sbit IN3=P0^3; // dong co phai quay thuan

sbit IN4=P0^4; // dong co phai quay nguoc

sbit EN2=P0^5; // dieu khien dong co phai

unsigned char dem;

unsigned char ptxung; // phan tram xung

unsigned char ptxung1; // phan tram xung 1

void timer0(void) interrupt 1 // ngat timer 0

{

dem++;

if(dem<ptxung)

{P0_0=1; }

else P0_0=0;

if(dem<ptxung1)

{ P0_5=1;}

else P0_5=0;

if(dem==11) dem=0;

TR0=1; // chay timer 0

}

void khoitaotimer0(void) // ham khoi tao

{

EA=0; // cam ngat toan cuc

TMOD=0x02;

TH0=0x00;

TL0=0x00;

ET0=1; // cho phep ngat timer 0

EA=1; //cho phep ngat toan cuc

Trang 17

TR0=1; // cho phep ngat timer

}

void motor_left_forward() // DONG CO TRAI CHAY THUAN

IN1=0;IN2=1; } // quay thuan void motor_left_reverse() // DONG CO TRAI CHAY NGUOC

IN1=1;IN2=0; } // chay nguoc

{ EN1=0;}

void motor_right_reverse() // DONG CO PHAI CHAY NGUOC

IN3=1;IN4=0;} // chay nguoc void motor_right_stop() // DONG CO PHAI DUNG LAI

{EN2=0;}

{ motor_left_forward();

motor_right_forward();}

{ motor_left_reverse();

motor_right_reverse();}

{ motor_left_stop();

motor_right_stop();}

{ motor_left_reverse();

motor_right_forward();}

{ motor_left_forward();

motor_right_reverse(); }

char v;

void main()

{

khoitaotimer0();

Trang 18

P0=0x2B;

P3=0x1E;

{

ptxung=1;

ptxung1=1;

forward();

} if(LED1==1&&LED2==0&&LED3==0&&LED4==0) // QUAY

{

ptxung=8;

ptxung1=8;

turn_right();

if(LED1==0&&LED2==1&&LED3==0&&LED4==0) // QUAY PHAI 1 led so 2 - lech it

{ ptxung=6;

ptxung1=4;

turn_right();

} if(LED1==0&&LED2==0&&LED3==1&&LED4==0) // QUAY

{

ptxung=4;

ptxung1=6;

} if(LED1==0&&LED2==0&&LED3==0&&LED4==1) // QUAY

{

ptxung=0;

ptxung1=7;

turn_left();

} if(LED1==1&&LED2==1&&LED3==0&&LED4==0) // QUAY PHAI

2 led so 1,2 - lech vua

{

ptxung=3; //8

Ngày đăng: 09/09/2016, 03:45

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Sơ đồ nguyên lý khối mạch nguồn - vi điều khiển robot dò đường
Hình 2.1 Sơ đồ nguyên lý khối mạch nguồn (Trang 5)
Hình 2.6: Mạch so sánh sử dụng LM324 - vi điều khiển robot dò đường
Hình 2.6 Mạch so sánh sử dụng LM324 (Trang 7)
Hình 2.8: Sơ đồ nguyên lý mạch điều khiển - vi điều khiển robot dò đường
Hình 2.8 Sơ đồ nguyên lý mạch điều khiển (Trang 9)
Sơ đồ chân của vi điều khiển AT89S52 được minh họa như hình dưới: - vi điều khiển robot dò đường
Sơ đồ ch ân của vi điều khiển AT89S52 được minh họa như hình dưới: (Trang 11)

TỪ KHÓA LIÊN QUAN

w