Ngày nay, việc ứng dụng cho các hệ thống nhúng ngày càng trở nên phổbiến: từ những ứng dụng đơn giản như điều khiển một chốt đèn giao thông địnhthời, đếm sản phẩm trong một dây chuyền sả
Trang 1TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
Giáo viên hướng dẫn : Nguyễn Văn Huy
Thái Nguyên - 2011
Trang 2Nhận xét của giáo viên hướng dẫn
Thái Nguyên, Ngày Tháng Năm 2011
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
Nhận xét của giáo viên chấm
Thái Nguyên, Ngày Tháng Năm 2011
Giáo Viên hướng dẫn
(Ký ghi rõ họ tên)
MỤC LỤC
Trang 3LỜI NÓI ĐẦU
Trang 4Ngày nay, việc ứng dụng cho các hệ thống nhúng ngày càng trở nên phổbiến: từ những ứng dụng đơn giản như điều khiển một chốt đèn giao thông địnhthời, đếm sản phẩm trong một dây chuyền sản xuất, điều khiển tốc độ động cơđiện một chiều, thiết kế một biển quảng cáo dùng Led ma trận, một đồng hồ thờigian thực đến các ứng dụng phức tạp như hệ thống điều khiển robot, bộ kiểmsoát trong nhà máy hoặc hệ thống kiểm soát các máy năng lượng hạt nhân Các
hệ thống tự động trước đây sử dụng nhiều công nghệ khác nhau như các hệthống tự động hoạt động bằng nguyên lý khí nén, thủy lực, rơle cơ điện, mạchđiện tử số, các thiết bị máy móc tự động bằng các cam chốt cơ khí các thiết bị,
hệ thống này có chức năng xử lý và mức độ tự động thấp so với các hệ thống tựđộng hiện đại được xây dựng trên nền tảng của các hệ thống nhúng
Với mong muốn giới thiệu ứng dụng cơ bản của hệ thống nhúng trong đờisống hiện đại, nhóm chúng em đưa ra mô hình thiết kế hệ thống điều khiển đènthông minh dùng cho các phòng họp
Trong quá trình thực hiện đồ án môn học, nhóm chúng em cố gắng thiết kếsao cho mô hình là đơn giản nhất, ổn định nhất; tuy nhiên do vấn đề thời gian vàkinh nghiệm nên mô hình vẫn còn gặp phải những vấn đề chưa thể khắc phụcđược
Trân trọng và chân thành cảm ơn!
Nhóm thực hiện đề tài:
Nguyễn Văn HợpTống Quang Long
CHUƠNG 1: PHÂN TÍCH BÀI TOÁN
Trang 51.1 Khảo sát và phân tích bài toán
Hiện nay hầu hết việc giám sát và điều khiển chiếu sáng trong các phòngcông cộng được điều khiển bằng tay thông qua đóng mở các công tắc, cácaptomat, cầu dao Điều này khá thuận lợi và đơn giản vì ta có thể bật tắt đèntheo nhu cầu sử dụng Tuy nhiên, do là phòng công cộng nên việc bật tắt đèn hầunhư do người trực khu nhà đó làm Vì thế họ không biết được chính xác khi nàothì có người tới và khi nào thì mọi người đã ra hết khỏi phòng hoặc họ biếtnhưng vì phải quản lý nhiều phòng nên họ vẫn cứ để điện đến hết ca trực, điềunày gây lãng phí điện rất lớn, đặc biệt trong hoàn cảnh nước ta đang thiếu điệnmột cách trầm trọng như hiện nay
Trên thị trường hiện nay đã có một số thiết bị bật tắt đèn thông minh, nhưSmartLight do Hàn Quốc sản xuất: Được tích hợp sensor cảm ứng hồng ngoạithân nhiệt, đèn sẽ tự động được bật khi có người đi vào vùng cảm ứng và tắt khikhông có người
SL*2DQ
Hình 1.1: Đèn thông minh Smartlight
Trang 6SmartLight phù hợp với mọi nhu cầu chiếu sáng thông minh của bạn tại sâncổng, phòng khách, phòng ngủ, phòng vệ sinh, cầu thang, văn phòng giúp bạnbật tắt đèn hoàn toàn tự động, mang lại sự an toàn, tiện nghi và tiết kiệm điện Tuy nhiên thiết bị này tích hợp luôn bộ điều khiển với đèn trong 1 sản phẩm Dođógiá thành cao và không thích hợp cho các phòng cần lượng chiếu sáng lớn,không thay đổi được loại bóng đèn theo yêu cầu.
Hệ thống giám sát điều khiển chiếu sáng sử dụng camera kết nối với máytính để kiểm soát số người trong phòng, qua đó phát lệnh đóng mở các công tắc
tơ bật tắt bóng đèn
Hình 1.2: Hệ thống camera giám sát
Hệ thống này giúp việc bật tắt đèn ở nơi lắp đặt một cách chính xác, tự độnghoặc bán tự động Tuy nhiên do sử dụng máy tính nên giá thành của hệ thống rấtcao, mặt khác không giải quyết được vấn đề tiết kiệm điện Vì thế nó thường chỉđược sử dụng ở những tòa nhà công nghệ cao, những khu vực cần điều chỉnhchiếu sáng không phải vì mục đích tiết kiệm điện năng
Trang 7Hệ thống bật tắt đèn tự động sử dụng các IC số và mạch Logic cho phép tadựa vào lượng người vào ra để đóng ngắt các công tắc một cách tự động.
Trang 8Hình 1.3: Hệ thống bật tắt đèn thông minh dùng IC số
Hệ thống này có cấu tạo đơn giản, rẻ, không phải lập trình mà chỉ dựa vào cácmạch Logic nhưng tính linh động không cao, khó chỉnh định khi điều kiện làmviệc thay đổi, ít có khả năng nâng cấp mở rộng hệ thống
Với những phòng họp công cộng, khi mà lưu lượng người không lớn và cóthể kiểm soát được việc đếm người qua cửa thì ta hoàn toàn có thể áp dụng hệthống đèn thông minh sử dụng Vi điều khiển được lập trình để bật đèn khi cóngười và tắt khi không có người Điều này vừa tiện lợi cho mọi người: ứng dụngcông nghệ tự động hóa vào cuộc sống con người, đảm bảo đủ ánh sáng trong quátrình làm việc, người quản lý thì đỡ tốn thời gian đồng thời góp phần giảiquyết vấn đề tiết kiệm điện năng trong thời kỳ mà nhu cầu điện tiêu thụ đã vượtquá khả năng cung cấp của các nhà máy điện hiện nay
1.2 Lựa chọn giải pháp
1.2.1 Giải pháp công nghệ
Trang 9Qua phân tích ở trên, nhóm chúng em đưa ra giải pháp xây dựng hệ thốngđiều khiển đèn thông minh cho các phòng họp: điều khiển bật tắt đèn qua
việckiểm soát lượng người ra vào phòng Thu nhận tín hiệu rồi xử lý tín hiệu, khi có
người vào phòng, nếu đèn đang bật thì vẫn bật, đèn chưa bật thì bật đèn lên; khimọi người ra hết khỏi phòng thì tắt đèn đi Trong quá trình làm việc hệ thốngluôn hiển thị số người còn đang ở trong phòng để tiện cho việc kiểm tra, theodõi
• Hệ thống điều khiển đèn thông minh này áp dụng cho các phòng họp:
> Số lượng người trong phòng tối đa không quá 99 người
• Làm việc với điện áp 220V/50Hz
• Sensor và công nghệ tùy chọn
• Có khả năng nâng cấp, cải tiến
1.2.4 Giới hạn hạn định
• Làm việc cả ban ngày lẫn ban đêm
• Thu nhận tín hiệu liên tục khi có người ra vào
• Nhiệt độ môi trường: trong nhà 100C đến 400C
Trang 10• Hệ thống cấp điện mới từ đầu.
Trang 11CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
2.1 Sơ đồ tổng quát
Hệ thống điều khiển đèn thông minh gồm có 5 khối chính
Hình 2.1: Sơ đồ tổng quát hệ thống bật tắt đèn thông minh
• Khối Nguồn: Cung cấp nguồn cho hệ thống
• Khối Cảm biến: Sử dụng sensor hồng ngoại dùng để thu nhận tín hiệungười vào ra phòng, đưa tín hiệu thu được vào chân Pic để xử lý Để nhậnbiết người đi vào hay đi ra ta dùng 2 bộ thu phát hồng ngoại mắc gầnnhau
• Khối Xử lý: Dùng VDK Pic 16F877A để lấy tín hiệu từ cảm biến, tính
toán, lưu trữ và đưa ra khối hiển thị và khối chấp hành
Khối Hiển thị: Lấy tín hiệu ra từ chân Pic để hiển thị số lượng người hiện
đang ở trong phòng trên Led 7 thanh.Khối Chấp hành: Nhận tín hiệu từ
khối xử lý để thực hiện đóng cắt tiếp điểm mạch động lực.
Trang 122.2 Sơ đồ Callgraph
Hình 2.2: Sơ đồ Callgraph của hệ thống bật tắt đèn thông minh
2.3 Sơ đồ đặc tả
Chương trìnhđiều khiểnchính
Chấp hành
Module
Xử lýChươngtrình
Bật đèn
Hiển thị Số
Người ra
Trang 132.4 Các module trong hệ thống
2.4.1 Module khối nguồn
Module này tạo ra điện áp một chiều từ nguồn xoay chiều 220V để cungcấp cho các linh kiện trong hệ thống Sử dụng biến áp để biến điện áp xoay chiều220V thành điện áp xoay chiều 12V, dùng chỉnh lưu từ 12V xoay chiều sang12V một chiều, dùng IC 7805 ổn áp để lấy ra điện áp ổn định 5V ở ngõ ra
Hình 2.4.: Module nguồn cấp
2.4.2 Module cảm biến
Bộ phận cảm biến của hệ thống sử dụng mạch thu phát hồng ngoại Ledphát hồng ngoại nối với nguồn 1 chiều qua điện trở R1, R2: phát ra ánh sánghồng ngoại truyền tới Led thu Led thu hồng ngoại có 3 chân: chân 3 và 1 nối vớinguồn qua R3, R4 và đất, chân 2 lấy tín hiệu ra đưa vào chân Vi xử lý Ở trạngthái bình thường, tín hiệu hồng ngoại truyền từ khối phát được Led thu thu nhận,trên đầu ra 2 tín hiệu ở mức cao (mức 1); khi có người đi cắt qua khiến Led thumất tín hiệu, đầu ra 2 cho tín hiệu ở mức thấp (mức 0) Để có thể phân biệt được
là người đi vào hay đi ra ta mắc 2 bộ Thu- Phát song song và đặt cạnh nhau Tínhiệu thu được từ đầu ra của 2 Led thu được đưa vào 2 chân Vi xử lý để thực hiệnquá trình tính toán, kiểm tra, lưu trữ
Trang 14Module phát
Hình 2.5: Module thu phát hồng ngoại
2.4.3 Module điều khiển trung tâm
Khối điều khiển trung tâm dùng vi điều khiển Pic 16F877A Khi có tínhiệu ngắt từ bộ thu hồng ngoại qua các chân RB4 và RB5 của cổng B thi Vi điềukhiển sẽ kích hoạt ngắt cổng B từ RB4>>RB7, qua thuật toán đã nạp Pic thựchiện chương trình điều khiển đưa tới các cổng A, C, D tín hiệu để điều khiểnkhối hiển thị (Led 7 thanh) và khối chấp hành (module động lực)
Bộ tạo dao động dùng thạch anh 20M cung cấp ngồn dao động cho Pic
Bộ Reset cấp nguồn 5V và xác lập trạng thái ban đầu cho Pic
Trang 15Hình 2.6: Module điều khiển trung tâm
2.4.4 Module tương tác điều khiển (hiển thị)
C 3
T1 3
T1 4
Y 1 ZTB
1 1 1 2 3 1 3 2
A 0/A N 0 R B 4
A 1 /A N 1 R B 5
A 2/A N 2/V R E F -/C V R E F
R B 6/P G C
A 3/A N 3/V R E F + R B 7/P G
D
O O
R C 0/T1 O S O /T1 C K I
P IC
R R
R R R R R
1 6 F 8 7 7 A R
0/P S P 0
1 /P S P 1
2 /P S P 2 3/
P S P 3 4/
34 35 36 37 38 39
Trang 16Để tiện cho việc kiểm tra theo dõi số người hiện đang ở trong phòng, ta sửdụng 2 Led 7 thanh mắc chung Anot với số người hiển thị tối đa là 99 người Tínhiệu điều khiển từ Vi xử lý đưa ra cổng C để bật tắt các thanh Led từ 1 đến7( tích cực ở mức dương) tương ứng với các con số từ 0 đến 9 cần hiển thị.Đểhiển thị cả hai Led ta dùng thuật toán quét Led với tín hiệu đưa ra từ cổng Dquyết định Led 1 hay Led 2 được bật.
và tự động ta dùng công tắc 3 vị trí: ở vị trí 1 là chế độ làm việc tự động, còn vịtrí 2 và 3 tương ứng với tắt/ bật đèn
Trang 17J 1
Hình 2.8 : Module chấp hành của hệ thống bật tắt đèn thông minh
2.5.Lựa chọn linh kiện
2.5.1 Vi điều khiên PIC16F877A
3 Sơ đồ chân vi điều khiển PIC 16F877A
4Ũ-Pin PDIP
MCLR/VPP - 1 RAO/ANO -t — ► E 2
RA1/AN1 -I—► E 3 RA2/AN2A/REP-/CVREP ► E 4
E 5
E | 6
RA3/AN3/V REF + RA4/TŨCKI/C1OUT
RA5/AN4/SS/C2OUT * E 7 RE0ÍRD/AN5 ► U Ố RE1MR/AN6 - E 9
RẸ2/CS/AN7 - — ► L
V DD - ► E
Vss - > E CSC1/CLKI - E
OSC2/CLKO E
RC0/T1OSCMT1CK! — I7
RC1ÍTWSưCCP2
RC2/CCP1 RC3/SCK7SCL RDŨ/PSPŨ RDVPSP1
12 13 14
15
16 17 E] 13
30 29 2Ê 27
RẸ4
RB3/PGM RB2 RB1 RBO/INT VũD
Vss
RD7/PSP7
RD6/PSP6 RD5/PSP5
RD4/PSP4
RC7/RX/DT
RG6/TX/GK RC5/SDO RC4/SDI/SDA RD3/PSP3 RD2ÍPSP2
Trang 19Hình 2.9: Sơ đồ chân PIC 16F877A
4 Một vài thông số về vi điều khiển PIC 16F877A
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độdài 14 bit Mỗi lệnh đều được thực thi trong một chu kì xung clock Tốc độ hoạtđộng tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chươngtrình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROMvới dung lượng 256x8 byte Số PORT I/O là 5 với 33 pin I/O Các đặc tính ngoại
vi bao gồm các khối chức năng sau:
• Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit
• Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếmdựa
vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep
• Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler Hai bộ Capture/sosánh/điều
chế độ rộng xung
• Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.Chuẩn
giao tiếp nối tiếp USART với 9 bit địa chỉ
• Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển
bên ngoài
• Các đặc tính Analog: 8 kênh chuyển đổi ADC 10 bit Hai bộ so sánh
• Bộ nhớ flash với khả năng ghi xóa được 100.000 lần Bộ nhớ EEPROM
Trang 20qua 2 chân Watchdog Timer với bộ dao động trong Chức năng bảo mậtmã
chương trình Chế độ Sleep Có thể hoạt động với nhiều dạng Oscillatorkhác
nhau
Trang 21Hình 2.10 : Sơ đồ khối vi điều khiển PIC16F877A
Trang 22Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash ,dung lượng bộ nhớ 8k word (1 word= 14bit) và được phân thành nhiều trang (từpage 0 đến page 3) Như vậy bộ nhớ chương trinh có khả năng chứa được8*1024 =8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word (14bit) Để mã hóa được địa chỉ của 8k word bộ nhớ chương trình , bộ đếm chươngtrình có dung lượng 13 bit (PC<12:0>) Khi vi điều khiển reset , bộ đếm chươngtrình sẽ chỉ đến địa chỉ 0000h (reset vector) Khi có ngắt xảy ra , bộ đếm chươngtrình sẽ chỉ đến địa chỉ 0004h (interrupt vector) Bộ nhớ chương trình không baogồm bộ nhớ stack sẽ được đề cập cụ thể trong phần sau.
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làmnhiều bank Đối với PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank.Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệtSFG (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghimục đích chung GPR (General Purpose Pegister) nằm ở vùng địa chỉ còn lạitrong bank Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghiSTATUS) sẽ được đặt ở tất cà các bank của bộ nhớ dữ liệu giúp thuận tiện trongquá trình truy xuất và làm giảm bớt lệnh của chương trình
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là mộtvùng nhớ đặc biệt không cho phép đọc hay ghi Khi lệnh CALL được thực hiệnhay khi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chươngtrình PC tự động được vi điều khiển cất vào trong stack Khi một trong các lệnhRETURN, RETLW hat RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra
từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng qui trìnhđịnh trước
Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được
8 địa chỉ và hoạt động theo cơ chế xoay vòng Nghĩa là giá trị cất vào bộ nhớStack lần thứ 9 sẽ ghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào
bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá trị 6 cất vào Stack lần thứ 2 Cần chú ý
là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biết được khinào stack tràn Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không cólệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển
Trang 23bởi CPU.
Trang 247 Các cổng xuất nhập của PIC16F877A
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng đểtương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quátrình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùytheo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và
số lượng chân trong mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiểnđược tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chứcnăng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm cácchức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đốivới thế giới bên ngoài Chức năng của từng chân xuất nhập trong mỗi cổng hoàntoàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liênquan đến chân xuất nhập đó
❖ Port A
Port A (RPA) bao gồm 6 I/O pin Đây là các chân “hai chiều”(bidirectional pin), nghĩa là có thể xuất và nhập được Chức năng I/O này đượcđiều khiển bởi thanh ghi TRISA (địa chỉ 85h) Muốn xác lập chức năng của mộtchân trong PortA là input, ta “set” bit điều khiển tương ứng với chân đó trongthanh ghi TRISA và ngược lại, muốn xác lập chức năng của một chân trong Port
A là output, ta “clear” bit điều khiển tương ứng với chân đó trong thanh ghiTRISA Thao tác này hoàn toàn tương tự đối với các PORT còn lại Bên cạnh đóPort A còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vào xungclock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master SynchronousSerial Port)
Các thanh ghi SFR liên quan đến Port A bao gồm:
Port A (địa chỉ 05h) : chứa giá trị các pin trong
Port A TRISA (địa chỉ
85h) : điều khiển xuất nhập
CMCON (địa chỉ 9Ch)
CVRCON (địa chỉ 9Dh)
ADCON1 (địa chỉ 9Fh)
❖ Port B
: thanh ghi điều khiển bộ so sánh
: thanh ghi điều khiển bộ so sánh điện áp
: thanh ghi điều khiển bộ ADC