Professional Documents
Culture Documents
Gia o Trinh Robocon
Gia o Trinh Robocon
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
chng ta rt nhiu nhng kin thc v k thut ,rn luyn c tnh kin tr
,bn b ,dm i mt vi gian kh .Hn na ,cuc thi li nhng k
nim p v mt thi sinh vin.
Gio trnh ny c bin son nhm gip cc bn c c mt ci nhn
tng quan v robot ,s nh hng c th v nhng kinh nghim qu bu khi
tham gia robocon
Gio trnh gm 8 bi :
Bi 1: Gii thiu v Robot Cc Modul ca robot.
Bi 2: Mch iu khin robot bng tay.
Bi 3: Mch cm bin d ng.
Bi 4: Mch cng sut iu khin ng c .
Bi 5: Mch vi iu khin.
Bi 6: Lp trnh v k thut d ng .
Bi 7: Lp trnh cc thao tc khc v chin thut.
Bi 8: Chng trnh hon thin cho mt robot t ng
Ton b cc bi hc u c thc hnh trn mch v robot tht.S dng
mch in v robot ca i BK-FIRE.
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
Hnh 1.4.C cu kh nn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
+Lp trnh
Chng trnh trong robot ging nh b no ca mt c th ngi ,robot ch
hot ng c khi c chng trnh ci t sn cho n.Cc chin tht thi
u ,ng chy ca robot l do ngi lp trnh qut inh .Hai ngn ng
c s dng nhiu trong robocon l C v ASM .Tuy nhin ,ngn ng C
c s dng nhiu nht v C c cu trc d debug li v c bit thun tin
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
khi lm nhng chng trnh ln (Cc chng trnh trong robocon rt phc
tp).
mt robot c th hot ng tt ,cn phi c s phi hp cht ch gia cc
phn c khi ,mch ,v lp trnh .Nu mt b phn khng tt ,th robot s
khng hot ng c.
1.2.Mt s kinh nghim khi tham gia robocon.
1.2.1.T chc i hnh.
Mt i robot bao gm 7 n 10 ngi ,v thng c chia thnh 3 nhm
-Nhm c kh :Thit k ,gia cng c kh (3-4 ngi).
-Nhm mch in t :Thit k ,lm mch cho robot (2-3 ngi).
-Nhm lp trnh: Lp trnh ,test robot (3 ngi)
Ngi i trng phi c trch nhim phn cng r rng cng vic cho
tng ngi ,cc thnh vin phi nghim tc chp hnh trnh hin tng ch
, li.
1.2.2.Mua sm thit b linh kin
i robot phi c nh hng r rng ,lm robot cn c nhng phng tin
g ,a im mua hng c th.
Cng c c kh :Khoan my ,ca my ,ca tay ,inh rt : a im :Ch
gii (Ph Hu)
Cng c in t :M hn ,ht thic ,ng h in t.v.v.v a im :Trn
Cao Vn ,17 Hn Thuyn ,70 Hng Trng ,269 i Cn.
1.2.3.Tm kim ti tr
lm robot ,bn phi tn rt nhiu tin (trung bnh t 20 n 30 triu v
c th nhiu hn na) .Vi iu kin sinh vin ,cc bn rt kh c th c
c s tin nh th ,Do ,bn cn phi tm kim cc nh ti tr t cc
doanh nghip.Tuy nhin xin c ti tr ,bn cn phi c phng n k
hoch c th ,hay nhng mi quan h khc.
-a ch mt s doanh nghip cc bn c th xin ti tr
a) Cng ty Elcom 18 Nguyn Ch Thanh
b) Cng ty c phn k thut SEEN (T Lim)
c) Cng ty Ameco (Tng 1 to nh sng Phng Lit)
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
10
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
11
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
12
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
13
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
14
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
3.1.1.S nguyn l
C
D
V
5
C
D
V
5
0
_
2
P
0
_
2
P
R44
R
R44
R
D7
LED
D7
LED
U11A
2
2
1
74LS14 3
1
R43
R
U11A
U11F
74LS14
2
1
74LS14 3
1
R43
R
C31
CAP NP
C31
CAP NP
GND
GND
U10A
U10A
1
4
11
+
3
11
+
LM324
BIEN_TRO_1
1
_
N
I
1
_
N
I
3.1.2.S mch in
15
LM324
BIEN_TRO_1
U11F
74LS14
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
16
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
5VVDK
5VVDK
22K
C1.1
1nF
U1A
3
THU1
R1.1
22K
R3.1
LED1
12
2 LM324
-
R2.1
104
100K
COMPA
1
1
C2.1
U1D
4
+
14
VDK1
13 LM324
COMPB 1
1
5VVDK
3.3.B tr sensor
Trn robot ,v nguyn tc ,s dng nhiu sensor th kh nng bm ng
cng tt .Tuy nhin ,trn thc t bn ch cn s dng 6 n 8 sensor l
17
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
18
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
20
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
}
// quay dung bo lap ma
void quayphai(unsigned char bytecao,unsigned char bytethap)
{
TMOD=0x55;// dem su kien
P1_2=1;
P1_3=0;
P1_0=0;
P1_1=1;
delay(500);
P1_0=1;
kt0=0;// bit nay set de chuong trinh ngat kiem tra lua chon
TH0=bytecao;
TL0=bytethap; // 230 XUNG
TR0=1;
while(1)
{
if (P1_3==1) break;
}
}
void ngat1(void) interrupt 3
// ngat bo dinh thoi 1
{
if (kt1==0) // dung de di lap ma
{
P1_0=1;
P1_1=1;
P1_2=1;
P1_3=1;
}
if (kt1==1) // bam xung dinh thoi kieu moi
{
TR1=0;
if (dem_phai==tocdo_phai)
{ P1_0=~P1_0;tocdo_phai=10-tocdo_phai;dem_phai=0;}
dem_phai++;
TR1=1;
22
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
}
}
// quay dung bo lap ma
void quaytrai(unsigned char bytecao,unsigned char bytethap)
{
TMOD=0x55; //khoi dong bo dinh thoi dem su kien
kt1=0;
P1_0=1;
P1_1=0;
P1_2=0;
P1_3=1;
delay(500);
P1_2=1;
TH1=bytecao;
TL1=bytethap;
TR1=1;
while(1)
{
if (P1_1==1) break;
}
}
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
{}
}
// bam xung bang bo dinh thoi
void quayphaingatu()
{
motor(backward);
delay(3500);
motor(stop);
delay(10000);
motor(left_go);
delay(4500);
bamxung_quay(5,motor_left);
motor(stop);
}
void quaytraingatu()
{
motor(backward);
delay(3500);
motor(stop);
delay(10000);
motor(right_go);
delay(4500);
bamxung_quay(5,motor_right);
motor(stop);
}
4.1. ng c.
ng c c s dng trong robocon l loi ng c 1 chiu (DC motor).
Hnh 4.1.ng c 1 chiu
24
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
25
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
26
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
R20
DC1_DIR
R
R19
DC2_DIR
http://www. dks.com.vn
24VDC
Q6
2N1470
ROLE1_ON
LS1
J16
8
24VDC
1
2
7
4
24VDC
TRAN1_ON3
Q5
2N1470
ROLE2_ON
R
TRAN1_ON
CON2
5
ROLE1_ON1
GND
2
20-2121-DPDT
LS2
DC1_EN
Q1
IRF540N/TO
R30
8
24VDC
GND
7
4
TRAN2_ON 3
R
TRAN2_ON
DC2_EN
J17
1
2
CON2
5
ROLE2_ON 1
GND
2
Q2
IRF540N/TO
R29
20-2121-DPDT
GND
R
4.3.Mch cu H iu khin ng c
4.3.1.S nguyn l
27
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
+12V
5V
5V
5V
4
1
U1A
3
12
4
1
R01
1K
Opto1.1
PS2501-1
U1D
RCH1.5
10K
RCH1.6
10K
QCH1.1
11
13
74LS00
7
MTP60P06
QCH1.3
MTP60P06
74LS00
7
NGUON5V
MCH1+
4
3
2
1
MCH15V
CON4
MCH1-
MCH1+
5V
2 1
OUT1
5V
5V
4
1
R02
1K
Opto1.2
PS2501-1
U1B
6
4
1
U1C
-12V
QCH1.4
MTP60N06
8
74LS00
7
+12V
NGUON12V
MTP60N06
10
1
2
74LS00
7
QCH1.2
RCH1.9
10K
CON2
RCH1.8
10K
-12V
4.3.2.S mch in
4.3.3.Nguyn l hot ng
Mch cu H iu khin ng c s dng 4 MOSFET IRF540 khuch i
cng sut v ng m.
Hnh 4.4.IRF 540
28
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
P1.1
0
1
1
Trng thi
ng c quay xui
ng c quay ngc
Dng ng c
29
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
1
1
Dng ng c
4.3.4.M ngun iu khin ng c
#include <at89x52.h>
#include <robot.h>
unsigned char dutycycle=0 ;
/*
P2_0 P2_1 : dieu khien dong co nang ha
P2_2 P2_3 : dieu khien dong co lay bong
*/
void motor( unsigned char status)
{
switch (status)
{
case nang:
{
P2_0=1;
P2_1=0;
break;
}
case ha:
{
P2_0=0;
P2_1=1;
break;
}
case dung:
{
P2_0=1;
P2_1=1;
break;
}
}
}
30
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
}
void nhabong(unsigned char timedelay)
{
motorkep(nha);
delay(timedelay);
motorkep(phanh);
}
void main()
{
// trang thai gap bong
motorkep(kep);
delay(255);
motorkep(phanh);
// co cau nang bong hoat dong
nangnhanhdan(100,100);
33
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
nhabong(100);
while(1)
{
motor(dung);
motorkep(phanh);
}
// P0=0xFB;
}
/* bo qua thu 1 */
4.3.5.K thut iu ch rng xung iu khin tc ng c (PWM)
iu khin tc ng c l mt k thut ht sc quan trng trong vic lp
trnh robot .K thut ny gip bn c th iu khin robot ca mnh chy
nhanh chm tu ,gip cho hot ng ca robot lun linh hot ,thch ng
vi mi tnh hung xy ra trn sn.
a) Cch to xung c rng thay i bng VK.
Cch 1: Nh cc bn iu khin nhp nhy 1 con led, l to ra 1 xung
1 chn ca vi iu khin, nhng xung c rng c nh, tn s ln,
cch bn c th iu chnh li hm delay tn s ca n ng 1 Khz. Tuy
nhin v l dng hm delay nn trong thi gian c xung ln 1(5V) v thi
gian khng c xung(0V) vi iu khin khng lm g c, hn na to xung
bng vic delay m cc bn c nhu cu cn 2 b pht xung 2 knh, c cng
tn s m khc rng xung th tr nn rt kh khn. Cho nn chng ta
dng b nh thi Timer ca vi iu khin trong trng hp ny rt tin.
+ Cch 2: Dng ngt Timer ca b vi iu khin.
Trc ht nhc li v ngt ca vi iu khin:
+ Ngt l g ? tr li cu hi ny ti xin trch an v ngt trong bi
2 v d cho ngt timer:
Timer
ISR
Main
**
ISR
Main
**
ISR
Main
**
Main
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh
c ngt th c khi no iu kin ngt c m bo th con tr s nhy sang
hm ngt thc hin xong hm ngt li quay v ng ch c thc hin tip
chng trnh chnh. Ti c 1 v d nh sau: Bn ang n cm , c ting in
thoi , bn t bt cm ra nghe in thoi , nghe xong li quay v bng bt
cm ln n tip. Th qu trnh n cm ca bn l chng trnh chnh,c in
thoi gi n l iu kin ngt, bn ra nghe in thoi l thc hin chng
trnh ngt(Interrupt Service Rountine),quay v n cm tip l tip tc thc
hin chng trnh chnh.
Ngt i vi ngi mi hc vi iu khin l rt kh hiu, v a s cc ti
liu u khng gii thch ngt lm g. C nhiu loi ngt khc nhau
nhng tt c u c chung 1 c im, ngt dng cho mc ch a nhim.
a tc l nhiu, nhim tc l nhim v. Thc hin nhiu nhim v .
Cc bn nhn vo tin trnh ca hm main vi chng trnh c ngt :
Chng trnh chnh ang chy, ngt xy ra, thc hin hm ngt ri quay li
chng trnh chnh. Chng trnh trong vi iu khin khc vi v d n cm
nghe in thoi ca ti ch, thi gian thc hin hm chnh l rt ln,thi
gian thc hin hm ngt l rt nh, cho nn thi gian thc hin hm ngt
khng nh hng g n thi gian thc hin hm chnh Nh vy trong hm
ngt cc bn lm 1 vic, trong hm chnh ca bn lm 1 vic
nh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 qung thi gian
tng i ngn c mS, ch thc ra ti 1 thi im vi iu khin ch thc thi
1 lnh.
V d : Bn th ngh xem lm th no va iu ch xung PWM iu
chnh tc ng c , va c cc cm bin u vo m tc ng c ph
thuc u vo cm bin.
Vy ngt l 1 iu kin no xy ra ngu nhin m vi iu khin c
th bit do phn cng ca vi iu khin, ri ta cn c vo lp trnh.
* V d: Vi ngt b nh thi timer, hay b m counter l khi trn
b m th phn cng ca vi iu khin s bo c ngt xy ra v nhy n
chng trnh phc v ngt( ISR_ Interrupt Sevice Rountine) 1 cch t ng.
Vi ngt ngoi, chn P3.2 chng hn, nu ta khai bo trc chn s
dng chn P3.2 s dng cho ngt ngoi ch khng phi s dng cho mc
35
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
36
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
0
0
0
Ch nh thi 13 bit
0
1
1
Ch nh thi 16 bit
37
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
Ch t ng np li
8 bit
1
1
3
Ch nh thi chia
x
3
GATE
Bit iu khin cng cho b nh thi 0
2
C/T
Bit chn chc nng m / nh thi cho
b nh thi 0
1
M1
Bit chn ch th nht cho b nh thi
0
0
M0
Bit chn ch th 2 cho b nh thi 0
V d ti cu hnh cho b nh thi 1 ch timer,vi b m 8 bit t ng
np li(auto reload) dng lnh sau: TMOD=0x20.
Cc bn ng lo v vic phi nh bng thanh ghi ny, cc bn khng phi
nh ni trng ra nh vy, chuyn sang phn lp trnh cc bn s c hng
dn lm th no khng phi nh, nhng ch lp trnh vi C mi lm c
cn lp trnh Asem th bt buc phi nh .
3)Bt u chng trnh c ngt:
-Trc khi bt u cho chy chng trnh ta phi cho php ngt ton
cc c xy ra bng cch gn EA(Enable All interrupt) bng 1, th ngt
mi xy ra.
-Thng th ngay vo u chng trnh(hm main) trc vng
while(1) chng ta t cng vic khi to, cu hnh v cho php kim tra
ngt. V d vi b nh thi timer ta gn cc gi tr ph hp cho thanh ghi
TCON( Timer CONTROl).
TCON
iu khin b inh thi
TCON.7
TF1
C trn ca b nh thi 1. C ny c set
bi phn cng khi c trn, c xo bi
phn mm, hoc bi phn cng khi b vi x
l tr n trnh phc v ngt
TCON.6
TR1
Bit iu khin hot ng ca b nh thi 1.
Bit ny c set hoc xo bi phn mm
iu khin b nh thi hot ng hay
ngng
TCON.5
TF0
C trn ca b nh thi 0
TCON.4
TR0
Bit iu khin hot ng ca b nh thi 0
TCON.3
IE1
C ngt bn ngoi 1 (kch khi cnh). C
ny c set bi phn cng khi c cnh m
(cung) xut hin trn chn INT1, c xo
38
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
0V
T : Chu k
1000 miro giy.
Khong thi gian xung ko di 5V l T1. Xung 10% tc l T1/ T=
10%=1/10. Xung 20% T2/T=2/10PWM(Thay i rng xung)
By gi ti mi xin ni v phn 2.
4.3.5.Nguyn l ca PWM
- Xung PWM: a ra m transitor, xung vi rng ln hn transitor s
m lu hn ng c s quay nhanh hn,d nhin khng tuyn tnh. Khng c
xung ng c s khng quay, c xung 100% ng c s quay max.Tuy nhin
xung phi ln hn 1 mc no th mi khi ng cho ng c. Cc c
tnh ny cc bn tham kho trong gio trnh v my in, kh c in, nu
cc bn cn thng s chnh xc.
c th thay i 10 cp tc vi chu k 1000uS, ta khi to cho ngt
timer: 100 uS ngt 1 ln. Trong hm ngt kim tra xem ta cn cp xung bao
nhiu % th ta s gn gi tr cho n. C th nh sau:
* Hm khi to ngt.
Dng ngt timer 0, 100 uS ngt 1 ln, dng ch 2 8 bit t ng np
li ca timer (v mnh ch cn m n 100).TL0 np bng 156. i vi ch
2 khi trn b m TL0 s quay vng gi tr bng 0, nhng sau n li
c np gi tr lu trong TH0(gi tr np li), do ta ch cn gn gi tr
choTL0 v TH0 trong hm khi to, cn cc ch khc 16 bit, 2 timer
counter 8 bit, khi trn b m TL0 khng c np li m ta phi t gn li
gi tr cho n trong hm ngt.
void khoitaotimer0(void)// Ham khoi tao
{
EA=0;// Cam ngat toan cuc
TMOD=0x02;// Timer 0 che do 2 8 bit auto reload
TH0=0x9B;// Gia tri nap lai 155 doi ra so hex
TL0=0x9B;// Gia tri khoi tao 155 doi ra so hex
ET0=1;// Cho phep ngat timer 0
EA=1;// Cho phep ngat toan cuc
TR0=1;// Chay timer 0 bat dau dem so chu ki may
}
40
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
41
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
42
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
43
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
44
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
5.2.S nguyn l
Trong gio trnh ny ,chng ti ch yu tp trung vo mch vi iu khin
dng 89s52.Bi v vi iu khin 89s52 c s dng kh thng dng trong
cc k robocon.S nguyn l ca vi iu khin c ni nhiu trong gio
trnh vi iu khin c bn (8051) do MTC son tho.Cc bn c th tham
kho k hn trong tp gio trnh ny.
5V
MASTER
Cta1
A1
A2
A3
B1
B2
B3
B4
B5
30p
1
2
3
4
5
6
7
8
Y1
RST
Cta230p 11.509Mhz
5V
PO0
PO1
PO2
PO3
PO4
PO5
PO6
PO7
19
18
9
31
39
38
37
36
35
34
33
32
CL1
104
0
4
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
C
C
V
XTAL1
XTAL2
RST
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
EA/VPP
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
PSEN
P0.4/AD4
P0.5/AD5
ALE/PROG
P0.6/AD6
D
P0.7/AD7 N
G
P89V51RD2
0
2
46
ISP_program
21
22
23
24
25
26
27
28
Vidieukhien1
Vidieukhien2
Vidieukhien3
Vidieukhien4
Vidieukhien5
Vidieukhien6
10
11
12
13
14
15
16
17
P30(RXD)
P31(TXD)
/INT0
/INT1
T0
T1
A4
A5
29
P30(RXD)
P31(TXD)
5V
1
3
5
7
9
2
4
6
8
10
CON10AP
int
SELECT_PRO
/INT0
/INT1
T0
T1
PO4
PO5
PO6
5V
1
2
3
4
5
6
7
8
9
10
30
CON10
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
5V
SW1
Cs1
100uF
RST
Rs1
10k
DPOWER1 1A
POWER_IN
2
1
CON2
LM7805/TO
5V
SWITCH
J2
U3
R_CS1
VIN
VOUT
3
5V_A
22R2W
POWER_IN
C_L4
C_N1
C_L1
1000uF
104
104
D
N
G
2
LED
C_N2
C_L2
C_L3
10uF
104
104
SW DPST
DPOWER2 10A
R_5V_A
1K
24V
24V
POWER_IN
C_L5
104
24V
LED
R_24V
10
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
Trong robocon ,lp trnh l khu cui cng trong 3 b phn cu thnh robot.
Lp trnh s ng vai tr quyt nh cui cng nh gi robot ca bn s
hot ng tt hay khng.Robot s khng th chy tt nu nh chng trnh
x l khng hon ho.
6.1.Cc ngn ng lp trnh s dng trong robocon.
Trong robocon c 2 ngn ng lp trnh c s dng nhiu nht l C v
ASM .2 ngn ng ny c nhng im mnh v im yu ring.
Ngn ng ASM c u im l gn nh ,gip ngi lp trnh hiu su v
cu trc phn cng ca vi iu khin .Cc chng trnh vit bng ASM
thng chy nhanh v tc x l cao.ASM c BK-FIRE s dng
trong cuc thi 2005 v hot ng kh hiu qa.Tuy nhin ,ASM c nhc
im l kh hc v tp lnh ngho nn ,khng thun tin lp trnh cc
chng trnh ln.
Ngn ng lp trnh C c th mnh l d hc ,tp lnh phong ph ,v c
im l ngn ng lp trnh c cu trc nn rt thun li xy dng cc
chng trnh ln.Nhc im ca C l khng gip ngi c hiu su v
cu trc phn cng.
Nhn chung , trong cc cuc thi robocon ,ngn ng C c s dng nhiu
nht do nhng u im ca n.Gio trnh ny cng hng dn bn lp trnh
bng ngn ng C.
6.2.M ngun ca robocon
Xin gii thiu mt on m ngun ca i CIRTECH-45 ca BKHN nm
2004
/*
Night Lamp Saver V5.0
89C2051(ext.oscillator 680kHz) + MAC97A6 + no battery backup
demonstration of using Micro-C and ATMEL89C2051 to build a device
used for controlling night lamp that turn on and off night lamp
with preset time on/off.
After reset or power failure occured, high blink rate of led will show,
user should press P3.0 to reset time to 18:00, low blink rate will show
indicating normal operation.
48
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
The Saver V4.0 using Xtal 11.0592MHz produces EMI that interfere TV
reception
This version the Xtal oscillator has changed to RC oscillator 680kHz.
cputick incremental was derived from 50Hz or 20ms main frequency.
Copyright (c) 1999 W.SIRICHOTE
*/
#include c:\mc51\8051io.h
#include c:\mc51\8051reg.h
/*-------- turn lamp on/off after reset time to 18:00 ---------*/
#define onHour1 18 /* 18:00 turn lamp on */
#define onMin1 00
#define offHour1 18 /* 18:01 turn off */
#define offMin1 01
/* every day turn on at 19:00 and and off at 22:00 */
#define onHour2 19
#define onMin2 00
#define offHour2 22
#define offMin2 00
/* set clock to 18:00 when press P3.0 */
#define setHour 18
#define setMin 00
/*-------------------------------------------------------------*/
extern register char cputick;
unsigned
register
sec25,sec50,sec,sec5,min,hour,flag1,temp,led,blink_rate;
/* above must be defined as register for tiny model */
/* variables description
cputick increments by one every 20ms
sec25 half second counter
49
char
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
mask byte
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
cputick = 0;
http://www. dks.com.vn
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
}
}
comparetime()
{
if ((flag1 & 0x10) != 0) /* enabled only after P3.2 has been pressed */
{
compareTimeOn_Off();
}
}
compareTimeOn_Off()
{
if ((flag1 & 0x01)!=0)
{
testOnOff();
if(hour == onHour2 && min == onMin2)
asm" CLR LAMP";
if(hour == offHour2 && min == offMin2)
asm" SETB LAMP";
}
}
testOnOff()
{
if ((flag1 & 0x20) == 0)
{
if(hour == onHour1 && min == onMin1)
asm" CLR LAMP";
if(hour == offHour1 && min == offMin1)
{
asm" SETB LAMP";
flag1 |= 0x20; /* disable further test on off */
}
}
}
cpubeat()
52
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
{
beat5sec();
livecpu();
}
beat5sec() /* clear P3.7 every blink rate */
{
if ((flag1 & 0x08)!=0)
{
flag1 &= ~0x08; /* clear bit 3 of flag1 */
sec5++;
if (sec5 > blink_rate)
{sec5 = 0;
flag1 |= 0x40; /* set bit 6 of flag1 to signal livecpu task */
asm " clr P3.7"; /* make led on */
led = 2;
/* load time on duration times cputick */
}
}
}
livecpu()
{
if ((flag1 & 0x40) != 0)
{
led--;
if (led == 0)
{
asm " setb P3.7";
flag1 &= ~0x40;
}
}
}
settime()
{
if ((P3 & 0x01) == 0) /* reset time to 18:00 if P3.1 low */
53
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
{
hour = setHour;
min = setMin;
sec = 0;
sec50 = 0;
flag1 |= 0x10; /* enable compare time on/off */
flag1 &= ~0x20; /* reenable testOnOff after pressing set clock to 18:00
*/
blink_rate = 10;
}
}
/*
waithigh()
{
asm" jnb P3.2,*";
pause(2);
asm" jnb P3.2,*";
pause(2);
}
pause(j)
int j;
{
int i;
for (i=0;i<j;i++)
;
}
*/
M ngun ASM
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
;=============================================
=============================================
=================================
55
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
MAIN:
;MOV P0,QPHAI_C
JB STARTB,MAIN
LAP_CHINH:
MOV A,P1
ANL A,#00001111B
MOV P0,A
LJMP LAP_CHINH
EXIT:
NODO: SJMP NODO
;=============================================
=============================================
=================================
DEMNGATU:
INC R0
;LCALL STOP_ALL
; LCALL TRE_2S
CJNE R0,#2,TIEP1
LCALL DUNG_NGATU
LCALL TRE_QUAY
LCALL QUAYPHAI
TIEP1:
CJNE R0,#10,TIEP2
LCALL DUNG_NGATU
LCALL TRE_QUAY
LCALL QUAYphai
TIEP2:
CJNE R0,#15,DITIEP
LCALL DUNG_NGATU
LCALL TRE_QUAY
LCALL QUAYTRAI
HERE20: SJMP HERE20
DITIEP:
TREQUAVACH: LCALL TRE0 ;CHO THOI GIAN TRE DI DI QUA
VACH NGANG
TROVE:
RET ;TRO VE CHUONG TRINH
;==================================
56
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
LAYQUA:
LCALL STOP_ALL
;KEPQUA
SETB MKEP_EN
LCALL TRE_quay
CLR MKEP_EN
;NANG QUA
SETB MNANG_EN
DOINANG: JB CT_NANG,DOINANG
CLR MNANG_EN
;NHA QUA
SETB MKEP_DIR
SETB MKEP_EN
LCALL TRE_quay
CLR MKEP_EN
CLR MKEP_DIR
;HA TAY
; SETB MNANG_DIR
; SETB MNANG_EN
; DOIHA: JB CT_HATAY,DOIHA
; CLR MNANG_EN
; CLR MNANG_DIR
RET
;================================
DUNG_NGATU:
LAPNT:
JB P1.4,THOATNT
MOV A,P1
ANL A,#00001111B
MOV P0,A
LJMP LAPNT
THOATNT:
LCALL STOP_ALL
LCALL TRE_QUAY
MOV P0,#00111111B
DOINT: JNB P1.4, DOINT
LCALL STOP_ALL
MOV P0,#01011111B ;TINH CHINH
LCALL STOP_ALL
57
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
RET
;==================================
QUAYTRAI:
MOV P0,#00101111B ;QUAYTRAI
LCALL TRE_QUAY
LAPQT:
MOV A,p1
ORL A,#11111001B
CJNE A,#11111111B,LAPQT
LCALL STOP_ALL
LCALL TRE_100
MOV P0,#00011111B ;QUAYPHAI
LAPQT2:
MOV A,p1
ORL A,#11111001B
CJNE A,#11111111B,LAPQT2
LCALL STOP_ALL
LCALL TRE_QUAY
LCALL TRE_QUAY
RET
;=============================================
============
QUAYPHAI:
MOV P0,#00011111B ;QUAYTRAI
LCALL TRE_QUAY
LAPQP:
MOV A,p1
ORL A,#11111001B
CJNE A,#11111111B,LAPQP
LCALL STOP_ALL
LCALL TRE_100
MOV P0,#00101111B ;QUAYPHAI
LAPQP2:
MOV A,p1
ORL A,#11111001B
CJNE A,#11111111B,LAPQP2
LCALL STOP_ALL
LCALL TRE_QUAY
LCALL TRE_QUAY
58
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
RET
;=============================================
====
NGATT1:
RETI
STOP_ALL:
MOV P0,#0FFH
RET
;====================CAC
THU
TRE================
TRE0: ;THU TUC DE TAO TRE QUA VACH NGANG NGA TU
mov r7,#50
again0: mov TH0,#HIGH(-10000)
mov TL0,#LOW(-10000)
setb tr0
wait0:
MOV A,P1
ANL A,#00001111B
MOV P0,A
jnb tf0,wait0
clr tr0
clr tf0
djnz r7,again0
RET
TRE_500: ; 1s
mov r7,#50
again_1S: mov TH0,#HIGH(-10000)
mov TL0,#LOW(-10000)
setb tr0
wait_1S: jnb tf0,wait_1S
clr tr0
clr tf0
djnz r7,again_1S
RET
TRE_QUAY: ;
MOV R7,#100
again: mov TH0,#HIGH(-10000)
mov TL0,#LOW(-10000)
59
TUC
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
setb tr0
wait: jnb tf0,wait
clr tr0
clr tf0
djnz r7,again
RET
TRE_100: ;
MOV R7,#10
again: mov TH0,#HIGH(-10000)
mov TL0,#LOW(-10000)
setb tr0
wait: jnb tf0,wait
clr tr0
clr tf0
djnz r7,again
RET
TRE_2S: ; 1s
mov r7,#200
again_2S: mov TH0,#HIGH(-10000)
mov TL0,#LOW(-10000)
setb tr0
wait_2S: jnb tf0,wait_2S
clr tr0
clr tf0
djnz r7,again_2S
RET
END
6.3.K thut d ng.
Bi hc ny s nu ln cc phng php lp trnh d ng trong robocon.
Vic lp trnh d ng trong robot thc cht l vic x l tn hiu t sensor
v a ra cc lnh iu khin ng c m bo cho robot c th bm theo
vch trng trn sn.Khi lp trnh ,cc bn phi xc nh uc tt c cc
trng hp c th xy ra ca sensor ,t a ra cc tn hiu iu khin
ng c hp l.
Quay v bi sensor ,ta c s b tr sensor
|
|
60
|
| Vch trng
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
|
O |O
2 3
O
1
|
O| O
4 5
O (sensor)
6
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
// bat nga tu
if ((out_left==vach)&&(out_right==vach))
{
while ((LEFT==vach)&&(RIGHT==vach))
{
d++;
if (d==100)
{
dem++;
d=0;
if (dem<songatu)
{ h_thi(dem); motor(forward); delay(1200);}
break;//thoat khoi while
}//if
}// while
if (dem==songatu) {h_thi(dem);motor(stop);dem=0;break;}
}
// chinh lech nhieu
}//end of while (1)
}//end of golong_ngatmo
62
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
7.1.S nguyn l
a)Giao tip vi led 7 thanh
R_24V
10
5V
5V
MASTER
A1
A2
A3
B1
B2
B3
B4
B5
SW1
Cs1
100uF
RST
Cta1
30p
1
2
3
4
5
6
7
8
Rs1
10k
RST
19
18
9
5V
31
Y1
Cta230p 11.509Mhz
Rsip1
PO0
PO1
PO2
PO3
PO4
PO5
PO6
PO7
5V
1
2
3
4
5
6
7
8
9
PO0
PO1
PO2
PO3
PO4
PO5
PO6
PO7
7
O
P
Start
8
c
c
V
e
.
.
c.
.
g .
.
b
P .
D
a
d.
0
1
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
U17
2
1
9
7
6
4
5
R4
R5
R6
R7
R
R8
R
R9
R
10
9
15
13
12
11
14
8
D
E
F
A
B
C
G
D
N
G
U16
D0
D1
D2
D3
7
1
2
6
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
C
C
V
XTAL1
XTAL2
RST
P3.0/RXD
P3.1/TXD
P3.2/INTO
P3.3/INT1
P3.4/TO
P3.5/T1
P3.6/WR
P3.7/RD
EA/VPP
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
PSEN
P0.4/AD4
P0.5/AD5
ALE/PROG
P0.6/AD6
D
P0.7/AD7 N
G
P89V51RD2
10k 5V
39
38
37
36
35
34
33
32
CL1
104
0
4
PO0
PO1
PO2
PO3
5V
Rp1
470
SN7447
1t
a
h
P
_
d
e
L
4 5 3 6
1
21
22
23
24
25
26
27
28
Vidieukhien1
Vidieukhien2
Vidieukhien3
Vidieukhien4
Vidieukhien5
Vidieukhien6
10
11
12
13
14
15
16
17
P30(RXD)
P31(TXD)
/INT0
/INT1
T0
T1
A4
A5
1
3
5
7
9
5V
2
4
6
8
10
CON10AP
int
SELECT_PRO
/INT0
/INT1
T0
T1
PO4
PO5
PO6
29
5V
1
2
3
4
5
6
7
8
9
10
30
CON10
0
2
5V
O
B
C
R/ I
I B T C
BR L V
ISP_program
P30(RXD)
P31(TXD)
2t
a
h
P
_
d
e
L
5V
5V
5V
5V
Rp2
470
Rp3
470
Rp4
470
Rp5
470
3t
a
h
P
_
d
e
L
4t
a
h
P
_
d
e
L
5t
a
h
P
_
d
e
L
6t
a
h
P
_
d
e
L
Connecter_sensor
Rp6
470
Led_Phat1
Led_Phat2
Led_Phat3
Led_Phat4
Led_Phat5
1
3
5
7
9
13
Led_Phat6 11
15
2
4
6
8
10
12
14
16
Led_Thu1
Led_Thu2
Led_Thu3
Led_Thu4
Led_Thu5
Led_Thu6
CON16AP
5V
63
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
init();
P2_6=0;
P2_7=0;
h_thi(tam);
selection();
switch (select)
{
case 0:
{
hanhtrinh0();
}
break;
case 1:{
hanhtrinh1();
}
break;
case 2:{
hanhtrinh2();
}
break;
case 3:{
hanhtrinh3();
}
break;
case 4:{
hanhtrinh4();
}
break;
case 5:{
hanhtrinh5();
}
break;
case 6:{
hanhtrinh6();
}
break;
case 7:{
64
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
hanhtrinh7();
}
break;
case 8: {
hanhtrinh8();
}
break;
case 9:{
hanhtrinh9();
}
break;
}//end of swith
delay(50000);
h_thi(tam);
}
/* cac ham chuc nang */
void selection()
{
P2_6=0;
P2_7=0;
while (P2_7==0)
{
while (P2_6==1)
{
select++;
if (select>9) select=0;
h_thi(select);
delay(12000);
}
}
}//end
void h_thi(unsigned char so)
{
if (so==0) {P0_3=0;P0_2=0;P0_1=0;P0_0=0;}
else if (so==1) {P0_3=0;P0_2=0;P0_1=0;P0_0=1;}
else if (so==2) {P0_3=0;P0_2=0;P0_1=1;P0_0=0;}
else if (so==3) {P0_3=0;P0_2=0;P0_1=1;P0_0=1;}
65
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
g
n
o
c
_
d
el
ur
_t
d
el
R_SIP10
SW2_cong
Jum_cong
1
2
P0.5
SW3_tru
P0.6
1
2
Jum_tru
EA
P0.7
P0.6
P0.5
P0.4
P0.3
P0.2
P0.1
P0.0
10
9
8
7
6
5
4
3
2
VCC
1
RESISTOR SIP 10
VCC
U1
r
et
n
e
_
d
el
Enter
e
ci
o
h
c
_
d
el
P0.7
P3.3
Choice
D1
LCD2x16
VCC
15
16
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
P0.7
39
38
37
36
35
34
33
32
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
1
2
3
4
5
6
7
8
P1.0/T2
P1.1/T2-EX
P1.2
P1.3
P1.4/SS
P1.5/MOSI
P1.6/MISO
P1.7/SCK
AT89S8252
A
K
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
EA
RST
D d E
0 1 2 3 4 5 6 7
N d EWS
GV V RR E DDDDDDDD
31
9
40
VCC
EA/VPP
RST
C_nhieu
104
1 2 3 5 4 6 7 8 9 0 1 2 3 4
1 1 1 1 1
VCC 3 4 0 1 2 3 4 5 6 7
. . . . . . . . . .
0 0 2 2 2 2 2 2 2 2
P P P P P P P P P P
VCC
T
E
S
E
R
_
C47u
m
o
0
0
1
66
SW_reset
R_RESET
0
2
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
ALE/PROG
PSEN
XTAL2
XTAL1
D
N
G
VCC
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
21
22
23
24
25
26
27
28
P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
10
11
12
13
14
15
16
17
RX
TX
IR
P3.3
D0
D1
D2
D3
30
29
C1_ZTA
18
19
33
ZTA
12M
C2_ZTA
33
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
S trn thay th led 7 thanh bng LCD .Nhn chung dung LCD hin
th chin thut thi u chuyn nghip hn (vi hin th c c ch ) tuy
nhin , dung LCD kh tn km v khng tht s hiu qu .V th ,tt nht l
cc bn nn s dng led 7 thanh hin th chin thut thi u.
/******************************/
// LCD
void lenh ()
{
RS=0;
EN=1;
delay (50); EN=0;
delay (100);
}
void ghi ()
{
RS=1;
}
EN=1;
delay (100);
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
{
P2=dk;
lenh ();
}
void init_LCD ()
{
delay(400);
LCDcontrol(0x38); //LCD 2 dong _ 5x7
LCDcontrol(0x0C);
//bat hien thi, tat con tro
LCDcontrol(0x01);
//xoa man hinh
}
/*****************************/
void keyboard()
{
unsigned char key=0;
unsigned char test=0;
LCDcontrol(0x01);
choice=enter=1;
LCDputs("Robot Ready",1);
delay(100000);
LCDcontrol(0x01);
LCDputs("1:Golong 2:Around ",1);
LCDputs("3:Turn left 4:Turn right",2);
delay(100000);
LCDcontrol(0x01);
while(1)
{
LCDputs("1: 2: 3: 4:,2);
while(choice==0)
{
delay(10000);
key++;
LCDcontrol(0x01);
if (key==1)LCDputs("1 ",1);
if (key==2)LCDputs("2 ",1);
if (key==3)LCDputs("3 ",1);
if (key==4)LCDputs("4 ",1);
LCDputs("1:C 2:S 3:D 4:E",2);
if (key>4) { LCDputs("0 ",1);key=0;}
68
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
}
if (key==1)while(enter==0)
if (key==2)while(enter==0)
if (key==3)while(enter==0)
if (key==4)while(enter==0)
if (test==1) break;
http://www. dks.com.vn
golongr();
Around();
left();
test=1;
}//while(1)
}
// keyboard
69
DKS GROUP
Nguyen Manh Truong Mobi : 0988857861
http://www. dks.com.vn
Robot hnh trn l robot ca mt i tham gia trong cuc thi robocon
2007.Chng ta s s dng robot ny thc hnh .
Phn mch ca robot ,chng ta s dng mch iu khin ng c bng relay
Nh hnh di
70