1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Đồ án tốt nghiệp) thiết kế và thi công bộ thí nghiệm vi xử lý giao tiếp kit intel galileo

95 8 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 95
Dung lượng 5,91 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG THIẾT KẾ VÀ THI CƠNG BỘ THÍ NGHIỆM VI XỬ LÝ GIAO TIẾP KIT INTEL GALILEO GVHD: NGÔ BÁ VIỆT SVTH: PHẠM QUANG MINH MSSV: 14141195 SVTH: HỒ VĂN TRỌNG MSSV: 14141338 SKL005640 Tp Hồ Chí Minh, tháng 01/2019 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG BỘ THÍ NGHIỆM VI XỬ LÝ GIAO TIẾP KIT INTEL GALILEO II NHIỆM VỤ Các số liệu ban đầu: - Thiết kế thi cơng thí nghiệm vi xử lý hồn chỉnh với chức như: bàn phím, led đơn, led đoạn, LCD… ứng dụng cao hơn: giao tiếp máy tính, điều khiển động - Xây dựng tập thí nghiệm giao tiếp đơn giản với led đơn, led đoạn, nút nhấn, switch, bàn phím ma trận, LCD, chuyển đổi ADC Nội dung thực hiện: - Tìm hiểu kit Intel Galileo, phần mềm Arduino, mạch giao tiếp ngoại vi với vi điều khiển Thiết kế phần cứng thí nghiệm (thiết kế mạch nguyên lý, mạch in, thi công) Xây dựng thực hành bản, viết chương trình thực thi kiểm tra kết thí nghiệm Thu thập kết Kiểm tra tính ổn định hệ thống Viết báo cáo luận văn Báo cáo đề tài tốt nghiệp 01/10/2018 III NGÀY GIAO NHIỆM VỤ: IV NGÀY HỒN THÀNH NHIỆM 05/01/2019 VỤ: ThS Ngơ Bá Việt V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Phạm Quang Minh Lớp: 14141DT1A Họ tên sinh viên 2: Hồ Văn Trọng Lớp: 14141DT1A Tên đề tài: THIẾT KẾ VÀ THI CÔNG BỘ THÍ NGHIỆM VI XỬ LÝ SỬ DỤNG KIT Tuần/ngày (01-06/10) (08-13/10) (15-20/10) (22-27/10) (29/1003/11) (05-10/11) (12-17/11) (19-24/11) (26/1101/12) 10 (03-08/12) 11 (10-15/12) 12 (17-22/12) 13 (24-29/12) 14 (31/1205/01) 15 (06-18/01) iii LỜI CAM ĐOAN Đề tài tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Phạm Quang Minh Hồ Văn Trọng iv LỜI CẢM ƠN Để hoàn thành đề tài nghiên cứu này, lời cho phép gửi lời cảm ơn chân thành đến tồn thể q thầy Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM nói chung thầy Khoa Điện – Điện Tử nói riêng, người tận tình dạy dỗ, trang bị cho kiến thức tảng kiến thức chun ngành quan trọng, giúp nhóm chúng tơi có sở lý thuyết vững vàng tạo điều kiện giúp đỡ tốt cho trình học tập nghiên cứu Đặc biệt, xin chân thành cảm ơn ThS Ngô Bá Việt tận tình giúp đỡ, đưa định hướng nghiên cứu hướng giải số vấn đề để chúng tơi thực tốt đề tài Mặc dù cố gắng hết sức, song điều kiện thời gian kinh nghiệm thực tế chúng tơi cịn ít, đề tài khơng thể tránh khỏi thiếu sót Vì vậy, chúng tơi mong nhận đóng góp ý kiến quý thầy, cô giáo Xin chân thành cảm ơn! TP.HCM, ngày 05 tháng 01 năm 2019 Sinh viên thực Phạm Quang Minh Hồ Văn Trọng v MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC LIỆT KÊ HÌNH ẢNH LIỆT KÊ BẢNG DANH SÁCH CÁC TỪ VIẾT TẮT TÓM TẮT Chương TỔ 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC Chương 2.1 CƠ KHÁI QUÁT VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN 2.1.1 Vi x 2.1.2 Hệ thống điều khiển tích hợp (SoC) 2.2 TRUYỀN DỮ LIỆU CHUẨN I2C 2.3 TRUYỀN DỮ LIỆU CHUẨN SPI 2.4 TRUYỀN DỮ LIỆU CHUẨN 1-WIRE 2.5 PHẦN MỀM ARDUINO 2.6 GIỚI THIỆU PHẦN CỨNG 2.6.1 Bộ xử lý trung tâm - Intel Galileo Gen 2.6.2 Thi 2.6.3 Thi 2.6.4 Thi Chương TÍN 3.1 GIỚI THIỆU 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG vi 3.2.1 3.2.2 3.3 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH Chương 4.1 GIỚI THIỆU 4.2 THI CÔNG HỆ THỐNG 4.2.1 4.2.2 4.3 ĐÓNG GÓI VÀ THI CƠNG MƠ HÌNH 4.3.1 4.3.2 4.4 LẬP TRÌNH HỆ THỐNG 4.4.1 4.4.2 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC Chương 5.1 KẾT QUẢ 5.1.1 5.1.2 5.2 NHẬN XÉT – ĐÁNH GIÁ Chương 6.1 KẾT LUẬN 6.1.1 6.1.2 6.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI TÀI LIỆU THAM KHẢO PHỤ LỤC vii CHƯƠNG KẾT QUẢ NHẬN XÉT ĐÁNH GIÁ Hình 5.2: Bộ xử lý trung tâm 5.2 NHẬN XÉT – ĐÁNH GIÁ Sau thời gian nghiên cứu, thi cơng đồ án tốt nghiệp nhóm với đề tài “Thiết kế thi cơng thí nghiệm vi xử lý giao tiếp kit Intel Galileo” hồn thiện Nhìn chung, mơ hình hoạt động ổn định, làm việc liên tục, đạt 90% yêu cầu đề ban đầu Người dùng thao tác đơn giản, dễ sử dụng Hệ thống đảm bảo an toàn cho người dùng Hệ thống sử dụng nguồn cấp nhỏ nên an toàn cho người sử dụng trước nguy điện giật Thời gian đáp ứng từ nhấn nút nhấn trực tiếp nhanh Thời gian đáp ứng nạp chương trình mạch hoạt động tùy thuộc máy tính người sử dụng Tuy nhiên, hạn chế kiến thức thời gian thực hiện, nguồn tài liệu tham khảo chủ yếu thông qua Internet số giáo trình tham khảo nên đề tài khơng tránh khỏi sai sót cịn số hạn chế: - Hạn chế lớn chưa có nguồn điện dự trữ để cung cấp cho hệ thống hoạt động bị nguồn - Vì điều kiện kinh phí thời gian có hạn, nên nhóm thực mơ hình mang tính tương đối BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Với mục tiêu đề ra, đề tài giải hoàn thành mục tiêu đặt ban đầu như: - Tìm hiểu tổng quan: cấu tạo phần cứng, chức chân dòng kit Intel Galileo mang tính ứng dụng cao - Thiết kế thi cơng thí nghiệm vi xử lý hồn chỉnh với chức như: bàn phím, led đơn, led đoạn, LCD… ứng dụng cao hơn: giao tiếp máy tính, điều khiển động - Xây dựng tập thí nghiệm giao tiếp đơn giản với led đơn, led đoạn, nút nhấn, bàn phím ma trận, LCD, chuyển đổi ADC… - Mơ hình hệ thống dễ sử dụng, tiện lợi, đáp ứng nhu cầu cần thiết sử dụng thiết bị người dùng - Phần mềm miễn phí, có sẵn Internet 6.1.1 Ưu điểm - Phần cứng thiết kế nhỏ gọn, đơn giản, dễ sử dụng, mơ hình trang trí đẹp, trực quan - Cách thức điều khiển giao tiếp với mơ hình đơn giản với người lập trình - Chi phí hệ thống mức trung bình đáp ứng gần đầy đủ yêu cầu đặt 6.1.2 Khuyết điểm Dù chúng tơi cố gắng hồn thành đề tài cách tốt nhiên hệ thống vài khuyết điểm sau: - Các khối hiển thị chưa đạt hiệu suất hiển thị tối đa, khối led matrix 8x8 cịn nhấp nháy liên tục khó quan sát, chưa thể kết hợp khối khác - Khối LCD 16x2 khối led đoạn hiển thị lúc hiệu suất hiển thị kém, led đoạn nhấp nháy liên tục sử dụng độc lập tương đối ổn định - Nạp chương trình vào kit Intel Galileo Gen xảy nhiều lỗi BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN - Kiến thức, thời gian kinh phí hạn chế nên mơ hình khơng tối ưu 100% 6.2 HƯỚNG PHÁT TRIỂN ĐỀ TÀI Với mong muốn đưa đến cho người sử dụng thí nghiệm hồn thiện để ứng dụng thực tiễn hơn, xin đưa số ý kiến phát triển cho đề tài sau: - Ngoài phần mềm Arduino IDE sử dụng đề tài lập trình thêm phần mềm lập trình cho kit Intel Galileo Gen Linux Mac OS X - Mở rộng thêm nhiều port để tăng số thiết bị ngoại vi nhằm tăng tính ứng dụng cho thí nghiệm - Trong đề tài này, sử dụng phần mềm Arduino IDE để lập trình kit Intel Galileo Gen 2, ngồi kit mà đề tài sử dụng dùng kit Arduino UNO R3 để lập trình thay tương ứng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO [1] Nguyễn Đình Phú, “Giáo trình vi điều khiển PIC 16F887”, Xuất ĐH SPKT TP.HCM, năm 2014 [2] Phạm Văn Khích, “Thiết kế thí nghiệm PIC 18F2455/2550/5555/4550”, NCKH cấp trường, trường ĐHSPKT, TP.HCM, tháng 10 năm 2008 [3] Nguyễn Văn Bình, “Thiết kế nhà thơng minh dùng vi điều khiển PIC 16F887”, Đồ án tốt nghiệp, trường ĐHSPKT, TP.HCM, năm 2014 [4] Trần Anh Đề, Trần Sơn Lành, “Hệ thống điểm danh vân tay ứng dụng vi điều khiển ARM”, Đồ án tốt nghiệp, trường ĐHSPKT, TP.HCM, tháng năm 2016 [5] Huỳnh Công Thành, Nguyễn Trung Vinh, “Ứng dụng kit Raspberry nhận dạng mặt người”, Đồ án tốt nghiệp, trường ĐHSPKT, TP.HCM, tháng năm 2016 [6] Đỗ Tiến Anh, Lâm Thanh Sang, “Thiết kế hệ thống điều khiển giám sát thiết bị qua webserver sử dụng kit Intel Edison”, Đồ án tốt nghiệp, trường ĐHSPKT, TP.HCM, tháng 07 năm 2018 [7] Nguyễn Đình Phú, “Giáo trình thực hành vi điều khiển PIC”, Xuất ĐH SPKT TP.HCM, tháng 08 năm 2016 [8] Trần Thu Hà (chủ biên), Trương Thị Bích Ngà, Nguyễn Thị Lưỡng, Bùi Thị Tuyết Đan, Phù Thị Ngọc Hiếu, Dương Thị Cẩm Tú, “Giáo trình Điện tử bản”, NXB Đại học Quốc gia TP.HCM, 2014 [9] Lê Hiếu, “Vi điều khiển, Vi xử lý ?”, thegioiic.com/forums/vi-dieu- khien-vi-xu-ly-la-gi, 19 tháng 03 năm 2012 [10] MSP430, “Giới thiệu giao thức SPI”, electronicctu.net/Thread-Chuan- giao-tiep-SPI.html, 26 tháng năm 2012 [11] Ý tưởng nhanh, “Chuẩn giao tiếp 1-Wire”, ytuongnhanh.vn/chi- tiet/chuan-giao-tiep-1-wire-156.html, năm 2017 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59 PHỤ LỤC PHỤ LỤC Các tập thí nghiệm giao tiếp đơn giản kết thu Bài 1: Đo hiển thị nhiệt độ bên trái hàng LCD Hàng hiển thị chữ “NHIET DO PHONG:”.Có nút nhấn với chức sau: BTN1: nhấn lần nhiệt độ hiển thị bên phải hàng LCD, nhấn lần nhiệt độ hiển thị bên trái hàng LCD lặp lại BTN2: Nhấn lần sáng led bên phải, nhấn lần sáng led bên trái, nhấn lần led sáng xen kẽ , nhấn lần led tắt lặp lại BTN3: Nhấn lần động hoạt động, nhấn lần động ngừng lặp lại BTN4: Thay đổi cấp tốc độ động (2 cấp) Code chương trình: //DIEU KHIEN LED DON int SHCP_LEDDON = 0; int STCP_LEDDON = 8; int G_3M =6; int DS_LEDDON = 1; //DIEU KHIEN NUT NHAN DON const int nutnhan4 = A3; const int nutnhan3 = A2; const int nutnhan2 = 2; const int nutnhan1 = 3; //DIEU KHIEN DONG CO int input1 = 5;//PWM int input2 = 4; int E_L298 = A1; //DIEU KHIEN LCD VA CAM BIEN NHIET DO #include #include LiquidCrystal lcd(7); int cambien = A0; void setup() { //KHOI TAO DONG CO pinMode(input1,OUTPUT); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC pinMode(input2,OUTPUT); pinMode(E_L298,OUTPUT); digitalWrite(E_L298,LOW); digitalWrite(input1,LOW); digitalWrite(input2,LOW); digitalWrite(E_L298,HIGH); //KHOI TAO LCD VA CAM BIEN NHIET DO analogReadResolution(12); Wire.begin(); lcd.initSPI(7); pinMode(G_3M,OUTPUT); digitalWrite(G_3M,LOW); lcd.begin(16, 2); lcd.clear(); lcd.print(" NHIET DO PHONG:"); //KHOI TAO LED DON pinMode(DS_LEDDON,OUTPUT); pinMode(STCP_LEDDON,OUTPUT); pinMode(SHCP_LEDDON,OUTPUT); pinMode(G_3M,OUTPUT); digitalWrite(G_3M,LOW); xuat_8led(0x00); //KHOI TAO NUT NHAN DON pinMode(nutnhan4,INPUT); pinMode(nutnhan1,INPUT); pinMode(nutnhan2,INPUT); pinMode(nutnhan3,INPUT); digitalWrite(nutnhan4,HIGH); digitalWrite(nutnhan1,HIGH); digitalWrite(nutnhan2,HIGH); digitalWrite(nutnhan3,HIGH); delay(100);} //KIEM TRA VA CHONG DOI NUT NHAN DON int ktnutnhan(int chan){ if(!digitalRead(chan)){ delay(20); if(!digitalRead(chan)){ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC while(!digitalRead(chan)); return 0;}} return 1;} //XUAT DU LIEU LED DON void xuat_byte( byte bytexuat) {shiftOut(DS_LEDDON, SHCP_LEDDON, MSBFIRST, bytexuat); } void xuat_8led( byte y0) { xuat_byte(y0); digitalWrite(STCP_LEDDON,LOW); digitalWrite(STCP_LEDDON,HIGH);} //XUAT DU LIEU DONG CO void dongco_quaythuan(){ digitalWrite(input1,HIGH); digitalWrite(input2,LOW);} void dongco_quaynghich(){ digitalWrite(input1,LOW); digitalWrite(input2,HIGH);} void dongco_dungquay(){ digitalWrite(input1,LOW); digitalWrite(input2,LOW);} void dongco_thaydoi_tocdo(int speed) { speed = constrain(speed, 0, 255); analogWrite(input1, speed); digitalWrite(input2, LOW);} int tt1=0,tt2=0,tt3=0,tt4=0; void loop() { //DOC GIA TRI CAM BIEN NHIET DO int giatri = analogRead(cambien); float nhietdo = giatri * ((5.0*100/4096)); //KIEM TRA TRANG THAI NUT NHAN DON int buttonStatus1 = ktnutnhan(nutnhan1); int buttonStatus2 = ktnutnhan(nutnhan2); int buttonStatus3 = ktnutnhan(nutnhan3); int buttonStatus4 = ktnutnhan(nutnhan4); //TANG CAP TOC DO DONG CO if (buttonStatus4 == LOW) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC tt4=tt4+30; if(tt4>50){tt4=0;}} //TAT/MO DONG CO if (buttonStatus3 == LOW) {tt3=tt3+1;if(tt3>1) {tt3=0;}} if(tt3==0){dongco_dungquay();tt4=0;} if(tt3==1) {dongco_thaydoi_tocdo(20+tt4);} //HIEN THI LED if (buttonStatus2 == LOW) { tt2=tt2+1; if(tt2>3) {tt2=0;}} if(tt2==0){xuat_8led(0x00);} if(tt2==1){xuat_8led(0x0f);} if(tt2==2){xuat_8led(0xf0);} if(tt2==3){xuat_8led(0xaa);} //HIEN THI NHIET DO RA LCD if (buttonStatus1 == LOW) { tt1=tt1+1; if(tt1>1) {tt1=0;}} if(tt1==0){ lcd.setCursor(0, 1); lcd.print(nhietdo,2); lcd.write(223); lcd.print("C"); lcd.setCursor(7, 1); lcd.print(" "); } else { lcd.setCursor(8, 1); lcd.print(nhietdo,2); lcd.write(223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print(" "); }} BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63 PHỤ LỤC Quan sát kết thí nghiệm: Kết thu thí nghiệm nhấn BTN1 lần hình Kết thu thí nghiệm nhấn BTN1 lần hình Kết thu thí nghiệm nhấn BTN2 lần hình BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64 PHỤ LỤC Kết thu thí nghiệm nhấn BTN2 lần hình Kết thu thí nghiệm nhấn BTN2 lần hình Bài 2: Đồng hồ thời gian thực hiển thị led đoạn Code chương trình: #include const int DS_7DOAN = 10; const int STCP_7DOAN = 9; const int SHCP_7DOAN = 12; const int G_3M = 6; int ma7doan[10]= {0XC0,0XF9,0xA4,0XB0,0X99,0X92,0X82,0XF8, 0X80,0X90}; int thutuled[6]={0xfd,0xfb,0xf7,0xef,0xdf,0xbf}; int led7[6]={0xff,0xff,0xff,0xff,0xff,0xff}; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC // int giay, phut, gio, thu, ngay, thang, nam; int bcd2dec(byte num) { return ((num/16 * 10) + (num % 16)); } int dec2bcd(byte num) { return ((num/10 * 16) + (num % 10)); } void nap_thoi_gian_ds1307(byte hr,byte min,byte sec,byte wd,byte d,byte mth,byte yr){ Wire.beginTransmission(0x68); Wire.write(byte(0x00)); // đặt lại pointer Wire.write(dec2bcd(sec)); Wire.write(dec2bcd(min)); Wire.write(dec2bcd(hr)); Wire.write(dec2bcd(wd)); // day of week: Sunday = 1, Saturday = Wire.write(dec2bcd(d)); Wire.write(dec2bcd(mth)); Wire.write(dec2bcd(yr)); Wire.endTransmission(); } void doc_thoi_gian_ds1307() { Wire.beginTransmission(0x68); Wire.write((byte)0x00); Wire.endTransmission(); Wire.requestFrom(0x68, 7); giay = bcd2dec(Wire.read() & 0x7f); phut = bcd2dec(Wire.read() ); gio thu thang = bcd2dec(Wire.read() ); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH = bcd2dec(Wire.rea = bcd2dec(Wire.rea = bcd2dec(Wire.r PHỤ LỤC nam = bcd2dec(Wire.read() ); nam += 2000;} // void setup() { Wire.begin(); pinMode(DS_7DOAN,OUTPUT); pinMode(STCP_7DOAN,OUTPUT); pinMode(SHCP_7DOAN,OUTPUT); pinMode(G_3M,OUTPUT); digitalWrite(G_3M, LOW); delay(100); //nap_thoi_gian_ds1307(16,21,00,3,18,12,18); } void xuat_1byte(unsigned int bytexuat) { shiftOut(DS_7DOAN, SHCP_7DOAN, MSBFIRST, bytexuat); } void xuat_led_7doan_quet_1( int y1,int y0) { xuat_1byte(y1); xuat_1byte(y0); digitalWrite(STCP_7DOAN,LOW); digitalWrite(STCP_7DOAN,HIGH); } void xuat_led_7doan_quet_tat() { xuat_led_7doan_quet_1( 0xff,0xff); } void xuat_led_7doan_quet_2( int y1,int y0) { xuat_1byte(thutuled[y1]); xuat_1byte(y0); digitalWrite(STCP_7DOAN,LOW); digitalWrite(STCP_7DOAN,HIGH); } void xuat_led_quet_tatca(){ for(int i =0;i

Ngày đăng: 27/12/2021, 08:49

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w