1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đề tài nghiên cứu Hệ thống cảnh báo giao thông đoạn đèo dốc

29 593 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Trang 1

PHƯƠNG PHÁP VÀ THIẾT BỊ THÍ NGHIỆM 4

I PHƯƠNG PHÁP THU THẬP DỮ LIỆU 4

1 Thu thập dữ liệu 4

2 Xây dựng phần cứng 4

II PHẦN MỀM 15

1 Ngôn ngữ lập trình IC và phần mềm hỗ trợ 15

2 Lưu đồ thuật toán 23

3 Chương trình chạy mô phỏng 23

4 Một số hình ảnh kết quả thực nghiệm trên mô hình 25

5 Giá thành cho một bộ mạch điện 28

III KẾT QUẢ 28

IV THẢO LUẬN 28

V KẾT LUẬN 28

Trang 2

TÓM TẮT1 Mục tiêu nghiên cứu

- Tìm hướng giảm thiểu tai nạn giao thông tại những đoạn đèo dốc nguy hiểm

- Thay thế hệ thống gương cầu thường có thời gian sử dụng ngắn và phạm vi quan sát gần- Trả lời các câu hỏi:

 Hệ thống có thay thế tốt gương cầu không ?  Giá thành lắp đặt một hệ thống ?

 Chi phí phát sinh trong quá trình vận hành ? Vấn đề nảy sinh trong quá trình vận hành ?

2 Trình tự thực hiện

Tìm hiểu các vấn đề cơ bản sau:

- Điều kiện chiếu sáng tại những đoạn đường đèo dốc- Khả năng quan sát và báo hiệu qua gương cầu- Khả năng chiếu sáng và báo hiệu của hệ thống- Điều kiện nắng tại những đoạn đèo dốc

- Độ rộng của những đoạn đường đèo, dốc

- Tiến hành thiết kế mạch điện tử dựa vào yêu cầu và các số liệu

3 Kết quả nghiên cứu

Đối với sản phẩm

- Thực hiện cảnh báo ổn định khi có xe đi vào khu vực cảm biến- Đảm bảo yêu cầu điều khiển chế độ hoạt động của đèn đường Đối với hệ thống

- Nhỏ gọn và đảm bảo yêu cầu chức năng

- Giá thành thấp phù hợp để trang bị cho các đoạn đường- Tiết kiệm năng lượng

Trang 3

PHẦN I: GIỚI THIỆU1 Đặt vấn đề

Hiện nay, tai nạn giao thông là một vấn đề mà cả xã hội đang quan tâm Làm thế nào đểgiảm thiểu tai nạn giao thông là một câu hỏi lớn vẫn chưa có lời giải đáp thỏa đáng Tai nạn rấtdễ xảy ra tại những nơi hạn chế tầm nhìn đặc biệt là những đoạn đường cua gấp Mặc dù tạinhững nơi đó đã có hệ thống gương cầu, tuy nhiên việc quan sát qua gương cầu lại phải ởkhoảng cách khá gần và không thể cảnh báo từ xa được Hơn nữa hệ thống gương cầu theo thờigian sẽ bị bụi bám vào làm mất đi tính năng phản chiếu Xuất phát từ vấn đề trên với mongmuốn đóng góp một phần nhỏ bé của mình vào cuộc chiến giảm thiểu tai nạn giao thông em đã

chọn đề tài “HỆ THỐNG CẢNH BÁO GIAO THÔNG ĐOẠN ĐÈO DỐC” thuộc lĩnh vực

“Kỹ thuật điện và cơ khí”.

- Hơn nữa, tại những đoạn đường này rất cần được chiếu sáng để hạn chế tai nạn đángtiếc Tuy nhiên năng lượng là một vấn đề cần quan tâm rất lớn, mặc dù đã có hệ thống nănglượng mặt trời Tuy nhiên, khi không có phương tiện qua lại khu vực này mà hệ thống đèn vẫnliên tục chiếu sáng thì rất lãng phí điện năng Vì vậy, cần một hệ thống nhận biết có phươngtiện qua lại hay không để thực hiện việc chiếu sáng Nếu không có phương tiện qua lại thì cầntắt việc chiếu sáng nhằm tiết kiệm năng lượng.

4 Yêu cầu đạt được của nghiên cứu

- Cảnh báo chính xác phương tiện qua lại- Hệ thống nhỏ gọn

- Giá thành rẻ, có thể áp dụng rộng rãi- Điều khiển hệ thống đèn đường hiệu quả

Trang 4

PHẦN 2

PHƯƠNG PHÁP VÀ THIẾT BỊ THÍ NGHIỆMI PHƯƠNG PHÁP THU THẬP DỮ LIỆU1 Thu thập dữ liệu

- Yêu cầu hệ thống phải nhận biết được phương tiện qua lại tại những vị trí xác định.

- Xử lí thông tin để đưa ra cảnh báo

- Phát hiện được ban ngày và ban đêm để điều khiển hệ thống chiếu sáng

Trang 5

o VCC > pin 5V Arduino.

Trang 6

o trig > chân digital (OUTPUT), đây là chân sẽ phát tín hiệu từ cảm biến.

o echo > chân digital (INPUT), đây là chân sẽ nhận lại tín hiệu được phản xạ từvật cản

o GND -> GND Arduino. Nguyên lý hoạt động

o Để đo khoảng cách, ta sẽ phát 1 xung rất ngắn (10 microSeconds ) từ chân

trig Sau đó, cảm biến sẽ tạo ra 1 xung HIGH ở chân echo cho đến khi nhận lại

được sóng phản xạ ở pin này Chiều rộng của xung sẽ bằng với thời gian sóngsiêu âm được phát từ cảm biển và quay trở lại

o Tốc độ của âm thanh trong không khí là 340 m/s (hằng số vật lý), tương đươngvới 29,412 microSeconds/cm (106 / (340*100)) Khi đã tính được thời gian, ta sẽchia cho 29,412 để nhận được khoảng cách.

b Mạch nhận biết sáng tối

Nguyên lí hoạt động của mạch như sau: Vào ban ngày ánh sáng chiếu vào quang trở làm cho điện trở của nó giảm mạnh vì vậy Tranzitor ngưng dẫn nên chân C ở mức cao Khi trời tối, không có ánh sáng chiếu vào quang trở làm điện trở của nó tăng nên Tranzitor dẫn vì vậy chân C ở mức thấp.

- Từ nguyên lí trên ta thấy ban ngày chân C ở mức cao, ban đêm chân C ở mức thấp Do đó ta kết nối chân C với VĐK để nhận biết ban ngày hay buổi tối.

c Mạch điều khiển biển báo

- Mạch công suất

cho biển báo

Biển báo hiệuMạch nhận biết sáng tối

Trang 7

*Mạch công suất

- Ta chọn Tranzito công suất hoặc Fet để điều khiển biển báo.

- Khi có tín hiệu đưa vào chân B của Tranzitor để kích mở thì có dòng qua Tranzitor do đósẽ làm biển báo phát sáng.

- Khi không có tín hiệu đưa vào chân B, Tranzitor ngưng dẫn nên biển báo không phát sáng (tắt)

*Biển báo hiệu

- Biển báo hiệu được làm từ các đèn led để tiết kiệm năng lượng- Cấu tạo của led

- Bố trí các Led theo hình mũi tên để hiện thị xe lên và xuống

d Khối xử lí trung tâm

- Mạch điện dùng chíp AT89C2051 để điều khiển

- RAM: 128 bytes.- Hai bộ định thì 16-bit.

- Lập trình tuần tự bằng kênh UART - Có 6 nguồn ngắt

- Có 2 mức khóa bộ nhớ chương trình.- Có cổng nối tiếp.

- Hai bộ so sánh Analog tích hợp sẵn trên chip Trực tiếp tiếp điều khiển LED ngõ ra.

Hình ảnh của IC

Trang 9

Port 1, bộ khhuyếch đại đệm đầu ra có thể hạ xuống 20mA và có thể điều khiển LED hiểnthị trực tiếp Chỉ cần 1s để chuyển những chân của Port 1 sử dụng như những đầu vào Khichân P1.2 P1.7 được sử dụng như những đầu vào, chúng s ẽ là những nguồn dòng I vì đượckéo lên bên trong Port1cũng nhận được mã dữ liệu từ chương trình FLASH và thực hiện.

PORT 3: Chân số 2, 3 , 6, 7, 8, 9, 11, những chân này đã có điện t rở kéo lên P3.6được nối cố định giữa đường xuất nhập trên bộ so sánh của chip và không thể truy cập Chỉcần 1s để chuyển những chân của Port 3 lên mức cao bởi sự kéo lên bên trong và có thể sửdụng như những đầu vào, chúng sẽ là những nguồn dòng I vì được kéo lên bên trong Port 3cũng phục vụ cho các chức năng của nhiều tính năng đặc biệt của 89C2051 như sau:

Port 3 cũng nhận được tín hiệu điều khiển từ Flash và thực hiện.

- Vcc : Chân số 20: điện áp vào khoảng 2,7V 6V( thường dùng ở mức 5V)- GND : Chân số 10: chân nối mass.

- RST : Xác lập lại trạng thái ban đầu RST=0: Chíp hoạt động bình thường RST=1: Chíp được thiết lặp l ại trạng thái ban đầu.

- XTAL1: Ngõ vào mạch tạo xung clock trong chip và ngõ vào bộ khuếch đại đảo chiều.- XTAL2: Ngõ ra t ừ bộ khuếch đại đảo chiều.

XYAL1, XTAL2 là ngõ vào và ngõ ra tương ứng của bộ khuyếch đại đảo chiều, nó

có thể định hình và được sử dụng như một bộ giao động trên chíp (hinh 1) Tinh thể thạch anhhay cộng hưởng gốm được sử dụng Hoặc là nhân xung t ừ bên ngoài(hình 2)

Trang 10

* Thanh ghi có chức năng đặc biệt :

Bên trong sơ đồ của chip có một vùng nhớ đặc biệt được gọi là thanh ghi có chức năngđặc biệt.Các vùng địa chỉ của thanh ghi được đưa vào bảng dưới đây Lưu ý rằng: khôngphải tất cả các địa chỉ được sử dụng, và các địa chỉ trống có thể không được thực hiện trênchíp Địa chỉ đọc sẽ truy xuất trở về dữ liệu ngẫu nhiên, và địa chỉ ghi sẽ truy xuất về chế độkhông có hiệu lực xác định.

Trang 11

* Bộ nhớ chương trình khóa bit:

Trên chíp có hai bộ khóa bit có thể hoạt động không cần lập trình (U), hoặc có thể lậptrình (P) để bổ sung thêm nhiều tính năng đư ợc liệt kê trong bảng dưới đây

Trang 12

* Chế độ nghỉ :

Ở chế độ nghỉ, CPU được đặt ở chế độ ngủ trong khi tất cả bộ phận ngoại vi vẫn hoạtđộng Chế độ này được gọi ra bởi phần mềm Nội dung của các thanh ghi trong RA M và tất cảcác giá trị trong thanh ghi đặc biệt cũng sẽ không đổi ở chế độ này Chế độ nghỉ có thể bị dừnglại bất kì khi nào có sự kích hoạt hay thay đổi nào đó, hoặc được reset bằng phần cứng CácP1.0 và P1.1 nên được thiết lập ở mức "L" nếu bên ngoài-up không đư ợc sử dụng, hoặc thiếtlập ở mức "H" nếu bên ngoài pull-up được sử dụng

Cần lưu ý rằng khi “nghỉ ”l à kết thúc bằng một phần cứng T ài liệu thực hiện chương trình t ừ đâu nó lại tắt, lên t ới hai chu kỳ máy trư ớc khi các nguy ên t ắc điều khiển bên trongthiết lập lại Trên chíp phần cứng quy ết định quy ền truy cập vào bộ nhớ trong RAM trong trường hợp này, nhưng truy cập vào các port không thể quyết định được Đ ể loại trừ khả năng này xảy ra một cách bất ngờ viết cho một port khi chế độ nghỉ được l ặp lại, ta không nên viết tới một Port hay bộ nhớ ngoài

6 Chế độ power -down :Ở chế độ power-down, bộ dao động ngừng, và chương trình s ẽ gọi power-down và lệnh cuối cùng được thực hiện Trên chíp nội dung RAM và tất cả các giá trị trong thanh ghi đặc biệt cũng sẽ không đổi ở chế độ này cho đến khi chế độ này kết thúc Chế độ powerdown chỉ thoát ra khi reset lại phần cứng Thiết lập lại giá trị các SFR ( thanh ghi có chức năng đặc biệt) nhưng trên RAM vẫn giữ nguy ên

Chú ý: Không nên reset l ại trư ớc khi VCC được phục hồi lại hoạt động bình thường và phải được giữ mức tích cực đủ dài, để cho phép bộ giao động khởi động lại và làm việc ổn định.

Lưu ý: Ở cả hai chế độ nghỉ và chế độ power -donw, P1.0 và P1.1 nên set ở mức "0"

nếu không sử dụng đi ện trở bên ngoài để kéo lên, hoặc set ở mức "1" nếu sử dụng điện tr ở bên ngoài để kéo lên.

* Lập tr ình Flash :

Chíp 89C2051 là một loại vi điều khiển với 2K bytes bộ nhớ PEROM có thể xóa hoàntoàn ( ví dụ, nội dung = FFH) và có thể lập trình lại Các mã lập trình bộ nhớ là một mảng bytetại một thời điểm Sau khi các mảng đã được lập trình, để đảm bảo bất kỳ chương trình nàokhông trống byte, toàn bộ mảng nhớ cần phải được xoá hoàn toàn bằng điện.

- Địa chỉ bộ đếm bên trong: V i điều khiển 89C2051 có một địa chỉ truy cập ( bên trongPEROM ) địa chỉ đếm luôn luôn dặt ở giá trị 000H trên mức cao của RST và áp dụng mứctích cực của xung dương t ừ chân XTAL1.

- Thuật toán: Để lập trình cho chip 89C2051, sau đây là các chuỗi được khuyến cáo nên sử dụng:

+ Xung từ chân P3.2 tới chương trình m ột byte ở trong PEROM hoặc bit khóa Cácbyteghi là chu kỳ tự hẹn giờ và thư ờng mất trong 1,2 ms.

+ Để kiểm tra dữ liệu được lập trình, thấp hơn RST từ12V, ta để mức logic "1" và set chân P3.3 đến P3.7 giữ ở mức thích hợp Dữ li ệu ra có thể đọc ở Port 1.

+ Để lập trình một byte ở vị trí kế tiếp, xung kích từ chân XTAL1 được kích một lần đểnâng cao số bộ định địa chỉ bên trong Dữ liệu mới được đưa vào Port 1.

+ Lặp lại các bước 6 thông qua bước 8, thay đổi dữ liệu và nâng cao

Trang 13

địa chỉ truy cập cho toàn bộ 2K bytes mảng hoặc cho đến khi kết thúc đối của tập tin là được.

+ Chuỗi Power-off: XTAL1và RST set ở mức "L".

Kiểm tra dữ liệu: chip AT89C2051 sẽ kiểm tra tuần tự dữ liệu để và cho biết thời điểm kếtthúc của một chu kỳ viết Trong thời gian một chu kỳ máy , nó s ẽ cố đọc t ới byte đượcghi cuối cùng và sẽ bổ sung các byte dữ liệu trên P1.7 Sau khi chạy xong 1 chu kì máy, thấydữ liệu hợp lệ ở tất cả các port, nó sẽ bắt đầu chạy chu kì kế tiếp Việc kiểm tra có thể bắtđầu bất cứ lúc nào khi chu kì kế tiếp được tiến hành READY / BUSY (sẵn sàng/b ận): Bytetiến trình của chương trình cũng có thể được theo dõi bởi tín hiệu đầu ra READY/BUSY.Chân P3.1 ở mức thấp sau khi chân P3.2 ở mức cao trong thời gian chương trình thực hiện đểbáo BUSY (bận) chân P3.1 sẽ trở lại mức cao khi chương trình thực hiện để báo READY ( sẵnsàng ).

Chương trình kiểm tra : Nếu bit khóa LB1 và LB2 chưa đư ợc lập trình mã dữ liệu thì có thể đọc lại dữ liệu thông qua các đư ờng dây để kiểm tra:

+ Thiết lập l ại địa chỉ truy cập bên trong là 000H và chân RST t ừ mức L lên mức H.+ Áp dụng việc kiểm tra các tín hiệu điều khiển cho phép đọc mã dữ liệu và đọc các dữli ệu xuất ra từ Port 1

+ Xung kích t ừ chân XTAL1 được kích 1 lần để nâng cao số bộ định địa chỉ bên trong.+Đọc tiếp dữ liệu mã byte tiếp theo t ại ng õ ra Port 1.

+Lặp lại các bước 3 và 4 cho đến khi đọc hết toàn bộ mảng.

Bit khóa không thể kiểm tra trực tiếp , mã xác nhật của bit khóa xác định được bằngcách quan sát những tính năng của chúng

Chip xóa : toàn bộ mảng PEROM (2KB) và 2 bộ Look Bit cần được xóa hoàn toàn bằng tín hiệu điện bằng cách kết hợp chính xác tín hiệu điều khiển và băng cách giữ tín hiệu chân P3.1 ở mức thấp trong 10ms M ã mảng phải viết tất cả ở mức H trong lúc chip xóalàm vi ệc, và phải thực hiện trước khi bất kì byte trống nào trong bộ nhớ được lập trình lại.Đọc kí hiệu byte: Kí hiệu byte được đọc bình thường và kiểm tra địa chỉ 000H, 001H, và 002H, ngoại trừ P3.5 và P3.7 phải được đặt ở mức logic thấp Các kết quả như sau:(000H)= 1EH chỉ sản xuất bởi Atmel (001H) = 21H cho biết 89C2051

* Giao di ện lập trình: Mọi mã byte trong mảng Flash được ghi và toàn bộ mảng có thể

xóa bỏ bằng cách sử dụng kết hợp thích hợp của các tín hiệu điều khiển Ghi chu kỳhoạt động là tự hẹn giờ và sau mỗi lần triển khai sẽ tự động điều chỉnh phù hợp thời gian đểhoàn thành

* Chế độ lập trình flash :

Trang 14

Tổng dòng cực đại của I và các chân ngõ ra là 80mA.

Nếu I vượt quá điều kiện cho phép, V có thể vượt qua các tiêu chuẩn kĩ thuật

liên quan của chíp Các chân chíp không được đảm bảo khi dòng lớn hơn điều kiện cho phép.

- Vcc nhỏ nhất của chế độ power-down là 2V.

Trang 15

e Sơ đồ mạch nguyên lí kết nối

II PHẦN MỀM

1 Ngôn ngữ lập trình IC và phần mềm hỗ trợ1.1 Giới thiệu ngôn ngữ C

Trong kỹ thuật lập trình vi điều khiển nói chung, ngôn ngữ lập trình được sử dụngthường chia làm 2 loại: Ngôn ngữ bậc thấp và Ngôn ngữ bậc cao.

Ngôn ngữ bậc cao là các ngôn ngữ gần vơi ngôn ngữ con người hơn, do đó việc lập trìnhbằng các ngôn ngữ này trở nên dễ dàng và đơn giản hơn Có thể kể đến một số ngôn ngữ lậptrình bậc cao như C, Basic, Pascal… trong dó C là ngôn ngữ thông dụng hơn cả trong kỹ thuậtvi điều khiển Về bản chất, sử dụng các ngôn ngữ này thay cho ngôn ngữ bậc thấp là giảm tảicho lập trình viên trong việc nghiên cứu các tập lệnh và xây dựng các cấu trúc giải thuật.Chương trình viết bằng ngôn ngữ bậc cao cũng sẽ được một phần mềm trên máy tính gọi làtrình biên dịch (Compiler) chuyển sang dạng hợp ngữ trước khi chuyển sang mã máy.

Khi sử dụng ngôn ngữ C người lập trình không cần hiểu sâu sắc về cấu trúc của bộ viđiều khiển Có nghĩa là với một người chưa quen với một vi điểu khiển cho trước sẽ xây dựngđược chương trình một cách nhanh chóng hơn, do không phải mất thời gian tìm hiểu kiến trúccủa vi điều khiển đó Và việc sử dụng lại các chương trình đã xây dựng trước đó cũng dễ dànghơn, có thể sử dụng toàn bộ hoặc sửa chữa một phần.

1.2 Ngôn ngữ C1.2.1 Kiểu dữ liệua Kiểu dữ liệu trong C

Trang 16

* Khai báo biến:

- Cú pháp: Kiểu_dữ_liệu Vùng_nhớ Tên_biến _at_ Đia_chỉ; Ví dụ:

Unsigned char data x;

- Khi khai báo biến có thể gán luôn cho biến giá trị ban đầu Ví dụ:

Thay vì: unsigned char x; x = 0;

Vùng nhớ Ý nghĩa

CODE Bộ nhớ mã nguồn chương trình

DATA Bộ nhớ dữ liệu gồm 128 Byte thấp của RAM trong vi điều khiểnBDATA Bộ nhớ dữ liệu có thê định địa chỉ bit, nằm trong vùng nhớ DATA

IDATA Bộ nhớ dữ liệu gồm 128 Byte cao của RAM trong vi điều khiển chỉ có ở một số dòng vi điều khiển sau này

PDATA Bố nhớ dữ liệu ngoài gồm 256 Byte, được truy cập bởi địa chỉ đặt trên P0XDATA Bộ nhớ dữ liệu ngoài có dung lượng có thể lên đến 64 KB, được truy cập bởi

địa chỉ đặt trên P0 và P2* Định nghĩa lại kiểu

- Cú pháp: typedef Kiễu_dữ_liệu Tên_biến;

- Ten_biến sau này sẽ được sử dụng như một kiểu dữ liệu mới và có thể dùng để khai báo các biến khác

Ngày đăng: 16/08/2016, 16:11

Xem thêm: Đề tài nghiên cứu Hệ thống cảnh báo giao thông đoạn đèo dốc

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w