Đề tài: Thiết kế, mô phỏng sử dụng Arduino để điều khiển đèn giao thôngGVHD: Ths.. Để 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
Trang 1Đề tài: Thiết kế, mô phỏng sử dụng Arduino để điều khiển đèn giao thông
GVHD: Ths Hà Lê Hoài Trung BÁO CÁO
Môn: Thiết Kế Số 2
Trang 2
Trang 3
LỜI NÓI ĐẦU 1
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 1 Mô hình đèn giao thông ở ngã tư 2
Hì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ông ngừ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ện giao 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ường xuyê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ương tiệ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à đèn và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 ra tí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ác cổ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 xanh củ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ảng thờ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 đó đèn xanh 2(Green2), đèn đỏ 1(Red1), đèn đỏ cho người đi bộ 2(padRed2), đèn xanh 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, Yellow2 tắ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ư.
II CÁC CÔNG CỤ THỰC HIỆN ĐỀ TÀI
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ương tá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óng ngay 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ện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm
Trang 8Arduino Uno là sử dụng chip Atmega328 Nó có 14 chân digital I/O, 6 chân đầu vào (input) analog, thạch anh dao động 16Mhz Một số thông số kỹ thuật như sau:
Đ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
bootloader SRAM 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 qua cá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ụng nguồ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ện tượng nóng và làm hỏng bo mạch Khuyết cáo các bạn nên dùng nguồ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ấy nguồ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 bo mạ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ác linh 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áy mình bao gồm Windown, Mac OS hay Linux Đối với Windown có bản cài đặt (.exe) và bản Zip, đối với Zip thì chỉ cần giải nén và chạy chương trì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ính
b) Arduino IDE Menu:
Trang 15 File menu:
Hình 10 File menu
Trong file menu chúng ta quan tâm tới mục Examples đây là nơi chứa code mẫu ví dụ như: cách sử dụng các chân digital, analog, sensor …
Trang 16Hình 11 Click Examples
Edit menu:
Hình 12 Edit menu
Trang 17 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:
Hì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 download thư viện arduino cho proteus Để có được thư viên này các bạn cần truy cập và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ách bấ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ình trê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ảo thời gian đèn đỏ của hướng này phải lớn hơn hoặc bằng tổng thờ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ín hiệ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ước khi 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ác ngã tư Gồm 2 trụ đèn, mỗi trụ đèn gồm: 1 đèn xanh, 1 đèn đỏ, 1 đèn và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.