You are on page 1of 111

N GIAO THNG THNG MINH

Chng 1 GII THIU TNG QUT V TI TT NGHIP


1.1. Gii thiu v cc ng dng cXC x l nh trong thc t:
Cc ti nghin cu v x l nh t nm 1964 n nay khng ngng pht trin. Chng c ng dng trong k thut nhm gii quyt cc vn v nng cao cht lng thng tin nh. X l nh ngy nay c ng dng trong nhiu lnh vc. Trong y hc, cc thut ton c ng dng nng cao tng phn, m ha cc mc sng thnh cc mu ni suy nh X-quangCc nh thin vn hc, dng k thut ny nhm tch cc nhiu thu c t v tinh, tng tng phn cho nh chp nhn thy c cc chi tit m mt thng kh phn bit c. Trong vt l, k thut my tnh nng cao cht lng nh c ng dng trong cc lnh vc nh: plasmas, microscopy in t i vi ngnh in t t ng th x l nh c ng dng trong thc t nh: my nhn cng nghip kim tra sn phm, nhn dng mc tiu trong qun s, nhn dng vn tay, nhn dng ng xu, nhn dng mt ngi, cm bin mu, theo di mt giao thng C th thy cc ti lin quan n x l nh, cng nh cc ng dng ca n trong thc t th v cng rng ln. Tuy nhin, khng phi bt c mt ng dng no ca x l nh khi a vo thc t cng d dng, vic lm mt ng dng hot ng tt l c mt vn kh khn bi cc yu t ngoi cnh rt d tc ng n cng vic x l nh nh: khng gian thay i, nh sng thay i, tng phn ca nh cn x l vi mi trng khng gian l khng cao

1.2. Ni dung ti v cc ng dng c trc : 1.2.1. Ni dung ti:

Yu cu ca ti tt nghip bao gm vic thit k v ch to hon thin m hnh ti mt ng t c hai chiu lu thng, c m hnh n giao thng v camere c b tr hp hp l. M hnh l nhng chic xe c t ti hai chiu lu thng ca mt ng t, ta sp xp nhng chic xe ng vi nhiu trng hp nh : mt tha, mt bnh thng, v mt cao, ta x dng cng c matlab chp li v ra kt qu phn tch. Sau khi phn tch tn hiu s c gi xung thc hin t thi gian cho n giao thng. Tm hiu truyn thng my tnh vi vi x l To giao din ngi dng. Trang 1

N GIAO THNG THNG MINH

Tm hiu cc thut ton x l nh, bt nh trn Matlab. Phi thc hin c gii thut v chong trnh nh gi c mt lu thng thng qua cng c matlab. Trnh c cc yu t gy nhiu t mi trng ngoi nh: tng phn gia xe v nn ng khng cao. S h thng:

1.2.2. L do chn v lm ti n giao thng thng minh :


Nh ni, cng vi s pht trin khng ngng ca x l nh th hng lot cc sn phm ra i c ng dng rng ri trong thc t. Cc ti lin quan n x l nh trong giao thng ng b cng nh ng thy ngy cng c quan tm. Nhm Mt thn gm cc thnh vin ang nghin cu v cng tc ti Trung tm Cng ngh M phng Hc vin k thut qun s (B Quc phng). Vi ti: H thng ghi v t ng v qun l phng tin s dng cng ngh x l v nhn dng nh ( ot Gii nh trong cuc thi tr tu Vit Nam 2006). Cng theo nhm cng v ang nghin cu h thng qun l trt t giao thng, thng k c lu lng phng tin qua li trn ng, o tc , chp li hnh phng tin vi phm trt t giao thng nh: vt n , i sai ln ng. ti ca L Quc Anh, n t Vin tin hc Php ng H Ni (d thi TTVN 2005) vi ti Gii php gim st giao thng. Tc gi m t h thng c kh nng: bit c s lng xe trn ng, vn tc xe, chiu di hng i khi xy ra ch tc Th gii a phat trin cac chng trinh m xe va tinh vn tc t ng bng may tinh t lu nh h thng giam sat giao thng bng cng ngh x ly anh cua phong th nghim may tinh cua hang IBM, h thng m xe bng x ly anh may tinh cua trng ai hoc Berkeley (M) Trong thc t chng ta thy, ti cc ng t n xanh n c nhng lc pha bn ng ch c vi phng tin tham gia giao thng. Pha bn cn li th mt lu thng th qu cao nhng vn phi ch cho thi gian n xanh c t c nh ri mi c lu thng tip nhiu khi cn gy ra ch tc giao thng do nhng ngi khng y thc nng lng mun qua ng nhanh. V vy ti nghin cu n giao thng thng minh c a ra vi mc ch nh gi c mt lu thng ti cc ng t nhm gii quyt c vn nu trn. Theo em ngh y l mt ti ht sc mi m v th sc sinh vin. Do y l mt ti mi m v thi gian c hn nn trong qu trnh ngin cu cn gp rt nhiu kh khn trong vic x l. Em hy vng rng ti ny s c cc bn sinh vin ham thch v s pht trin ti ngy cng hon thin hn.

Trang 2

N GIAO THNG THNG MINH

1.3. Kh khn:
nh hng t tng phn gia xe v nn ng: V nn ng th c nh. Nhng cc loi xe lu thng trn ng th a dng. Do vn l s lm nh th no nu nh gia xe v nn ng c mu sc gn ging nhau? Chng hn: Nu gia chic xe v khng gian quanh n c tng phn cao. V d: Xe trng so vi nn ng mu en ( tng phn cao).

(a)

(b)

(c) Hnh 1.1 (a) nh chp t webcam, (b) nh a cp xm, (c) nh trng en

Trang 3

N GIAO THNG THNG MINH

Hnh 1.2 Biu histogram V d: Xe so vi nn ng mu en ( tng phn kh cao)

(a)

(b)

Trang 4

N GIAO THNG THNG MINH

(c) Hnh1.3 (a) Hnh xe mu chp t webcam, (b) nh xm, (c) nh trng en. Nu tng phn gia chic xe vi nn ng l thp? V d: Xe xanh so vi nn ng mu en ( tng phn thp):

(a)

(b)

Trang 5

N GIAO THNG THNG MINH

(c) Hnh 1.4 (a) Xe chp t webcam, (b) nh a cp xm, (c) nh trng en

Hnh 1.5 Biu histogram vi xe mu xanh, nn ng mu en.

? Nhn xt: T biu histogram hnh 1.5. i vi xe mu xanh, nn ng mu en r rng c tng phn rt thp (cc thnh phn histogram hp v tp trung cui). iu ny dn ti nh sau khi chuyn sang trng en hnh 1.4 (c) l khng tt. Do , khng th tnh din tch chic xe trong trng hp ny.
Nhiu bi nh sng mi trng: nh sng s bin thin theo gi gic trong ngy. Hn na, n cn chu s tc ng trc tip hoc gin tip t cc i tng nh: xe vo trm lc ban m s bt n, ngi i ng chiu n vo, n ng

Trang 6

N GIAO THNG THNG MINH

1.3.1. Cch gii quyt: V nhiu nh sng: Trong Matlab c h tr mt cng c thc hin vic san bng cc vng sng ti. I = imread('rice.png'); imshow(I)

se = strel('disk',12); J = imtophat(I,se); figure, imshow(J)

K = imadjust(J); figure, imshow(K)

Trang 7

N GIAO THNG THNG MINH

Gii quyt tng phn gia khng gian nn v xe: gii quyt cng vic tch xe th gia xe v khng gian quanh n phi c tng phn cao. Cc phng php lm th: 1. Tch mu 2. Tch bin Tuy nhin, c hai phng php u khng thc hin c v kt qu ca tch mu v tch bin c tt hay khng l ph thuc vo tng phn gia xe v khng gian quanh n. i vi nhng xe c mu sc to nn tng phn cao so vi nn ng th cng vic ny khng gp kh khn, nhng i vi nhng xe c mu sc m tng phn ca n l thp th phng php ny khng hiu qu. i vi trng hp trn ta c cch lm tng tng phn gia xe v nn ng bng cch to nn ng sao cho c nhng vch trng xen k nhng vch en, v cch lm ny rt hiu qu v ph hp vi b tr nn ng ti ng t l nhng vch trng gim tc xe.

Hnh 1.6 nn ng cho m hnh

Trang 8

N GIAO THNG THNG MINH

Chng 2 GII THIU V X L NH V MATLAB


2. Gii thiu cch thc truy cp thng tin trn help ca matlab:
Ci t: Thc hin ci t matlab 7.0 (hoc 6.5). C hai a, mt a phn mm chy chng trnh matlab 7.0 v mt a help. S dng: C th vo help tm thng tin, tp lnh lin quan Trc tip: Trong ca s command windows g: help lnh hay biu thc lin quan V d: >> help find Gin tip: Vo menu/help/demos Demos: mt s v d tham kho. Search: kim thng tin lin quan.

2.1. Qu trnh x l nh:


Qu trnh x l nh bt u bng cng vic thu nhn nh t camera hoc cc sensor bn ngoi. S ca qu trnh x l:
Camera Thu nhn nh Sensor Lu nh Phn tch nh Tin x l nh

Trch chn c trng

Hnh 2.1 S ca qu trnh x l nh Trang 9

N GIAO THNG THNG MINH

2.1.1. Thu nhn nh:


Thu nhn nh c th s dng my quay (camera), webcam, my qut (scanner) nh thu c c th l nh trng en hoc cng c th l nh mu. Tuy nhin, c th x l v tnh ton cc nh trn my tnh th ch c nh s l n gin nht. Ty thuc vo cht lng thit b thu nhn nh, cc nh s c cht lng khc nhau. iu ny nh hng ln n qu trnh tin x l nh. Cc thit b nh c th cho ra cc kt qu tng t hoc nh s cho nn nh sau khi chp phi c chuyn thnh nh s (c th dng my scanner qut li tm nh tng t, chuyn n sang nh s a ln my tnh x l).

2.1.2. Qu trnh tin x l nh:


l qu trnh x l v nng cao cht lng nh. nh sau khi thu nhn c c th cha nhiu thng tin khng cn thit nh: nhiu, le,iu ny lm cho nh c dung lng ln v c cht lng khng tt, nh hng khng nh n qu trnh x l nh. i vi ti lun vn th nh sau x l phi t c cc yu t nh: cn bng cc mc sng ti, kh nhiu, nng cao tng phn.

2.1.3. Qu trnh phn tch nh:


Phn tch nh l qu trnh bin i nh t a ra cc c trng quan trng ca nh. y l giai on quan trng nht ca qu trnh x l nh. Cc c trng ca tm nh c th l: ng bin, phn vng nh, hoc c hai

2.1.4. c trng ca nh:


nh sau khi qua cc bc tin x l v phn tch nh s a ra cc thng s ca i tng m chng ta cn quan tm ti. Cc thng s ny s c tnh ton li t chng ta c th a ra cc c trng ca tm nh. Chng ta c th s dng c trng ny nhn dng s khc bit ca: cc khun mt ngi, sn phm b li trong dy chuyn, nhn dng bin s xe Trong thc t, qu trnh x l nh th c nhiu phng php lm khc nhau v v th chng ta s c nhiu thut ton tm ra c trng ca mt tm nh l khc nhau.

Trang 10

N GIAO THNG THNG MINH

2.2. Mt s khi nim v nh s: 2.2.1. C s v mu:


Isaac Newton pht hin ra rng, nu mt chm tia sng mt tri i qua mt lng knh th chm sng khi qua n khng phi l nh sng trng. M n l mt ph mu lin tc t tm ti . nh sng l nhng ngun nng lng in t trong dy bc sng quang ph t 400nm n 700nm. Ph mu c chia thnh 6 vng mu: tm, lam, lc, vng, cam, . Nu nhn mu y th khng c ranh gii gia cc mu k nhau, m mu ny lin sang mu khc. Mu m mt ngi cm nhn c l do s phn x nh sng t vt th.

2.2.2. nh RGB:
nh RGB (nh mu) hay cn gi l nh truecolor do tnh trung thc ca n. nh ny c biu din theo mt ma trn ba chiu kch thc m x n x 3, vi m x n l kch thc nh theo pixels. Ma trn ny nh ngha cc thnh phn mu red, green, blue cho mi im nh. V d: im nh v tr (10,5) s c 3 thnh phn mu c xc nh bi cc gi tr (10,5,1), (10,5,2) v (10,5,3). Vi 1, 2, 3 l tng ng vi cc mu R, G, B.

2.2.3. nh trng en, nh a cp xm:


nh trng en ch bao gm hai mu: mu en v mu trng. Chng ta phn s bin i ny thnh L mc. Nu L bng hai tc ch c hai mc l 0 v 1 th l nh trng en, hay cn gi l nh nh phn. Nu L ln hn hai th ta c nh a cp xm. Vic xc nh s mc ny ph thuc vo tiu ch lng t ha. L thng chn l 32, 64, 128, 256. Trong nh a cp xm 256 mc l nh c cht lng cao v thng c chn. Vi nh nh phn th mi pixel m ha trn mt bit. Cn nh a cp xm 256 mc th mi pixel m ha trn tm bits. Chng ta c th thy r c nguyn l ca mt tm nh mu, cng nh nh trng en thng qua mt s lnh trong matlab:

2.2.4. V d trong matlab v nh mu v nh trng en, a cp xm:


%Thc hin ly nh RGB c sn trong my tnh, nh c lu sn ti th mc %work trong matlab, c path l: C:\ Matlab7.0\Work\file nh >> anh=imread('k.jpg'); %phi c du phy cui hng v y l mt ma trn nh %c dung lng ln.

Trang 11

N GIAO THNG THNG MINH

figure(1), imshow(anh); % trnh din nh mu RGB

Hnh 2.2 Hnh mu RGB %Thc hin tch ma trn mu ra khi nh mu RGB >> goc=anh; >> goc(:,:,2)=0; %Cho ma trn mu xanh Green bng khng >> H1=goc; >> H1(:,:,3)=0; %Cho ma trn mu xanh Blue bng khng >> figure(2),imshow(H1);

Hnh 2.3 Mu R tch t RGB Trang 12

N GIAO THNG THNG MINH

%Thc hin chuyn i nh mu thnh nh a cp xm, tng tng phn v chuyn thnh nh trng en. >> T1=rgb2gray(anh); %chuyn thnh nh a cp xm >> figure(3),imshow(T1); >> tuong_phan = imadjust(T1); %tng tng phn >> figure(4),imshow(tuong_phan); >>lay_nguong = graythresh(tuong_phan); %ly ngng theo thut ton otsu >> trang_den = im2bw(tuong_phan,lay_nguong); %nh trng en >> figure(5),imshow(trang_den);

Hnh 2.4 nh a cp xm

Hnh 2.5 nh trng en

Trang 13

N GIAO THNG THNG MINH

2.2.5. nh dng nh:


nh Bitmap (Microsoft Windows Bitmap (*.BMP)): L nh c nh dng theo chun do Microsoft a ra. Vi nh dng ny, nh c chuyn m v c lu li y thng tin. Tuy nhin, nh c nh dng theo dng ny c dung lng rt ln v n khng c nn. nh GIF (Graphic Interchanger Format (*.GIF)): c nh dng theo chun nn LZW da trn s lp li ca mt nhm im nh thay v cc m lot di nh cc nh dng khc nn dung lng lu tr nh hn. nh GIF thng c dng lu tr cc nh n gin v t c s chuyn i mu gia cc vng nh. Chng hn cc nh ha hay th, biu Tuy nhin, nh GIF c cht lng cao, phn gii ha cao, c th hin th trn hu ht cc phn mm ha. nh JPEG (Joint Photographic Expert Group (*.JPEG hay *.JPG)): nh JPEG l chun nn nh tnh c mt mt, thng c dng lu tr cc nh mu hoc cc nh a mc xm khi khng c yu cu cao v nh gii nn phi ging hon ton nh gc. Dung lng ca nh JPEG thng rt nh. Ngi dng c th ch ng dung lng ca nh lu tr bng cch chn t l nn nhiu hay t. nh lu vi nh dng JPG c th lu c 24 bits/pixel d liu mu (tng ng 16 triu mu).

2.3. Cc phng php x l nh trong qu trnh tin x l: 2.3.1. Thay i tng phn:
Trong nh s, mi im nh c mt gi tr sng khc nhau mt ngi c th nhn thy v cm nhn. Tuy nhin, nu hai i tng c cng sng nhng t trn hai nn nh khc nhau th cho chng ta cc cm nhn khc nhau. Khi nim tng phn c a ra biu din s thay i sng ca i tng so vi nn, hay ni ca im nh (vng nh) so vi vng nn cha n. nh vi tng phn thp c th do iu kin sng khng , khng u, hoc s tng i ging nhau v mu sc, nh sng gia i tng v khng gian quanh i tng hoc do tnh khng tuyn tnh hay bin ng nh ca b cm nhn nh. iu chnh li tng phn ca nh, ta iu chnh li bin trn ton di hay trn di c gii hn bng cch bin i tuyn tnh u vo (dng hm bin i l hm tuyn tnh) hay phi tuyn (hm m hay hm logarit). Thay i tng phn dng trong matlab: >> anh=imread('race_02.jpg'); >> figure(1),imshow(anh); >> T1=rgb2gray(anh); >> figure(3),imshow(T1); Trang 14

N GIAO THNG THNG MINH

>> tuong_phan = imadjust(T1); %to nn tng phn vi imadjust >> figure(4),imshow(tuong_phan); >> lay_nguong = graythresh(tuong_phan); >> trang_den = im2bw(tuong_phan,lay_nguong); >> figure(5),imshow(trang_den);

Hnh 2.6 nh cha tng tng phn

Hnh 2.7 nh sau khi tng tng phn Cng thc chung cho lnh imadjust (i vi tt c cc nh xm, mu) l: >> J = imadjust(I,[low_in; high_in], [low_out; high_out],gamma); Trong : I: l ma trn nh gray. [low_in; high_in]: l gi tr mc xm nh ban u. Nu tng ng ta nhp thng s l [0 1] th mc nh l kiu uint8, [0 1] tng ng vi mc lng t ca tm nh l t [0 255], vi uint16 th [0 1] tng ng vi [0 65535]. [low_out; high_out]: l gi tr mc xm nh sau bin i. Cc gi tr c chn ca n nm trong khong [0 1], tng t nh [low_in; high_in]. Gamma: Nu gamma nh hn 1 th nh sau bin i phi tuyn vi nh ban u, theo hm m dng:

Trang 15

N GIAO THNG THNG MINH

Nu gamma bng 1 th nh sau bin i s t l tuyn tnh vi nh ban u

Nu gamma ln hn 1 th nh sau bin i phi tuyn vi nh ban u theo hm m dng:

Ch : Ta c thay i cc thng s ca [low_in; high_in] hoc [low_out; high_out] to nn nhng tm nh m bn. Thc hin vi Matlab: >> T1=rgb2gray(anh); % bin i thnh nh mc xm >> figure(3),imshow(T1); >> tuong_phan = imadjust(T1,[0 1],[1 0]); % to nh m bn >> figure(4),imshow(tuong_phan); Trang 16

N GIAO THNG THNG MINH

>> lay_nguong = graythresh(tuong_phan); >> trang_den = im2bw(tuong_phan,lay_nguong); >> figure(5),imshow(trang_den); >> T2=rgb2gray(anh); >> figure(6),imshow(T2); >> tuong_phan = imadjust(T1,[0 0.75],[0 1]); >> figure(7),imshow(tuong_phan);

Hnh 2.8 nh m bn

Hnh 2.9 nh tng tng phn

2.3.2. Lm bng histogram:


Histogram ca mt nh s vi cc mc xm nm trong di [0, L-1] l mt hm ri rc h(rk)=nk. Trong , rk l mc xm th k v nk l s im nh c mc xm rk. Trong thc t, histogram thng c chun ha bng cch chia mi gi tr ca n cho tng s im nh, k hiu l n. Do , histogram chun ha cho bi p(r k)=nk/n, vi k=0, 1, 2, , L-1.

Trang 17

N GIAO THNG THNG MINH

V d 1: >> anh=imread('huanrace.jpg'); >> figure(1),imshow(anh); >> T2=rgb2gray(anh); >> figure(6),imshow(T2); >> figure(8),imhist(T2,64); % trnh din th histogram

Hnh 2.10 nh xm

Hnh 2.11 Biu Histogram

Trang 18

N GIAO THNG THNG MINH

? Nhn xt: T biu Histogram ta thy cc thnh phn Histogram vng sng v vng ti dn tp trung v hai gc ca biu (vng ti l c gi tr t (0 n 50) tp trung kh nhiu, vng sng t (200 n 250) cng kh nhiu). iu ny chng t y l mt tm nh c tng phn cao. V d 2: Thc hin tng t nh trn vi mt tm nh khc.

Hnh 2.12 nh xm

Hnh 2.13 Biu Histogram

Trang 19

N GIAO THNG THNG MINH

? Nhn xt: biu ny, cc thnh phn Histogram tp trung hp v nm gia biu thang xm. V th, y l mt tm nh c tng phn thp. V d 3:

Hnh 2.14 nh a cp xm

Trang 20

N GIAO THNG THNG MINH

Hnh 2.15 Biu Histogram

Trang 21

N GIAO THNG THNG MINH

? Nhn xt: Biu Histogram hnh 2.15. Cc thnh phn histogram tp trung hp v b phn cc v pha thp ca biu . Do , y l mt tm nh c tng phn thp v ti. Trong matlab c h tr hm strectchlim. Hm ny tnh ton histogram ca nh v xc nh cc gi tr gii hn ca mc xm mt cch t ng. N tr v mt vector m ta c th dng lm cp thng s [low_in; high_in] cung cp cho hm imadjust (trong trng hp mc nh, hm imadjust s dng hm stretchlim to ra cp [low_in; high_in] nu ngi s dng khng cung cp). Bnh thng hm stretchlim s ly gi tr mc xm nm mc 1% v 99% trong vng bin thin mc xm ca nh. Tuy nhin, ta cng c th thay i m rng hoc thu hp cc gii hn ny bng cch cung cp thm cc thng s tol cho hm stretchlim. l mt vector gm hai phn t thuc [0 1] cho bit ta s chn cc gii hn mc no trong vng bin thin mc xm (mc nh l [0.01 0.99]).
>> [low, high]=stretchlim(I, tol) >> H1=imread('chup_02.png'); >> H1=rgb2gray(H1); >> figure(3), imshow(H1); >> l=stretchlim(H1,[0 1]); >> ans l= 0.0196 0.9882

2.4. Cc phng php pht hin bin nh:


Ton t sobel: BW = edge(I,'sobel') >> H1=imread('huanrace.jpg'); >> H1=rgb2gray(H1); >> figure(3), imshow(H1); >> BW = edge(H1,' prewitt); >> figure(6), imshow(BW);

Trang 22

N GIAO THNG THNG MINH

Hnh 2.16 nh ban u

Hnh 2.17 nh sau khi tch bin vi sobel

Trang 23

N GIAO THNG THNG MINH

ng dng vi prewitt:

Hnh 2.18 nh sau khi tch bin vi prewitt Ngoi hai phng php tch bin trn, th trong matlab cn h tr mt s phng php khc nh: Roberts: BW = edge(I,'roberts') BW = edge(I,'roberts',thresh) [BW,thresh] = edge(I,'roberts',...) Log: BW = edge(I,'log') Zerocross: BW = edge(I,'zerocross',thresh,h) Canny BW = edge(I,'canny')

Trang 24

N GIAO THNG THNG MINH

2.5. Matlab vi cc php tnh ma trn:


Nhp ma trn: >>A = [ 1 2 3; 4 5 6 ; 7 8 9] ans = 1 2 3 4 5 6 7 8 9 Chuyn mt vector hng thnh ct v ngc li: >> A' ans = 1 4 7 2 5 8 3 6 9 Tm v tr cc phn t trong mt ma trn: >> [i,j]=find(A>5) i= 3 3 2 3 j= 1 2 3 3 Vi i l hng, tng ng vi ct j trong ma trn c gi tr ln hn 5. Ma trn rng: F=[]; Xa hng v ct trong ma trn: Thc hin xa hng th hai. >> A(:,2)=[] A= 1 3 4 6 7 9

Trang 25

N GIAO THNG THNG MINH

Quay ma trn: B=rot90(A) B= 3 6 9 2 5 8 1 4 7 Kch thc ma trn: >> size(B) ans = 3 3 Tc ma trn c 3 hng, 3 ct. Tm gi tr ln nht trong mi ct ma trn: >> A = [1 2 3 ; 4 5 6; 7 8 9] A= 1 2 3 4 5 6 7 8 9 >> v=max(A) v= 7 8 9 Tm gi tr nh nht trong mi ct ma trn: >> v=min(A) v= 1 2 3 S chiu ca ma trn: >> n=rank(A) n= 2

Trang 26

N GIAO THNG THNG MINH

Mt s hm c v lu nh: Hm Axis Image, imshow Imread Immovie Imwrite Imfinfo Ind2rgb Imview Mc ch V trc Hin th nh c nh t file nh c sn To phim t nhiu khun hnh Lu nh Ly thng tin nh i nh ch s sang nh RGB Hin th nh, c th a du nhc chut vo nh ny xem thng tin (mu sc, v tr cc pixels)_

V d: c nh c sn trong my tnh: >> anh=imread('d:\dien_tu\m.png'); >> image(anh);

Hnh 2.19 nh c t my tnh.

Trang 27

N GIAO THNG THNG MINH

2.6. Bt nh:
Giao tip my tnh vi webcam: Mua mt webcam c km theo a driver. Nu c webcam m khng c driver th c th tm thng tin ca hng bn webcam (c ghi trn sn phm), c th vo Phong V nh k thut vin chp phn mm driver vo USB. Ci a driver v my tnh (rt d dng). Cm u ni webcam vo cng USB. M chng trnh chy, lc ny my tnh c th giao tip vi webcam. Matlab giao tip vi Webcam: Trong qu trnh x l nh, mun chp, quay phimx l nh mt cch trc tip t webcam vi phn mm matlab. Th cn phi thc hin nhng bc sau: 1. Phi c file vfm.dll (File ny c th i xin thy, bn b). 2. Sau khi c file vfm.dll th thc hin chp file ny vo a ch: C:/Windows/System32. 3. Lc ny, matlab c th hot ng giao tip vi webcam. V d: Thc hin thu nh t webcam: >> vid=videoinput(winvideo,1); % khai bo ng vo cho webcam >> preview(vid); % trnh din nh ng thu c t webcam >> chup_hinh=getsnapshot(vid); % chp hnh nh ng. >> figure(2), imshow(chuphinh2); % trnh din nh tnh va chp >> imwrite(chuphinh2, 'chup.png', 'png'); % lu li nh va chp trong matlab/work >> delete(vid); >> clear vid; % thc hin xa v ng ng vo.

2.7. To giao din ngi s dng:


Giao din ngi s dng (Graphical User Interface - GUI) l giao din bng hnh nh ca chng trnh. Mt GUI tt c th lm cho chng trnh tr nn d s dng bng cch cung cp nhng thng tin ban u cn thit v vi nhng cng c iu khin nh: nt nhn (Pushbutton), hp lit k (list box), thanh trt (slider), trnh n (menu),GUI nn c thit k mt cch d hiu v thn thin ngi s dng c th hiu v d on c kt qu ca mt tc ng.

2.7.1. Cch lm vic ca mt GUI:


GUI bao gm cc nt nhn, hp lit k, thanh trt, menu, chng cung cp cho ngi s dng mt mi trng lm vic thn thin.

Trang 28

N GIAO THNG THNG MINH

Vi GUI th ngi s dng ch cn hiu c cch ng dng ca n, khng cn i chi tit qu su vo chuyn mn, khng cn hiu r cch thc lm vic ca chng trnh nh th no. Tuy nhin, to mt GUI l mt cng vic rt kh khn i vi ngi lp trnh bi v GUI trong matlab th cha c ph bin, nghin cu k, cc hng dn cng nh v d ng dng l cha nhiu. Cc thnh phn chnh trong mt GUI ca matlab: - Component (cc thnh phn cu thnh): mi i tng trong GUI (nt nhn, nhn, hp son tho,) sau khi kt hp li th to thnh mt GUI hon chnh. - Cc thnh phn phn loi thnh: o Cng c iu khin: nt nhn, hp son tho, thanh trt, o Cc thnh phn tnh: khung hnh, chui k t, o Menu v axes: l cc h trc dng hin th hnh ha. o Figure: cc thnh phn ca GUI phi c sp xp vo trong mt figure, l mt ca s c hin th trn mn hnh my vi tnh. o Callback: cui cng, khi ngi s dng tc ng vo chng trnh bng cch nhn chut, hay g bn phm th chng trnh phi p ng li mi s kin ny. Cng c Cc cng c iu khin Pushbutton To bi hm Uicontrol Miu t L mt nt nhn. N s gi hm khi ta nhn vo n L nt nhn c hai trng thi l on v off. Khi c tc ng n s gi hm tng ng v thay i trng thi t on sang off v ngc li. Cng l mt nt nhn c hai trng thi c th hin bi mt vng trn nh, trng thi on tng ng vi trng hp c du chm chm gia vng trn v ngc li off. Trong mt nhm Radio button ta Trang 29

Toggle button

Uicontrol

Radio button

Uicontrol

N GIAO THNG THNG MINH

Check box

Uicontrol

List box

Uicontrol

Popup menus

Uicontrol

ch c th chn c mt thnh phn. Khi c tc ng vo mi thnh phn s c mt hm c gi. Cng l mt nt nhn c hai trng thi c th hin bi mt hnh vung nh, trng thi on tng ng vi trng hp c nh du gia hnh vung v ngc li l trng thi off. Khi c tc ng n s gi hm tng ng v thay i trng thi t on sang off hoc ngc li. L mt danh sch cc chui. Ngi s dng c th chn mt chui bng cch click hoc double click vo n. Chng trnh s gi mt hm khi c mt chui c chn. L cng c cho php chng ta chn mt chui trong mt nhm cc chui. Danh sch tt c cc chui s c hin th khi c click chut. Khi khng c click chut cng c ch th hin chui hin ti c chn.

Trang 30

N GIAO THNG THNG MINH

Slider

Uicontrol

L cng c cho php iu chnh mt cch lin tc gi tr trong mt thanh trt. Mi khi gi tr ca thanh trt thay i s c hm c gi. c s dng to ra mt khung hnh ch nht. Frame cn c s dng nhm cc cng c iu khin li vi nhau. Frame khng c kh nng gi hm. c s dng to ra mt nhn bao gm cc k t. Text field khng c kh nng gi hm. c s dng to ra menu trn thanh cng c. Chng trnh s gi hm khi mt i tng trong menu c chn. c s dng to mt h trc th. Axes khng c kh nng gi hm. c s dng to ra menu xut hin khi righ click vo mt hnh trong giao din.

Cc thnh phn tnh Frame

Uicontrol

Text field

Uicontrol

Menu v trc th Menu items

Uicontrol

Axes

Axes

Context menus

Uicontextmenu

Trang 31

N GIAO THNG THNG MINH

Hnh 2.20 Mt s thnh phn trong giao di

2.7.2. To v hin th mt GUI:


M mn hnh GUI: Vo Matlab 7.0\menu\GUIDE. Chn Create New Gui. V d: To mt giao din nh gi mt lu thng trn ng t tm hnh cho trc_c s pht trin lun vn n giao thng thng minh.

Hnh 2.21 to giao din iu khin Phn tch: Chng cn c: Nm nt Pushbutton, by Text field, hai Axes. Bc 1: Vo Menu\Gui phc ha giao din c dng nh hnh v:

Trang 32

N GIAO THNG THNG MINH

Bc 2: Lu li giao din vi tn l: giaodien_doan3. Sau khi lu th ta s c hai file l: giaodien_doan3.fig v giaodien_doan3.m. Vi giaodien-doan3.fig l file chy giao din v giaodien_doan3.m l file code chng trnh.

Hnh 2.22 Ca s thc hin vit chng trnh cho giao din Bc 3: Quay li giaodien_doan3.fig thay i mt s thuc tnh cho cc nt nhn v textfield. Nhn double click vo nt pushbutton th nht ta s thy ca s thuc tnh hin ra

Hnh 2.23 Ca s thuc tnh cho nt Pushbutton th nht Trang 33

N GIAO THNG THNG MINH

Trong ca s thuc tnh ca nt nhn Pushbutton th nht vo: Vo Style g: ANH NEN. Vo FontSize chn kch c ch l 10.0. Vo FontWeigh chn kiu ch m l bold. Tng t cho nt nhn Pushbutton th hai,ba,bn,nm ln lt: Thay Style: ANH SO SANH, PHAN TICH ANH, RESET, CANCEL i vi textfield th v bng thuc tnh chn Style sau ghi: Danh Gia Mat Do Luu Thong cho text10, TRUONG DAI HOC TON DUC THANG,KHOA DIENDIEN TU.cho cc text cn li Sau khi thay i thuc tnh ta c mn hnh giao din sau:

Hnh 2.24 giao din chnh

2.7.3. Lp trnh cho Gui:


function pushbutton2_Callback(hObject, eventdata, handles) H1=imread('anh nen1.jpg'); imnen=image(H1,'parent',handles.axes7); function pushbutton3_Callback(hObject, eventdata, handles) global H3 H2 [filename, pathname, filterindex]=uigetfile( ... {'*.jpg','JPEG File (*.jpg)'; ... '*.*','Chon file anh bat ky (*.*)'}, ... Trang 34

N GIAO THNG THNG MINH

'Chon 1 buc anh'); var=strcat(pathname,filename); H2=imread(var); H3=image(H2,'parent',handles.axes8); function pushbutton1_Callback(hObject, eventdata, handles) H1=imread('anh nen1.jpg'); global H3 H2 [filename, pathname, filterindex]=uigetfile( ... {'*.jpg','JPEG File (*.jpg)'; ... '*.*','Chon file anh bat ky (*.*)'}, ... 'Chon 1 buc anh'); var=strcat(pathname,filename); H2=imread(var); H2=H2(42:351,120:502,:); figure(3),imshow(H2),title('Anh xe duoc phan vung gioi han'); a2=rgb2gray(H2); figure(),imshow(a2); H1=H1(42:351,120:502,:); figure(5),imshow(H1),title('Anh goc duoc phan vung gioi han'); a1=rgb2gray(H1); figure(),imshow(a1); a3=imabsdiff(a2,a1); a3 = medfilt2(a3); figure(6),imshow(a3); for i=1:310 for j=1:383 if 0<=a3(i,j) & a3(i,j)<=20 a3(i,j)=0; else a3(i,j)=a2(i,j); end end end figure(7),imshow(a3); b3 = imadjust(a3); b3 = medfilt2(b3); figure(8),imshow(b3); H= bwareaopen(b3,500); Trang 35

N GIAO THNG THNG MINH

figure(13),imshow(H); %_______thuc hien tim gioi han cua hinh can tach_________ [m,n]=size(H); for i=1:m for j=1:n if H(i,j)==1 h1=i; break; end end end for i=m:-1:1 for j=1:n if (H(i,j)==1) h2=i; break; end end end for j=1:n for i=1:m if (H(i,j)==1) c1=j; break; end; end; end; for j=n:-1:1 for i=1:m if (H(i,j)==1) c2=j; break; end; end; end; H3=H(h2:h1,c2:c1); figure(10),imshow(H3); dt_nenduong=m*n Trang 36

N GIAO THNG THNG MINH

[q,t]=size(H3); p=0; for i=1:q; for j=1:t; if H3(i,j)==1 p=p+1; end end end dt_chiemcho=p dt_tyle=(dt_chiemcho/dt_nenduong)*100 if 0<=dt_tyle&dt_tyle<=25 %disp('mat do luu thong thua') set(handles.text10,'string','Mat Do Luu Thong Thua'); else if 25<dt_tyle&dt_tyle<39 %disp('mat do luu thong binh thuong') set(handles.text10,'string','Mat Do Luu Thong Binh Thuong'); else if 39<dt_tyle&dt_tyle<100 %disp('mat do luu thong qua cao') set(handles.text10,'string','Mat Do Luu Thong Qua Cao'); end end end function pushbutton4_Callback(hObject, eventdata, handles) global IMG IMG1; IMG=IMG1; image(IMG) function pushbutton5_Callback(hObject, eventdata, handles) close;

Trang 37

N GIAO THNG THNG MINH

2.8. Kt qu:
Sau khi chy chng trnh ta thu c kt qu sau:

Hnh 2.25 nh gc v nh c so snh

Trang 38

N GIAO THNG THNG MINH

Hnh 2.26 nh gc v nh c so snh sau khi c phn vng gii hn

Trang 39

N GIAO THNG THNG MINH

Hnh 2.27 nh gc v nh c so snh sau khi c chuyn v nh a cp sm

Trang 40

N GIAO THNG THNG MINH

Hnh 2.28 nh sau khi thc hin php tr tuyt i

Hnh 2.29 nh tr c x l

Trang 41

N GIAO THNG THNG MINH

Hnh 2.30 nh sau khi tng tng phn v lc trung v

Hnh 2.31 nh sau khi c trch chn c trng

Trang 42

N GIAO THNG THNG MINH

Hnh 2.32 nh c trng sau khi c ly gii hn y chnh l c trng cui cng ca vic x l nh. T hnh nh cui cng ny ta c th tnh c din tch mu trng ca xe chim ch,t ta suy ra c t l din tch gia nn ng v t nh gi c mt lu thng trn ng.

Hnh 2.33 nh giao din sau khi phn tch xong Trang 43

N GIAO THNG THNG MINH

Mt s ng dng khc trong to giao din: Nhn nt gi xung vi x l mt k t A. Bc 1: To mt mn hnh giao din c nt Pushbutton. Sau , lu li giao din ny. C th thay i thuc tnh ca nt nhn ty thch. Bc 2: Trong file.m ta vit chng trnh cho hm con callback gi v nhn k t vi x l. function pushbutton1_Callback(hObject, eventdata, handles) s=serial('COM1','BAUDRATE',9600,'DATABITS',8); % Chn cng COM1, tc baud l 9600, gi k t 8 bits fopen(s); % M cng COM fprintf(s,'A'); % Truyn xung vi x l ch A out = fscanf(s); % Nhn d liu t vi x l a ln. fclose(s); delete(s); clear s; % ng v xa COM

Hnh 2.34 Giao tip my tnh vi vi x l Xc nh trng thi ca nt Toggle Buttons: Bc 1: Phc tho v to giao din c mt nt toggle button, v mt text field.

Hnh 2.35 Nt Toggle button

Trang 44

N GIAO THNG THNG MINH

Bc 2: Vit chng trnh cho Callback: function togglebutton1_Callback(hObject, eventdata, handles) % hObject handle to togglebutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hint: get(hObject,'Value') returns toggle state of togglebutton1 state=get(handles.togglebutton1,'Value'); if state == 0 set(handles.Text2,'String',') else set(handles.Text2,'String','') end

2.9. Xut nhp qua cng ni tip:


Trong matlab h tr cc lnh truyn thng qua cng COM. V d: Truyn xung Vi x l ch M. s=serial('COM1','BAUDRATE',9600,'DATABITS',8); fopen(s); fprintf(s,'M'); out = fscanf(s) fclose(s); delete(s); clear s; Trong : s=serial('COM1','BAUDRATE',9600,'DATABITS',8); L thc hin truyn ni tip thng qua cng COM 1, tc baud c chn l 9600, truyn 8 bits d liu. Sau khi ci t cc thng s truyn thng trn my tnh th chng ta thc hin lnh fopen(s). Lnh ny cho php m cng COM trn my tnh. My sn sng i tn hiu gi xung Vi x l. Lnh fprintf(s, M): Gi ch M xung Vi x l. Lnh fscanf(s): Nhn tn hiu (d liu) t Vi x l gi ln. fclose(s), deletet(s), clear s: ng cng truyn thng ni tip, xa tn hiu cng ni tip khi b nh (Remove a serial port object from memory), xa cc kt qu ( tnh ton) v cng truyn thng ra khi ca s lm vic (workspace).

Trang 45

N GIAO THNG THNG MINH

Lu cho truyn thng ni tip vi Matlab:


t thng s truyn thng (cng COM) cho my tnh

M cng COM

Gi d liu cho VXL

Nhn d liu t VXL

ng, xa cc tn hiu ca cng COM

Hnh 2.36 Lu truyn thng ni tip trn Matlab

Trang 46

N GIAO THNG THNG MINH

Chng 3 GII THIU V VI X L AT89C51


3.1. Gii thiu v AT89C51:
La mt Microcomputer 8 bit, loai CMOS, co tc cao va cng sut thp vi b nh Flash co th lp trinh c. No c san xut vi cng ngh b nh khng bay hi mt cao cua hang Atmel, va tng thich vi chun cng nghip cua 80C51 va 80C52 v chn ra va b lnh. Mt s nha san xut c phep cung cp cac IC tng thich vi cac san phm MCS-51 cua Intel la Siemens, Advanced Micro Devices, Fujitsu, Philips, Atmel

3.2. S khi:

Hnh 3.1: S khi ca AT98C51

Trang 47

N GIAO THNG THNG MINH

3.3. c trng ca AT89C51:


+ Tng thich vi cac san phm MCS-51. + 4KByte b nh Flash co th lp trinh lai vi 1000 chu ky oc/xoa. + Hoat ng tinh y u: 0Hz n 24MHz. + Kha b nh chng trinh ba cp. + 128 x 8 bit RAM ni . + 32 ng xut-nhp lp trinh c (tng ng 4 port) . + Hai timer/counter 16 bit . + Mt port ni tip song cng lp trinh c . + Mach ng h va b dao ng trn chip .

3.4. Cu hinh chn cua AT89C51:

Hnh 3.2: Cc chn ca AT89C51 AT89C51 co tt ca 40 chn. Mi chn co chc nng nh cac ng I/O (xut/nhp), trong o 24 chn co cng dung kep: mi ng co th hoat ng nh mt ng I/O hoc nh mt ng iu khin hoc nh thanh phn cua bus ia chi va bus liu. M ta chn: + VCC (chn 40): Chn cp ngun. + GND (chn 20): Chn ni t. + Port 0: la mt port xut/nhp song hng cc mang h 8 bit. Nu c s dung nh la mt ngo xut thi mi chn co th keo 8 ngo vao TTL. Khi mc 1 c vit vao cac chn cua port 0, cac chn nay co th c dung nh la cac ngo nhp tng tr cao. Port 0 co th c inh cu hinh hp knh gia bus ia chi va bus d liu Trang 48

N GIAO THNG THNG MINH

(phn byte thp) khi truy cp n b nh d liu va b nh chng trinh ngoai. ch nay, P0 co cac in tr pullup bn trong. Port 0 cung nhn cac byte code (byte ma chng trinh) khi lp trinh Flash, va xut ra cac byte code khi kim tra chng trinh. Cn co cac in tr pullup bn ngoai khi thc hin vic kim tra chng trinh. + Port 1: Port 1 la mt port xut/nhp song hng 8 bit co cac in tr pullup bn trong. Cac b m ngo ra cua port 1 co th keo hoc cung cp 4 ngo nhp TTL. Khi mc 1 c vit vao cac chn cua port 1, chung c keo ln cao bi cac in tr pullup ni va co th c dung nh la cac ngo nhp. Nu ong vai tro la cac ngo nhp, cac chn cua port 1 (c keo xung thp qua cac in tr bn ngoai) se cp dong IIL do cac in tr pullup bn trong. + Port 2: Port 2 la mt port xut/nhp song hng 8 bit co cac in tr pullup bn trong. Cac b m ngo ra cua port 2 co th keo hoc cung cp 4 ngo vao TTL. Khi cac mc 1 c vit vao cac chn cua port 2 thi chung c keo ln cao bi cac in tr pullup ni va co th c dung nh cac ngo vao. Khi c dung nh cac ngo vao, cac chn cua port 2 (c keo xung qua cac in tr bn ngoai) se cp dong IIL do co cac in tr pullup bn trong. Port 2 phat ra byte cao cua ia chi khi oc t b nh chng trinh ngoai va khi truy cp b nh d liu ngoai dung cac ia chi 16 bit (MOVX @DPTR). Trong ng dung nay, no dung cac in tr pullup ni "manh" khi phat ra cac mc 1. Khi truy cp b nh d liu ngoai dung cac ia chi 8 bit (MOVX @RI), port 2 phat ra cac ni dung cua thanh ghi chc nng c bit P2. Port 2 cung nhn cac bit cao cua ia chi va mt vai tin hiu iu khin khi lp trinh va kim tra Flash. + Port 3: Port 3 la mt port xut-nhp song hng 8 bit co in tr pullup ni bn trong. Cac b m ngo ra cua port 3 co th keo hoc cung cp 4 ngo vao TTL. Khi cac mc 1 c vit vao cac chn cua port 3 thi chung c keo ln cao bi cac in tr pullup ni va co th c dung nh cac ngo vao. Khi c dung nh cac ngo vao, cac chn cua port 3 (c keo xung qua cac in tr bn ngoai) se cp dong IIL do co cac in tr pullup bn trong.

3.5. Cac chc nng chuyn i trn Port 3:


+ RST (chn 9): Ngo vao reset. Mt mc cao trn chn nay khoang hai chu ky may trong khi b dao ng ang chay se reset thit bi. + ALE/ PROG: ALE la mt xung ngo ra cht byte thp cua ia chi trong khi truy cp b nh ngoai. Chn nay cung la ngo nhp xung lp trinh (PROG) khi lp trinh Flash. Khi hoat ng binh thng, ALE c phat vi mt ty l khng i la 1/6 tn s b dao ng va co th c dung cho cac much ich timing va clocking bn ngoai. Tuy nhin, lu y rng mt xung ALE se bi bo qua mi khi truy cp b nh d liu ngoai. Nu mun, hoat ng ALE co th cm c bng cach set bit 0 cua Trang 49

N GIAO THNG THNG MINH

SFR tai ia chi 8Eh. Nu bit nay c set, ALE chi dc hoat ng khi co mt lnh MOVX hoc MOVC. Ngc lai, chn nay c keo ln cao bi cac in tr pullup "nhe". Vic set bit cm-ALE khng co tac dung khi b vi iu khin ang ch thi hanh ngoai. + PSEN (Program Store Enable): la xung oc b nh chng trinh ngoai. Khi AT89C51 ang thi hanh PSEN c kich hoat hai ln mi chu ky may, nhng hai ma (code) t b nh chng trinh ngoai, hoat ng PSEN se bi bo qua mi khi truy cp b nh d liu ngoai. + EA/Vpp: EA (External Access Enable) phai c ni vi GND cho phep thit bi oc code t b nh chng trinh ngoai co ia chi t 0000H n FFFFH. Tuy nhin, lu y rng nu bit khoa 1 (lock-bit 1) c lp trinh, EA se c cht bn trong khi reset. EA phai c ni vi Vcc khi thi hanh chng trinh bn trong. Chn nay cung nhn in ap cho phep lp trinh Vpp=12V khi lp trinh Flash (khi o ap lp trinh 12V c chon). + XTAL1 va XTAL2: la hai ngo vao va ra cua mt b khuch ai dao ng nghich c cu hinh dung nh mt b dao ng trn chip.

Hnh 3.3: Cch gn thch anh vi AT89C51 Khng co yu cu nao v duty cycle cua tin hiu xung ngoai,vi ngo nhp ni vi mach tao xung ni la mt flip-flop chia i, nhng cac chi inh v thi gian high va low, cac mc ap ti a va ti thiu phai c tun theo.

3.6. T chc b nh:


Trang 50

N GIAO THNG THNG MINH

Vi x l AT89C51 co b nh theo cu truc Harvard: co nhng vung b nh ring bit cho chng trinh va d liu. Nh a noi trn, ca chng trinh va d liu co th bn trong; du vy chung co th c m rng bng cac thanh phn ngoai ln n ti a 64 Kbytes b nh chng trinh va 64 Kbytes b nh d liu. B nh bn trong bao gm ROM va RAM trn chip, RAM trn chip bao gm nhiu phn: phn lu tr a dung, phn lu tr ia chi hoa tng bit, cac bank thanh ghi va cac thanh ghi chc nng c bit. Cac thanh ghi va cac port xut nhp a c xp trong b nh va co th c truy xut trc tip ging nh cac ia chi b nh khac. Ngn xp bn trong RAM ni nho hn so vi RAM ngoai nh trong cac b vi x ly khac. RAM bn trong c phn chia gia cac bank thanh ghi (00H1FH), RAM ia chi hoa tng bit (20H 2FH), RAM a dung (30H7FH) va cac thanh ghi chc nng c bit (80HFFH).

3.7. Cac thanh ghi chc nng c bit:


Mt ban vung b nh trn chip c goi la khng gian thanh ghi chc nng c bit (SFR). Khng phai tt ca cac ia chi u c s dung, va cac ia chi khng c s dung co th khng c cung cp trn con chip. Cac hanh ng oc n cac ia chi nay noi chung se tra v cac d liu ngu nhin, va cac hanh ng vit se co mt hiu ng khng xac inh. Cac phn mm ngi dung khng nn vit cac mc 1 n nhng vi tri khng c lit k nay, vi chung co th c dung trong cac san phm tng lai khi thm vao cac c trng mi. Trong trng hp nay, cac gia tri reset hoc khng tich cc cua cac bit mi se lun la 0. Cac thanh ghi ni c truy xut ngm inh bi b lnh. Vi du lnh INC A se tng ni dung cua thanh ghi tich luy A ln 1. Tac ng nay c ngm inh trong ma lnh. Cac thanh ghi ny c inh dang nh mt phn cua RAM trn chip. Vi vy mi thanh ghi se co mt ia chi (ngoai tr thanh ghi m chng trinh va thanh ghi lnh vi cac thanh ghi nay him khi bi tac ng trc tip, nn khng c li khi t chung vao trong RAM trn chip). o la ly do AT89C51 co nhiu thanh ghi nh vy. Cung nh R0 n R7, co 21 thanh ghi chc nng c bit (SFR : Special Function Register) vung trn cua RAM ni, t ia chi 80H n FFH. Chu y rng hu ht 128 ia chi t 80H n FFH khng c inh nghia. Chi co 21 ia chi SFR la c inh nghia. Ngoai tr tich luy (A) co th c truy xut ngm nh a noi, a s cac SFR c truy xut dung ia chi trc tip. Chu y rng mt vai SFR co th c ia chi hoa bit hoc byte. Ngi thit k phai thn trong khi truy xut bit va byte. Vi du lnh sau : SETB 0E0H se set bit 0 trong thanh ghi tich luy, cac bit khac khng i. Ta thy rng E0H ng thi la Trang 51

N GIAO THNG THNG MINH

ia chi byte cua ca thanh ghi tich luy va la ia chi bit cua bit co trong s nho nht trong thanh ghi tich luy. Vi lnh SETB chi tac ng trn bit, nn chi co ia chi bit la co hiu qua.

3.8. Hoat ng cua port ni tip:


Vi x l AT89C51 co mt port ni tip trong chip co th hoat ng nhiu ch trn mt dai tn s rng. Chc nng chu yu cua port ni tip la thc hin chuyn i song song sang ni tip i vi d liu xut, va chuyn i ni tip sang song song vi d liu nhp. Truy xut phn cng n port ni tip qua cac chn TXD va RXD. Cac chn nay co cac chc nng khac vi hai bit cua Port 3, P3.1 chn 11 (TXD) va P3.0 chn 10 (RXD). Port ni tip cho hoat ng song cng (full duplex : thu va phat ng thi), va m luc thu (receiver buffering) cho phep mt ky t se c thu va c gi trong khi ky t th hai c nhn. Nu CPU oc ky t th nht trc khi ky t th hai c thu c thu y u thi d liu se khng bi mt. Hai thanh ghi chc nng c bit cho phep phn mm truy xut n port ni tip la : SBUF va SCON. B m port ni tip (SBUF) ia chi 99H tht s la hai b m. Vit vao SBUF nap d liu se c phat, va oc SBUF truy xut d liu thu c. y la hai thanh ghi ring bit : thanh ghi chi ghi phat va thanh ghi chi oc thu.

3.9. Tm tt tp lnh:
Tp lnh ca AT89C51 c ti u ha cho cc ng dng iu khin 8 bit, nhiu kiu nh a ch c ng v nhanh dng truy xut RAM ni c dng nhm to thun li cho cc thao tc trn cc cu trc d liu nh. Tp lnh cng h tr cc bin 1 bit cho php qun l bit trc tip trong cc h logic v iu khin c yu cu x l bit. Do cc lnh ca MCS-51 c 8 bit nn 89C51 c ti a 256 lnh (thc t c 255 lnh, 1 lnh khng c nh ngha) gm 139 lnh 1 byte, 92 lnh 2 byte, 24 lnh 3 byte. xc nh r ngun v ch ca d liu, ta dng n cc kiu nh a ch sa + Thanh ghi + Trc tip + Gin tip + Tc thi + Tng i + Di + Ch s nh a ch thanh ghi:

Trang 52

N GIAO THNG THNG MINH

Cc lnh s dng kiu nh a ch thanh ghi c m ha bng cch dng 3 bit thp nht ca lnh ch ra mt thanh ghi bn trong khng gian a ch logic ny. Ngi lp trnh c th truy xut 8 thanh ghi lm vic c nh s t R0 n R7. C 4 dy thanh ghi lm vic nhng ti mt thi im ch c mt dy thanh ghi c tch cc. Cc dy thanh ghi chim 32 byte u tin ca RAM d liu trn chip ( a ch t 00H n 1FH ) v ta dng cc bit 4 v 3 trong t chng trnh PSW ch ra dy thanh ghi tch cc. Khi reset bng phn cng cho php dy 0 tich cc, cn cc dy khc c chn bng cch sa i cc bit 4 v 3 ca PSW sao cho ph hp. nh a ch trc tip: Kiu nh a ch trc tip c s dng dng truy xut cc bin nh hoc cc thanh ghi trn chip. Mt byte c thm vo tip theo m lnh dng xc nh a ch. Ty thuc vo bit c gi tr v tr cao ca a ch trc tip, mt trong hai khng gian nh trn chip c chn. Khi bit 7 bng 0, a ch trc tip trong tm t 0 n 127 ( 00H - 7FH ) v 128 byte thp trn chip ca RAM ni c tham chiu. Khi bit 7 bng 1, tt c cc port xut/nhp, cc thanh ghi chc nng c bit, iu khin, trng thi c gn a ch trong tm t 128 n 255 ( 80H - FFH ). Ta khng nht thit phi nh a ch ca cc thanh ghi ny, trnh hp dch cho php ta s dng m gi nh vit tt d hiu nh P0 thay cho port 0, TMOD cho thanh ghi ch nh thi... nh a ch gin tip: Kiu nh a ch ny dng xc nh 1 bin khi a ch ca bin c xc nh, v rt thun tin trong trng hp qun l cc v tr nh lin tip, cc im nhp c nh ch s trong cc bng cha trong RAM, cc s chnh xc hoc cc chui k t. Kiu nh a ch ny ch p dng cho 2 thanh ghi R0, R1. Cc thanh ghi ny hot ng nh l cc con tr v ni dung ca chng ch ra a ch trong RAM, ni m d liu c c hay c ghi. Bit c ngha thp nht ca lnh xc nh thanh ghi no (R0 hay R1) c s dng lm con tr. nh a ch tc thi: Khi ton hng ngun l mt hng s thay v l mt bin, kiu nh a ch ny c s dng. Trong hp ng, cc ton hng tc thi oc nhn bit nh vo du # t trc chng. Ton hng ny c th l mt hng s, mt bin, hoc mt biu thc s hc s dng cc hng s, cc k hiu v cc ton t. Trnh dch hp ng tnh gi tr v thay th d liu tc thi vo trong lnh. Tt c cc lnh s dng kiu nh a ch tc thi u s dng hng d liu 8 bit lm d liu tc thi. Tuy nhin, khi ta dng con tr d liu 16 bit DPTR, hng a ch 16 bit c cn n. nh a ch tng i: Kiu nh a ch tng i ch c s dng cho cc lnh nhy. Mt a ch tng i (hay cn gi l offset) l mt gi tr 8 bit c du. Gi tr ny c cng vi Trang 53

N GIAO THNG THNG MINH

b m chng trnh to ra a ch ca lnh tip theo cn thc thi. Do ta s dng mt offset c du, cho nn tm nhy c gii hn t (-128) byte n 127 byte. Byte a ch tng i l byte thm vo tip theo byte m lnh ca lnh. nh a ch tuyt i: Kiu nh ch tuyt i ch c s dng vi cc lnh ACALL v AJUMP. y l cc lnh 2 byte cho php r nhnh chng trnh trong trang 2K hin hnh ca b nh chng trnh bng cch cung cp 11 bit thp ca a ch ch, trong 3 bit cao (A8 - A10) a vo m lnh v 8 bit thp (A7 - A0) thnh lp byte th 2 ca lnh. 5 bit cao ca a ch ch l 5 bit cao hin hnh trong b m chng trnh, do vy lnh theo sau lnh r nhnh v ch ca lnh r nhnh phi trong cng 1 trang 2K, v A11 - A5 khng thay i. nh a ch di: Kiu nh a ch di c dng cho cc lnh LCALL v LJUMP. Cc lnh 3 byte ny cha a ch ch 16 bit (byte 2 v byte 3) ca lnh. Kiu nh a ch ny c phm s dng rng ht ton b khng gian nh ca chng trnh 64K, nhng li ph thuc vo v tr v chim 3 byte. nh a ch ch s: Kiu ny s dng mt thanh ghi nn (hoc b m chng trnh hoc con tr d liu) v mt offset (thanh cha A) to thnh dng a ch hiu dng cho lnh JUMP hoc MOVC. Cc loi lnh : Cc lnh ca 89C51 c chia lm 5 nhm : + Nhm lnh s hc + Nhm lnh logic + Nhm lnh di chuyn d liu + Nhm lnh x l bit + Nhm lnh r nhnh Cc lnh s hc: Tt c cc lnh s hc c thc hin trong mt chu k my, ngoi tr lnh tng INC DPTR trong 2 chu k my, cc lnh MUL AB v DIV AB trong 4 chu k my. Cc lnh logic: Nhm lnh logic ca 89C51 rhc hin cc php ton logic (AND, OR, XOR, NOR) trn cc byte d liu v thc hin trn tng bit c cng gi tr v tr (trng s). Tt c cc lnh logic s dng thanh cha A lu mt ton hng s c thc thi trong 1 chu k my, ngc li nu s dng thanh ghi khc hoc byte nh khc thay cho thanh cha A, lnh phi c thc hin trong 2 chu k my. Cc php ton logic

Trang 54

N GIAO THNG THNG MINH

c th c thc hin trn mt byte bt k trong b nh d liu ni m khng cn qua trung gian thanh cha A. Cc lnh di chuyn d liu: Trong RAM ni: cc lnh di chuyn d liu trong khng gian nh ni c thc thi trong 1 hoc 2 chu k my. Trong RAM ngoi: vi cc lnh thc hin vic di chuyn d liu gia RAM ni vi RAM ngoi, ta phi s dng kiu nh a ch gin tip. Tt c cc lnh di chuyn d liu hot ng trn b nh ngoi c thc thi trong 2 chu k my v s dng thanh cha lm ton hng ngun hoc ton hng ch. Cc tn hiu dng truy xut RAM ngoi (RD v WR) ch tch cc trong khi lnh MOVX c thc thi. Cc bng tm kim: c 2 lnh di chuyn d liu dnh cho vic c cc bng tm kim trong b nh chng trnh. Do cc lnh ny truy xut b nh chng trnh, cc bng tm kim ch c th c v khng c cp nht. M gi nh ca lnh l MOVC (move constant : di chuyn hng). MOVC hoc s dng b m chng trnh hoc con tr d liu lm thanh ghi nn v thanh cha A cha a ch offset. Lnh ny c th truy xut mt bng 256 im nhp c nh s t 0 n 255. S ca im nhp yu cu c np cho thanh ghi A v con tr d liu c khi ng cha a ch u bng. Cc lnh x l bit: B x l 89C51 cha 1 b x l logic trn bit cho php ta thc hin cc php ton n bit. Cc lnh truy xut bit gm cc lnh r nhnh, di chuyn, set, xa, ly b, OR v AND. Mi thao tc truy xut bit u s dng kiu nh a ch trc tip vi a ch bit t 00H n 7FH trong 128 v tr thp, v t a ch 80H n FFH trong khng gian SFR. Cc a ch bit 128 v tr thp thuc cc byte c a ch t 20H n 2FH c nh s lin tc t bit 0 ca byte a ch 20H ( bit 00H ) n bit 7 ca byte a ch 2FH (bit 7FH). Cc bit c th c set v xa bng 1 lnh. iu khin n bit c dng cho cc thit b xut/nhp nh relay, ng c, cun dy, cc LED, mch ci bo ng, loa, hoc nhp t cc chuyn mch hoc cc b ch th trng thi. Cc lnh r nhnh: - Trong tp lnh ca 89C51 c nhiu lnh iu khin lung chng trnh, gm cc lnh gi mt th tc v quay v t mt th tc, r nhnh c iu kin hoc khng c iu kin. - Cc bng nhy : lnh JMP @A+DPTR h tr cc thao tc nhy ph thuc vo trng hp c th cho cc bng nhy. a ch ch c tnh thi im thc thi lnh l tng ca ni dung thanh ghi 16 bit DPTR vi ni dung ca thanh cha A. DPTR c np a ch ca bng nhy v thanh cha A ng vai tr ca mt thanh ghi ch s. - Chng trnh con v ngt : dng cc lnh CALL, ACALL v LCALL, s dng cc lnh tuyt i v di. Cc chng trnh con c kt thc bng lnh RET, Trang 55

N GIAO THNG THNG MINH

lnh ny tr vic thc thi chng trnh tr v lnh theo sau lnh CALL. Cn lnh RETI tr iu khin v chng trnh gi t 1 trnh phc v ngt ISR. im khc nhau gia RET v RETI l RETI bo hiu cho h thng iu khin ngt rng qu trnh x l ngt xong. Nu khng c mt ngt no c duy tr trong thi gian RETI thc thi, RETI thc thi ging nh RET. - Nhy c iu kin : 89C51 cung cp cho ta cc lnh nhy c iu kin, s dng kiu nh a ch tng i v cng b gii hn khong cch nhy t -128 byte n +127 byte k t lnh theo sau lnh nhy c iu kin.

Chng 4
Trang 56

N GIAO THNG THNG MINH

GII THIU V CHUN RS 232


4.1. Gii thiu chung v chun RS232 :
bo m s tng thch gia cc thit b truyn d liu ni tip do cc hng khc nhau sn xut, nm 1960 Hip hi Cng nghip in t (EIA) xy dng mt chun giao din gi l RS232. 1963, chun ny c ci tin gi l RS232A, RS232B, RS232C gi chung l chun RS232. RS232 lc u c xy dng phc v ch yu trong vic ghp ni im - im gia hai thit b u cui DTE (Data Terminal Equipment) ch yu l my tnh v cc thit b u cui gi v nhn d liu. Cn DCE (Data Cornmunication Equipment) l thit b truyn thng d liu, chng hn nh cc modem chu trch nhim v truyn d liu. V th chun RS232 tch hp khng nhng Modem, PC m cn c tch hp rt nhiu cc thit b cng nghip c chc nng truyn d liu s. c im: Chun RS232 quy nh 9 ng truyn d liu dng c bn v 25 ng truyn dng m rng. N quy nh theo phng php truyn d liu theo dng nh phn ni tip gia thit b u cui truyn s liu v thit b truyn s liu. Tuy nhin chng ta ch cn mt s ng l p ng chc nng truyn s liu. RS232 c mc in p t -12V +12V. Mc cao [1] tng ng vi mc -12V -3V, mc thp [0] tng ng vi mc +3V +12V, khong t -3V n +3V khng xc nh. Do , ni RS232 vi PC u phi qua b bin i in p nh MAX232 chuyn mc logic TTL sang mc in p ca RS232 v ngc li. i tng Cng COM (Mc RS232C) Vi iu khin (Mc TTL)
Ch lm vic :

Mc logic 1 0 1 0

Mc in p tng ng -12V n -3V +3V n +12V +5V 0V

Ch lm vic ca h thng RS232 l hai chiu ton phn, tc l hai thit b tham gia cng c tc dng thu v pht tn hiu cng mt lc. Nh vy, vic thc hin truyn thng cn ti thiu 3 dy dn - trong hai dy tn hiu ni cho cc u thu pht ca hai trm v mt dy t.

Trang 57

N GIAO THNG THNG MINH

Ngy nay cng vi s ra i ca cc vi mch th h mi lm tng tc truyn nhn ca chun ny nhng m n khng t c tc ti 460kB. L do tht n gin: u tin ta phi xt ti nguyn tc truyn ca RS232 l truyn ni tip, th hai vic truyn nhn thng tin theo mt cch no lun phi tun th theo nguyn tc "bt tay" ngha l phi c mt bn yu cu sau yu cu phi c chp nhn ri d liu mi c truyn i. Chun RS232 y lun tun th ng theo nguyn tc ny. Vic truyn d liu theo RS232 vi 3 dy ch thc hin c trong h thng ch c hai thnh vin m thi. Nu trong mt mng truyn thng c nhiu thnh vin tham gia bt buc truyn theo RS232 phi c y cc dy ni. Nguyn tc truyn d liu thng qua RS232 da trn s so snh in p ca dy dn vi t theo cc mc [0] hoc [1] nh nguyn l trnh by trn. Chnh v l do ny m n khng truyn i xa c (ch hot ng trong khong tm 40m tr li). Khi truyn i xa vt qua mc quy nh th lc ny do s tiu tn in nng trn ng dy lm cho vic thu nhn thng tin d ri vo tnh trng khng xc nh. Cn mt khuyt im na l cc tn hiu u ly im chun l ng mass chung dn n d b nhiu, dn n khng th truyn xa c. V th cn ch iu ny khi thit k bt k h thng truyn tin no.

4.2. IC Max 232 v cch giao tip : 4.2.1. Gii thiu v IC Max 232 :
Do chun RS232 ra i kh lu, trc khi c h mch vi in t TTL, v vy mc in p vo/ra ca n khng tng thch vi TTL. V th i hi cn c mt b iu khin ng truyn (b chuyn i in p) chuyn i cc tn hiu RS232 v cc mc in p TTL c cc chn TxD v RxD ca 8051 chp nhn. V th IC MAX232 ra i chuyn i t mc in p RS232 v mc TTL v ngc li. Mt im mnh khc ca MAX232 l dng in p +5V nh 8051.

Trang 58

N GIAO THNG THNG MINH

MAX 232 c 2 b iu khin ng truyn l nhn v truyn d liu. Cc b iu khin ng truyn dng cho TxD c gi l T1 v T2 v b iu khin ng nhn cho RxD c gi l R1 v R2. Trong nhiu ng dng th ch c 1 cp c dng. V d T1 v R1 c dng vi nhau cho trng hp TxD v RxD ca 8051, cp cn li (T2 v R2) th khng s dng. rng, b iu khin T1 ca MAX232 c gn T1in v T1out (trn cc chn s 11 v 14 tng ng), R1 cng c R1in v R1out (trn cc chn 13 v 12). Chn T1in (chn 11) ca MAX232 c ni vi chn TxD ca VXL (chn 11) truyn mc logic TTL t VXL vo MAX232; sau T1out c ni ti chn RxD (chn 2) ca cng COM_l chn nhn d liu PC c tn hiu ny. Ngc li chn R1in (chn 13) l chn c d liu vo ca MAX232 ni vo chn TxD (chn 3) ca cng COM_l chn truyn d liu ca PC MAX232 nhn tn hiu t PC, sau chn R1out (chn 12) ca MAX232 c ni vi chn RxD ca VXL (chn 10) VXL nhn tn hiu iu khin t PC.

Chi tit cng COM ca PC

Trang 59

N GIAO THNG THNG MINH

4.2.2. Cch giao tip gia RS 232 v PC :


V B 1S U B - D 9

C U 1 A T 8 9 C 5 1 1 0 U

V+ VC C

1 0

1 . 0 5 L 2

2 M

T 1O U T

R 1 IN

3 P

X T A 3 3 P V C C

R 2 O U T T 2 O U T 1 0 R 2 I N T 2 I N 1 2 1 1 R 1 O T 1 I N U T

9 7 8

14

2 16

13

X T A

VC C

3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2

9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8

40

P P P P P P P P P P P P P P P P

0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2

. . . . . . . . . . . . . . . .

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

/ / / / / / / / / / / / / / / /

A A A A A A A A

D D D D D D D D

P P P P P P P P

0 1 2 3 4 5 6 7

1 1 1 1 1 1 1 1

. . . . . . . .

1 0 2 1 3 2 4 3 5 4 6 5 7 6 8 7

R 1 7 1 0 0

1 R

C 1 1 1 0 U S T

3 2

0 9 A P

L E S E

1 0 P 38 . 0 / R 1 1X D A AP 93 . 1 / T1 X2 D PA 31 . 0 2 / I 1N 3 T PA 31 . 1 3 / I 1N 4 T A P 1 3 2 . 4 /1 T 5 0 A P 1 3 3 . 5 /1 T 6 1 AP 13 4. 6 / W 7 R 1 AP 13 5. 7 / R D 1 9 X / P R X O A G L1 18 X T N X T A L 2 G N D E 3 1 A / V 9P P R S T

0 1

M
G N D

1 9 8 6 7 4 2 3 5 C + 1 C 2 1 1 0 U F C C 3 1 2 4 + C 2 2 1 0 U F

2 3 2
C V -

5 2 6

C 15 T A T A R S L L T 1 2

2 1 0

3 U F

R 1 8 8 . 2 K

Hnh 4.1 S u ni MAX 232 vi VXL v giao tip PC thng qua cng COM

MAX 232 cn c 4 t in c gi tr t 1 n 22uF. Ghi ch: Trong mch trn ta thy ch s dng chn s 2, s 3 v s 5 ca cng COM m thi. Tt c cc chn khc u b.

20

Trang 60

N GIAO THNG THNG MINH

Chng 5 THIT K V THI CNG M HNH


5.1. Thit k m hnh : 5.1.1. Yu cu t ra cho m hnh :

Thit k m hnh ti mt ng t c hai chiu lu thng. n bo v v tr t camera cho ph hp. B tr mu sc nn ng ng vi yu cu.

5.1.2. Thi cng m hnh :

Hnh 5.1 khung m hnh v nn ng

Trang 61

N GIAO THNG THNG MINH

Hnh 5.2 khung m hnh khi gn camera

Hnh 5.3 m hnh khi gn camera v n

Trang 62

N GIAO THNG THNG MINH

Hnh 5.4 cn cnh m hnh khi gn n

Trang 63

N GIAO THNG THNG MINH

Hnh 5.5 m hnh khi c xe

Trang 64

N GIAO THNG THNG MINH

Hnh 5.6 nhng hnh nh v m hnh hon chnh

Trang 65

N GIAO THNG THNG MINH

5.1.3. Thi cng mch iu khin : S mch iu khin :


V C C U V SLE_LED 4 SLE_LED 1 SLE_LED 2 SLE_LED 3 VCC C C 3 L V M O 6 7 8 0 1 V U I TN 5 / T O 3 D B + 7 R I D G J 2 1 2 3 C EP B C E 4 O E 1

C C R R 1 Q P 1 N P R R Q BP 2 2 CN EP R R B 3 Q P 3 N P R R C E 4 Q BP 4 CN

4 A

C CP

GND

C C

6 C C

V R R 5 R R 6 R R 7

CA

CA

CA

CA

CA

CA

CA

CA

C R R 8 R R 9 R R 1 0 O A N D L 1 E D D L E 2 D DL E 3 D D L E 4 D DL E 5 D LD E 6 D

7 LD E O D A 7 N D

AL

EN

7 LD E O D A 7 N D

A B C D E F G DP A B C D E F G DP

7 6 4 2 1 9 10 5 7 6 4 2 1 9 10 5

7 6 4 2 1 9 10 5 7 6 4 2 1 9 10 5

A B C D E F G DP A B C D E F G DP

V J P 1 1 6 2 7 3 8 4 9 5 r s 2 3 2 V CC + 1 C + 0 9 u F 1 0 u F 8C U 7 8 T R 1 4 + C 1 1 1 T C 0 2 7 T X D 1 0 O T U2 9 I T N R X D 2 R I N2 O U T T T 1 F R 2 E S R 1 2 R E 0 1 S T K 9 T 4 V C C S S S S S S C 1 0 1 u 1 0 3 u D D D D D D D 3 3 L L L L L L A A A A A A A R R R R R R R E E E E E E T T T T T T T _ _ _ _ _ _ 1A 1A 1A 1A 1A 1A 1A 1 1 2 Y Z 1 T A 1 L L L L L L 1 2 3 4 5 6 7 1 2C 3 4 5 6 7 E E E E E E 3 3 3 3 3 3 3 2 1 2D 3D 4D 5 6 7D 8D 9D 3 O3 3 3 3 3 3 V C U C 5 _3 _3 _3 3 3 _3 _3 _3 0 0N 0 0 0 0 0 1 2 3 4 5 6 7 8

1 4 1 TI N 1 O1 3 U R 11 I 2 N 2 R + 1 O U F + A 2 C X 2 1 1 3 + C 3 1 + C 1

W 3

X9 A N D8P O0 . 0P V7P A 0 .N 1P 6P 0 . P 2 5P 0 . P 3 X4P A 0 N . P 4 D3P O0 . P_ 5 V2P A 0 .N P 6 P 0 . P7 9P P P P P P P P 9 X 8 X T T 1 1 1 1 1 1 1 1 A A A

31

/2 G/ 2 2/ 2/ H 2/ 12/ G2/ 2/ 3 3 3 3 3 3

2 1 A .2 D0 2 / A .2 D1 3 / A . 2 2D 4 / A . 2 3D 5 / A ._ 2 4 D 1 6 / A . 2 5D 7 / A . _2 6 D 18 / A . 7D /

0 u 5 2 C 6 V V M

p C

.P0 . P1 .P 2 .P 3 . 4P . 5P . P6 . P7

3 3

LR 1

L L L 0 L 1 2 3 4 5 R X D 1 0 . 10 1/ R T X X D D . 11 2/ T X D . 12 3/ I N T 0 . 13 4/ I N T 1 1. 4 5 / T 0 1. 5 6 / T 1 .16 7/ W R . 7 / R D R S T 9 S T 0A 1A A2 A3 A4 A5 A6 A7 O G

SLE_LED _VAN G _1 S 8S 9S 1 S 1 1 1 1 1

SLE_LED _XAN H _1

SLE_LED _VAN G

SLE_LED _XAN H

SLE_LED _D O _1

SLE_LED _D O

E E E E

E A /V P P 9

2 9 LP 2 S 3 E 0 N L E / P R

Trang 66

N GIAO THNG THNG MINH

Hnh 5.7 mch iu khin

Trang 67

N GIAO THNG THNG MINH

5.2. Xy dng chng trnh iu khin trn my tnh v vi x l : 5.2.1. Lu gii thut :
Trn my tnh :
Bg e in

C m l th n hup t u g tu A y n

C m l th n hup t u g tu B y n

Ahn n n

Ahs s h n o an

Ahn n n

Ahs s h n o an

T han n ac h n rak oi k u g h hn c hn oa an g i

Tac an s h ho s hrak oi an h k u gc h h n an n oa g i

Tac an n n h h rak oi k u g h hn c hn oa an g i

T han s ac h o s hrak oi an h k u gc h h n an n oa g i

av an h c x a p am

av an h c x a p am

av an h c x a p am

av an h c x a p am

T ch ntr h i tu t 2 y i im an h

T ch ntr h i tu t 2 y i im an h

T ch x ly h in -N 0 m h 2 : d an v u < i an < 0 im h m c0 -N clai: an la c an s g im h ua h o s hk i av c x an h a p am

T ch x ly h in -N u0 an < 0 d m hv < im h 2 : i an m c0 -N clai: an la c an s g im h ua h o s hk i av c x an h a p am

Trang 68

N GIAO THNG THNG MINH

T m t ng phan ng c va loc trung vi

T m t ngphan ng c va loc trungvi

a v anh trng en

av anh trngen

T trichchonc ach tr ng

T trichchonc ach tr ng

Tnhdin tichbi chimch i

Tinhdintichbi chimch

Ly ty l dintichchimch trndintich nn: N 0< ty l D < 25; D M th u = T= isp t a N 25< ty l D < 39; D M u = T= isp t th a N 39< ty l D < 100; D M u = T= isp t th a

Ly ty l dintichchimch trn dintich nn: N 0< ty l D < 25; D M th u = T= isp t a N 25< ty l D < 39; D M u = T= irsp t th a N 39< ty l D < 100; D M u = T= isp t th a

S sanh ty l hai din tich cua o hai tuyn

ara kt lun va gi ki t xungV K

ED N

Trang 69

N GIAO THNG THNG MINH

Trn vi x l :

Start

RESET h thng

Thi gian e o giao thng c cha y mc in h

L p i lp la i thi gian mc i n h

Tin hi u matlab gi xu n g

Ki t A

Ki t B

Ki t C

Ca i t thi gian cho e n xanh o n g vi ki t A

Ca i t thi gian cho e n xanh o n g vi ki t B

Ca i t thi gian cho e n xanh o n g vi ki t C

Sau khi ch y xong thi gian ca i t n g vi m i ki a t,n u khng co tin hi u truy n xu n g thi se l p la i thi gian m c i n h

END

5.2.2. Chng trnh cho vi x l :


Trang 70

N GIAO THNG THNG MINH

$MOD51 XANH1 DO1 BIT VANG1 BIT P1.1 BIT P1.0 P1.2 P1.5 P1.7 30H 31H 20H

XANH2 BIT DO2 BIT P1.6 VANG2 BIT BIEN_XANH EQU BIEN_DO EQU S_KTRA BIT ;PORT 2 CHON LED ;PORT 0 DATA

;60H HANG CHUC 1 ;61H HANG DON VI 1 ;62H HANG CHUC 2 ;63H HANG DON VI 2 ORG 00H JMP BEGIN ORG 0023H JMP ISR ORG 0030H BEGIN: MOV P2,#255 MOV P0,#255 MOV P1,#255 MOV P3,#255 ;------------------------THIET LAP SERIAL--MOV TMOD,#21H MOV SCON,#01010010B ;BIT REN =1 CHO PHEP THU CAC KY TU 52h MOV TH1,#-3 ;TOC DO 9600 BAUD

Trang 71

N GIAO THNG THNG MINH

SETB ES SETB TR1 SETB TI SETB EA ;-----------------------------------------------------MOV BIEN_XANH,#30H MOV BIEN_DO,#34H MAIN: MOV P1,#0FFH LCALL DO_XANH LCALL XANH_DO LJMP MAIN

;_______________________________________ TEST_TR: JNB TI,$ CLR TI MOV SBUF,A RET ISR: TRUYEN: ;JNB TI,NHAN ;CLR TI NHAN: JNB RI , EXIT_SERIAL CLR RI MOV A,SBUF CALL TEST_TR ;RETI ;=================================== CJNE A,#'A',NEXT1 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#40H MOV BIEN_DO,#44H

Trang 72

N GIAO THNG THNG MINH

JMP EXIT_SERIAL ;-------------------------------------NEXT1: CJNE A,#'B',NEXT2 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#32H MOV BIEN_DO,#32H JMP EXIT_SERIAL ;---------------------------------------NEXT2: CJNE A,#'C',NEXT5 CLR A MOV BIEN_XANH,#34H MOV BIEN_DO,#30H JMP EXIT_SERIAL ;--------------------------------------NEXT3: CJNE A,#'D',NEXT4 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#36H MOV BIEN_DO,#28H JMP EXIT_SERIAL NEXT4: CJNE A,#'E',NEXT5 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#38H MOV BIEN_DO,#26H JMP EXIT_SERIAL NEXT5:

Trang 73

N GIAO THNG THNG MINH

CJNE A,#'F',NEXT6 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#28H MOV BIEN_DO,#36H JMP EXIT_SERIAL NEXT6: CJNE A,#'G',NEXT7 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#26H MOV BIEN_DO,#38H JMP EXIT_SERIAL NEXT7: CJNE A,#'H',NEXT8 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#24H MOV BIEN_DO,#40H JMP EXIT_SERIAL NEXT8: CJNE A,#'S',NEXT9 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#22H MOV BIEN_DO,#42H JMP EXIT_SERIAL NEXT9: CJNE A,#'U',NEXT10 CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#20H

Trang 74

N GIAO THNG THNG MINH

MOV BIEN_DO,#44H JMP EXIT_SERIAL NEXT10: CALL TEST_TR SETB S_KTRA CLR A MOV BIEN_XANH,#18H MOV BIEN_DO,#46H JMP EXIT_SERIAL ; MOV 08H,A EXIT_SERIAL: RETI ;--------------------------------------DO_XANH: MOV R3,BIEN_DO MOV R4,BIEN_XANH ;MOV P1,#00H MOV DPTR,#DULIEU CLR DO1 CLR XANH2 LOOP: MOV A,R3 ADD A,#99H DA A MOV R3,A ANL A,#0FH MOV 61H,A MOV A,R3 ANL A,#0F0H SWAP A MOV 60H,A MOV ADD DA MOV ANL MOV MOV A,R4 A,#99H A R4,A A,#0FH 63H,A A,R4

Trang 75

N GIAO THNG THNG MINH

ANL A,#0F0H SWAP A MOV 62H,A CJNE R4,#99H,LOOP2 SETB XANH2 CLR VANG2 MOV R4,#03H MOV 63H,#03H MOV 62H,#00H LOOP2: LCALL QUETLED JNB S_KTRA,CONTI1 CLR S_KTRA JMP DO_XANH CONTI1: CJNE R3,#00H,LOOP RET ;___________________________________________ XANH_DO: MOV P1,#0FFH MOV R4,BIEN_DO MOV R3,BIEN_XANH ;MOV P1,#00H MOV DPTR,#DULIEU CLR DO2 CLR XANH1 LOOP3: MOV A,R3 ADD A,#99H DA A MOV R3,A ANL A,#0FH MOV 61H,A MOV A,R3 ANL A,#0F0H SWAP A MOV 60H,A MOV A,R4

Trang 76

N GIAO THNG THNG MINH

ADD A,#99H DA A MOV R4,A ANL A,#0FH MOV 63H,A MOV A,R4 ANL A,#0F0H SWAP A MOV 62H,A CJNE R3,#99H,LOOP4 SETB XANH1 CLR VANG1 MOV R3,#03H MOV 61H,#03H MOV 60H,#00H LOOP4: LCALL QUETLED JNB S_KTRA,CONTI2 CLR S_KTRA JMP XANH_DO CONTI2: CJNE R4,#00H,LOOP3 RET

HIENTHI: PUSH 00H PUSH ACC MOV R6,#0F7H ;BIEN CHON LED TICH CUC MOV R0,#063H ;DIA CHI DE LAY DU LIEU HIEN THI DISP: MOV A,@R0 MOVCA,@A+DPTR MOV P0,A MOV P2,R6 LCALL DELAY MOV P2,#0FFH DEC R0 MOV A,R6

Trang 77

N GIAO THNG THNG MINH

RR A MOV R6,A CJNE R0,#05FH,DISP ;DIEU KIEN QUET DU 4 LED POP ACC POP 00H RET ;_______________________________________________ DELAY: PUSH 00H PUSH 01H MOV R0,#10 DEL: MOV R1,#25 DJNZ R1,$ DJNZ R0,DEL POP 01H POP 00H RET ;_______________________________________________ QUETLED: PUSH 00H MOV R0,#100 LOOP1: MOV TH0,#HIGH(-10000) MOV TL0,#LOW(-10000) SETB TR0 SCAN: LCALL HIENTHI JNB TF0,SCAN CLR TR0 CLR TF0 DJNZ R0,LOOP1 POP 00H RET ;====================================== DELAY_MS123: MOV R2,#5 DELAY_2: MOV R0,#200

Trang 78

N GIAO THNG THNG MINH

DELAY_1: MOV R1,#250 DJNZ R1,$ DJNZ R0,DELAY_1 DJNZ R2,DELAY_2 RET DULIEU: DB END

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

5.2.3. Chng trnh trn my tnh : Chng trnh cho giao din chnh :
function varargout = LuanVan_DenGiaoThongThongMinh(varargin) % LUANVAN_DENGIAOTHONGTHONGMINH M-file for LuanVan_DenGiaoThongThongMinh.fig % LUANVAN_DENGIAOTHONGTHONGMINH, by itself, creates a new LUANVAN_DENGIAOTHONGTHONGMINH or raises the existing % singleton*. % % H = LUANVAN_DENGIAOTHONGTHONGMINH returns the handle to a new LUANVAN_DENGIAOTHONGTHONGMINH or the handle to % the existing singleton*. % % LUANVAN_DENGIAOTHONGTHONGMINH('CALLBACK',hObject,eventData,h andles,...) calls the local % function named CALLBACK in LUANVAN_DENGIAOTHONGTHONGMINH.M with the given input arguments. % % LUANVAN_DENGIAOTHONGTHONGMINH('Property','Value',...) creates a new LUANVAN_DENGIAOTHONGTHONGMINH or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before LuanVan_DenGiaoThongThongMinh_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to LuanVan_DenGiaoThongThongMinh_OpeningFcn via varargin. Trang 79

N GIAO THNG THNG MINH

% % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help LuanVan_DenGiaoThongThongMinh % Last Modified by GUIDE v2.5 27-May-2009 12:33:22 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @LuanVan_DenGiaoThongThongMinh_OpeningFcn, ... 'gui_OutputFcn', @LuanVan_DenGiaoThongThongMinh_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before LuanVan_DenGiaoThongThongMinh is made visible. function LuanVan_DenGiaoThongThongMinh_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure Trang 80

N GIAO THNG THNG MINH

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to LuanVan_DenGiaoThongThongMinh (see VARARGIN) % Choose default command line output for LuanVan_DenGiaoThongThongMinh handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes LuanVan_DenGiaoThongThongMinh wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = LuanVan_DenGiaoThongThongMinh_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton6. function pushbutton6_Callback(hObject, eventdata, handles) % hObject handle to pushbutton6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) H1a=imread('chupnenA.png'); axes(handles.axes7),imshow(H1a); H2a=imread('chupsosanhA.png'); axes(handles.axes8),imshow(H2a); Trang 81

N GIAO THNG THNG MINH

H1b=imread('D:\ProgramFiles\MatLab\work\chupnenB.png'); axes(handles.axes12),imshow(H1b); H2b=imread('D:\ProgramFiles\MatLab\work\chupsosanhB.png'); axes(handles.axes13),imshow(H2b); %s=serial('com1','baudrate',9600,'databits',8);%la thuc hien tryen noi tiep thong wa cong COM1,toc do baud dc chon la 9600, truyen 8 bit du lieu %fopen(s);% cho phep mo cong COM tren may tinh.May san sang doi tin hieu de gui xuong vi xu ly %fprintf(s,'S');%gui chu S xuong vi xu ly %out=fscanf(s);%nhan tin hieu (du lieu) tu vi xu ly gui len %fclose(s);%dong cong truyen thong noi tiep %delete(s);%xoa tin hieu cong noi iep khoi bo nho %clear s;%xoa cac ket qua ve cong truyen thong ra khoi cua so lam viec % --- Executes on button press in pushbutton7. function pushbutton7_Callback(hObject, eventdata, handles) % hObject handle to pushbutton7 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) %s=serial('com1','baudrate',9600,'databits',8);%la thuc hien tryen noi tiep thong wa cong COM1,toc do baud dc chon la 9600, truyen 8 bit du lieu %fopen(s);% cho phep mo cong COM tren may tinh.May san sang doi tin hieu de gui xuong vi xu ly %fprintf(s,'R');%gui chu S xuong vi xu ly %out=fscanf(s);%nhan tin hieu (du lieu) tu vi xu ly gui len %fclose(s);%dong cong truyen thong noi tiep %delete(s);%xoa tin hieu cong noi iep khoi bo nho %clear s;%xoa cac ket qua ve cong truyen thong ra khoi cua so lam viec h=imread('hinhnen.png'); axes(handles.axes11),imshow(h); set(handles.text15,'string',''); axes(handles.axes7),imshow(h); axes(handles.axes8),imshow(h); axes(handles.axes12),imshow(h); Trang 82

N GIAO THNG THNG MINH

axes(handles.axes13),imshow(h); set(handles.text10,'string','Danh gia Mat Do Luu Thong'); delete('chupsosanhA.png'); clear chupsosanhA.png; set(handles.text11,'string','Danh Gia Mat Do Luu Thong'); delete('chupsosanhB.png'); clear chupsosanhB.png; set(handles.text16,'string','Danh Gia Ket Qua Phan Tich');

% --- Executes on button press in pushbutton17. function pushbutton17_Callback(hObject, eventdata, handles) % hObject handle to pushbutton17 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close; % --- Executes on button press in radiobutton1. function radiobutton1_Callback(hObject, eventdata, handles) % hObject handle to radiobutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) state=get(handles.radiobutton1,'value'); if state==0 h=imread('hinhnen.png'); axes(handles.axes11),imshow(h); set(handles.text15,'string',''); axes(handles.axes7),imshow(h); axes(handles.axes8),imshow(h); axes(handles.axes12),imshow(h); axes(handles.axes13),imshow(h); else Trang 83

N GIAO THNG THNG MINH

h=imread('huan.jpg'); axes(handles.axes11),imshow(h); set(handles.text15,'string','XIN KINH CHAO QUY KHACH'); i=imread('hinhnen.png'); axes(handles.axes7),imshow(i); axes(handles.axes8),imshow(i); axes(handles.axes12),imshow(i); axes(handles.axes13),imshow(i); end % Hint: get(hObject,'Value') returns toggle state of radiobutton1 % --- Executes on button press in pushbutton30. function pushbutton30_Callback(hObject, eventdata, handles) % hObject handle to pushbutton30 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) H1a=imread('chupnenA.png'); H2a=imread('chupsosanhA.png'); %H2=imread('chup_02.png'); %figure(1),imshow(H1),title('Hinh khong gian mau'); %figure(2),imshow(H2),title('Hinh can so sanh'); %_______________kiem tra ca thong so tam hinh__________ %imview(H2); %______phan vung xe ra khoi khung canh ngoai_________ H2a=H2a(42:351,120:502,:); figure(3),imshow(H2a); a2=rgb2gray(H2a); figure(),imshow(a2); %imview(a2); %_____phan vung tuong tu cho anh goc_________________ H1a=H1a(42:351,120:502,:); figure(5),imshow(H1a),title('Anh goc duoc phan vung gioi han'); a1=rgb2gray(H1a); figure(),imshow(a1); %imview(a1); Trang 84

N GIAO THNG THNG MINH

%______kiem tra khung hinh duoc gioi han?_____________ %size(H2) a3=imabsdiff(a2,a1); %a3=bwareaopen(a3,150);%chu y them vao a3 = medfilt2(a3); %a3=bwareaopen(a3,5); figure(6),imshow(a3); %imview(a3); %____________________________________________________________ for i=1:310 for j=1:383 if 0<=a3(i,j) & a3(i,j)<=20 a3(i,j)=0; else a3(i,j)=a2(i,j); end end end figure(7),imshow(a3); %_____________________________________________________ b3 = imadjust(a3); b3 = medfilt2(b3); figure(8),imshow(b3); Ha= bwareaopen(b3,500); figure(13),imshow(Ha); %se = strel('disk',0); %c3 = imopen(b3,se); %threshold = graythresh(c3); %H = im2bw(c3,threshold); %H = bwareaopen(H,50); %figure(9),imshow(H); %_______thuc hien tim gioi han cua hinh can tach_________ [m,n]=size(Ha); for i=1:m for j=1:n if Ha(i,j)==1 h1=i; break; Trang 85

N GIAO THNG THNG MINH

end end end for i=m:-1:1 for j=1:n if (Ha(i,j)==1) h2=i; break; end end end for j=1:n for i=1:m if (Ha(i,j)==1) c1=j; break; end; end; end; for j=n:-1:1 for i=1:m if (Ha(i,j)==1) c2=j; break; end; end; end; H3a=Ha(h2:h1,c2:c1); %figure(10),imshow(H3); %H3 = bwareaopen(H3,100); figure(10),imshow(H3a); %imview(H3); dt_nenduong_a=m*n [q,t]=size(H3a); p=0; for i=1:q; for j=1:t; Trang 86

N GIAO THNG THNG MINH

if H3a(i,j)==1 p=p+1; end end end dt_chiemcho_a=p %[p,q]=size(H3); %dt_chiemcho=p*q dt_tyle_a=(dt_chiemcho_a/dt_nenduong_a)*100 if 0<=dt_tyle_a&dt_tyle_a<=25 %disp('mat do luu thong thua') set(handles.text10,'string','Mat Do Luu Thong Thua'); else if 25<dt_tyle_a&dt_tyle_a<39 %disp('mat do luu thong binh thuong') set(handles.text10,'string','Mat Do Luu Thong Binh Thuong'); else if 39<dt_tyle_a&dt_tyle_a<100 %disp('mat do luu thong qua cao') set(handles.text10,'string','Mat Do Luu Thong Qua Cao'); end end end H1b=imread('D:\ProgramFiles\MatLab\work\chupnenB.png'); %axes(handles.axes12),imshow(H1b); H2b=imread('D:\ProgramFiles\MatLab\work\chupsosanhB.png'); %axes(handles.axes13),imshow(H2b); %global H2 %[filename, pathname, filterindex]=uigetfile( ... %{'*.jpg','JPEG File (*.jpg)'; ... %'*.*','Chon file anh bat ky (*.*)'}, ... %'Chon anh can so sanh'); %var=strcat(pathname,filename); %H2=imread(var);

Trang 87

N GIAO THNG THNG MINH

%H2=imread('chup_02.png'); %figure(1),imshow(H1),title('Hinh khong gian mau'); %figure(2),imshow(H2),title('Hinh can so sanh'); %_______________kiem tra ca thong so tam hinh__________ %imview(H2); %______phan vung xe ra khoi khung canh ngoai_________ H2b=H2b(42:351,120:502,:); figure(3),imshow(H2b); a2=rgb2gray(H2b); figure(),imshow(a2); %imview(a2); %_____phan vung tuong tu cho anh goc_________________ H1b=H1b(42:351,120:502,:); figure(5),imshow(H1b),title('Anh goc duoc phan vung gioi han'); a1=rgb2gray(H1b); figure(),imshow(a1); %imview(a1); %______kiem tra khung hinh duoc gioi han?_____________ %size(H2) a3=imabsdiff(a2,a1); %a3=bwareaopen(a3,150);%chu y them vao a3 = medfilt2(a3); %a3=bwareaopen(a3,5); figure(6),imshow(a3); %imview(a3); %____________________________________________________________ for i=1:310 for j=1:383 if 0<=a3(i,j) & a3(i,j)<=20 a3(i,j)=0; else a3(i,j)=a2(i,j); end end end figure(7),imshow(a3); %_____________________________________________________ b3 = imadjust(a3); Trang 88

N GIAO THNG THNG MINH

b3 = medfilt2(b3); figure(8),imshow(b3); Hb= bwareaopen(b3,500); figure(13),imshow(Hb); %se = strel('disk',0); %c3 = imopen(b3,se); %threshold = graythresh(c3); %H = im2bw(c3,threshold); %H = bwareaopen(H,50); %figure(9),imshow(H); %_______thuc hien tim gioi han cua hinh can tach_________ [m,n]=size(Hb); for i=1:m for j=1:n if Hb(i,j)==1 h1=i; break; end end end for i=m:-1:1 for j=1:n if (Hb(i,j)==1) h2=i; break; end end end for j=1:n for i=1:m if (Hb(i,j)==1) c1=j; break; end; end; end; for j=n:-1:1 for i=1:m Trang 89

N GIAO THNG THNG MINH

if (Hb(i,j)==1) c2=j; break; end; end; end; H3b=Hb(h2:h1,c2:c1); %figure(10),imshow(H3); %H3 = bwareaopen(H3,100); figure(10),imshow(H3b); %imview(H3); dt_nenduong_b=m*n [q,t]=size(H3b); p=0; for i=1:q; for j=1:t; if H3b(i,j)==1 p=p+1; end end end dt_chiemcho_b=p %[p,q]=size(H3); %dt_chiemcho=p*q dt_tyle_b=(dt_chiemcho_b/dt_nenduong_b)*100 if 0<=dt_tyle_b&dt_tyle_b<=25 %disp('mat do luu thong thua') set(handles.text11,'string','Mat Do Luu Thong Thua'); else if 25<dt_tyle_b&dt_tyle_b<39 %disp('mat do luu thong binh thuong') set(handles.text11,'string','Mat Do Luu Thong Binh Thuong'); else if 39<dt_tyle_b&dt_tyle_b<100 %disp('mat do luu thong qua cao') set(handles.text11,'string','Mat Do Luu Thong Qua Cao');

Trang 90

N GIAO THNG THNG MINH

end end end if dt_tyle_a > dt_tyle_b & 0<dt_tyle_a - dt_tyle_b< 10 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 10%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'A'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 10<dt_tyle_a - dt_tyle_b< 20 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 20%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'B'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 20<dt_tyle_a - dt_tyle_b< 30 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 30%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'C'); out=fscanf(s); fclose(s); delete(s); clear s; else Trang 91

N GIAO THNG THNG MINH

if dt_tyle_a > dt_tyle_b & 30<dt_tyle_a - dt_tyle_b< 40 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 40%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'D'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 40<dt_tyle_a - dt_tyle_b< 50 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 50%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'D'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 50<dt_tyle_a - dt_tyle_b< 60 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 60%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'I'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 60<dt_tyle_a - dt_tyle_b< 70

Trang 92

N GIAO THNG THNG MINH

set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : 70%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'K'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 70<dt_tyle_a - dt_tyle_b< 80 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 80%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'L'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 80<dt_tyle_a - dt_tyle_b< 90 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 90%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'M'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_a > dt_tyle_b & 90<dt_tyle_a - dt_tyle_b< 100 set(handles.text16,'string','Mat Do Tuyen A day Hon Mat Do Tuyen B : < 100%'); Trang 93

N GIAO THNG THNG MINH

s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'N'); out=fscanf(s); fclose(s); delete(s); clear s; end end end end end end end end end end

if dt_tyle_b > dt_tyle_a & 0<dt_tyle_b - dt_tyle_a< 10 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 10%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'E'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_b > dt_tyle_a & 10<dt_tyle_b - dt_tyle_a< 20 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 20%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'U'); out=fscanf(s); fclose(s); Trang 94

N GIAO THNG THNG MINH

delete(s); clear s; else if dt_tyle_b > dt_tyle_a & 20<dt_tyle_b - dt_tyle_a< 30 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 30%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'Y'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_b > dt_tyle_a & 30<dt_tyle_b - dt_tyle_a< 40 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 40%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'H'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_b > dt_tyle_a & 40<dt_tyle_b - dt_tyle_a< 50 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 50%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'J'); out=fscanf(s); fclose(s); delete(s); clear s; Trang 95

N GIAO THNG THNG MINH

else if dt_tyle_b > dt_tyle_a & 50<dt_tyle_b - dt_tyle_a< 60 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 60%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'V'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_b > dt_tyle_a & 60<dt_tyle_b - dt_tyle_a< 70 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : 70%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'O'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_b > dt_tyle_a & 70<dt_tyle_b - dt_tyle_a< 80 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 80%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'P'); out=fscanf(s); fclose(s); delete(s); clear s; else Trang 96

N GIAO THNG THNG MINH

if dt_tyle_b > dt_tyle_a & 80<dt_tyle_b - dt_tyle_a< 90 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 90%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'Q'); out=fscanf(s); fclose(s); delete(s); clear s; else if dt_tyle_b > dt_tyle_a & 90<dt_tyle_b - dt_tyle_a< 100 set(handles.text16,'string','Mat Do Tuyen B day Hon Mat Do Tuyen A : < 100%'); s=serial('com1','baudrate',9600,'databits',8); fopen(s); fprintf(s,'Z'); out=fscanf(s); fclose(s); delete(s); clear s; end end end end end end end end end end

delete('chupsosanhA.png'); clear chupsosanhA.png;

Trang 97

N GIAO THNG THNG MINH

delete('chupsosanhB.png'); clear chupsosanhB.png;

chng trnh h tr camra :


function varargout = Mat_Do_Tuyen_A(varargin) % MAT_DO_TUYEN_A M-file for Mat_Do_Tuyen_A.fig % MAT_DO_TUYEN_A, by itself, creates a new MAT_DO_TUYEN_A or raises the existing % singleton*. % % H = MAT_DO_TUYEN_A returns the handle to a new MAT_DO_TUYEN_A or the handle to % the existing singleton*. % % MAT_DO_TUYEN_A('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAT_DO_TUYEN_A.M with the given input arguments. % % MAT_DO_TUYEN_A('Property','Value',...) creates a new MAT_DO_TUYEN_A or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Mat_Do_Tuyen_A_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Mat_Do_Tuyen_A_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help Mat_Do_Tuyen_A % Last Modified by GUIDE v2.5 27-May-2009 11:00:12

Trang 98

N GIAO THNG THNG MINH

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Mat_Do_Tuyen_A_OpeningFcn, ... 'gui_OutputFcn', @Mat_Do_Tuyen_A_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before Mat_Do_Tuyen_A is made visible. function Mat_Do_Tuyen_A_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Mat_Do_Tuyen_A (see VARARGIN) % Choose default command line output for Mat_Do_Tuyen_A handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Mat_Do_Tuyen_A wait for user response (see UIRESUME) % uiwait(handles.figure1);

Trang 99

N GIAO THNG THNG MINH

% --- Outputs from this function are returned to the command line. function varargout = Mat_Do_Tuyen_A_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) vid=videoinput('winvideo',1); %preview(vid); H1a=getsnapshot(vid); %figure(2),imshow(chup_hinh); imwrite(H1a,'chupnenA.png','png'); delete(vid); clear vid;

% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) vid=videoinput('winvideo',1); %preview(vid); H2a=getsnapshot(vid); %figure(2),imshow(H2); imwrite(H2a,'chupsosanhA.png','png'); delete(vid); Trang 100

N GIAO THNG THNG MINH

clear vid; function varargout = Mat_Do_Tuyen_B(varargin) % MAT_DO_TUYEN_B M-file for Mat_Do_Tuyen_B.fig % MAT_DO_TUYEN_B, by itself, creates a new MAT_DO_TUYEN_B or raises the existing % singleton*. % % H = MAT_DO_TUYEN_B returns the handle to a new MAT_DO_TUYEN_B or the handle to % the existing singleton*. % % MAT_DO_TUYEN_B('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MAT_DO_TUYEN_B.M with the given input arguments. % % MAT_DO_TUYEN_B('Property','Value',...) creates a new MAT_DO_TUYEN_B or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before Mat_Do_Tuyen_B_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to Mat_Do_Tuyen_B_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Copyright 2002-2003 The MathWorks, Inc. % Edit the above text to modify the response to help Mat_Do_Tuyen_B % Last Modified by GUIDE v2.5 27-May-2009 10:41:29 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... Trang 101

N GIAO THNG THNG MINH

'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Mat_Do_Tuyen_B_OpeningFcn, ... 'gui_OutputFcn', @Mat_Do_Tuyen_B_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT

% --- Executes just before Mat_Do_Tuyen_B is made visible. function Mat_Do_Tuyen_B_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Mat_Do_Tuyen_B (see VARARGIN) % Choose default command line output for Mat_Do_Tuyen_B handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes Mat_Do_Tuyen_B wait for user response (see UIRESUME) % uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line. function varargout = Mat_Do_Tuyen_B_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); Trang 102

N GIAO THNG THNG MINH

% hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) vid=videoinput('winvideo',1);%khai bao ngo vao cho wedcam %preview(vid);%trinh dien anh dong thu duoc tu wedcam H1b=getsnapshot(vid);%chup hinh dong %figure(2),imshow(chup_hinh);%trinh dien anh tinh vua chup imwrite(H1b,'chupnenB.png','png');%luu lai anh vua chup trong mablap/work delete(vid); clear vid;%thuc hien xoa va dong ngo vao

% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) vid=videoinput('winvideo',1);%khai bao ngo vao cho wedcam %preview(vid);%trinh dien anh dong thu duoc tu wedcam H2b=getsnapshot(vid);%chup hinh dong %figure(2),imshow(H2);%trinh dien anh tinh vua chup imwrite(H2b,'chupsosanhB.png','png');%luu lai anh vua chup trong mablap/work delete(vid); clear vid;%thuc hien xoa va dong ngo vao

5.2.4. Giao din :


Trang 103

N GIAO THNG THNG MINH

5.3. Vn hnh : Chp nh Phn tch nh chp mu

Tnh din tch c trng ca nh

Tch chn c trng cho nh

So snh vi din tch thc ca nn ng

Rt ra kt lun

Trang 104

N GIAO THNG THNG MINH

Khng gian trm

Xe lu thng

Xe c tr tuyt i

Hnh xe chuyn sang xm

Tng tng phn ly gii hn tnh din tch Phng thc vn hnh qua hnh nh

Chng 6 KT QU
6.1. mn hnh giao din:

Trang 105

N GIAO THNG THNG MINH

Hinh 6.1 giao din chnh

Hnh 6.2 giao din khi c xe hai tuyn

Trang 106

N GIAO THNG THNG MINH

Hnh 6.3 giao din khi phn tch

6.2. Kt qu:

Hnh 6.4 hnh xe c ly ti trm giao thng

Trang 107

N GIAO THNG THNG MINH

Hnh 6.5 hnh xe c chuyn sang a cp xm

Hnh 6.5 hnh xe qua php tr tuyt i

Trang 108

N GIAO THNG THNG MINH

Hnh 6.5 hnh xe c tng tng phn

Hnh 6.5 hnh xe c phn tch c trng

Trang 109

N GIAO THNG THNG MINH

Hnh 6.5 ly gii hn ca c trng

Trang 110

N GIAO THNG THNG MINH

KT LUN V HNG PHT TRIN CA TI


Kt lun:
ti n giao thng thng minh hon chnh v c th hot ng tt vi m hnh km theo. H thng hot ng ng vi yu cu t ra ca ti l: - M hnh n giao thng ng t c camera quan st. - Chng trnh x l nh tnh ton mt lu thng. - Kt hp m hnh n giao thng v chng trnh. Tuy nhin ti c th c ng dng trong thc t s pht sinh nhiu yu t gy nh hng trong qu trnh x l nh: tri ma nn ng b vy bn, nhiu nh sng.

Hng pht trin ca ti:


- Cn thit k phn mm gn v nng cao tc x l. - Cn thit k cho h thng hot ng t ng ( tm hiu v th: trong matlab c hm cho php chng trnh chy lp li sau mt khong thi gian ci t nhng n hot ng ng vi thi gian thc ta cn phi u t thi gian tm hiu hn na). - Tng thm kh nng tg phn tt hn gia xe v nn ng bng cch to nhuyn gia cc vch trng en trn nn ng. - Nng cao cht lng hnh nh cn x l bng cch thay th webcam bng cc camera chuyn dng hn.

Trang 111

You might also like