Tải bản đầy đủ (.docx) (50 trang)

THIẾT KẾ KHÓA SỐ ĐIỆN TỬ MỞ CỬA CHO KHU VƯỜN THÔNG MINH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 50 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
Đề tài: THIẾT KẾ KHÓA SỐ ĐIỆN TỬ
MỞ CỬA CHO KHU VƯỜN THÔNG MINH
Giáo viên hướng dẫn : Ths. Tạ Thị Kim Huệ
Hà Nội, 5/2015
Page 1
MỤC LỤC
LỜI NÓI ĐẦU……………………………………………………………………………4
A. MỤC TIÊU……………………………………………………………………………5
B. HƯỚNG GIẢI QUYẾT………………………………………………………………5
NỘI DUNG……………………………………………………………………………….6
A. GIỚI THIỆU TỔNG QUAN…………………………………………………………6
I. VỀ MSP430…………………………………………………………………………….6
II. VỀ MSP430 LAUNCHPAD………………………………………………………….9
III. VỀ CHIP MSP430G2x52………………………………………………………… 10
B.THIẾT KẾ TỔNG THỂ…………………………………………………………… 11
I. SƠ ĐỒ KHỐI…………………………………………………………………………11
II. SƠ ĐỒ GIẢI THUẬT……………………………………………………………….12
III. CẤU TẠO BÀN PHÍM HEX…………………………………………………… 14
1. CẤU TẠO…………………………………………………………………………….14
2. NGUYÊN TẮC HOẠT ĐỘNG CỦA BÀN PHÍM HEX……………………………14
3. SƠ ĐỒ BÀN PHÍM HOÀN
CHỈNH…………………………………………………….15
4. CHỐNG DỘI CHO BÀN PHÍM…………………………………………………… 15
IV. KHỐI ĐIỀU KHIỂN ĐỘNG CƠ………………………………………………….16
1. SƠ ĐỒ MẠCH ĐIỀU KHIỂN ĐẢO CHIỀU ĐỘNG CƠ ĐÓNG - MỞ CỬA… 16
2. ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ…………………………………………………….16
V. SƠ ĐỒ MẠCH BÁO ĐỘNG……………………………………………………… 17
VI.SƠ ĐỒ MẠCH HOÀN CHỈNH …………………………………………………… 18
C.CHƯƠNG TRÌNH CHÍNH………………………………………………………….19


Page 2
I.ĐOẠN ĐỊNH NGHĨA BIT………………………………………………………… 19
II. ĐOẠN QUÉT PHÍM………………………………………………………………… 19
III. ĐOẠN SO SÁNH PASSWORD…………………………………………………… 20
IV. ĐOẠN TREO HỆ THỐNG………………………………………………………… 20
V. ĐOẠN ĐIỀU KHIỂN ĐÈN CHỚP……………………………………………………21
VI.ĐOẠN CHƯƠNG TRÌNH CHÍNH……………………………………………… 21
VII.CODE CHƯƠNG TRÌNH…………………………………………………………23
VIII.HÌNH ẢNH LIÊN QUAN ……………………………………………………… 47
Page 3
KẾT
LUẬN…………………………………………………………………………… 50LỜI
NÓI ĐẦU
Trong thời gian gần đây, các hệ thống thông minh càng ngày càng được sử dụng rộng
rãi và hiệu quả.Bắt đầu từ những thiết bị đầu cuối thông minh cho đến những hệ thống
thông minh phức tạp. Những hệ thống thông minh này ngày một thay thế con người, giúp
con người giải quyết công việc hiệu quả mà tốn ít sức lao động. Trong nông nghiệp, điều
này là không ngoại lệ.
Để đáp ứng nhu cầu sử dụng lương thực, rau màu sạch, hoa cây cảnh ngày một tăng,
nhiều khu vườn thông minh đang được thiết kế lắp đặt. Những khu vườn này giúp con
người có thể giám sát quá trình sinh trưởng của cây, vấn đề sâu bệnh một cách tương đối
chính xác mà không cần phải mất quá nhiều thời gian phải ra thực tế. Quan trọng hơn, nó
còn giúp con người phun thuốc và bón phân theo yêu cầu, công việc mà cho đến nay dễ
gây ảnh hưởng đến sức khỏe nhất. Vì thế, một đề tài về việc thiết kế hệ thống tự động cho
một khu vườn thông minh đã được nhóm đưa vào nghiên cứu, nhằm xây dựng một hệ
thống tối ưu và thực tế.
Khi nói đến bất cứ hệ thống nào thì không thể không nhắc đến vấn đề bảo mật. Bảo
mật là chiếc chìa khóa giúp ta chắc chắn hệ thống sẽ hoạt động đúng theo yêu cầu mà
không sợ bị phá hoại từ bên ngoài. Về phần này, nhóm được phân công thiết kế hệ thống
khóa điện tử, có chức năng đóng và mở theo đúng đối tượng và nhiệm vụ. Một đề tài tuy

không phải là mới nhưng vẫn luôn tồn tại những điểm khó giải quyết: Mã hóa bàn phím,
cơ chế kiểm tra và hiển thị Rất may mắn, trong quá trình thiết kế và hoàn thiện hệ
thống, nhóm đã nhận được sự hướng dẫn tận tình của cô Kim Huệ. Sau đây là báo cáo chi
tiết công việc mà nhóm đã hoàn thành trong thời gian qua.
Page 4
A. MỤC TIÊU
- Thiết kế khóa số điện tử bằng mật khẩu (6 số) sử dụng chip vi xử lí họ msp430.
- Dùng bàn phím hex (16 phím) thực hiện chức năng giao tiếp.
- Dùng động cơ một chiều đóng - mở khóa bằng cách điều khiển đảo chiều động cơ .
- Mật khẩu có thể thay đổi được.
- Báo động ra loa và treo hệ thống khi mật khẩu nhập sai 3 lần.
B. HƯỚNG GIẢI QUYẾT
- Lập sơ đồ khối.
- Thiết kế mô hình phần cứng.
- Lập sơ đồ giải thuật.
- Tìm hiểu nguyên tắc hoạt động của bàn phím hex.
- Thiết kế khối điều khiển đảo chiều động cơ để đóng - mở cửa.
- Thiết kế khối báo động.
- Tìm hiểu chip xử lí và các linh kiện được sử dụng.
- Viết chương trình theo sơ đồ giải thuật.
- Liên kết các khối.
- Lắp mạch kiểm tra và chạy thử.
Page 5
NỘI DUNG
A. GIỚI THIỆU TỔNG QUAN.
I. VỀ MSP430.
- Sản xuất bởi Texas Instrument.
- Là dòng vi điều khiển 16-bit với đầy đủ chức năng (2 bộ timer 16 bit, 10 bit ADC,UART,
I2C, PWM,…).
- Tiêu thụ năng lượng rất thấp từ 1.8V đến 3.6V với 3 chế độ sử dụng năng lượng( Active,

standby và off).
- 5 chế độ tiết kiệm năng lượng.
- 2 port , 10 chân xuất nhập (I/O pin).
- Đa dạng về chủng loại .
- Tốc độ tối đa 25Mhz.
- MSP430 là những giải pháp tốt cho những do nhu cầu ứng dụng của nhiều phiên bản
khác nhau.MSP430 có như 1 số phiên bản khác như : MSP430x1xx, MSP430x2xx,
MSP430x3xx, MSP430x4xx,MSP430x5xx.
MSP430x1xx Series
- 1.8–3.6V .
- Tốc độ Flash/ROM: 8 MIPS.
- Feature Fast Wake-Up From Standby Mode in <6 μs.
- Flash Options: 1–60 KB.
- ROM Options: 1–16 KB.
- RAM Options: 512 B –10 KB.
- GPIO Options: 14, 22, 48 pins.
- ADC Options: Slope, 10 & 12-bit SAR.
- Other Integrated peripherals: Analog Comparator, DMA, Hardware
Multiplier, SVS, 12-bit DAC.
MSP430F2xx Series: Series 2xx cũng tương tự như 1xx nhưng tiêu thụ
Page 6
năng lượng ít hơn, tốc độ có thể lên tới 16MHz, đồng hồ on-chip có độ chính
xác cao hơn (±2%) nên có thể hoạt động mà không cần thạch anh gắn ngoài.
- 1.8–3.6 V.
- Tốc độ Flash/ROM: 16 MIPS.
- Có tích hợp điện trở kéo lên/kéo xuống (pull-up/pull-down).
- Ultra-Fast Wake-Up From Standby Mode in <1 μs.
- Device Parameters.
- Flash Options: 1–120 KB.
- RAM Options: 128 B–8 KB.

- GPIO Options: 10, 16, 24, 32, 48, 64 pins.
- ADC Options: Slope, 10 & 12-bit SAR, 16-bit Sigma Delta.
- Other Integrated peripherals: Analog Comparator, Hardware Multiplier,
DMA, SVS, 12-bit DAC, Op Amps.
MSP430G2xx Series: Tương tự F2xx, chức năng ít hơn và giá thấp hơn:
- Flash Options: 0.5–16 KB
- RAM Options: 128–512 B
- GPIO Options: 10, 16, 24 pins
- ADC Options: Slope, 10-bit SAR
- Other Integrated peripherals: Analog Comparator
MSP430x3xx Series: Đây là thế hệ lâu đời nhất (già cả nhất) của dòng
MSP430, tích hợp LCD controller. Không hỗ trợ EEPROM.
o Feature Fast Wake-Up From Standby Mode in <6 μs
- 2.5–5.5 V
- ROM Options: 2–32 KB
- RAM Options: 512 B–1 KB
- GPIO Options: 14, 40 pins
- ADC Options: Slope, 14-bit SAR
- Other Integrated peripherals: LCD controller, Hardware Multiplier
MSP430x4xx Series: Có tích hợp LCD controller, nhiều chức năng hơn
3xx.
- 1.8-3.6V
- FLL, SVS
- Feature Fast Wake-Up From Standby Mode in <6 μs
- Tốc độ Flash/ROM 8-16 MIPS.
- Flash/ROM Options: 4 kB – 120 KB
- RAM Options: 256 B – 8 KB
Page 7
- GPIO Options: 14, 32, 48, 56, 68, 72, 80 pins
- ADC Options: Slope, 10 &12-bit SAR, 16-bit Sigma Delta

- LCD Controller, Analog Comparator, 12-bit DAC, DMA, Hardware
Multiplier, Op Amp, USCI Modules.
MSP430x5xx Series: Tốc độ lên tới 25 MHz. Đây là dòng có mức tiêu thụ
năng lượng thấp nhất trong họ MSP430, được tích hợp Module Giám sát
Năng lượng (Power Management Module) để tối ưu điện năng tiêu thụ. Một
số chip tích hợp USB.
- Fast Wake-Up From Standby Mode in <5 μs
- 1.8-3.6V
- Flash Options: up to 256 KB
- RAM Options: up to 16 KB
- ADC Options: 10 & 12-bit SAR
- USB, Analog Comparator, DMA, Hardware Multiplier, RTC, USCI, 12-bit
DAC
Page 8
II. VỀ MSP430 LAUNCHPAD.
Hình 4: Mạch nạp msp430
Page 9
III. VỀ CHIP MSP430G2x52.
Hình 5: Sơ đồ chân msp430g2X52
Hình 6: Cấu trúc của msp430g2X52
Page 10
B.THIẾT KẾ TỔNG THỂ.
I. SƠ ĐỒ KHỐI.
Hình 1: Sơ đồ khối hệ thống
Page 11
II. SƠ ĐỒ GIẢI THUẬT.
Hình 2: Sơ đồ giải thuật cho chương trình chính
Page 12
Hình 3: Sơ đồ giải thuật cho chương trình con
Page 13

III. CẤU TẠO BÀN PHÍM HEX.
1. CẤU TẠO:
Bàn phím Hex cấu tạo gồm16 phím xếp thành ma trận 4 hàng và 4 cột (Hình 7).
Hình 7: Cấu tạo bàn phím hex
2. NGUYÊN TẮC HOẠT ĐỘNG CỦA BÀN PHÍM HEX.
Khi một phím nào đó được nhấn thì tương ứng hàng và cột của bàn phím Hex sẽ
kết nối với nhau.
Để thực hiện kiểm tra một phím thì ta phải cho trước hàng (hoặc cột) chứa
phím tương ứng ở mức logic 0, sau đó kiểm tra cột (hoặc hàng) của phím, nếu cột
(hoặc hàng) = 0 thì có nhấn phím ngược lại thì không nhấn phím.
Như vậy để nhận biết phím nào được nhấn ta phải lần lược quét các cột, cố
định hàng hoặc quét các hàng, cố định cột.
Page 14
3. SƠ ĐỒ BÀN PHÍM HOÀN CHỈNH.
Hình 8: Bàn phím hex hoàn chỉnh
Các hàng và cột của bàn phím kết nối với Port 1. Bit 0,1,2,3 của Port 1 sẽ làm ngỏ ra
và kết nối với các hàng của bàn phím. Còn các bit 4,5,6,7 làm ngỏ ngỏ vào kết nối với các
cột của bàn phím.
4. CHỐNG DỘI CHO BÀN PHÍM.
Do thời gian dội của phím vào khoảng 20ms nên để chống dội ta sẽ chống dội bằng
phần mềm để phần cứng được đơn giản.
Đoạn chương trình chống dội:
n=0;
while ( n==0 )
{
if ((P1IN&COTX) == 0) //Nút đang nhấn giữ.
n=0;
else //Nút nhả ra.
n=1;
}

Ngoài ra giữa các lần chọn hàng (hoặc cột) để quét phím ta thêm đoạn delay:
__delay_cycles(5000);
Page 15
IV. KHỐI ĐIỀU KHIỂN ĐỘNG CƠ.
1. SƠ ĐỒ MẠCH ĐIỀU KHIỂN ĐẢO CHIỀU ĐỘNG CƠ ĐÓNG - MỞ CỬA.
Hình 9: Sơ đồ mạch điều khiển động cơ
Hai ngõ vào Px, Py dùng để điều khiển đảo chiều động cơ.
2. ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ.
Điều khiển tốc độ động cơ theo chế độ PWM (Pluse Width Modulation-Biến điệu độ rộng
xung).
Đoạn chương trình điều khiển:
n=0;
while ( n<4 )
{
P2OUT |= COTX;
__delay_cycles(35000);
P2OUT &= ~COTX;
__delay_cycles(35000);
__delay_cycles(35000);
n++;
}
Với tốc độ động cơ bằng 1/3 tốc độ trung bình.
Page 16
V. SƠ ĐỒ MẠCH BÁO ĐỘNG.
Hình 10: Sơ đồ mạch báo động
Khi hai khối hoạt động riêng lẻ ta có:
- Tín hiệu ngỏ ra ở khối 1 sẽ như hình 11 với chu kỳ T:
T = (C
1
R

B2
+ C
2
R
B1
)Ln2 = 2.8200.10
5
Ln2 = 0.1148S
Hình 11: Tín hiệu ngõ ra ở khối 1
- Tín hiệu ngỏ ra ở khối 2 sẽ như hình 12 với chu kỳ T:
T = (C
1
R
B2
+ C
2
R
B1
)Ln2 = 2.1500.10
6
Ln2 = 0.0021S
Page 17
Hình 12: Tín hiệu ngõ ra ở khối 2
- Khi kết hợp hai khối lại cung hoạt động thì tín hiêu ở ngỏ ra cấp cho loa sẽ như hình 13:
Hình 13: Tín hiệu ra loa
VI.SƠ ĐỒ MẠCH HOÀN CHỈNH.
Page 18
Hình 14: Sơ đồ mạch hoàn chỉnh
C.CHƯƠNG TRÌNH CHÍNH.
I.ĐOẠN ĐỊNH NGHĨA BIT.


#define COT0 BIT0
#define COT1 BIT1
#define COT2 BIT2
#define COT3 BIT3
#define COT4 BIT4
#define COT5 BIT5
#define COT6 BIT6
Page 19
II. ĐOẠN QUÉT PHÍM.
i=0;
While(i<6)
{
P1OUT = 0x0E; //Chọn hàng thứ 1.
__delay_cycles(5000);
if ((P1IN&COT4) == 0) // Cột 1 nhấn
{ ………………}
else if ((P1IN&COT5) == 0) // Cột 2 nhấn
{ ……………. . . }
else if ((P1IN&COT6) == 0) //Cột 3 nhấn
{ ………………}
else if ((P1IN&COT6) == 0) // Cột 4 nhấn
{ ………………}
else // Không nhấn
{ ………………}
P1OUT = 0x0D; // Chọn hàng thứ 2
{…………………}
P1OUT = 0x0B; // Chọn hàng thứ 3
{…………………}
P1OUT = 0x07; // Chọnhàng thứ 4

{…………………}
}
III. ĐOẠN SO SÁNH PASSWORD.
if (*i==0)
{
if(nhappass[*i] == a)
{
*i = *i+1;
if(nhappass[*i] == b)
{
*i = *i+1;
if(nhappass[*i] == c)
{
Page 20
*i = *i+1;
if(nhappass[*i] == d)
{
*i = *i+1;
if(nhappass[*i] == e)
{
*i = *i+1;
if(nhappass[*i] == h)
*i = *i+1;
}
}
}
}
}
}
else

*i = 7;
IV. ĐOẠN TREO HỆ THỐNG.
int j;
P2OUT |= COT3;
j=0;
while (j<=60)
{
__delay_cycles(1000000);
j++;
}
P2OUT &= ~COT3;
V. ĐOẠN ĐIỀU KHIỂN ĐÈN CHỚP
int j=0;
while (j<=10)
{
P2OUT ^= COT3;
__delay_cycles(50000);
Page 21
j++;
}
P2OUT &= ~COT3
VI.ĐOẠN CHƯƠNG TRÌNH CHÍNH
- Khi mới bắt đầu, chương trình thực hiện quét phím số và phím close (phím close chỉ có
tác dụng nếu ta chưa nhấn một phím số nào). Ở đây, chương trình yêu cầu nhập password
(6 số). Ngoài ra, ta có thể dùng phím clear để xóa số vừa nhập sai.
- Khi nhấn một phím chương trình sẽ báo hiệu (đèn sáng) một lần.
- Khi nhập password xong ta nhấn ok:
+ Nếu password sai thì báo động và cho nhập lại, khi nhập sai 3 lần, hệ thống
treo trong 1 phút sau đó trở về chương trinh ban đầu và cho nhập tiếp.
+ Nếu password đúng sẽ báo hiệu (đèn chớp), sau đó chương trình thực hiện đến

đoạn quét phím chức năng.
- Ở đoạn chương trình quét phím chức năng:.
+ Nếu nhấn open thì ra lệnh điều khiển mở rồi trở về đoạn quét phím chức năng.
+ Nếu nhấn close thì ra lệnh đóng và trở về chương trinh ban đầu.
+ Nếu nhấn change để thay đổi password sau đó trở về chương trinh ban đầu.
- Sau khi nhấn phím change, ta cần thực hiện nhập password hai lần (cách nhập pass
tương tự như ở đầu chương trình, tức là sau khi nhập đủ 6 số ta cần nhấn phím ok),
chương trình sẽ ra báo hiệu giữa hai lần nhập.
+ Nếu password giữa hai lần nhập không giống nhau thì ra báo động sau đó cho
nhập tiếp. Nếu sai 3 lần hệ thống bị treo trong 1 phút rồi trở về chương trình ban
đầu .
+ Nếu password giữa hai lần nhập giống nhau, chương trình sẽ lưu và thay đổi
password sau đó trở về chương trình ban đầu.
- Ngoai ra, ta có thể nhấn Exit để trở về chương trình ban đầu khi không muốn thay đổi
password nữa.
Page 22
D.CODE CHƯƠNG TRÌNH.
#include "msp430g2452.h"
#define CALBC1_1MHZ (0x0006)
#define CALDCO_1MHZ (0x0007)
#define COT0 BIT0
#define COT1 BIT1
#define COT2 BIT2
#define COT3 BIT3
#define COT4 BIT4
#define COT5 BIT5
#define COT6 BIT6
#define COT7 BIT7
void __delay_cycles(unsigned long __cycles);
/* Doan quet phim so va nhap pass */

void quetphim (int *nhappass,int *p)
{
int i=0,n=0;
while(i < 6)
{
P1OUT = 0x0E; /* Chon hang thu 1 */
__delay_cycles(5000);
if ((P1IN&COT4) == 0) //Nhap so 1
Page 23
{
P2OUT |= COT3;
nhappass[i] = 1;
i++;
n=0;
while ( n==0 )
{
if ((P1IN&COT4) == 0)
n=0;
else
n=1;
}
}
else if ((P1IN&COT5) == 0) //Nhap so 2
{
P2OUT |= COT3;
nhappass[i] = 2;
i++;
n=0;
while ( n==0 )
{

if ((P1IN&COT5) == 0)
n=0;
else
Page 24
n=1;
}
}
else if ((P1IN&COT6) == 0) //Nhap so 3
{
P2OUT |= COT3;
nhappass[i] = 3;
i++; n=0;
while ( n==0 )
{
if ((P1IN&COT6) == 0)
n=0;
else
n=1;
}
}
else //Khong nhap
P2OUT &= ~COT3;
P1OUT = 0x0D; /* Chon hang thu 2 */
__delay_cycles(5000);
if ((P1IN&COT4) == 0) //Nhap so 4
{
P2OUT |= COT3;
Page 25

×