THIẾT KẾ KHÓA SỐ ĐIỆN TỬ MỞ CỬA CHO KHU VƯỜN THÔNG MINH
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆ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
Trang 2MỤ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
Trang 3I.Đ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
KẾT LUẬN……… 50
Trang 4LỜ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úpcon 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 chomộ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 chitiết công việc mà nhóm đã hoàn thành trong thời gian qua
Trang 5A 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ử
Trang 6NỘ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
- 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ụ
Trang 7- 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.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.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
Trang 8- 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
- ADC Options: 10 & 12-bit SAR
- USB, Analog Comparator, DMA, Hardware Multiplier, RTC, USCI, 12-bit DAC
Trang 9Hình 4: Mạch nạp msp430
Trang 10Hình 5: Sơ đồ chân msp430g2X52
Hình 6: Cấu trúc của msp430g2X52
Trang 11B.THIẾT KẾ TỔNG THỂ.
I SƠ ĐỒ KHỐI.
Hình 1: Sơ đồ khối hệ thống
Trang 12II SƠ ĐỒ GIẢI THUẬT.
Hình 2: Sơ đồ giải thuật cho chương trình chính
Trang 13Hình 3: Sơ đồ giải thuật cho chương trình con
Trang 14III 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
Trang 153 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
Trang 16IV 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
Trang 17V 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:
Trang 18- 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
Trang 19Hì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
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{ }
Trang 20III ĐOẠN SO SÁNH PASSWORD
*i = *i+1;
if(nhappass[*i] == c) {
*i = *i+1;
if(nhappass[*i] == d) {
*i = *i+1;
if(nhappass[*i] == e) {
*i = *i+1;
if(nhappass[*i] == h) *i = *i+1;
} }
} }
Trang 21delay_cycles(1000000);
j++;
}
P2OUT &= ~COT3;
V ĐOẠN ĐIỀU KHIỂN ĐÈN CHỚP
- 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),
Trang 22+ 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
Trang 23D.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)
Trang 25else //Khong nhap
P2OUT &= ~COT3;
P1OUT = 0x0D; /* Chon hang thu 2 */ delay_cycles(5000);
if ((P1IN&COT4) == 0) //Nhap so 4
{
Trang 28else //Khong nhap
P2OUT &= ~COT3;
P1OUT = 0x0B; /* Chon hang thu 3 */ delay_cycles(5000);
Trang 30else //Khong nhap
P2OUT &= ~COT3;
P1OUT = 0x07; /* Chon hang thu 4 */ delay_cycles(5000);
if (*p==0)
Trang 31if ((P1IN&COT4) == 0) //Nhan nut Exit
Trang 33}
else //Khong nhap
P2OUT &= ~COT3;
/* Chon nhan ok hay exit hoac clear */ while (i==6) //Xoa so vua nhap khi i = 5
Trang 34else if ((P1IN&COT6) == 0) //Xoa so vua nhap {
if ( i > 0 ) //Neu bang i = 0 khong xoa
Trang 35else //Khong nhap
P2OUT &= ~COT3;
Trang 37/* Ket thuc doan so sanh pass */ /* Doan treo he thong */ void treohethong (void)
Trang 38/* Ket thuc doan lo keu */
/* Doan khai bao bien ngoai chuong trinh */ int j=0,i,k,n,m,p,g;
Trang 39else //Nhap sai pass mot lan
{
j++;
Trang 40loakeu();
treohethong ();
j=0; //Gan j=0 dem so lan nhap pass sai trong lan nhap moi
k=1; //Gan k=1 de thoat khoi vong lap so sanh pass
Trang 42n=1;
Trang 43p=0; //Gan p=0 lam bien cho vong lap thay doi pass
g=0; //Gan g=0 lam bien so sanh nhap pass sai may lan khi chon change while (p==0)
{
Trang 44P2OUT &= ~COT3; //Nhap pass lan dau
quetphim(passdoi,&p); //Nhap pass lan hai xac nhan }
Trang 45b = nhappass[1]; c = nhappass[2]; d = nhappass[3];
e = nhappass[4];
h = nhappass[5]; //Luu pass vua nhap vao
p=1; //Gan p=1 de thoat khoi vong lap khi pass da thay doi
m=1; //Gan m=1 de thoat doan quet phim chuc nang roi ve ban dau }
treohethong (); //Treo he thong
p=1; //Gan p=1 de thoat khoi vong lap khi pass da thay doi
m=1; //Gan m=1 thoat doan quet phim chuc nang roi ve ban dau }
else //Nhap sai chua qua 3 lan
Trang 47SƠ ĐỒ MẠCH NGUYÊN LÝ
Trang 48SƠ ĐỒ MẠCH IN (LAYOUT)
Trang 49HÌNH ẢNH CỦA SẢN PHẨM
Trang 50KẾT LUẬN
Kết thúc quá trình nghiên cứu và lắp ráp, nhóm đã hoàn thiện được mạch khóa số điện tử mở của cho khu vườn thông minh Nhờ sự hướng dẫn bước đầu của cô giáo, cũng như công sức tìm tòi học hỏi của các thành viên mà bài tập lớn đã có kết quả khả quan
Sơ đồ khối đúng yêu cầu Sơ đồ nguyên lý và lắp đặt hoàn thành đúng thiết kế Code đủ chức năng cùng với mạch mô phỏng chạy tốt Việc hoàn thiện sản phẩm tuy có chút khó khăn nhưng hoàn toàn khắc phục được
Nghiên cứu và thực hiện đề tài này, nhóm em nhận thấy việc đưa sản phẩm vào sâu hơn trong thực tế là hết sức khả quan Nó không chỉ được sử dụng trong khu vườn thông minh, mà còn có thể sử dụng trong nhều công trình khác nữa
Trong tương lai không xa, việc máy tính sẽ thay thế con người trong hầu hết công việc sẽ không còn là tưởng tượng nữa