L p trình Robot t độ ng đơ n giả n vớ i PIC16F877A Biên so n: EM-BOT Robot Team
©http://em-bot.tk (Feb 2010) DEMO VERSION
Trang 1/14
L P TRÌNH ROBOT T ĐỘ NG ĐƠ N GI N
V I VI ĐIỀ U KHI N PIC16F877A
Cao Hoàng Long, EM-BOT Robot Team
chlong.mechatronics@gmail.com ; embot.robocon@gmail.com
Khoa Công ngh , Đạ i họ c Cầ n Thơ
Tóm t t
Tài li u ng dẫ n lậ p trình cho robot t độ ng đư ng theo v ch trắ ng vàđiề u khiể n
các cấ u (nâng hạ , gắ p nhả quà) m t cách bả n nhấ t.Vi điề u khiể n đư c sử dụ ng
trong tài li u là PIC16F877A c a Microchip.L p trình b ng ngôn ng C v i trình biên
d ch CCS.
1 TÓM T T VỀ THI T KẾ ROBOT TỰ ĐỘ NG
Robot t độ ng trong các cuộ c thi Robocon gồ m 3 thành ph n chính: Cơ khí,
M ch điệ n tử , Lậ p trình.
1.1 Cơ khí
M t robot đơ n giả n gồ m 2 độ ng truyề n độ ng cho 2 bánh xe bên trái bên
ph i giúp robot di chuyể n. Phía trư c thể là 1 ho c 2 bánh tự do (bánh t
l a, omni, mắ t trâu,…). Đ thự c hiệ n đư c các công việ c như nâng h trụ c,
g p nhả đẩ y quá, robot đư c trang bị thêm các độ ng khác đ truyề n độ ng
cho các cấ u này.
T t cả các b phậ n trên đư c bố trí trên m t khung bằ ng nhôm, sắ t,…
Ph n ng dẫ n chi tiế t v thiế t kế cơ khí s đư c trình bày trong m t tài
li u khác. Tài li u này ch tậ p trung vào ph n l p trình.
Hình 1: Mô hình robot dò dư ng đơ n giả n
1.2 M ch điệ n tử
Hình 2: Sơ đồ hoạ t độ ng củ a robot tự độ ng
L p trình Robot t độ ng đơ n giả n vớ i PIC16F877A Biên so n: EM-BOT Robot Team
©http://em-bot.tk (Feb 2010) DEMO VERSION
Trang 2/14
1.2.1 M ch ngõ vào (c m biế n, nút ấ n, công tắ c hành trình)
V i robot đơ n giả n, ngõ vào thư ng là m c logic lấ y t cả m biế n quang
(quang tr , quang diode), nút n hoặ c công tắ c hành trình. T đó mạ ch vi
điề u khiể n x lý các tín hi u này để xuấ t ngõ ra (thư ng độ ng DC) cho
phù h p.
C m biế n quang phả i đư c che chắ n cẩ n thậ n để hạ n chế nh hư ng từ các
ngu n ánh sáng bên ngoài.
C1
104
CTHT
SW2
BIT0
5V
R3
10K
Hình 3: M ch cả m biế n, nút n và công t c hành trình
1.2.2 M ch vi điề u khi n
M ch sử dụ ng vi điề u khiể n PIC16F877A c a Microchip. M ch nhậ n tín
hi u từ ngõ o, x và xu t ngõ ra qua m t mạ ch cách ly bằ ng opto ra
m ch công suấ t.
RA5
RA4
RC7
RC0
RA2
RA3
RA0
RA1
RB1
RB2
RB4
RB5
RB0
RB6
RB7
RB3
RE0
RE1
RC3
RC4
RE2
RC5
RC6
RD4
RD0
RD1
RD2
RD3
RD5
Y1
CRY STAL
PIC16F877A
RA0/AN0
2
RA1/AN1
3
RA2/AN2/VREF-/CVREF
4
RA3/AN3/VREF+
5
RA4/T0CKI/C1OUT
6
RA5/AN4/SS*/C2OUT
7
RB0/INT 33
RB1 34
RB2 35
RB3/PGM 36
RB4 37
RB5 38
RB6/PGC 39
RB7/PGD 40
RC0/T1OSO/T1CKI
15
RC1/T1OSI/CCP2
16
RC2/CCP1
17
RC3/SCK/SCL
18
RC4/SDI/SDA
23
RC5/SDO
24
RC6/TX/CK
25
RC7/RX/DT
26
RD0/PSP0 19
RD1/PSP1 20
RD2/PSP2 21
RD3/PSP3 22
RD4/PSP4 27
RD5/PSP5 28
RD6/PSP6 29
RD7/PSP7 30
OSC1/CLKIN
13
OSC2/CLKOUT
14
VDD 32
VDD 11
VSS
31 VSS
12
MCLR*/VPP
1
RE0/RD*/AN5 8
RE1/WR*/AN6 9
RE2/CS*/AN7 10
C5 30p
C6 30p 5V
RC1
RC2
RESET
MCU MODULE
RD6
RD7
Hình 4: M ch vi điề u khiể n
1.2.3 M ch công suấ t điề u khiể n độ ng cơ DC
M t số mạ ch thông dụ ng:
D14
1N5819
D13
1N5819
24V
C2
104
MOTOR2
CON2
1
2
M2
IRF540
R12
330 2W
LS2
RELAY
3
2
4
6
7
51
8
P-DIR2
P-PWM2
Q5
B562
Q4
D468
D12
1N5819
12V
D3
QUANG TRO
D2
LED
330
R2
33K
VCC
VCC
-
+
U1A
LM324
3
2
1
R4
100K
CAMBIEN
1
Vạ ch trắ ng: mứ c 1
Nề n: m c 0
L p trình Robot t độ ng đơ n giả n vớ i PIC16F877A Biên so n: EM-BOT Robot Team
©http://em-bot.tk (Feb 2010) DEMO VERSION
Trang 3/14
Hình 5: M ch công suấ t sử dụ ng 1 FET và 1 relay
U3
IR 2184
COM
3LO 4
VB 8
IN
1
VCC
5
SD
2VS 6
HO 7
U4
IR2184
COM
3LO 4
VB 8
IN
1
VCC
5
SD
2VS 6
HO 7
+
C5
4.7u
+
C1
4.7u
C6
100n
C2
100n
D1
DIODE
R4 4.7R
R6 4.7R R7
4.7R
R5
4.7R
D2
DIODE
+C3
4.7u C4
100n
12V
IN2
Q1
IRF540
Q3
IRF540
Q2
IRF540
Q4
IRF540
24V
C7
470n
+C8
470u
J1
MOTOR
1
2C14
104
IN1
Hình 6: M ch cầ u H điề u khiể n độ ng cơ v i Half Bridge Driver IR2184
Ph n hư ng dẫ n chi tiế t về m ch điệ n tử s đư c trình bày trong m t tài
liu khác. Tài li u này ch tậ p trung vào ph n lậ p trình.
L p trình Robot t độ ng đơ n giả n vớ i PIC16F877A Biên so n: EM-BOT Robot Team
©http://em-bot.tk (Feb 2010) DEMO VERSION
Trang 4/14
1.3 L p trình
Đây ph n chính củ a tài li u này. Ngôn ng lậ p trình đư c s dụ ng là C, v i
trình biên d ch CCS cho vi điề u khiể n PIC củ a Microchip.
Kiế n thứ c ban đ u: L p trình C căn bả n
Các tài li u tham kh o:
Tài li u CCS tiế ng Việ t: http://www.mediafire.com/?hd2ugmmzvwf
ng dẫ n lậ p trình PIC-DKS:http://www.mediafire.com/?e0ioxeideyx
Giáo trình PIC (ĐH Reading): http://www.mediafire.com/?iyewnoldyjk
L p trình C cho PIC 8bit: http://www.mediafire.com/?tnjlztmmzdm
CCS Manual (tra c u lệ nh): http://www.mediafire.com/?htljg1jg2mn
Đây là các tài liệ u cầ n đọ c qua trư c khi vào l p trình cho PIC để có thể biế t các
hàm nh n tín hiệ u ngõ vào, xu t tín hi u ngõ ra, ng t, timer, counter, PWM,
Các hàm quan tr ng sẽ đư c nhắ c lạ i ở phầ n 2.
2 L P TRÌNH CHO ROBOT T ĐỘ NG ĐƯ NG ĐƠ N GIẢ N
Chư ơ ng trình giúp robot ch y theo vạ ch trắ ng trên n n màu s m.
2.1 Ph n cứ ng
8 c m biế n quang dòđư ng
M ch công suấ t điề u khi n 2 độ ng cơ
M ch vi điề u khiể n:
oPORTD: n i vớ i tín hiệ u ra củ a 8 cả m biế n
oĐộ ng trái:
Chân C0: điề u khiể n chiề u (DIR_LEFT)
Chân C1: điề u khiể n cho phép chạ y (EN_LEFT)
oĐộ ng phả i:
Chân C3: điề u khiể n chiề u (DIR_RIGHT)
Chân C2: điề u khiể n cho phép chạ y (EN_RIGHT)
(Các ngõ vào và ngõ ra có thế nố i v i bấ t cứ PORT và chân nào c a vi điề u khiể n)
2.2 Nguyên t c điề u khiể n
2.2.1 Điề u khiể n đ ng cơ
Tr ng thái
DIRECTION
ENABLE
Thu n
1
1
Ngư c
0
1
D ng
x
0
ơ ng tự đố i vớ i các độ ng cơ điề u khiể n các cơ cấ u.
2.2.2 ng di chuy n củ a robot
Tr ng thái
Độ ng trái
Độ ng phả i
Th ng
Thu n
Thu n
Quay trái
Thu n
Ngư c (Dừ ng)
Quay ph i
Ngư c (Dừ ng)
Thu n
L p trình Robot t độ ng đơ n giả n vớ i PIC16F877A Biên so n: EM-BOT Robot Team
©http://em-bot.tk (Feb 2010) DEMO VERSION
Trang 5/14
2.2.3 X lý tín hi u cả m biế n (xem hình v )
M c đích củ a việ c dòđư ng là ng cho robot đi theo 1 vạ ch thẳ ng màu tr ng
trên m t nề n màu đậ m (đen, xanh,…)
C m biế n đư c đặ t giữ a robot.
oKhi c m biế n số 3,4 nằ m trên v ch trắ ng (mứ c 1): robot chạ y thẳ ng
oKhi robot l ch sang trái: quay ph i để điề u chỉ nh robot v đúng vạ ch
oKhi robot l ch sang phả i: quay trái để điề u chỉ nh robot v đúng vạ ch
7
6
5
4
3
2
1
0
Tr ng thái cả m
biế n
Gi a vạ ch
L ch trái mứ c 1
L ch trái mứ c 2
L ch trái mứ c 3
L ch trái mứ c 4
Ngoài v ch
L ch ph i mứ c 1
L ch ph i mứ c 2
L ch ph i mứ c 3
L ch ph i mứ c 4
Ngoài v ch
Hình 7: Các m c độ lệ ch ra khỏ i vạ ch trắ ng củ a robot
2.3 Chư ơ ng trình điề u khiể n
#include <16f877A.h>
#include <def_877A.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
/* ĐỊ NH NGHĨA CÁC CHÂN VÀ PORT */
#define DIR_LEFT RC0
#define EN_LEFT RC1
#define DIR_RIGHT RC3
#define EN_RIGHT RC2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0