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

đồ án tốt nghiệp điều khiển chuyển động rôbôt bằng động cơ bước

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 (308.51 KB, 22 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA ĐIỆN TỬ - VIỄN THÔNG
o0o
BÀI TẬP LỚN
Môn : VI XỬ LÝ
Đề tài :
ĐIỀU KHIỂN CHUYỂN ĐỘNG RÔBÔT BẰNG ĐỘNG CƠ BƯỚC
Thầy hướng dẫn : Nguyễn Hoàng Dũng
Nhóm sinh viên :
1. Hoàng ĐứcGiang Nguyên
2. Nguyễn Phi Tuấn
3. Phạm Quang Vinh
4. Vũ Thị Thanh Thảo
5.Nguyễn Thu Thủy
HÀ NỘI , THÁNG 5-2006
LỜI NÓI ĐẦU
Sau một thời gian học tập trên giảng đường của trường đại học bách
khoa Hà Nội nói chung hay khoa điện tử viễn thông nói riêng ,chúng em
đã tiếp thu được những kiến thức khoa học và công nghệ. Đặc biệt là
môn vi xử lý do thầy Nguyễn Hoàng Dũng giảng dạy, chúng em đã có cơ
hội chuyển kiến thức lý thuyết thành sản phẩm thực tế qua đề tài “ Điều
khiển chuyển động rôbôt bằng động cơ bước”. Nhận được sự quan tâm
và chỉ bảo của thầy chúng em đã hoàn thành được sản phẩm của mình.
Qua đây chúng em có thêm được nhiều kiến thức thực tế giúp cho công
việc sau này.

Chúng em xin chân thành cảm ơn.
Chương I:
Mở đầu
I. Đặt vấn đề
II. Mục đích thiết kế


-Phát huy thành quả ứng dụng của vi điều khiển tạo ra những sản
phẩm tiên tiến có độ tích hợp cao về công nghệ.
-Việc thực hiện đề tài này giúp em tiếp cận với thực tế, phát huy nhung
kiến thức đã học trong môn vi xử lý.
- Qua đây có thêm nhiều kinh nghiệm giúp ích sau khi ra trường có thể
hòa nhập với công nghệ tiên tiến trên xa hội.
III. Nội dung đề tài
1. Đề tài
Điều khiển chuyển động của rôbồt bằng động cơ bước.
2.Chức năng của hệ thống
- Chuyển động động cơ bước theo ý muốn của người lập trình .
+ Chuyển động thẳng: tiến, lùi.
+ Chuyển động quay trái, phải.
+ Điều khiển được tốc độ chuyển động của động cơ.
+ Điều khiển động cơ bước theo đường đi bất kì ( bằng cảm ứng
quang).
CHƯƠNG II
THIẾT KẾ
I.Nhiệm vụ thiết kế
- Thiết kế điều khiển chuyển động rôbôt bằng động cơ bước. Vậy ta
làm các bước sau:
+Mạch điều khiển động cơ
+Thiết kế mô hình động cơ
+Viết chương trình điều khiển

II.Sơ đồ khối của hệ thống
Khối điều khiển
Khối cơ học
III.Thiết kế và phân tích nguyên lý từng khối
1.Khối điều khiển

Để điều khiển chuyển động của động cơ theo ý muốn cần phải có
trình dịch chính xác với chuyển động của động cơ, và một nguồn dòng
phù hợp đảm bảo cho động cơ hoạt động. Có rất nhiều cách làm phục
vụ mục đích này. Với việc điều khiển động cơ chỉ cần dòng qua cuộn
dây cỡ 500 mA, có thể dùng dãy IC loại dãy Darlington côllêctơ hở :
+ULN2003, ULN2803
+DS2003( national semiconductor 2003) ,MC1413(motorola).
Tuy nhiên những cách làm trên chỉ sử dụng cho những động cơ nhỏ,
trên thực tế chúng tôi dùng IC opto coupler và IC tip 122 có cấu tạo
dùng mạch mắc theo kiểu Darlington .
a.Một số đăc tính kĩ thuật của tip 122

BCE
Với dòng vào cực bazơ có thể đạt khoảng 120 mA , dòng I
c
khoảng 5
đến 8 ampe.
Mạch được mắc theo sơ đồ
Nhưng trên thực tế ta măc tip 122 với opto coupler để dòng vào cực
bazơ nhỏ hơn 120 mA thì ta sẽ mắc đầu vào với 1 điện trở R= 10k.
b.1 số đặc tính kĩ thuật của opto coupler
Khi điều khiển động cơ chuyển động trên mặt đất ta phải dùng một
động cơ có công suất lớn với mức điện áp là 12V. Mặt khác tín hiệu ra
là một là 5V, điều đó phải kích áp và dòng qua động cơ. Có rất nhiều
cách khác nhau, và một trong những cách hay chính là dùng opto
coupler như một khoá chuyển từ 5V sang 12V và đưa trực tiếp nguồn
dòng từ nguồn sang động cơ.Với cấu tạo:
Tuy nhiên cấu tạo của opto coupler(p51) trên thị trường Việt Nam chỉ
có 4 chân 1, 2, 4, 5 mà không có các chân còn lại vì không cần thiết.
IC ULN2003 cho dòng vào cuộn dây I<500 mA.

b. Thiết kế mạch tạo chuyển động dùng ULN2003 :
Nối hai IC ULN2003 với :
+ Đầu vào các chân từ 1-4 của 2 IC lần lượt với đầu ra tương ứng 4 bit
thấp và cao của 89C51.
+ Đầu ra nối với các chân A, B, C, D của 2 động cơ bước.
Sơ đồ nối chân cụ thể giống như hình vẽ tổng quan của mạch điều khiển
động cơ sẽ nói tới sau.
c. Giới thiệu sơ lược về IC 89C51
-IC điều khiển 89C51tương thích với họ MSC51 có đặc điểm sau :
+ 4K Bytes Flash rom
+ 128 Bytes Ram
+ 4 port 8 bit
+ 2 bộ định thời 16 bit
+ Có port nối tiếp
+ Có thể mở rộng bộ nhớ chương trình ngoài 64 K Byte
+ Bộ xử lý bit
- Cấu trúc bên trong của 89C51:
TXD
*
RXD
*


T
1
*
T
2
*
P

0
P
1
P
2
P
3


INT\
*
1
INT\
*
0

TIMER2
TIMER1
PORT nối tiếp

EA\ RST PSEN ALE


Các thanh
ghi khác
128 byte
Ram
Rom
4K-8051
OK-8031

Timer1
Timer2
Điều khiển
ngắt
Điều khiển
bus
CPU
Port nối
tiếp
Các port
I\O
Tạo dao
động
- Sơ đồ chân của 89C51 :
2.Khối cơ học
a. Động cơ bước
- Cấu trúc bên trong động cơ bước
18
19
12MHz
40
29
30
31
9
17
16
15
14
13

12
11
10
RD\
WR\
T1
T0
INT1
INT0
TXD
RXD
A15
A14
A13
A12
A11
A10
A9
A8
28
27
26
25
24
23
22
21
8
7
6

5
4
3
2
1
32
33
34
35
36
37
38
39
Po.7
Po.6
Po.5
Po.4
Po.3
Po.2
Po.1
Po.0
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
P1.7

P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P2.7
P2.6
P2.5
P2.4
P2.3
P2.2
P2.1
P2.0
PSEN\
ALE
EA\
RET
Vcc
20
Vss
30p
30p
XTAL1
XTAL2
-Phương pháp điều khiển động cơ bước
Các cuộn dây được cấp dòng theo vòng. Mỗi khi vòng dây được cấp thì
động cơ được gọi là quay 1 bước
Hoạt động của từng cuộn dây trong động cơ bước.

A
B
C
D
A',B',C',D'
A
A'
t
B
B'
t
C
C'
tD
D'
t
Các cuộn dây ABCD được nạp theo chu trình :
“ABCD”= “1001”  “1100”  “0110”  “0011”.
Lúc đó động cơ sẽ quay ngược chiều kim đồng hồ được 1 vòng .
Muốn động cơ quay thuận chiều kim đồng hồ thì ta chỉ việc thay đổi
ngược lại chu trình nạp trên .
Tuy nhiên, chúng em xin sử dụng động cơ bước trên thị trường với các
bước khác trong sách:
“ABCD”= “1001”, “1110”, “0110”, “0001”. Với các cuộn dây B,C luôn
cùng mức điện áp.
b.Các thành phần cơ học khác
Bao gồm các bánh xe :
+ 2 bánh xe điều khiển chuyển động, được tạo trục thích hợp gắn liền
với trục quay của 2 động cơ bước.
+ 1 bánh xe con gắn liền với thân rôbôt có thể quay mọi hướng xung

quanh trục gắn liền đó.
IV. Sơ đồ mạch và hoạt động của rôbôt
1.Sơ đồ mạch
2.Hoạt động của rôbôt
a.Hoạt động về mặt định tính
+Chuyển động tịnh tiến:
Khi nguồn 5V cung cấp vào toàn mạch và động cơ, tín hiệu thay đổi
liên tục sẽ được xuất ra ở cổng P0 đưa vào đầu vào của 4 chân đầu của
ULN2003, tín hiệu ra được đưa lần lượt ra 2 động cơ làm cho 2 động cơ
chạy cùng lúc với vận tốc như nhau, điều đó sẽ gây ra chuyển động tịnh
tiến của rôbôt.
+Chuyển động quay:
Sau khi đi đươc quãng đường, chúng ta muốn động cơ chuyển hướng.
Để thực hiện được ta sẽ thôi không xuất tín hiệu ở 4 bít đầu, hay sau,
tuỳ theo hướng quay. Lúc đó một động cơ sẽ không còn tín hiệu vào và
sẽ không quay. Lúc này do sức nặng của bánh đủ làm cho động cơ là
một trục quay để bánh còn lại quay quanh chúng. Điều đó cũng dẫn đến
chuyển động quay của rôbôt.
Giải pháp trên rất hiệu quả nhưng chúng cũng có thể thực hiện chuyển
động quay của rôbôt bằng cách cho 2 động cơ chuyển động ngược chiều
nhau, dẫn đến chuyển động quay như ý muốn.
b.Hoạt động của động cơ về mặt định lượng
Tuỳ thuộc vào chương trình chạy cho trễ( delay) bao nhiêu thì tốc độ
động cơ sẽ thay đổi bấy nhiêu. Tốc độ v của động cơ tỷ nghịch với hàm
trễ .
Giả sử ở với một hàm delay nào đó tốc độ động cơ là v
o
(khi tính cả lực
ma sát), muốn chuyển thành tốc độ v
1

trong giới hạn cho phép thì ta chỉ
cần tăng hoặc giảm tỉ lệ nghịch hàm delay với tốc độ động cơ.
Theo tính toán thực tế thì rôbốt có thể chạy được với hàm delay có độ
trễ là AF.AF đến 5f.5f.
V.Thiết kế mạch chạy theo đường đi tuỳ ý
1.Đặt vấn đề
Khi có mạch điều khiển động cơ như trên, chúng em lại muốn phát triển
thêm về việc điều khiển rôbốt.Rôbốt chuyển động theo một đường đi
nhất định của người lập trình thì không thể linh hoat trong mọi tình
huống.Vì vậy, chúng em muốn điều khiển rôbôt theo đường đi vạch ra
trên mặt đất, cụ thể ở đây là dải đen sẽ tiếp tục khai thác ở ngay sau.
2. Thiết kế mạch
Trên nhưng kinh kiện đã có sẵn trong cuộc sống, bằng tìm tòi nhóm đã
quyết định dùng một linh kiện đơn giản đó chính la quang trở. Băng sự
phụ thuộc của điện trở vào quang nhóm đã thiết kế ra mạch để ngăt
ngoài vi điều khiển đồng thời chuyển những chương trình chạy phù hợp
của động cơ ứng với các ngắt đó hay nói cách khác là xử lý cho đúng
những vấn đề trên đường đi của rôbốt.
2.1 Sơ đồ mạch
2.2 Ghép nối và hoạt động của mạch trên đường đi
a.Ghép nối:
Các chân 2,3 của mạch trên được nối với các chân ngắt của động cơ,
cụ thể là chân 2 được nối với chân 12, chân 3 nối với chân 13 của 89C51.
b.Hoạt động của mạch
Cơ sở: khi chiếu một nguồn sáng vào quang trở các mức điện trở sẽ
thay đổi. Vì vây dựa vào các mức điện trở thay đổi ta co thể mắc 1 chân
quang trở với âm nguồn và một chân qua trở (r) như hình vẽ.
Khi cấp nguồn 5v cho mạch do quang trở nối tiếp với R nên ta có thể
tinh được áp chân lên quan trở băng công thức
V

qt
= 5.R
qt
/(Rt+ R)
Để cho mức điện áp trên giữa khi cảm nhận màu đen và màu trắng là
lớn và điện áp ở mức 0 phải nhỏ hơn một khá nhiều, đồng thời điện áp ở
mức 1 không quá bé ta sẽ tính được R
Trên thực tế chúng ta đo được mức điện áp trên quang trở ở mức màu
trắng là 4k và mức màu đen là 40k. Chúng ta tính toán và chon trở
R=70k.
Tín hiệu này được khuyếch đại bởi tranzitor C828 như hình vẽ. Lúc đó
ta có mạch đầu ra ở cực C của tranzitor đạt mức 0 và 1 như yêu cầu.
Một tín hiệu được qua cổng not đưa sang chân 12, còn lại thì đưa sang
chân 13 để thực hiện chương trình ngăt như lập trinh.
Như hướng dẫn chi tiết trong lập trình đã làm cho động cơ chuyển
động theo vạch đen một cách chuẩn xác.
VI. Lập trình vi điều khiển
1. Chương trình điều khiển chuyển động của động cơ theo 1 đường
đi vạch sẵn
;
;
; CHUONG TRINH DK DONG CO BUOC
; DT9 K48
;
;
org 0h
ljmp main
; INTERRUPT ADDRESS
org 0003h
ljmp int0

org 0013h
ljmp int1
; MAIN PROGRAM
org 30h
main:
MOV IE,#00000000B ; Enable int1 and int 0
mov p2,#00h
CLR A
MOV A,#0ffh
MOV p2,A
MOV A,#066h
MOV B,#066h
MOV 7fh,#00h
l:
MOV R4,#077h ; CHANGE THIS
gf0:
ACALL forward
ACALL delay
DJNZ R4,gf0
MOV R4,#027h ; CHANGE THIS
gl0:
ACALL tleft
ACALL delay
DJNZ R4,gl0
MOV R4,#027h ; CHANGE THIS
gr0:
ACALL tright
ACALL delay
DJNZ R4,gr0
sjmp l

; INT 01
int0:
MOV R2,A
MOV A,7fh
JZ stl
; TURN RIGHT
MOV A,R2
SETB p0.0
MOV p1,#00h
MOV R4,#027h ; CHANGE THIS
gf1:
ACALL forward
ACALL delay
DJNZ R4,gf1
MOV R1,A
ttr:
MOV A,R1
ACALL tright
ACALL delay
MOV R1,A
MOV A,p2
ANL A,#00000001b
JZ ttr
MOV A,R1
gr1:
ACALL tright
ACALL delay
DJNZ R4,gr1
CLR p0.0
MOV 7fh,#00h

MOV IE,#10000101B
RETI
; TURN LEFT
stl:
MOV A,R2
SETB p0.1
MOV p1,#00h
MOV R4,#027h ; CHANGE THIS
gf2:
ACALL forward
ACALL delay
DJNZ R4,gf2
MOV R1,A
ttl:
MOV A,R1
ACALL tleft
ACALL delay
MOV R1,A
MOV A,p2
ANL A,#00000001b
JZ ttl
MOV A,R1
gl1:
ACALL tleft
ACALL delay
DJNZ R4,gl1
CLR p0.1
MOV 7fh,#00h
MOV IE,#10000101B
RETI

; INT 01
int1:
MOV 7fh,#01h
MOV IE,#10000001B
RETI
; GO FORWARD
Forward:
RR A
MOV R1,A
ANL A,#00001111b
MOV R3,A
MOV A,B
RL A
MOV R2,A
ANL A,#11110000b
ORL A,R3
MOV p1,A
MOV A,R1
MOV B,R2
RET
; TURN LEFT
TLeft:
RR A
MOV R1,A
ANL A,#00001111b
MOV p1,A
MOV A,R1
RET
; TURN RIGHT
TRight:

RL A
MOV R1,A
ANL A,#00001111b
MOV p1,A
MOV A,R1
RET
; DELAY PROCEDURE
delay:
MOV R1,#07fh
dl1: MOV R2,#07fh
dl2: DJNZ R2,dl2
DJNZ R1,dl1
RET
End
2. Chương trình điều khiển động cơ theo một đường đi bất kì (dải đen)

;
;
; CHUONG TRINH DK DONG CO BUOC
; DT9 K48
;
;
org 0h
ljmp main
; INTERRUPT ADDRESS
org 0003h
ljmp int0
org 0013h
ljmp int1
; MAIN PROGRAM

org 30h
main:
MOV IE,#10000101B ; Enable int1 and int 0
mov p2,#00h
CLR A
MOV A,#0ffh
MOV p2,A
MOV A,#066h
MOV B,#066h
MOV 7fh,#00h
l:
ACALL Forward
ACALL delay
sjmp l
; INT 01
int0:
MOV R2,A
MOV A,7fh
JZ stl
; TURN RIGHT
MOV A,R2
SETB p0.0
MOV p1,#00h
MOV R4,#027h ; CHANGE THIS
gf1:
ACALL forward
ACALL delay
DJNZ R4,gf1
MOV R1,A
ttr:

MOV A,R1
ACALL tright
ACALL delay
MOV R1,A
MOV A,p2
ANL A,#00000001b
JZ ttr
MOV A,R1
gr1:
ACALL tright
ACALL delay
DJNZ R4,gr1
CLR p0.0
MOV 7fh,#00h
MOV IE,#10000101B
RETI
; TURN LEFT
stl:
MOV A,R2
SETB p0.1
MOV p1,#00h
MOV R4,#027h ; CHANGE THIS
gf2:
ACALL forward
ACALL delay
DJNZ R4,gf2
MOV R1,A
ttl:
MOV A,R1
ACALL tleft

ACALL delay
MOV R1,A
MOV A,p2
ANL A,#00000001b
JZ ttl
MOV A,R1
gl1:
ACALL tleft
ACALL delay
DJNZ R4,gl1
CLR p0.1
MOV 7fh,#00h
MOV IE,#10000101B
RETI
; INT 01
int1:
MOV 7fh,#01h
MOV IE,#10000001B
RETI
; GO FORWARD
Forward:
RR A
MOV R1,A
ANL A,#00001111b
MOV R3,A
MOV A,B
RL A
MOV R2,A
ANL A,#11110000b
ORL A,R3

MOV p1,A
MOV A,R1
MOV B,R2
RET
; TURN LEFT
TLeft:
RR A
MOV R1,A
ANL A,#00001111b
MOV p1,A
MOV A,R1
RET
; TURN RIGHT
TRight:
RL A
MOV R1,A
ANL A,#00001111b
MOV p1,A
MOV A,R1
RET
; DELAY PROCEDURE
delay:
MOV R1,#07fh
dl1: MOV R2,#07fh
dl2: DJNZ R2,dl2
DJNZ R1,dl1
RET
End
VI.Tài liệu tham khảo
Kĩ thuật vi xử lý, tác giả: Văn Thế Minh.

Cấu trúc lập trình và họ vi điều khiển 8051, tác giả: Nguyễn Tăng
Cường – Phan Quốc Thắng.
Datasheet và các linh kiện lấy từ trang AT89C51, và các linh kiện khác
lấy từ trang web www.alldatasheet.com.
Một lần nữa chúng em xin cảm ơn thầy chủ nhiệm bộ môn vi xử lý đã
tạo điều kiện thuận lợi cho chúng em hoàn thành được bài tập lớn với
những kiến thức lý thú. Nếu có điều kiện chúng em xin phát triển thêm
về con rôbôt với những tính năng đặc biệt hơn như: cảm ứng đồ vật khi
chuyển động hay những tác dụng khác để rôbốt có thể là một công cụ
hoàn thiện hơn của con người.

×