You are on page 1of 42

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hng dn tm hiu chng trnh


BKIT MCR

07/2010
Bkit Hardware Club Bkit4u

www.bkit4u.com

-1-

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

MC LC
Chng 1. Tng quan ................................................................................................................7
Chng 2. t t cch cc module ............................................................................................8
2.1. Giao din kt ni............................................................................................................8
2.2. Mch ngun ...................................................................................................................9
2.2.1. Mch n p u ra c nh 5V.................................................................................9
2.2.2. Mch n p u ra 6V ...........................................................................................10
2.2.3. Mch Ngun trn xe BKIT MCR............................................................................10
2.3. X l tn hiu Mch D ng ...................................................................................11
2.3.1. Nguyn l hot ng ..............................................................................................11
2.3.2. Lp trnh c ADC trn ATmega64 .......................................................................12
2.4. iu khin cc module trn Mch VK......................................................................14
2.4.1. M t chung ...........................................................................................................14
2.4.2. Khi Led.................................................................................................................15
2.4.3. Khi Loa Beep........................................................................................................20
2.4.4. Khi DipSwitch ......................................................................................................21
2.4.5. Khi Nt nhn........................................................................................................22
2.5. iu khin RC Servo ...................................................................................................24
2.6. Mch Cng Sut v nguyn l iu khin ng c in mt chiu.............................26
2.6.1. Nguyn l iu khin ng c mt chiu ...............................................................26
2.6.2. Mch Cng Sut.....................................................................................................27
Chng 3. Xy dng gii thut iu khin xe .........................................................................30
3.1. Cc hm c bn ca chng trnh................................................................................30
3.2. Cu trc chng trnh: .................................................................................................31
3.3. Gii thut x l khi qua cc on ng thng v cong..............................................34
3.4. S trng thi khi qua on ng cua vung .........................................................38
www.bkit4u.com

-2-

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

3.5. S trng thi khi qua chuyn ln phi.....................................................................40


3.6. S trng thi khi qua chuyn ln tri ......................................................................41
3.7. Hm test ( ) dng test cc b phn xe .....................................................................41

www.bkit4u.com

-3-

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

MC LC HNH
Hnh 2-1. V tr cc mch in trn xe BKIT MCR...................................................................8
Hnh 2-2. S khi cc kt ni cc mch trn xe BKIT MCR ...............................................8
Hnh 2-3. Hnh dng IC LM2576 trong thc t .......................................................................10
Hnh 2-4. S nguyn l mch n p 5V..............................................................................10
Hnh 2-5. S nguyn l mch n p 6V..............................................................................10
Hnh 2-6. Mch ngun .............................................................................................................11
Hnh 2-7. S nguyn l Sensor hng ngoi ........................................................................11
Hnh 2-8. M hnh hot ng Sensor d ng .....................................................................11
Hnh 2-9. Mch d ng........................................................................................................12
Hnh 2-10. Kt ni ADC trn ATmega64................................................................................13
Hnh 2-11. V d v gi tr bin sensor....................................................................................14
Hnh 2-12. S khi mch VK ..........................................................................................14
Hnh 2-13. Cch mt led n ...................................................................................................15
Hnh 2-14. Cch mc v iu khin led n vi VK............................................................15
Hnh 2-15. Led 7 on v s b tr .....................................................................................16
Hnh 2-16. S nguyn l led 7 on (cc dng chung v cc m chung)........................16
Hnh 2-17. Hnh dng mt s transistor trong thc t .............................................................16
Hnh 2-18. S nguyn l mch kha in t ni ngun. ....................................................17
Hnh 2-19. S nguyn l mch kha in t ni t. .........................................................17
Hnh 2-20. S khi khi led................................................................................................18
Hnh 2-21. S nguyn l khi led.......................................................................................19
Hnh 2-22. S nguyn l khi Loa beep .............................................................................21
Hnh 2-23. Hnh dng DipSW-4 thc t trn mch .................................................................21
Hnh 2-24. S nguyn l khi DipSW................................................................................22
Hnh 2-25. Nguyn l hot ng ca DipSW ..........................................................................22
www.bkit4u.com

-4-

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 2-26. So nguyn l khi nt nhn ..............................................................................23


Hnh 2-27. Tn hiu rung nhiu khi nhn nt...........................................................................23
Hnh 2-28. RC Servo................................................................................................................25
Hnh 2-29. Tn hiu PWM iu khin RC Servo.....................................................................25
Hnh 2-30. ng c in mt chiu........................................................................................26
Hnh 2-31. iu khin chiu quay ng c in mt chiu ....................................................26
Hnh 2-32. PWM iu khin tc ng c ...........................................................................27
Hnh 2-33. Mch cng sut......................................................................................................28
Hnh 3-1. Dng hm handle ( int ) iu khin gc b li ca servo ........................................30
Hnh 3-2. Gi tr tr v ca hm sensor_inp ............................................................................31
Hnh 3-3. S gii thut........................................................................................................31
Hnh 3-4. Sensor bt c na line bn tri ............................................................................32
Hnh 3-5. Sensor bt c na line bn phi...........................................................................32
Hnh 3-6. Sensor bt c nguyn mt line ............................................................................33
Hnh 3-7. Mch d khng vung gc vi vch trng ngang....................................................33
Hnh 3-8. Mch d khng nm gia ng ua ......................................................................34
Hnh 3-9. Mt s trng thi sensor gp trn ng ua ..........................................................34
Hnh 3-10. Xe qua on cong 30o. ..........................................................................................35
Hnh 3-11. S gii thut trng thi chnh I ........................................................................36
Hnh 3-12. Hnh mch d bt c hai line.............................................................................38
Hnh 3-13. Cc trng thi trong khi cua vung........................................................................39
Hnh 3-14. S cc trng thi trong khi cua vung ..............................................................40
Hnh 3-15. Cc trng thi khi chuyn ln phi ........................................................................40
Hnh 3-16. S trng thi khi qua chuyn lan phi ..............................................................41

www.bkit4u.com

-5-

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

MC LC BNG
Bng 2-1. Cc trng thi qut led.............................................................................................20
Bng 2-2. M t cc ng tn hiu t Mch Cng Sut n Mch VK..............................28
Bng 3-1. Ti l vn tc hai bnh..............................................................................................36
Bng 3-2. Cc trng thi led gp trn ng ua v gc cua tng ng.................................37

www.bkit4u.com

-6-

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Chng 1. Tng quan


Ti liu ny s hng dn:
M t nguyn l, hng dn cch iu khin cc module trn mch VK.
Gii thch v chng trnh iu khin chic xe ny.

www.bkit4u.com

-7-

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Chng 2. t t cch cc module


2.1. Giao din kt ni
Mch VK

Mch cng sut

Mch ngun
Mch d ng
RC Servo

Bus 

Bus 
Pin 7V2
Hnh 2-1. V tr cc mch in trn xe BKIT MCR

Xe BKIT MCR bao gm Mch Vi iu Khin (VK), Mch D ng, Mch Cng
Sut, Mch Ngun kt hp vi nhau iu khin s di chuyn ca xe, tc l iu khin h
thng ng c tri, phi v ng c li rc servo.

Buttons
DipSW

Leds
Led7s
Beep

Button

Leds
ng c tri

Mch d
ng

Mch VK
Atmega64

Mch cng sut

ng c phi
RC Servo

Mch ngun

Hnh 2-2. S khi cc kt ni cc mch trn xe BKIT MCR

www.bkit4u.com

-8-

Bkit Hardware Club Bkit4u

Mch D
ng

Chng trnh BKIT MCR

Gm c 8 b sensor hng ngoi nhy mu, lm nhim v nhn bit


mu Trng v en ca ng ua.

Mch vi iu
khin (VK)

Mch cha vi iu khin ATmega64. Vi iu khin c lp trnh lm


nhim v thu thp d liu t cc thit b input (sensor, dipsw, nt nhn), tnh
ton x l nhng d liu v xut d liu iu khin cc thit b output
(led, beep speaker, rc servo, motor).
Ngoi vi iu khin chnh, mch cn cha mt s thit b I/O (led, nt
nhn, dipsw,) v cc bus kt ni vi cc mch khc trong h thng xe.
Trn mch cn tch hp mt module giao tip vi my tnh qua
cng USB, gip cho vic np chng trnh t my tnh xung xe d dng
hn.

Mch Cng
Sut

Mch lm nhim v nhn tn hiu iu khin t Mch VK iu


khin cc ng c v RC Servo. V ng c v RC Servo hot ng in
th cao (7.2V v 6V) hn so vi in th iu khin t Mch VK (5V) nn
mch c gi l mch cng sut, lm nhim v khuch i tn hiu u vo
in vi th thp thnh tn hiu iu khin u ra vi in th cao.
Ngoi ra trn mch cng sut cn c thm cc led tn hiu, v mt nt
nhn.

Mch Ngun

Mch Ngun lm nhim v bin in th 7.2V ca pin thnh in th


5V n nh cung cp cho Mch VK, v thnh in th 6V cung cp cho
Mch Cng Sut phc v vic hot ng ca RC Servo

2.2. Mch ngun


2.2.1. Mch n p u ra c nh 5V
C rt nhiu IC c th to in p ng ra l 5V vi in p vo l 7.2V nh 7805,
LM317, LM2672, LM2674, LM2576. Do ngun 5V to ra dng cung cp cho mch VK,
trong mch VK cn cung cp ngun cho Mch D ng v cc IC trn Mch Cng
Sut v th phi dng IC n p c dng cung cp ln trnh mch Vi x l b reset do dng
khng ln.V IC LM2576 l mt trong nhng IC p ng c cc yu cu k thut trn
(dng cp ti a l 3A).

www.bkit4u.com

-9-

Bkit Hardware Club Bkit4u


Pin 1
Pin 2
Pin 3
Pin 4
Pin 5

Chng trnh BKIT MCR


V input
V ouput
GND (-)
Feedback
ON/OFF

Hnh 2-3. Hnh dng IC LM2576 trong thc t

LM2576 gm mt h IC c th to in p ng ra c nh vi 3.3V, 5V, 12V, 15V v


in p iu chnh c. LM2576 c nhng c im ti u nh: in p vo m rng n
40V, dng ra ti tng i ln (c th ti a l 3A).
Di y l s mch ng dng IC LM2576 to in p u ra 5V.

Hnh 2-4. S nguyn l mch n p 5V

2.2.2. Mch n p u ra 6V
Vic to ra in th 6V l cung cp cho hot ng ca RC Servo.
Dng LM2576-ADJ l mt IC nm trong h LM2576, c th to in p ng ra t
1.23V n 37V.
Vic iu chnh in p ra bng 6V bng cch iu chnh bin tr R6.

Hnh 2-5. S nguyn l mch n p 6V

2.2.3. Mch Ngun trn xe BKIT MCR

www.bkit4u.com

- 10 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR


Mch VK
Pin1 ()
+5V
Pin2 (en) GND

Cng tc ngun
Mch VK
Pin
Pin1 ()
Pin2 (en)

Mch Cng Sut


Pin1 ()
+7V2
Pin2 (vng) +6V
Pin3 (en)
GND

+
-

Cng tc ngun
Mch Cng Sut

Hnh 2-6. Mch ngun

2.3. X l tn hiu Mch D ng


2.3.1. Nguyn l hot ng
Mch d ng c 8 b sensor nhy mu. Mi b sensor gm c mt led pht tia hng
ngoi v mt led thu tia hng ngoi, kt ni theo s nguyn l sau:

LED_TRANSMIT : Led pht hng ngoi


LED_RECEIVE
: Led thu hng ngoi
Hnh 2-7. S nguyn l Sensor hng ngoi

Led pht s pht tia hng ngoi hng v pha mt phng ng ua, ng ua s
phn x tia ny li led nhn. Ty vo mu sc ng ua ti hay sng m cng tia hng
ngoi phn x li t hay nhiu.

white

black

Hnh 2-8. M hnh hot ng Sensor d ng

www.bkit4u.com

- 11 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Led thu hng ngoi hot ng nh mt bin tr (in tr c gi tr thay i). Gi tr


in tr ca led thu ph thuc vo cng tia hng ngoi n nhn c.
C th tm tt bng bng sau:

Mu
Trng
en

Cng tia hng


ngoi phn x
Ln
Nh

in tr led thu
hng ngoi
Nh
Ln

in th tn hiu
u ra (SIG0:7)
Nh (<1V)
Ln(>1,6V)

Gi tr ADC m
VK c c
Nh (<50)
Ln (>80)

Vi iu khin s s dng chc nng ADC c gi tr in th t 8 ng tn hiu


(SIG0  SIG7) do Mch D ng cung cp, v t cc gi tr c c ny ta s lp trnh
tnh ton bit c trong 8 b sensor, b no ang trong line trng, b no vng en ca
ng ua.
Dng bus  (di) kt ni vi cng PORT SENSOR trn Mch VK.

LED pht Trng


LED thu en

 Mch VK
9.SIG7 7.SIG5
10.GND 8.SIG6

5.SIG3
6.SIG4

3.SIG1
4.SIG2

1.VCC
2.SIG0

Hnh 2-9. Mch d ng

2.3.2. Lp trnh c ADC trn ATmega64


Nh ni trn, x l tn hiu nhn c t Mch D ng ta s dng chc
nng ADC ca VK ATmega64. ADC (Analog-to-digital converter), tc l chuyn tn hiu
Tng t Analog thnh tn hiu S Digital. C th hn trong lp trnh cho Mch D ng,
ta s dng chc nng ADC ca ATmega64 chuyn in th nhn c t cc ng tn
hiu SIG0  SIG7 thnh gi tr s phc v cho vic lp trnh tnh ton. Gi tr in th t 0V
 5V s c chuyn i tng ng vi gi tr t 0  255.

www.bkit4u.com

- 12 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 2-10. Kt ni ADC trn ATmega64

Trong chng trnh BKIT MCR 2010, cc hm v ADC c vit trong module adc
(th mc adc gm file adc.c v adc.h). Mt s hm x l chnh:
 void adc_init(); hm ci t cc thng s hot ng cho chc nng ADC ca

ATmega64. Hm ny ch gi mt ln u chng trnh.


 unsigned char read_adc(unsigned char adc_input); hm ny s thc

hin vic c gi tr mt knh ADC. Cc tham s:


 adc_input: gi tr t 0  7, l s th t knh ADC mun c, tng ng vi
SIG0  SIG7 ca Mch D ng.
 kt qu tr v ca hm ny c gi tr t 0  255, chnh l gi tr ca mt knh
ADC sau khi chuyn i.
 void update_vcompare(); hm ny s thc hin vic tnh ton v cp nht gi

tr cho mng gi tr v_compare.


unsigned char v_compare[8] ;

Mng v_compare cha 8 gi tr tng ng vi 8 b sensor d ng, l cc gi tr


c tnh ton sao cho khi mt sensor vng en s c gi tr ADC ln hn v_compare ca
n v ngc li, khi line trng s c gi tr ADC nh hn. Ni cch khc gi tr v_compare
l gi tr ADC trung gian gia gi tr ADC lc sensor nhn mu en v trng.
 void read_sensor(); hm ny thc hin vic nh k mi 1ms mt ln, cp

nht gi tr t Mch D ng v a kt qu vo bin sensor.


unsigned char sensor;

Bin sensor c 8 bit, mi bit s lu li trng thi ca mt b sensor ca Mch D


ng. Bit bng 1 tc sensor nm trong line trng, bit bng 0 tc sensor nm trong vng en.

www.bkit4u.com

- 13 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Sensor = 0x06
= 0b00000110

Hnh 2-11. V d v gi tr bin sensor

2.4. iu khin cc module trn Mch VK


2.4.1. M t chung
Mch iu khin xe BKIT MCR s dng vi iu khin AVR ATmega64 ca hng
Atmel. y l mt dng vi iu khin kh ph bin hin nay c trong hc tp nghin cu
cng nh trong ng dng thc t.
d dng hn trong vic s dng lp trnh iu khin xe BKIT MCR, mch c
thit k tch hp (onboard) mt s khi (module) I/O nh: 8 led n, 2 led 7 on, loa beep, 4

8 Led n

2 Led 7
on

Loa
Beep

PORTC
PORTA
PORTF

Cng cm
Mch D

DipSW4

4 Nt nhn

nt nhn, dipsw4, np onboard, (Hnh 2-10).

Cng cm
mch CS

ATmega64

Cng USB
kt ni vi PC

Hnh 2-12. S khi mch VK

Chi tit v thit k v cch iu khin cc khi trn mch VK c trnh by di


y.

www.bkit4u.com

- 14 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

2.4.2. Khi Led


 iu khin mt led n
Led (it pht quang) thng dng trn cc mch in t hin th thng tin, vi 2
trng thi tt/sng. Led thng c mc ni tip vi mt in tr (c gi tr khong t 100
n 2k) hn dng (trnh lm hng led), thnh mt on mch AB ni tip. Khi
lm led sng, ta t in th +5V vo u A v in th 0V vo u B cn li. Xem Hnh 211.

Hnh 2-13. Cch mt led n

iu khin led bng VK ta cng p dng tng t. u A ta ni vo VCC (+5V),


u B ni vo chn VK, v d trong hnh l ni vo chn PA0 (chn 0 ca PORTA) ca vi
iu khin ATmega64. Khi PA0 = 1 (5V), led tt. V khi PA0 = 0 (0V) led sng.

PA0 = 1 (5V)
Khng c dng in
Led tt

PA0 = 0 (0V)
C dng in
Led sng

Hnh 2-14. Cch mc v iu khin led n vi VK

 iu khin led 7 on
Mi led 7 on gm 8 led n k hiu l a,b,c,d,e,f,g,dp c sp xp cc v tr nh
hnh sau:

www.bkit4u.com

- 15 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 2-15. Led 7 on v s b tr

Led 7 on c nhiu hnh dng, kch thc, mu sc, s v tr chn khc nhau,
nhng xt v nguyn l th c th chia thnh 2 loi: cc dng chung v cc m chung.

a. Cc dng chung

b. Cc m chung

Hnh 2-16. S nguyn l led 7 on (cc dng chung v cc m chung)

Vic iu khin led 7 on l iu khin 8 led n, trong 8 led ta quyt nh cho


sng led no tt led no c s hin th nh ta mong mun. V d hin th s 3, ta cho
sng led a,b,c,d,g v tt cc led cn li.
Led 7 on c dng trn mch BKIT MCR l loi cc dng chung.

 ng dng transistor lm kha in t


d dng hn trong qu trnh iu khin khi led trn Mach VK, ta s tm hiu
thm v kha in t. Kha in t (cn gi l cng-tc s) l mt cng-tc c iu khin
bng in, dng ng/ngt cho mt kt ni no trong mt h thng mch.

Hnh 2-17. Hnh dng mt s transistor trong thc t

www.bkit4u.com

- 16 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Transistor l mt linh kin in t ph bin, thng c s dng nh mt thit b


khuch i hoc mt kha in t. Xt v cu to, transistor c hai loi l NPN v PNP.
y, ta s khng cp n cu to, nguyn l hot ng ca transistor m ch xt mch ng
dng transistor lm mt kha in t. C hai dng sau:
+ S dng transistor PNP lm kha ni ngun VCC.

Hnh 2-18. S nguyn l mch kha in t ni ngun.

Kha c iu khin bi mt chn ca VK, v d y l chn PG0. Khi PG0=0,


kha ng (ON), lc u A xem nh c ni vi VCC. Ngc li khi PG0=1, kha ngt
(OFF), lc A c cch li vi VCC.
+ S dng transistor NPN lm kha ni t GND.

Hnh 2-19. S nguyn l mch kha in t ni t.

Tng t, v d y kha c iu khin b chn PG1. Ngc li vi kha ni


ngun, khi PG1=1, kha ng (ON), lc u B xem nh c ni vi GND. Ngc li khi
PG1=0, kha ngt (OFF), lc B c cch li vi GND.

 iu khin khi led trn mch VK.


Khi led gm c 2 led 7 on v 8 led n c kt ni nh hnh bn di.

www.bkit4u.com

- 17 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

VCC

PG1

PG2

8 led n

PG0

Led 7 on

Led 7 on

8 ng d liu hin th

PORTA
Hnh 2-20. S khi khi led

C th hnh dung vic iu khin led ny l iu khin 3 b led, mi b c 8 led n


(led 7 on thc cht l 8 led n ghp li). Cc ng d liu hin th ca cc b led c
ni chung vi nhau v c iu khin bi PORTA. Cc chn PG0, PG1, PG2 lm nhim v
ng ngt cng-tc, quyt nh cho hay khng cho b led no hin th.

www.bkit4u.com

- 18 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 2-21. S nguyn l khi led

V d: hin s 3 led 7 on th nht ta ci t cc chn VK nh sau:


PG2 = 1: tt b led n
PG1 = 0: m led 7 on th nht
PG0 = 1: tt led 7 on th hai
PORTA = 0x64 (s hex): tc l 0b01100100 (s nh phn) tng ng vi vic tt m
cc led d,e,dp,g,c,f,b,a
Trong thit k, vic ni chung 8 ng d liu hin th ca 3 b led vo PORTA nh
th nhm mc ch tit kim chn I/O ca VK.
Trong vic iu khin, nu dng cch iu khin tnh nh trn th chng ta ch hin th
d liu trn mt b led, hoc ch hin th c d liu ging nhau trn cc b led. Vy gi s
mun hin s 13 trn hai led 7 on (mi led hin mt ch s) th phi lm sao? Mt cch
hay dng gii quyt vn ny gi l Phng php qut led. l, chia vic hin th led
thnh nhiu thi on, mi thi on hin th mt d liu trn mt b led, v khi thi on

www.bkit4u.com

- 19 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

c chia nh, hiu ng 24hnh/giy c to ra v mt ta s nhn thy nh th l d liu


khc nhau hin th ng thi trn cc b led. C m t bng bng sau:

Trng thi
1

PG2:0
011

PORTA
0xA5

101

0xF5

110

0x64

(lp li trng thi 1)


Bng 2-1. Cc trng thi qut led

 Cc hm chnh x l xut led trong chng trnh


Tt c cc hm x l vic hin th led c vit trong module led (tham kho th mc
led gm file led.c v led.h). Mt s hm chnh:
 void led_init(); hm ci t ch hot ng cc chn I/O ca VK trong

vic xut led. Hm ny ch gi mt ln u chng trnh.


 void led_mod(); hm qut led, hm c gi bi ngt timer nh k mi mt ms

mt ln. mi ln c gi, hm s chuyn trng thi hin th led 12, 23, hoc 31
(Bng 2-1).
 void led_put(unsigned char _val); hm xut gi tr ra 8 led n.
 void led7_putHex(unsigned char _val); hm xut gi tr ra 2 led 7 on.

2.4.3. Khi Loa Beep

www.bkit4u.com

- 20 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 2-22. S nguyn l khi Loa beep

Khi Loa beep tt/m bng mt kha in t v c iu khin bi chn PE5 ca


ATmega64.
Khi PE5=1: ON, loa pht ra ting ku.
Khi PE5=0: OFF, loa khng pht ra ting ku.

2.4.4. Khi DipSwitch

Hnh 2-23. Hnh dng DipSW-4 thc t trn mch

DipSW gm nhiu cng-tc hot ng c lp nhng c gn chung vi nhau thnh


mt thanh. C nhiu loi DipSW, khc bit ln nht gia chng l s lng cng-tc. Trong
Mch VK dng DipSW-4, tc l DipSW c 4 cng tc.
V nguyn l th rt n gin, khi gt mt cng-tc ln ON th hai chn tng ng
hai pha cng-tc s ni nhau.
Trn Mch VK, DipSW c ng dng trn mch BKIT MCR ci t mode cho
xe chy. Vi DipSW-4 ta chn c 16 mode t mode 0 n mode 15 (0b0000  0b1111).

www.bkit4u.com

- 21 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 2-24. S nguyn l khi DipSW

Khi lp trnh cc chn PC3:0 ta s ci t ch input v c ko ln. Khi cng-tc


h (OFF) ta s nhn c mc 1, v khi cng-tc ng (ON) ta nhn c mc 0. Khi mt
chn VK ci t ch ko ln (pull-up), c th hnh dung l bn trong VK c mt in
tr ni chn ca VK ln VCC.

PC0=0
PC0=1
OFF

ON

Hnh 2-25. Nguyn l hot ng ca DipSW

2.4.5. Khi Nt nhn


Mi nt nhn c hai chn, nguyn l hot ng rt n gin, khi khng nhn nt (OFF)
th hai chn ca nt khng ni nhau, v ngc li khi nhn nt (ON), hai chn ca nt s ni
nhau.
Trn Mch VK c 4 nt nhn c kt ni theo s sau:

www.bkit4u.com

- 22 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 2-26. So nguyn l khi nt nhn

Tng t nh vic lp trnh DipSW, cc chn PC7:4 ta s ci t ch input v


c ko ln. Khi nt khng nhn (OFF) ta s nhn c mc 1, v khi nt c nhn (ON)
ta nhn c mc 0.

 Chng rung phm nhn


+ Vn rung, nhiu khi nhn nt.
1

0
Khong thi gian
rung, nhiu Tn
hiu khng r rng
Hnh 2-27. Tn hiu rung nhiu khi nhn nt

Khi khng nhn nt tn hiu mc cao, khi nhn nt tn hiu xung mc thp. Trong
khong thi gian tn hiu chuyn t mc cao xung mc thp s xy ra tnh trng rung, nhiu
lm cho tn hiu khng r rng. Mc d khong thi gian rung, nhiu l rt nh, cha ti 1ms
(ph thuc vo cch nhn nt v cht lng nt nhn), nhng vi tc x l rt cao ca
VK th y l mt vn cn phi gii quyt.

+ Gii php chng rung


C hai gii php thng c a ra la chn l gii php phn cng (thc hin
trong giai on thit k mch), v gii php phn mm (lc lp trnh). y hng dn cc
bn mt gii thut chng rung nt bng phn mm.

www.bkit4u.com

- 23 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Ni dung: nh k c sau mt khong thi gian c nh (1ms) bn c gi tr nt nhn


mt ln, so snh gi tr 3 ln c lin tip, nu chng bng nhau th nhn gi tr coi nh
nt nhn khng trong trng thi rung.
V d: hm sau c thc hin mi 1ms mt ln ly gi tr nt nhn t PORTC lu
vo bin key_input, cc bin key0, key1, key2 lu 3 gi tr nt nhn 3 trng thi lin tip
nhau:
void update_key(){
key2 = key1;
key1 = key0;
key0 = PINC;
if ((key0 == key1) && (key1 == key2)){
key_input = key0;
}
}

 Cc hm iu khin DipSW v nt nhn:


Cc hm c vit trong module input (tham kho th mc input gm file input.h v
input.c).
 void input_init(); hm khi to cc I/O cho vic nhn input. Hm ny c

gi mt ln u chng trnh.
 void update_input(); hm c gi tr cc input, x l rung, nhiu v a gi tr

vo cc bin key_input, dipsw_input, Hm ny c gi nh thi bi ngt timer.


 unsigned char get_key(unsigned char _key_id); hm kim tra xem nt

nhn c th t _key_id c c nhn khng. Nu nt c nhn hm tr v 1, ngc li tr


v 0. Tham s _key_id nhn mt trong cc gi tr KEY0, KEY1, KEY2, KEY3 tng ng
vi cc nt 0,1,2,3 trn Mch VK.
 unsigned char get_dipsw(); hm ly gi tr DipSW, kt qu tr v t 0 n

15 tng ng vi gi tr ci t trn DipSW.

2.5. iu khin RC Servo


RC Servo l h thng gm ng c DC, hp s, v vi mch iu khin. Ty theo tn
hiu iu khin m n nhn c, RC Servo s quay trc n mt gc xc nh trong khong
t 00 n 1800.

www.bkit4u.com

- 24 -

Bkit Hardware Club Bkit4u

en

Trng

Chng trnh BKIT MCR

GND
+6V
PWM
Hnh 2-28. RC Servo

iu khin RC Servo chnh l a tn hin vo dy PWM RC Servo quay theo gc


m mnh mong mun. Tn hiu PWM cho RC Servo c chu k 16ms, rng xung t 0.7ms
n 2.3ms, m t theo hnh bn di:

0.7ms

1.5ms

16ms

16ms

2.3ms

16ms

Hnh 2-29. Tn hiu PWM iu khin RC Servo

 Cc hm iu khin RC Servo:
Cc hm vit trong module handle (tham kho th mc handle gm file handle.h v
file handle.c).
 void handle_init(); hm khi to ch iu khin RC Servo, c gi mt

ln u chng trnh.
 void handle(int _angle); hm ci t gc quay cho RC Servo.Tham s

_angle l gc quay cn ci t cho RC Servo, tham s ny c gi tr t -90 n 90, tng


ng vi gc quay t -900 n 900 ca u xe. Khi gi handle(0) th u xe v tr gia.

www.bkit4u.com

- 25 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

2.6. Mch Cng Sut v nguyn l iu khin ng c in mt chiu


2.6.1. Nguyn l iu khin ng c mt chiu
ng c in mt chiu (hay ng c DC) l ng c hot ng vi dng in mt
chiu.

Hnh 2-30. ng c in mt chiu

 iu khin chiu ca ng c in mt chiu


Khi ta cp in th dng (+) vo mt cc ca ng c v cp in th m (-) vo cc
cn li th ng c s quay theo mt chiu c nh. V khi ta cp in th ngc li, o
chiu dng m th ng c s quay theo chiu ngc lai.

Hnh 2-31. iu khin chiu quay ng c in mt chiu

 iu khin tc ng c in mt chiu
iu khin tc ng c in mt chiu ta dng phng php iu xung (PWM).
Nh trn ta bit, khi c cp in th ng c quay, v khi khng cp in na th ng
c ngng hot ng. Trong mt khong thi gian rt ngn 128us (gi l chu k iu xung T),
v chia khong thi gian ny thnh 2 phn, ta s cp in cho ng c mt phn thi gian
u, v ngng cp in phn thi gian sau. Lp li chu k lin tc, nh th ng c s
lin tc trng thi quay-ngng-quay-ngng-quay V chu k iu xung l rt nh nn ta s
thy ng c quay lin tc. Tc ca ng c ph thuc v t l thi gian ng c c cp
in trong mt chu k.

www.bkit4u.com

- 26 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Kt ni ng c:
+ Ni 0V vo mt cc ng c
+ PWM s iu khin cc cn
li

PWM

0V

quay

ngng

quay

ngng

7V2
PWM

0V
128us
ng c quay
chm

128us
ng c quay
nhanh

Hnh 2-32. PWM iu khin tc ng c

Trong mt chu k, t l thi gian ng c c cp in cng nhiu th ng c quay


cng nhanh.

 Cc hm iu khin ng c
Cc hm ci t v iu khin ng c vit trong module speed (tham kho th mc
speed gm file speed.h v speed.c).
 void speed_init();

hm khi to chc nng PWM ca ATmega64 iu

khin ng c, hm c gi mt ln u chng trnh.


 void speed(int _left_speed, int _right_speed); hm ci t tc v

chiu cho hai ng c bnh xe. Cc tham s:


_left_speed: c ln t 0 n 255 tng ng vi tc t t 0% n 100% ca ng c

tri. C du dng (+) nu chy TIN v m (-) nu chy LI.


_right_speed: tng t, y l tham s iu khin tc v chiu cho ng c phi.

2.6.2. Mch Cng Sut

www.bkit4u.com

- 27 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Nh ni trn, Mch Cng Sut c nhim v khuch i tn hiu u vo in vi


th thp t VK thnh tn hiu iu khin u ra vi in th cao iu khin ng c.
Cc thnh phn trn mch c m t trong hnh sau:

Led tn hiu iu khin C


LD
Chiu C tri
LP
Tc C tri
RD
Chiu C phi
RP
Tc C phi

Led bo ngun
Nt nhn

Jack ngun
GND(0V) +6V

MchVK
10
9
8
7
6
5
4
3
2
1

+7V2

Jack cm ng c tri
Jack cm ng c phi

Jack cm RC Servo
Trng
en
PWM +6V
GND

Led tn hiu
L0 Led 0
L1 Led 1
Hnh 2-33. Mch cng sut

Jack kt ni Mch Cng Sut vi Mch VK gm 10 chn, m t chi tit trong bng
sau:

Tn chn Kt ni vi ATmega64
1
(+)
+5V

Chi tit

Mch PG3

LED1

Tt

Sng

Mch PG4

LED0

Tt

Sng

Mch PE3

Tn hiu PWM RC Servo

Tn hiu PWM
Tn hiu PWM

Mch PB4

PWM ng c bn phi

Mch PD0

Chiu quay ca ng c phi Bnh thng o chiu

Mch PD1

Chiu quay ca ng c tri Bnh thng o chiu

Mch PB7

PWM ng c bn tri

Mch  PE2

Nt nhn

10

()

Tn hiu PWM
c nhn Khng nhn

GND

Bng 2-2. M t cc ng tn hiu t Mch Cng Sut n Mch VK

*** Ghi ch:


+ K hiu Mch  PE2 ngha l c tn hiu t Mch Cng Sut n VK.

www.bkit4u.com

- 28 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

+ K hiu Mch PB7 ngha l xut tn hiu t VK n Mch Cng Sut.

www.bkit4u.com

- 29 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Chng 3. Xy dng gii thut iu khin xe


3.1. Cc hm c bn ca chng trnh
 void speed(int left, int right); iu khin duty cycle cho hai bnh pht

ng bn tri v phi. Gi tr truyn vo left v right l t -255 n 255.


 void handle(int angle); iu chnh gc ca ng c servo so vi phng

vung gc vi thn xe. n v ca i s angle l ( 0 ). Xem hnh 5.1

handle ( 0 )

handle ( 30 )

handle ( -15 )

Hnh 3-1. Dng hm handle ( int ) iu khin gc b li ca servo

 unsigned char sensor_inp(unsigned char MASK); hm tr v gi tr ca

8 sensor d trc u xe sau khi AND vi MASK. V d:

www.bkit4u.com

- 30 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 3-2. Gi tr tr v ca hm sensor_inp

3.2. Cu trc chng trnh


- Chng trnh chia lm 4 trng thi chnh:
X l cc
on ng
thng v
ng cong
(I)

2
1
X l on
ng
chuyn ln
bn tri
( II )

4
3

X l on
ng
chuyn ln
bn phi
( III )

8
X l cc
on ng
cua vung
900
( IV )

Hnh 3-3. S gii thut

- Bc chuyn (1: I -> II): khi thy na line bn tri.

www.bkit4u.com

- 31 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 3-4. Sensor bt c na line bn tri

- Bc chuyn (2: II -> I): khi i qua c on ng chuyn ln tri.

Hnh 3-5. Sensor bt c na line bn phi

- Bc chuyn (3: I -> III): khi thy c na line bn phi.


- Bc chuyn (4: III -> I): khi chy qua c on chuyn ln phi.
- Bc chuyn (5: I -> IV), (7: II -> IV), (8: III -> IV): ngay khi thy c nguyn mt
line.

www.bkit4u.com

- 32 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 3-6. Sensor bt c nguyn mt line

- Bc chuyn (6: IV -> I): khi chy xong c on ng cua 90o.


* Ch :


u im ca s gii thut l gii quyt c li nhm ln gia on ng


cua vung thnh on ng chuyn ln. Thng th khng phi lc no mch
d cng song song vi vch trng ngang, c khi na bn mch d bt c
vch trng trc ( hnh 5.7 ) sinh ra li nhm ln on ng cua vung thnh
chuyn ln, vic ny thng xuyn xy ra.

Khi mch d i ngang qua na vch trng m mch d nm lch qua pha na
vch trng th c th b nhm ln on ng chuyn ln thnh on cua
vung ( hnh 5.8 ), nhng thng th ng ua tht ng chun qui nh th
li ny t xy ra. Li ny gp khi sau ng cong l hai na vch trng chuyn
ln xe cha kp chnh mch d vo gia ng ua. Khi xy ra li ny cng
khng ng ngi v vi k thut qua on cua vung th xe cng d dng qua
c on ng chuyn ln ch l khi ny vn tc xe chm hn so vi khi
khng nhm ln thi.

Hnh 3-7. Mch d khng vung gc vi vch trng ngang

www.bkit4u.com

- 33 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 3-8. Mch d khng nm gia ng ua

3.3. Gii thut x l khi qua cc on ng thng v cong


- Cc trng thi sensor c th gp th hin tng i lch hng ca xe so vi
phng ng ua:

Hnh 3-9. Mt s trng thi sensor gp trn ng ua

www.bkit4u.com

- 34 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

- Cch tnh t l vn tc hai bnh sau theo gc b li ca hai bnh trc:

Hnh 3-10. Xe qua on cong 30o.

- T hnh v ta c:
tan =

W
r2

r2 =

W
tan

(1)

r1 = r 2

T
2

( 2)

r3 = r 2 +

T
2

(3)

T (1), (2), (3) suy ra t l vn tc hai bnh theo gc b li ( ):


W
T

r1
100 = tan 2 100 (%)
W
T
r2
+
tan 2
V d:
T = 0,14 m
W = 0,175 m

www.bkit4u.com

- 35 -

Chng trnh BKIT MCR

Bkit Hardware Club Bkit4u

Degree ()
1
2
3
4
5
6
7
8
9
10

r2
10.02574
5.01134
3.33920
2.50262
2.00026
1.66501
1.42526
1.24519
1.10491
0.99247

r1
9.95574
4.94134
3.26920
2.43262
1.93026
1.59501
1.35526
1.17519
1.03491
0.92247

r3
10.09574
5.08134
3.40920
2.57262
2.07026
1.73501
1.49526
1.31519
1.17491
1.06247

r1/r2 * 100
99
97
96
95
93
92
91
89
88
87

Bng 3-1. Ti l vn tc hai bnh

- S gii thut ca trng thi chnh I ( xem hnh 5.3 ):

runforwardline ()

checkcros
sline()

X l on
ng cua
0
vunng 90
( IV )

yes

no

checkcros
shalfline()
=?

X l on ng
chuyn ln bn
phi
( III )

-1
X l on
ng chuyn
ln bn tri
( II )

Hnh 3-11. S gii thut trng thi chnh I

- tng khi qua cc on ng thng v cong:

www.bkit4u.com

- 36 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Ta da vo trng thi sensor bit c lch hng ca chy ca xe so vi phng ca

ng ua, ng vi mt trng thi sensor ta chn mt gc b li hp l ( bng cch dng hm


handle (int) ) sao cho xe c xu hng di chuyn v pha chnh gia ng ua, vi lch
hng cng ln th ta chn gc b li cng ln.

Bng 3-2. Cc trng thi led gp trn ng ua v gc cua tng ng

u im ca cch chy ny l: xe chy qua cc ng cong vi bn knh c nh rt nhanh


ging nh ang chy trn ng thng khi xe vo c ng cong. Thc t th trong cc
cuc thi MCR ch c hai loi ng cong vi hai bn knh khc nhau. Nn ta ch cn chn hai

www.bkit4u.com

- 37 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

gc b li hp l ng vi hai lch hng khc nhau qua 2 loi ng cong sao cho hai

lch hng c chn l hai lch hng trung bnh c th l lch hng ng vi
bin Vitri = +- 3 v Vitri = +- 4 ( xem hnh 5.9 trn ).
Ti mi khc chuyn giao gia ng thng sang ng cong v gia ng cong sang

ng cong hng khc ta tt 2 ng c pht ng ton b ngun cung cp cho rc servo


b li ( thc t ch trong 20 40 ms ) xe c th chy vn tc n nh cao hn bnh
thng. V khi pht hin xe lch ra khi phng chnh gia ng ua qu xa cng l khi
mch d bt c c line gia v line bin ta cho xe hm tc mnh trnh trng hp xe
vng ra khi ng ua.

Hnh 3-12. Hnh mch d bt c hai line

- tng trn c hin thc trong hm runforwardline (int tocdo)


- Bin vitri dng lu li trng thi led trc , da vo ta trnh trng hp xe
bt nhm mt trong hai line bin.
- Bin brake_flag, hm brake(int time), hm brake_timer (int time, int speed) dng
hin thc tng cho xe hm tc mi khi qua on chuyn giao ng thng thnh ng
cong hay ng cong thnh ng cong khc hng.
- Hm brake (int time) l hm hm tc bng cch cho vn tc hai bnh bng 0 (speed
(0,0) ) m vn iu khin b li servo cho xe hng theo line tng t nh hm
runforwardline ( ).
- Hm brake_timer (int time, int speed ) tng t nh hm brake ( int time ) nhng ta
c th chnh vn tc hai bnh bng thng s speed truyn vo hm. Hm dng hm tc
mnh.
- Xem cch hin thc cc hm nu trn trong sourecode nh km.

3.4. S trng thi khi qua on ng cua vung


- Th t cc s kin khi qua on cua vung:

www.bkit4u.com

- 38 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

Hnh 3-13. Cc trng thi trong khi cua vung

www.bkit4u.com

- 39 -

Chng trnh BKIT MCR

Bkit Hardware Club Bkit4u


- S trng thi:
Bt c line
ngang hm tc
cho xe chy
chm li

Chy chm
theo line cho
n khi bt
c na line

Ch n khi n
vng ton mu en
th cho xe quo
sang tri hay sang
phi mt gc ln

Ch n khi 2
sensor bin bt
c line

Kt thc cua
vung chuyn
sang trng thi
chnh I

X l cc on
ng thng v
ng cong
(I)

Hnh 3-14. S cc trng thi trong khi cua vung

- Cho xe chy n khi ton b sensor u nhn c mu en ri mi b cua gip cho


xe trnh c li quo sm ngay khi gp hai vch trng bo hiu.
- Tham kho gii thut trong hm int turn90(int tocdo)

3.5. S trng thi khi qua chuyn ln phi


- Th t cc s kin khi qua chuyn ln phi:

Hnh 3-15. Cc trng thi khi chuyn ln phi

www.bkit4u.com

- 40 -

Chng trnh BKIT MCR

Bkit Hardware Club Bkit4u


- S trng thi:

Bt c na
line ngang phi

Chy theo line


n khi gp
c vng en

X l on
ng cua
0
vunng 90
( IV )
Ch n khi 2
sensor bin bt
c line trng

Kt thc chuyn
ln phi, chuyn
v trng thi chnh
I

Cho xe quo
phi vi mt
gc c nh

X l cc on
ng thng v
ng cong
(I)

Hnh 3-16. S trng thi khi qua chuyn lan phi

- Tham kho gii thut trong hm int changewayright(int tocdo)

3.6. S trng thi khi qua chuyn ln tri


- Tng t nh chuyn ln phi.

3.7. Hm test ( ) dng test cc b phn xe


- Hin thc trong hm void test()
- Case 0: ( chn swicth trn board vi iu khin ) n bt k nt nhn no trong 4 nt
trn board vi iu khin th xe t ng cp nht adc ca mu trng. Sau ta qut mch d
xem cc led hin th xem xe c nhn c mu en khng nu khng ta c th chnh li mc
tnh adc compare trong hm update_vcompare().
- Case 1: dng test 2 ng c bnh, nhn K0 ng c tri quay tin, nhn K1 ng
c tri quay li, nhn K2 ng c phi quay tin, nhn K3 ng c phi quay li. Nu cc

ng c khng chy theo ng nh vy th tt nht nn o cc zack cm nu o ln ng


c tri v phi, hay o dy en ca zack cm nu ng c khng quay ng chiu nu
trn; khng nn chnh sa chng trnh.

www.bkit4u.com

- 41 -

Bkit Hardware Club Bkit4u

Chng trnh BKIT MCR

- Case 2: dng test ng c servo, nu nhn K0 hoc K1 servo b sang phi, nu


nhn K2 hoc K3 servo b sang tri. Nu servo khng b ng chiu nh trn th nn chnh
sa li cc tnh gc trong hm handle (). C th l sa du cng thnh tr hoc ngc li.
Ch c khi hai servo cng loi cng nhn hiu nhng li ngc chiu quay l chuyn bnh
thng.

www.bkit4u.com

- 42 -

You might also like