Tải bản đầy đủ - 0 (trang)
2 NHỮNG VẤN ĐỀ TỒN TẠI

2 NHỮNG VẤN ĐỀ TỒN TẠI

Tải bản đầy đủ - 0trang

5.3 HƯỚNG PHÁT TRIỂN

Đề tài vẫn chưa áp dụng cho xe tham gia giao thơng thực tế. Vì vậy để áp dụng

được vào trong thực tế giao thơng thì cần áp dụng và thực hiện tiếp một số nội dung

sau đây:

-



Nghiên cứu thuật toán kết hợp xử lý ảnh, điều khiển tự động với hệ



thống lái để tránh được các vật cản trên đường

-



Kết hợp nhận dạng vật cản và nhận dạng làn đường để hỗ trợ ô tô chạy



đúng làn đường quy định.

-



Kết hợp xử lý nhận dạng với một số cảm biến va chạm, để báo va chạm



để hiển thị tình trạng giao thơng và cảnh báo nguy hiểm



- 81 -



TÀI LIỆU THAM KHẢO

[1] KS. Lê Quốc Anh, TS. Phan Tương Lai – Trung tâm KHKT-CNQS, PGS.TS Lê

Hùng Lân, ThS. Nguyễn Văn Tiềm, “Ứng dụng công nghệ xử lý ảnh trong thời gian

thực trong bài toán tự động giám sát giao thông tại Việt Nam”, Trường Đại học

GTVT Hà Nội

[2] KS Lê Việt Dũng, PGS.TS Ngô Quốc Tạo, “ Nghiên cứu kỹ thuật nhận dạng

bàn tay người”, Trường Học Viện Cơng Nghệ Bưu Chính Viễn Thơng, Hà Nội,

2013

[3] Th.S Đặng Quang Thạch, “Hệ thống giám sát giao thông ứng dụng công nghệ

xử lý ảnh”, 2014

[4] KS. Hồ Văn Thu, TS. Lê Thanh Phúc, “Ứng dụng xử lý ảnh nhận dạng đường

đi cho ô tô chạy tự động”, Tạp chí khoa học kỹ thuật, 2015

[5] TS. Nguyễn Bá Hải, “Robot tự hành ứng dụng xử lý ảnh với LabVIEW”, Trường

Đại học Sư phạm Kỹ thuật TP.HCM, 2013

[6] Banerjee, S., Choudekar, P., Muju, M.K., “Real time car parking system using

image processing”, Electronics Computer Technology (ICECT), 2011 3rd

International Conference on , Volume:2, 8-10 April 2011, pp 99 – 103

[7] V. Kastrinaki, Michael E. Zervakis, Kostas Kalaitzakis, “A survey of video

processing techniques for traffic applications”, Image and Vision Computing IVC , vol. 21, no. 4, pp. 359-381, 2003

[8] David S.Breed, Wilbur E.DuVall, Wendell C.Johnson, “Vehicular monitoring

systems using image processing”, Automotive Technologies International, Inc.,

2004

[9] Joseph S.Stam, Mark W.Piece, Harold C.Ockerse, “Image processing system to

control vehicle headlamps or other vehicle equipment”, Gentex Coporation, 2006

[10] PGS.TS. Nguyễn Quang Hoan, Xử lý ảnh, Học Viện Công Nghệ Bưu Chính

Viễn Thơng, 2006

[11] TS. Đỗ năng Tồn, TS. Phạm Việt Bình, Giáo trình Xử lý ảnh, Đại học Thái

Nguyên, 2007.



- 82 -



[12] JAE S.LIM, GS.Nguyễn Văn Ngọ, Giáo trình xử lý ảnh, Đại học Quốc Gia Hà

Nội, 2001.

[13] Oge Marques, Practical Image and video processing using Matlab, Wiley, 2011

[14] TS. Nguyễn Bá Hải, “Lập trình LabVIEW”, NXB Đại học Quốc Gia TP.Hồ

Chí Minh.

[15] PGS.TS Đỗ Văn Dũng, “Điện động cơ và điều khiển động cơ”, NXB Đại học

Quốc Gia TPHCM, 2013

[16] Rafael C.Gonzalez-University of Tennessee, Richar E.Woods-MedData

Interactive, “Digital Image Processing”

[17] PGS.TS Đỗ Văn Dũng, “Từ điển Anh-Việt chuyên ngành công nghệ ô tô”,

NXB Thống Kê, 2003

[18] M.Bertozzi and A.Broggi, “GOLD: A parallel real-time stereo vision system

for generic obstacle and lane detection”, IEEE Transaction on Image Processing,

1998, pp.199-213.

[19] ZuWhan Kim, “Realtime Lane Tracking of Curved Local Road”, in IEEE

Intelligent Transporation Systems, Toronto, Canada, 2006, pp.1149-1155.

[20] Y. Wang, E.K.Teoh, and D.Shen, "Lane detection and tracking using BSnake,"

Image and Vision Computing, vol. 22, no.4, 2004, pp. 269-280

[21] “http://luanvan.vn/”

[22]“http://www.xilinx.com/applications/automotive/image-processing-and

recognition/

[23] http://www.rob.cs.tu-bs.de/en/research/projects/parkspot/

[24] “hocdelam.org”

[25] www.khoahoc.com.vn



- 83 -



PHỤ LỤC

 Code tính khoảng cách và điều khiển xe:

#include

#include

#define trigger PORTB.0

#define echo PIND.2

unsigned int distance; // Bien luu gia tri thoi gian

unsigned char range_ok; // Bien luu thong tin cho phep hoan thanh

long range; // Bien luu gia tri khoang cach

// Alphanumeric LCD Module functions

#include

char dis[16];

unsigned char pwm, x;

// Timer 0 overflow interrupt service routine

//Su dung timer 0 dieu khien toc do dong co theo khoang cach

interrupt [TIM0_OVF] void timer0_ovf_isr(void)

{

// Place your code here

x++;

if (x>=pwm)

{

PORTB.1=1;

}

else

{

PORTB.1=0;

}

}

// External Interrupt 0 service routine



- 84 -



interrupt [EXT_INT0] void ext_int0_isr(void)

{

distance=TCNT1; // Doc gia tri timer 1

range=(long)(distance)/58/10;

range=range-1;

TCNT1 = 0x00; // Xoa du lieu timer 1

TCCR1B = 0x00; // Ngung timer 1, Timer 1 chua hoat dong MCU yeu cau khoang

cach

range_ok=1; // Hoan thanh phep do

}

void StartRange()

{

trigger=1;

delay_ms(22); // Tao 1 xung it nhat 10ms

trigger=0; // Bat dau giai lenh do

while(!(echo)); // Doi cho chan Echo keo len muc cao

TCCR1B=0x01; // Cho phep timer 1 hoat dong

}

// External Interrupt 1 service routine

interrupt [EXT_INT1] void ext_int1_isr(void)

{

// Place your code here

}

// External Interrupt 2 service routine

interrupt [EXT_INT2] void ext_int2_isr(void)

{

// Place your code here

}

#ifndef RXB8



- 85 -



#define RXB8 1

#endif

#ifndef TXB8

#define TXB8 0

#endif

#ifndef UPE

#define UPE 2

#endif

#ifndef DOR

#define DOR 3

#endif

#ifndef FE

#define FE 4

#endif

#ifndef UDRE

#define UDRE 5

#endif

#ifndef RXC

#define RXC 7

#endif

#define FRAMING_ERROR (1<
#define PARITY_ERROR (1<
#define DATA_OVERRUN (1<
#define DATA_REGISTER_EMPTY (1<
#define RX_COMPLETE (1<
// USART Receiver buffer

#define RX_BUFFER_SIZE 8

char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE <= 256



- 86 -



unsigned char rx_wr_index,rx_rd_index,rx_counter;

#else

unsigned int rx_wr_index,rx_rd_index,rx_counter;

#endif

// This flag is set on USART Receiver buffer overflow

bit rx_buffer_overflow;

// USART Receiver interrupt service routine

interrupt [USART_RXC] void usart_rx_isr(void)

{

char status,data;

status=UCSRA;

data=UDR;

if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)

{

rx_buffer[rx_wr_index++]=data;

#if RX_BUFFER_SIZE == 256

// special case for receiver buffer size=256

if (++rx_counter == 0)

{

#else

if (rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;

if (++rx_counter == RX_BUFFER_SIZE)

{

rx_counter=0;

#endif

rx_buffer_overflow=1;

}

}

}



- 87 -



#ifndef _DEBUG_TERMINAL_IO_

// Get a character from the USART Receiver buffer

#define _ALTERNATE_GETCHAR_

#pragma used+

char getchar(void)

{

char data;

while (rx_counter==0);

data=rx_buffer[rx_rd_index++];

#if RX_BUFFER_SIZE != 256

if (rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;

#endif

#asm("cli")

--rx_counter;

#asm("sei")

return data;

}

#pragma used#endif

// USART Transmitter buffer

#define TX_BUFFER_SIZE 8

char tx_buffer[TX_BUFFER_SIZE];

#if TX_BUFFER_SIZE <= 256

unsigned char tx_wr_index,tx_rd_index,tx_counter;

#else

unsigned int tx_wr_index,tx_rd_index,tx_counter;

#endif

// USART Transmitter interrupt service routine

interrupt [USART_TXC] void usart_tx_isr(void)



- 88 -



{

if (tx_counter)

{

--tx_counter;

UDR=tx_buffer[tx_rd_index++];

#if TX_BUFFER_SIZE != 256

if (tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;

#endif

}

}

#ifndef _DEBUG_TERMINAL_IO_

// Write a character to the USART Transmitter buffer

#define _ALTERNATE_PUTCHAR_

#pragma used+

void putchar(char c)

{

while (tx_counter == TX_BUFFER_SIZE);

#asm("cli")

if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))

{

tx_buffer[tx_wr_index++]=c;

#if TX_BUFFER_SIZE != 256

if (tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;

#endif

++tx_counter;

}

else

UDR=c;

#asm("sei")



- 89 -



}

#pragma used#endif

// Standard Input/Output functions

#include

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTB=0xff;

DDRB=0xff;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00;



- 90 -



DDRD=0x00;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=0x01;

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer1 Stopped

// Mode: Normal top=0xFFFF

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x02; ///////////////////jhjhgjghjhg//////////

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;



- 91 -



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

2 NHỮNG VẤN ĐỀ TỒN TẠI

Tải bản đầy đủ ngay(0 tr)

×