NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH PHÂN LOẠI VÀ ĐẾM SẢN PHẨM

100 12 0
  • Loading ...
1/100 trang
Tải xuống

Thông tin tài liệu

Ngày đăng: 19/09/2019, 10:54

Viết chương trình điều khiển, chương trình hiển thị. Thiết kế mạch điện không quá phức tạp, đảm bảo sự an toàn, dễ sử dụng, giá thành không quá mắc.Bộ phận hiển thị rõ ràng. Sản phẩm của đề tài nếu được phát triển rộng, đi sâu hơn thì có thể ứng dụng vào trong thực tế sản xuất công nghiệp.Kết quả:Chương trình điều khiển hệ thống đếm, chương trình hiển thị. Chương trình phân loại sản phẩm.Chương trình giao tiếp vi điều khiển và máy tính.Mô hình phân loại và đếm sản phẩm tự động. NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MƠ HÌNH PHÂN LOẠI VÀ ĐẾM SẢN PHẨM Tác giả LÊ NGỌC HÒA TRƯƠNG CƠNG PHÁT Khóa luận đệ trình để đáp ứng yêu cầu cấp Kỹ sư ngành Cơ Điện Tử Giáo viên hướng dẫn: Th.S Nguyễn Lê Tường Thầy giáo Nguyễn Văn Khải Tháng 07 năm 2010 i LỜI CẢM ƠN Thơng qua khóa luận tốt nghiệp tơi xin gửi lời cảm ơn chân thành đến: - Tất quý thầy cô trường Đại học Nông Lâm Thành phố Hồ Chí Minh truyền đạt cho tơi kiến thức quý báu làm tảng sau Đặc biệt quý thầy cô Bộ môn Cơ Điện Tử - khoa Cơ Khí Cơng Nghệ dạy bảo, trang bị cho kiến thức chuyên ngành làm hành trang bước vào thực tế - Giáo viên hướng dẫn: Th.s Nguyễn Lê Tường, thầy Nguyễn Văn Khải tận tình giúp đỡ từ bắt đầu đến hồn thành khóa luận - Tập thể lớp DH06CD chia sẻ kiến thức học hỏi thời gian qua - Tất bạn bè người thân động viên, giúp đỡ vượt qua khó khăn q trình thực Vì thời gian không nhiều kiến thức, kinh nghiệm hạn chế nên khơng tránh khỏi thiếu sót Rất mong góp ý chân thành từ phía thầy bạn đọc Xin chân thành cảm ơn Sinh viên thực LÊ NGỌC HÒA TRƯƠNG CƠNG PHÁT TĨM TẮT Tên đề tài: “ Nghiên cứu thiết kế chế tạo mơ hình hệ thống phân loại đếm sản phẩm tự động” ii Thời gian thực hiện: từ 01/04/2010 – 30/07/2010 Địa điểm thực hiện: - Xưởng môn điện tử - trường Đại học Nơng Lâm Thành phố Hồ Chí Minh Mục đích để tài: - Thực đề tài “Nghiên cứu, thiết kế chế tạo mơ hình hệ thống phân loại đếm sản phẩm tự động” dùng vi điều khiển - Viết chương trình điều khiển, chương trình hiển thị - Thiết kế mạch điện không phức tạp, đảm bảo an tồn, dễ sử dụng, giá thành khơng mắc - Bộ phận hiển thị rõ ràng - Sản phẩm đề tài phát triển rộng, sâu ứng dụng vào thực tế sản xuất công nghiệp Kết quả: - Chương trình điều khiển hệ thống đếm, chương trình hiển thị - Chương trình phân loại sản phẩm - Chương trình giao tiếp vi điều khiển máy tính - Mơ hình phân loại đếm sản phẩm tự động iii MỤC LỤC Lời cảm ơn ii Tóm tắt iii Mục lục .iiv Danh sách chữ viết tắt vii Danh sách hình viii Danh sách bảng ix Chương MỞ ĐẦU 1.1 Tính cấp thiết đề tài .1 1.2 Mục đích đề tài 1.3 Ý nghĩa khoa học thực tiễn Chương TỔNG QUAN 2.1 Giới thiệu tổng quan .3 2.2 Một số phương pháp điều khiển dùng tự động hóa .5 2.2.1 Điều khiển PLC 2.2.2 Điều khiển IC số .6 2.2.3 Vi điều khiển .7 2.3 Vi điều khiển PIC16F887 .7 2.3.1 Giới thiệu chung PIC 2.3.2 Sự phổ biến vi điều khiển PIC 2.3.3 Kiến trúc PIC .8 2.3.4 Risc Cisc .9 2.3.5 Pipeling 10 2.3.6 Các dòng PIC cách lựa chọn PIC 11 2.3.7 Đặc tính chung PIC 12 2.3.8 Sơ đồ chân chức chân 13 2.3.9 Tổ chức nhớ 17 2.3.10 Thanh ghi chức đặc biệt SFR 18 2.3.11 Thanh ghi mục đích GPR .19 2.3.12 Các PORT xuất nhập PIC16F887 20 iv 2.3.13 Các định thời 21 2.3.14 Khối chuyển đổi tương tự sang số ADC 23 2.3.15 Ngắt .23 2.3.16 Module PWM 24 2.3.17 Giao tiếp nối tiếp PIC16F887 24 2.3.18 Cổng giao tiếp song song PSP .27 2.3.19 Các đặc tính Oscillator 27 2.3.20 Các chế độ Reset 28 2.3.21 Ngơn ngữ lập trình PIC16F887 .29 2.3.22 Mạch nạp cho PIC 29 2.4 Led đoạn 29 2.5 IC L298 31 2.6 OPTO PC 817 .35 2.7 IC 74HC595 .35 2.8 Động DC 36 2.9 Giới thiệu phần mềm visual basic .37 2.10 Các phương pháp giao tiếp máy tính 38 2.10.1 Giao tiếp qua slot 38 2.10.2 Giao tiếp qua cổng COM .38 2.10.3 Giao tiếp qua cổng máy in ( cổng song song) 39 2.11 Một số linh kiện khác .39 Chương NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 41 3.1 Nội dung nghiên cứu 41 3.2 Phương pháp nghiên cứu 41 3.3 Thiết kế giao diện giám sát phần mềm visual basic 6.0 .41 3.4 Trình biên dịch MPLAB cho PIC16F887 44 3.5 Tính tốn, lựa chọn thơng số góc quay Robot 49 Chương KẾT QUẢ VÀ THẢO LUẬN 51 4.1 Sơ đồ khối tổng quát hệ thống 51 4.1.1 Khối điều khiển .51 4.1.2 Khối nguồn 53 v 4.1.3 Khối cảm biến 54 4.1.4 Khối hiển thị led đoạn 56 4.1.5 Khối điều khiển động 58 4.1.6 Khối giao tiếp máy tính 60 4.1.7 Khối reset vi điều khiển 62 4.1.8 Giao diện hiển thị máy tính .62 4.2 Mơ hình tổng qt hệ thống 63 4.3 Thiết kế mơ hình phần cứng thực tế 65 4.3.1 Mơ hình tồn hệ thống 65 4.3.2 Mơ hình cánh tay gắp 65 4.4 Lưu đồ giải thuật điều khiển mơ hình hệ thống 66 Chương KẾT LUẬN VÀ ĐỀ NGHỊ .69 5.1 Kết luận 69 5.2 Đề nghị .69 TÀI LIỆU THAM KHẢO 71 PHỤ LỤC .72 PHỤ LỤC .78 vi DANH SÁCH CÁC CHỮ VIẾT TẮT D-H Denavit-Hartenberg I/O Input/Output UART Universal Synchronous Asynchronous Receiver Transmitter ISCP In Circuit Serial Programming A/D Analog/Digital PWM Pulse Width Modulator PLC Programmable Logic Controller CTHT Cơng tắc hành trình RD Read WR Write CS Chip Select SSP Synchronous Serial Port MSSP Mas Synchronous Serial Port SPI Serial Peripheral Interface TTL Transistor Transisor Logic PSP Parallel Slave Port DC Động Cơ vii DANH SÁCH CÁC HÌNH Hình 2.1 Dây chuyền đếm sản phẩm tự động Hình 2.2 Dây chuyền cắt gạch tự động Hình 2.3 Dây chuyền đếm phát gạch bị lỗi Hình 2.4 Dây chuyền phân loại sản phẩm tự động Hình 2.5 Dây chuyền đóng gói sản phẩm tự động Hình 2.6 Dây chuyền định lượng sản phẩm tự động Hình 2.7 Kiến trúc Harvard kiến trúc Von - Neuman Hình 2.8 Sơ đồ chân PIC16F887 Hình 2.9 Sơ đồ ngun lí PIC16F887 Hình 2.10 Sơ đồ ngun lí Led đoạn Hình 2.11 Led đoạn thực tế Hình 2.12 Led đoạn anod chung Hình 2.13 Led đoạn Katod chung Hình 2.14 Sơ đồ chân IC L298 Hình 2.15 Sơ đồ kết hợp cầu H để điều khiển động DC Hình 2.16 Các kiểu đóng vỏ L298 Hình 2.17 Sơ đồ chân L298 Hình 2.18 Cấu tạo IC quang Hình 2.19 IC quang thực tế Hình 2.20 Sơ đồ chân IC 74HC595 Hình 2.21 Động DC thực tế Hình 3.1 Các thơng số động học Hình 4.1 Mạch điều khiển trung tâm Hình 4.2 Sơ đồ layout mạch điều khiển trung tâm Hình 4.3 Board mạch điều khiển trung tâm Hình 4.4 Sơ đồ ngun lí mạch nguồn Hình 4.5 Sơ đồ layout mạch nguồn Hình 4.6 Board mạch nguồn viii Hình 4.7 Sơ đồ ngun lí mạch cảm biến Hình 4.8 Sơ đồ layout mạch cảm biến Hình 4.9 Board mạch cảm biến Hình 4.10 Sơ đồ ngun lí mạch hiển thị Hình 4.11 Sơ đồ layout mạch hiển thị Hình 4.12 Board mạch hiển thị Hình 4.13 Sơ đồ ngun lí mạch điều khiển động Hình 4.14 Sơ đồ layout mạch điều khiển động Hình 4.15 Board mạch điều khiển động Hình 4.16 Mạch giao tiếp máy tính Hình 4.17 Sơ đồ ngun lí mạch reset Hình 4.18 Giao diện giám sát hiển thị máy tính Hình 4.19 Mơ hình lắp ráp trạm phân loại đếm sản Hình 4.20 Sơ đồ lắp ráp trạm phân loại đếm sản phẩm Hình 4.21 Mơ hình cánh tay cấp sản phẩm Hình 4.22 Sơ đồ cánh tay cấp sản phẩm Hình 4.23 Mơ hình thực tế trạm phân loại đếm sản phẩm Hình 4.24 Mơ hình thực tế cánh tay Hình Sơ đồ khối vi điều khiển PIC16F887 Hình Sơ đồ khối Timer Hình Sơ đồ khối Timer Hình Sơ đồ khối Timer Hình Sơ đồ khối chuyển đổi ADC Hình Sơ đồ khối tất ngắt vi điều khiển PIC15F887 Hình Sơ đồ nhớ liệu vi điều khiển PIC16F887 Hình Sơ đồ nhớ chương vi điều khiển PIC16F887 ix DANH SÁCH CÁC BẢNG Bảng 3.1 Giá trị led đoạn Bảng 3.2 Thông số D-H Bảng 3.2 Trạng thái hoạt động Motor Bảng 4.1 Chức chân cổng nối tiếp x Hình Sơ đồ khối tất ngắt vi điều khiển PIC16F887 Sơ đồ nhớ liệu PIC16F887 76 Hình Sơ đồ nhớ liệu vi điều khiển PIC16F887 Sơ đồ nhớ chương trình PIC16F887 Hình Sơ đồ nhớ chương trình vi điều khiển PIC16F887 77 PHỤ LỤC Chương trình vi điều khiển #include void delay_ms (int ms); void sspi(char data); CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS); const char LedCode[16] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x8 6,0x8E}; char getVal(int v,char offset); char X = 0; char D = 0; char V = 0; char TC = 0; bit nut1,nut2,nut3,nut4,nut5,nut6,nut7,nut8,nut9; #define DATA RE1 #define CLK RE0 #define STROBE RE2 #define CTHT11 RB1 #define CTHT12 RB2 #define CTHT21 RB3 #define CTHT22 RB4 #define CTHT31 RB5 #define CTHT32 RB6 #define RETURN RB0 #define CTHT41 RA3 #define CTHT42 RA4 78 #define CTHT51 RA5 #define CTHT52 RA6 #define XANH RA0 #define DO RA1 #define VANG RA2 #define XOAYTRAI RC1 #define XOAYPHAI RC2 #define DC2LEN RC3 #define DC2XUONG RC4 #define DC3LEN RC5 #define DC3XUONG RC6 #define THUAN4 RD4 //canh gat quay ve #define NGHICH4 RD3 //canh gat quay gat sp mau XANH #define THUAN5 RD2 //canh gat quay ve #define NGHICH5 RD1 //canh gat quay gat sp mau DO void main() { nut1 = 0; nut2 = 0; nut3 = 0; nut4 = 0; nut5 = 0; nut6 = 0; nut7 = 0; 79 nut8 = 0; nut9 = 0; ANSEL = ANSELH = 0; TRISC = 0x00; TRISB = 0xFF; TRISA = 0xFF; TRISE0 = 0; TRISE1 = 0; TRISE2 = 0; STROBE = 0; DATA = 0; CLK = 0; TRISD1 = 0; TRISD2 = 0; TRISD3 = 0; TRISD4 = 0; //cau hinh pull-up WPUB6 = 1; WPUB5 = 1; WPUB4 = 1; WPUB3 = 1; WPUB2 = 1; WPUB1 = 1; WPUB0 = 1; RBPU = 0; IOCB = 0x01; //Cho phep ngat OnChange tren chan RB0 80 INTEDG = 0; //Ngat canh xuong //Cau hinh ngat on-change RBIF = 0; RBIE = 1; GIE = 1; //cho phep ngat toan cuc while(1){ // Phan canh tay hoat dong if (!CTHT22 && !nut1 && !CTHT32 && !CTHT12){ //tu vi tri ban dau PORTC = 0; DC2XUONG = 1; //DC2 xuong nut1 = 1; } else if(CTHT22){ nut1 = 0; } if (!CTHT21 && !nut2 && !CTHT32 && !CTHT12){ //CTHT21 DONG PORTC = 0; //ngung DC2 DC3XUONG = 1; //DC3 xuong (kep sp) nut2 = 1; } else if(CTHT21){ nut2 = 0; } 81 if (!CTHT31 && !nut3 && !CTHT21 && !CTHT12){ //CTHT31 DONG PORTC = 0; //ngung DC3 DC2LEN=1; //DC2 len nut3 = 1; } else if(CTHT31){ nut3 = 0; } if (!CTHT22 && !nut4 && !CTHT31 && !CTHT12){//CTHT22 DONG PORTC = 0; //ngung DC2 XOAYPHAI=1; //DC1 xoay phai 90 nut4 = 1; } else if(CTHT22){ nut4 = 0; } if (!CTHT11 && !nut5 && !CTHT31 && !CTHT22){ //CTHT11 DONG PORTC = 0; //ngung DC1 DC2XUONG=1; //DC2 xuong nut5 = 1; } else if(CTHT11){ nut5 = 0; } if (!CTHT21 && !nut6 && !CTHT31 && !CTHT11){ //CTHT21 DONG PORTC = 0; //ngung DC2 DC3LEN=1; //DC3 len nut6 = 1; 82 } else if(CTHT21){ nut6 = 0; } if (!CTHT32 && !nut7 && !CTHT21 && !CTHT11){ //CTHT32 DONG PORTC = 0; //ngung DC3 DC2LEN=1; //DC2 len nut7 = 1; } else if(CTHT32){ nut7 = 0; } if (!CTHT22 && !nut8 && !CTHT32 && !CTHT11){ //CTHT22 DONG PORTC = 0; //ngung DC2 XOAYTRAI=1; //DC1 xoay trai 90 nut8 = 1; } else if(CTHT22){ nut8 = 0; } if (!CTHT12 && !nut9 && !CTHT32 && !CTHT22){ //CTHT12 DONG PORTC = 0; DC2XUONG=1; //ngung DC1 //DC2 xuong nut9 = 1; } else if(CTHT12){ nut9 = 0; } /* phan Cam Bien hoat dong (0=quay, 1=ngung) va dieu khien canh gat SP */ 83 if (!XANH && DO && VANG){ // Cam Bien phat hien SP mau XANH X = X + 1; // so SP XANH RD3 = 0; // canh gat quay gat sp mau XANH } if (!CTHT41){ //CTHT41 dong RD3 = 1; // canh gat ngung _delay(5000); RD4 = 0; // canh gat quay ve }else if (!CTHT42){ // CTHT42 dong RD4 = 1; // canh gat ngung } if (!DO && XANH && VANG){ // Cam Bien phat hien SP mau DO D = D + 1; // so SP DO RD1 = 0; // canh gat quay gat sp mau DO } if (!CTHT51){ // CTHT51 dong RD1 = 1; // canh gat ngung _delay(5000); RD2 = 0; // canh gat quay ve }else if (!CTHT52){ // CTHT52 dong RD2 = 1; // canh gat ngung } if (!VANG && XANH && DO){ // Cam Bien phat hien SP mau VANG V = V + 1; // so SP VANG _delay(10000); // canh gat ko quay } TC = X + D + V; // so SP TONGCONG 84 //phan chuong trinh hien thi sspi(getVal(TC,0)); sspi(getVal(TC,1)); sspi(getVal(TC,2)); sspi(getVal(V,0)); sspi(getVal(V,1)); sspi(getVal(D,0)); sspi(getVal(D,1)); sspi(getVal(X,0)); sspi(getVal(X,1)); STROBE = 1; NOP(); STROBE =0; } } //chuong trinh ngat dua canh tay ve vi tri loop tu vi tri bat ky cua canh tay void interrupt ViTriLoop() { if (RBIE && RBIF){ RBIF = 0; if (RB3 && !RB6 && !RB2){ PORTC = 0; RC4 = 1; } if (RB5 && !RB3 && !RB2){ 85 PORTC = 0; RC6 = 1; } if (RB4 && !RB2 && !RB5){ PORTC = 0; RC3 = 1; } if (RB1 && !RB4 && !RB5){ PORTC = 0; RC2 = 1; } if (RB3 && !RB1 && !RB5){ PORTC = 0; RC4 = 1; } if (RB6 && !RB1 && !RB3){ PORTC = 0; RC5 = 1; } if (RB4 && !RB1 && !RB6){ PORTC = 0; RC3 = 1; } if (RB2 && !RB4 && !RB6){ PORTC = 0; RC1 = 1; } } } void delay_ms (int ms) // chuong trinh delay 86 { int i; for (i=0;ii)) DATA = 1; else DATA = 0; CLK = 1; //trigger clock from low to high NOP(); CLK = 0; } } Chương trình visual basic Dim Led1 As Boolean Dim Led2 As Boolean Dim Str As String Private Sub cmdLed1_Click() If Led1 Then MSComm1.Output = Chr$(&H11) 'bat led Led1 = False Else MSComm1.Output = Chr$(&H10) Led1 = True End If End Sub Private Sub cmdLed2_Click() If Led2 Then MSComm1.Output = Chr$(&H21) Led2 = False Else MSComm1.Output = Chr$(&H20) 88 'bat led Led2 = True End If End Sub Private Sub Form_Load() MSComm1.CommPort = MSComm1.Settings = "19200,n,8,1" MSComm1.PortOpen = True End Sub Private Sub MSComm1_OnComm() If (MSComm1.CommEvent = comEvReceive) Then txtRecv.Text = Trim(txtRecv.Text) + MSComm1.Input End If End Sub 89 ... máy tính Hình 4.19 Mơ hình lắp ráp trạm phân loại đếm sản Hình 4.20 Sơ đồ lắp ráp trạm phân loại đếm sản phẩm Hình 4.21 Mơ hình cánh tay cấp sản phẩm Hình 4.22 Sơ đồ cánh tay cấp sản phẩm Hình 4.23... loại đếm sản phẩm tự động: Hình 2.1 Dây chuyền đếm sản phẩm tự động Hình 2.2 Dây chuyền cắt gạch tự động Hình 2.3 Dây chuyền đếm phát gạch bị lỗi Hình 2.4 Dây chuyền phân loại sản phẩm tự động Hình. .. tài: - Thực đề tài Nghiên cứu, thiết kế chế tạo mơ hình hệ thống phân loại đếm sản phẩm tự động” dùng vi điều khiển - Viết chương trình điều khiển, chương trình hiển thị - Thiết kế mạch điện không
- Xem thêm -

Xem thêm: NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH PHÂN LOẠI VÀ ĐẾM SẢN PHẨM, NGHIÊN CỨU THIẾT KẾ CHẾ TẠO MÔ HÌNH PHÂN LOẠI VÀ ĐẾM SẢN PHẨM, 3 Ý nghĩa khoa học và thực tiễn, NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU, KẾT QUẢ VÀ THẢO LUẬN, TÀI LIỆU THAM KHẢO, Chương trình vi điều khiển

Từ khóa liên quan

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn