MỤC LỤC TrangLỜI NÓI ĐẦU1I.NGUYÊN TẮC HOẠT ĐỘNG CỦA ĐÈN GIAO THÔNG21.Cấu tạo và nguyên tắc hoạt động21.1 Cấu tạo21.2 Nguyên tắc hoạt động22.“Làn xanh”3II.CÁC CÔNG CỤ THỰC HIỆN ĐỀ TÀI31.Board Arduino Uno31.1 Tổng quan31.2 Sơ đồ chân của Arduino41.3 Cài đặt chương trình Arduino IDE61.4 Cài đặt Driver72.Arduino IDE93.Mô phỏng Arduino trên Proteus14III.THỰC HIỆN ĐỀ TÀI171.Bài toán đặt ra172. Mô hình và sơ đồ172.1 Mô hình tổng quát172.2 Mô hình thiết kế182.3 Sơ đồ khối192.4 Sơ đồ giải thuật192.5 Sơ đồ ASM202.6 Control Unit21IV.TỔNG KẾT21V.TÀI LIỆU THAM KHẢO22
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KỸ THUẬT MÁY TÍNH
- -BÁO CÁO Môn: Thiết Kế Số 2
GVHD: Ths Hà Lê Hoài Trung
Đề tài: Thiết kế, mô phỏng sử dụng Arduino để điều khiển đèn giao thông
Trang 2
Trang 3
I NGUYÊN TẮC HOẠT ĐỘNG CỦA ĐÈN GIAO THÔNG 2
1 Cấu tạo và nguyên tắc hoạt động 2
1.1 Cấu tạo 2
1.2 Nguyên tắc hoạt động 2
2 “Làn xanh” 3
II CÁC CÔNG CỤ THỰC HIỆN ĐỀ TÀI 3
1 Board Arduino Uno 3
1.1 Tổng quan 3
1.2 Sơ đồ chân của Arduino 4
1.3 Cài đặt chương trình Arduino IDE 6
1.4 Cài đặt Driver 7
2 Arduino IDE 9
3 Mô phỏng Arduino trên Proteus 14
III THỰC HIỆN ĐỀ TÀI 17
1 Bài toán đặt ra 17
2 Mô hình và sơ đồ 17
2.1 Mô hình tổng quát 17
2.2 Mô hình thiết kế 18
2.3 Sơ đồ khối 19
2.4 Sơ đồ giải thuật 19
2.5 Sơ đồ ASM 20
2.6 Control Unit 21
IV TỔNG KẾT 21
V TÀI LIỆU THAM KHẢO 22
Trang 4Hình 2 Arduino Uno 4
Hình 3 Arduino IDE 7
Hình 4 Driver Software Installation 7
Hình 5 Device Manager 8
Hình 6 Right click và chọn ”Update Driver Software” 8
Hình 7 Click chọn “Browse my computer for driver software” 9
Hình 8 Driver 9
Hình 9 Arduino IDE 10
Hình 10 File menu 11
Hình 11 Click Examples 11
Hình 12 Edit menu 12
Hình 13 Sketch menu 12
Hình 14 Tool menu 13
Hình 15 Chọn Board 14
Hình 16 Thư viện mô phỏng Arduino 15
Hình 17 Mô phỏng Arduino bằng Proteus 16
Hình 18 Mô hình tổng quát 18
Hình 19 Mô hình thiết kế trên Proteus 18
Hình 20 Sơ đồ khối 19
Hình 21 Control Unit 21
Trang 5LỜI NÓI ĐẦU
Trong những năm gần đây cùng với sự phát triển của nền kinh tế là tốc độ ra tăng khôngngừng về các loại phương tiện giao thông Sự phát triển nhanh chóng của các phương tiệngiao thông đã dẫn đến tình trạng tắc nghẽn giao thông và tai nạn giao thông xảy ra thườngxuyên.Vấn đề đặt ra ở đây là làm sao để đảm bảo giao thông thông suốt và an toàn?
Để giải quyết vấn đề đó, nhóm em đã chọn đề tài: “Thiết kế, mô phỏng sử dụng Arduino
để điều khiển đèn giao thông” nhằm thiết kế và triển khai một hệ thống điều khiển chođèn giao thông tại một ngã tư thường, nhằm hạn chế ùn tắc và tai nạn cho các phươngtiện tham gia giao thông
Trang 6I NGUYÊN TẮC HOẠT ĐỘNG CỦA ĐÈN GIAO THÔNG
1 Cấu tạo và nguyên tắc hoạt động
Hình 1 Mô hình đèn giao thông ở ngã tư
1.1 Cấu tạo
Hệ thống đèn giao thông hay là đèn điều khiển giao thông gồm hai cộtđèn chính được lắp đặt tại hai đầu của hai làn đường khác nhau ở ngã tư.Mỗi một cột đèn gồm 5 đèn đó là 3 đèn chính gồm: đèn xanh, đèn đỏ và đènvàng; 2 đèn phụ là 2 đèn dùng điều khiển làn đường dành cho người đi bộ:đèn xanh người đi bộ và đèn đỏ người đi bộ
Ngoài ra, mỗi một hệ thống đèn có một hộp điều khiển từ đó sẽ phát ratín hiệu điều khiển đèn Tín hiệu điều khiển của đèn từ CPU thông qua cáccổng ra rồi đến các rơle, rồi qua hệ thống dây nối đến các đèn
1.2 Nguyên tắc hoạt động
Cơ chế hoạt động của đèn giao thông thật ra rất đơn giản: Khi đèn xanhcủa làn đường 1 (Green1) được bật sáng thì cùng lúc đó đèn đỏ của lànđường 2 (Red2), đèn đỏ cho người đi bộ ở làn đường 1 (padRed1), đèn xanh
Trang 7người đi bộ làn đường 2 (padGreen2) cũng được bật sáng Sau một khoảngthời gian nhất định Green1 tắt, đèn vàng 1(Yellow1) được bật lên
Khi Yellow1 tắt thì Red2, pedRed1, pedGreen2 mới tắt cùng lúc đó đènxanh 2(Green2), đèn đỏ 1(Red1), đèn đỏ cho người đi bộ 2(padRed2), đènxanh cho người đi bộ 1(padGreen1) được bật sáng
Lúc đèn vàng 2(Yellow2) được bật lên cũng là lúc Green2 tắt, Yellow2tắt chu kì được lập lại với Red2, Green1,…
có tác dụng tạo thời gian trễ của chu kỳ đèn thứ hai so với đèn thứ nhất phùhợp
Bài toán đèn giao thông trong báo cáo này chưa đề cập đến “làn xanh”
mà chỉ là chương trình điều khiển đèn cho một ngã tư
1 Board Arduino Uno
1.1 Tổng quan
Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tươngtác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bịkhác Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực
kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóngngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiệntượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứngtới phần mềm
Trang 8Arduino Uno là sử dụng chip Atmega328 Nó có 14 chân digital I/O, 6chân đầu vào (input) analog, thạch anh dao động 16Mhz Một số thông số kỹ
thuật như sau:
Chip ATmega328
Điện áp cấp nguồn 5V
Điện áp đầu vào (input) (kiến nghị) 7-12V
Điện áp đầu vào (giới hạn) 6-20V
Số chân Digital I/O 14 (có 6 chân điều chế độ rộng xung PWM)
Số chân Analog (Input ) 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 32KB (ATmega328) với 0.5KB sử dụng
bootloaderSRAM 2 KB (ATmega328)
EEPROM 1 KB (ATmega328)
Xung nhịp 16 MHz
1.2 Sơ đồ chân của Arduino
Hình 2 Arduino Uno.
Trang 9a) USB (1)
Arduino sử dụng cáp USB để giao tiếp với máy tính Thông quacáp USB chúng ta có thể Upload chương trình cho Arduino hoạt động,ngoài ra USB còn là nguồn cho Arduino
b) Nguồn (2 và 3)
Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụngnguồn ngoài thông qua jack cắm 2.1mm (cực dương ở giửa) hoặc cóthể sử dụng 2 chân Vin và GND để cấp nguồn cho Arduino
Bo mạch hoạt động với nguồn ngoài ở điện áp từ 5 – 20 volt.Chúng ta có thể cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mực điện
áp lớn hơn 5 volt Và nếu sử dụng nguồn lớn hơn 12 volt thì sẽ có hiệntượng nóng và làm hỏng bo mạch Khuyết cáo các bạn nên dùngnguồn ổn định là 5 đến dưới 12 volt
Chân 5V và chân 3.3V (Output voltage): các chân này dùng để lấynguồn ra từ nguồn mà chúng ta đã cung cấp cho Arduino Lưu ý:không được cấp nguồn vào các chân này vì sẽ làm hỏng Arduino GND: chân mass
Cũng trên 14 chân digital này chúng ta còn một số chân chức năng đólà:
Serial: chân 0 (Rx), chân 1 (Tx) Hai chân này dùng để truyền (Tx)
và nhận (Rx) dữ liêu nối tiếp TTL Chúng ta có thể sử dụng nó để
Trang 10giao tiếp với cổng COM của một số thiết bị hoặc các linh kiện cóchuẩn giao tiếp nối tiếp
PWM (pulse width modulation): các chân 3, 5, 6, 9, 10, 11 trên bomạch có dấu “~” là các chân PWM chúng ta có thể sử dụng nó đểđiều khiển tốc độ động cơ, độ sáng của đèn…
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK), các chân này hỗtrợ giao tiếp theo chuẩn SPI
I2C: Arduino hỗ trợ giao tiếp theo chuẩn I2C Các chân A4 (SDA)
và A5 (SCL) cho phép chúng tao giao tiếp giửa Arduino với cáclinh kiện có chuẩn giao tiếp là I2C
e) Reset (7): dùng để reset Arduino.
1.3 Cài đặt chương trình Arduino IDE
Các bạn truy cập vào trang web http://arduino.cc/en/Main/Software
và tải về chương trình Arduino IDE phù hợp với hệ điều hành của máymình bao gồm Windown, Mac OS hay Linux Đối với Windown có bảncài đặt (.exe) và bản Zip, đối với Zip thì chỉ cần giải nén và chạy chươngtrình không cần cài đặt
Sau khi cài đặt xong thì giao diện chương trình như sau:
Trang 12Bây giờ bạn click vào Start Menu chọn Control Panel kế đến chúng
ta chọn System and Security, click System và sau đó chọn Device
Manager
Hình 5 Device Manager
Chúng ta sẽ thấy cảnh báo màu vàng thiếu driver trên Arduino Click
chuột phải trên Arduino Uno icon sau đó chọn “Update Driver
Software”
Hình 6 Right click và chọn ”Update Driver Software”
Chọn “Browse my computer for driver software”
Trang 13Hình 7 Click chọn “Browse my computer for driver software”
Chọn đường dẫn tới folder “driver” nơi mà phần mềm Arduino được lưu trữ
Trang 14Hình 9 Arduino IDE
a) Arduino Toolbar có một số button và chức năng của chúng như sau:
Hình 8 Arduino toolbar
- Verify: kiểm tra code có lỗi hay không
- Upload: nạp code đang soạn thảo vào Arduino
- New, Open, Save: Tạo mới, mở và Save sketch
- Serial Monitor: Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên
máy tínhb) Arduino IDE Menu:
Trang 16Hình 12 Edit menu
Sketch menu:
Hình 13 Sketch menu
Trong Sketch menu :
Verify/ Compile : chức năng kiểm tra lỗi code
Show Sketch Folder : hiển thị nơi code được lưu
Add File : thêm vào một Tap code mới
Import Library : thêm thư viện cho IDE
Tool menu:
Trang 17Hình 14 Tool menu
Trong Tool menu ta quan tâm các mục Board và Serial Port
Mục Board: các bạn cần phải lựa chọn bo mạch cho phù hợp với loại bo màbạn sử dụng nếu là Arduino Uno thì phải chọn như hình:
Trang 183 Mô phỏng Arduino trên Proteus
Để mô phỏng được Arduino trên proteus thì chúng ta cần phải downloadthư viện arduino cho proteus Để có được thư viên này các bạn cần truy cậpvào trang web: http://blogembarcado.blogspot.com/search/label/Proteus
Trang 19Hình 16 Thư viện mô phỏng Arduino
Sau khi download về các bạn chép 2 file ARDUINO.IDX và ARDUINO.LIB vào thưmục:
Sau khi chép xong chúng ta khởi động Proteus lên vào thư viện linh kiện bằng cáchbấm phím P và gõ từ khoá là ARDUINO chúng sẽ hiện ra danh sách các board hiện
có ở đây tôi chọn Arduino Uno
Trang 20Hình 17 Mô phỏng Arduino bằng Proteus
Lưu ý chúng ta cần phải cấp nguồn vào 2 chân 5V và Gnd trên mạch như hìnhtrên
Ngoài những công cụ trên, đề tài còn sử dụng Led và điện trở, gồm có:
10 đèn Led:
+ 2 Led Xanh+ 2 Led Vàng+ 2 Led Đỏ+ 2 Led Đỏ nhỏ+ 2 Led Xanh nhỏ
10 điện trở 1k Ω
Trang 21III THỰC HIỆN ĐỀ TÀI
1 Bài toán đặt ra
Điều khiển tín hiệu đèn cho các phương tiện giao thông:
Trên các hướng đi có bộ ba đèn điều khiển xanh, vàng, đỏ
Các đèn hiệu sẽ được điều khiển theo logic và phải đảm bảothời gian đèn đỏ của hướng này phải lớn hơn hoặc bằng tổngthời gian đèn xanh và đèn vàng của hướng kia
Thứ tự đèn cho mỗi hướng là: vàng → đỏ → xanh →vàng, Điều khiển tín hiệu đèn cho người đi bộ:
Trên các hướng đi có bộ đèn hiệu cho người đi bộ gồm hai tínhiệu xanh và đỏ
Tín hiệu đèn xanh của người đi bộ sẽ bắt đầu sau khi đèn đỏcủa phương tiện của hướng đó sáng được 1s và kết thúc trướckhi tín hiệu đèn xanh cho phương tiện giao thông của hướng đósáng 1s
2 Mô hình và sơ đồ 2.1 Mô hình tổng quát
Bài toán được thiết kế dựa trên mô hình đèn giao thông thực tế tại cácngã tư Gồm 2 trụ đèn, mỗi trụ đèn gồm: 1 đèn xanh, 1 đèn đỏ, 1 đènvàng, 1 đèn xanh đi bộ, 1 đèn đỏ đi bộ
Trang 22Hình 18 Mô hình tổng quát
2.2 Mô hình thiết kế
Hình 19 Mô hình thiết kế trên Proteus
Trang 24- Lược đồ trạng thái:
100 01
Trang 252.5 Sơ đồ ASM
Trang 26Kết thúc đề tài, chúng em có những kết quả nhất định như sau:
- Thiết kế được mạch điều khiển giao thông cho một ngã tư
- Mô phỏng được 90% mạch thật trên Proteus
- Mạch cơ bản đã chạy đúng các yêu cầu thiết kế và ổn định
Tuy nhiên, do kinh nghiệm còn yếu kém và lần đầu tiên tiếp xúc với boardArduino nên kết quả còn hạn chế Nhóm mong rằng thầy sẽ góp ý thêm đểnhóm hoàn thiện tốt hơn đề tài này
Trang 27V TÀI LIỆU THAM KHẢO
1 Tài liệu học Lập trình Arduino tại http://arduino.vn/
2. Thông tư về tín hiệu đèn điều khiển giao thông tạihttp://thuvienphapluat.vn/archive/Thong-tu/Thong-tu-915-C57-P5-den-tin-hieu-dieu-khien-giao-thong-vb43827t23.aspx