Kết quả đạt được: • Chế tạo thành công Robot thu hoạch cà chua hoạt động tốt trong bán kính 2m. • Bằng việc sử dụng vi điều khiển PIC16F886 để xử lý và điều khiển động cơ cho tốc độ xử lý nhanh, chính xác, dễ giao tiếp, dễ điều khiển. • Dùng chương trình Matlab để xây dựng chương trình xử lý ảnh, tính toán động học và mô phỏng cho kết quả đáng tin cậy, dễ lập trình, dễ sử dụng.
NGHIÊN CỨU, THIẾT KẾ VÀ MÔ PHỎNG ROBOT THU HOẠCH CÀ CHUA Tác giả NGUYỄN TRƯỜNG GIANG TRẦN MINH Khóa luận trình để đáp ứng yêu cầu cấp Kỹ sư chuyên ngành Cơ Điện Tử Giáo viên hướng dẫn: PGS.TS Nguyễn Văn Hùng KS Nguyễn Tấn Ý Tháng 06 năm 2013 LỜI CẢM ƠN Em xin trân trọng cám ơn tất quý Thầy, Cô trường Đại Học Nơng Lâm Tp Hồ Chí Minh q Thầy, Cơ khoa Cơ khí – Cơng nghệ trang bị cho chúng em kiến thức quý báu trình học tập trường Em xin chân thành cám ơn Thầy, Cô môn Cơ điện tử hướng dẫn, giúp đỡ chúng em tận tình trình chúng em làm đề tài Em xin bày tỏ biết ơn chân thành tới thầy PGS TS Nguyễn Văn Hùng thầy Nguyễn Tấn Ý tận tình hướng dẫn chúng chúng em trình làm Luận văn tốt nghiệp Em xin chân thành cám ơn anh Trung nghiên cứu Tự động hóa Robot trường Cao đẳng nghề cơng nghệ cao Đồng An, giúp đỡ bảo chúng em tận tình thời gian làm đề tài trường Đặc biệt, chúng em xin cám ơn quý Thầy, Cô Hội đồng dành thời gian nhận xét, góp ý để Luận văn chúng em hoàn thiện Cuối cùng, chúng em xin gửi lời cám ơn đến người thân bạn bè động viên, ủng hộ tạo cho chúng em điều kiện thuận lợi q trình hồn thành Luận văn tốt nghiệp Thành phố Hồ Chí Minh, ngày 17 tháng 06 năm 2013 Sinh viên thực Trần Minh – Nguyễn Trường Giang TÓM TẮT Trong thời buổi cơng nghiệp hóa, đại hóa ngày nay, Robot ngày đóng vai trò quan trọng sản xuất đời sống Có nhiều loại Robot phục vụ cho nhiều mục đích khác Song, hầu hết loại Robot nước chế tạo, nên giá thành cao chưa thật phù hợp với với thực tế Việt Nam Trong lĩnh vực nông nghiệp, Robot chưa có nhiều ứng dụng Nên chúng tơi muốn chế tạo Robot phục vụ cho nơng nghiệp, góp phần tăng chất lượng nông sản giải vấn đề phù hợp với thực tiễn Việt Nam Đó ngun nhân hơm chúng tơi thực đề tài “Nghiên cứu, thiết kế, mô Robot thu hoạch cà chua” nhằm mục đích nghiên cứu vấn đề khoa học – kỹ thuật sở ứng dụng kiến thức trang bị năm học vừa qua trường Đề tài “Nghiên cứu, thiết kế, mô Robot thu hoạch cà chua” tiến hành Trung tâm nghiên cứu Tự động hóa Robot trường Cao đẳng nghề cơng nghệ cao Đồng An, từ ngày 03/03/2013 đến ngày 20/06/2013 Kết đạt được: • Chế tạo thành cơng Robot thu hoạch cà chua hoạt động tốt bán kính 2m • Bằng việc sử dụng vi điều khiển PIC16F886 để xử lý điều khiển động cho tốc độ xử lý nhanh, xác, dễ giao tiếp, dễ điều khiển • Dùng chương trình Matlab để xây dựng chương trình xử lý ảnh, tính tốn động học mô cho kết đáng tin cậy, dễ lập trình, dễ sử dụng MỤC LỤC Trang TRANG TỰA DANH SÁCH CÁC BẢNG Bảng Trang DANH SÁCH CÁC HÌNH Hình Trang Chương MỞ ĐẦU 1.1 Đặt vấn đề Nước ta nước nông nghiệp, nước xuất sản phẩm nông nghiệp đứng đầu giới, góp phần đảm bảo an ninh lương thực nước giới Đứng đầu như: gạo, cà phê, điều, ca cao… Song, đa số xuất thiên số lượng chưa trọng nhiều đến chất lượng Trong kỷ 21, nhu cầu lương thực người tăng lên, đòi hỏi chất lượng phải tốt hơn, có lợi cho sức khỏe bảo vệ mơi trường nhiều Vì vậy, nước ta phải cải tiến chất lượng nông sản đề phục vụ cho nhu cầu người Để tăng chất lượng nông sản từ khâu trồng trọt đến thu hoạch, chế biến xuất khẩu, cần áp dụng khoa học kỹ thuật đại vào quy trình sản xuất Cụ thể để có sản phẩm sạch, chất lượng tốt, cần trồng nhà kính, có hệ thống tưới nước, bón phân, phun thuốc thu hoạch tự động Trong quy trình sản xuất này, hệ thống nhà kính, hệ thống tưới nước, bón phân sinh viên giảng viên khoa Cơ khí – Cơng nghệ trường ĐH Nơng Lâm TP.HCM nghiên cứu áp dụng rộng rãi vào thực tế Nhưng khâu thu hoạch tự động chưa nghiên cứu hồn thiện tối ưu Chính đề tài muốn góp phần phát triển hồn thiện quy trình sản xuất khép kín, đại, chất lượng cao, bảo vệ môi trường Với hướng dẫn thầy PGS.TS Nguyễn Văn Hùng, thầy KS Nguyễn Tấn Ý Đề tài tập trung nghiên cứu thiết kế chế tạo ứng dụng mơ hình robot cho việc thu hoạnh trái nhà kính, cụ thể thu hoạch cà chua trồng nhà kính, phát triển để phù hợp với loại trái khác Với hi vọng đề tài góp phần vào việc ứng dụng cơng nghệ robot lĩnh vực tự động hóa vào sản xuất nông nghiệp nước ta tương lai 1.2 Mục đích đề tài Nghiên cứu, thiết kế chế tạo mơ hình robot thu hoạch cà chua nhằm làm sở ứng dụng vào thực tế Nhằm góp phần xây dựng quy trình sản xuất khép kín, đại, đảm bảo chất lượng, giảm giá thành sản xuất giảm nhân công lao động 1.3 Mục tiêu cụ thể - Nghiên cứu kết cấu, động học, khả di chuyển mô robot Nghiên cứu ứng dụng xử lý ảnh để nhận dạng đối tượng điều khiển robot Chế tạo robot thử nghiệm 1.4 Ý nghĩa khoa học thực tiễn đề tài 1.4.1 Ý nghĩa khoa học Kết nghiên cứu đề tài sở cho hướng nghiên cứu mở rộng, nâng cao nhằm tối ưu hóa hoạt động robot Từ kết đề tài cải tiến thiết kế, tính tốn tối ưu độ bền công suất khả tiêu hao lượng robot Giúp robot hoạt động hiệu quả, tránh va đập mở rộng không gian công tác 1.4.2 Ý nghĩa thực tiễn Các kết nghiên cứu đề tài sử dụng giảng dạy, nghiên cứu robot áp dụng vào sản xuất Đề tài cố gắng đưa khoa học robot ứng dụng nhiều sống, tìm hướng khâu thu hoạch cà chua nói riêng trái nói chung, góp phần nâng cao chất lượng trái Việt Nam Chương TỔNG QUAN 2.1 Đối tượng nghiên cứu Đối tượng nghiên cứu đề tài đặc tính động học robot, chủ yếu tập trung vào phương pháp giải toán động lực học từ xác định thơng số phục vụ cho điều khiển chuyển động Nghiên cứu thiết kế mơ hình Robot cho phù hợp với việc thu hoạch cà chua, nghiên cứu board mạch điều khiển robot nghiên cứu xử lý ảnh 2.1.1 Một số ứng dụng Robot lĩnh vực nông nghiệp giới Việt Nam Hình 2.1: Robot thu hoạch dâu Nhật Bản Robot thu hoạch dâu Nhật Bản có khả di chuyển đường ray có sẵn nhà kính Robot dùng camera để phát dâu chín vươn tay máy Robot để thu hoạch dâu Tốc độ Robot không người, hoạt động 24/24 điều kiện nhà kính Hình 2.2: Mơ hình Robot thu hoạch nấm Anh Các nhà nghiên cứu thuộc trường Đại học Warwick, Vương quốc Anh, chế tạo thành công mơ hình Robot thu hoạch nấm giúp đảm bảo chất lượng đồng cho sản phẩm Như biết, nấm có tốc độ phát triển nhanh, không kịp thu hoạch nấm già không đảm bảo thành phần dinh dưỡng Do đó, nhiệm vụ Robot sử dụng camera để đo kích thước nấm, sau thu hoạch nấm đạt tới kích thước quy định Robot hoạt động liên tục mà khơng cần người điều khiển Hình 2.3: Robot phun thuốc sinh học nhà kính Tình hình phát triển Robot Việt Nam ngày phát triển, có nhiều ứng dụng Robot đưa vào sản xuất nông nghiệp chất lượng cao Mà cụ thể Robot phun thuốc sinh học nhà kính, sinh viên giảng viên khoa Cơ khí – Cơng nghệ trường Đại học Nơng Lâm TP.HCM nghiên cứu thiết kế chế tạo thành công Robot có khả thực việc pha chế liều lượng cách xác phun thuốc hồn tồn tự động theo chương trình lập sẵn, giúp người khơng phải tiếp xúc trực tiếp với thuốc Robot phun thuốc số góc cài đặt định, nhằm đảm bảo lượng thuốc phun Robot hoạt động chế độ tự động điều khiển tay thông qua bảng điều khiển từ xa 2.2 Khảo sát thu hoạch cà chua Trong q trình chín cà chua phải qua thời kỳ sau đây: Thời kỳ xanh: hạt phát triển chưa hoàn chỉnh Nếu thu hái thời kỳ thông qua phương pháp thúc chín chín khơng bình thường, khơng có hương vị, khơng có màu sắc đặc trưng giống Thời kỳ chín xanh: Chất keo bao quanh hạt hình thành, chưa có màu hồng màu vàng đem thúc chín thể màu sắc giống Thời kỳ chín vàng: Đỉnh xuất màu vàng màu hồng với diện tích bề mặt chiếm khoảng 10% Thời kỳ chuyển màu: Diện tích bề mặt từ 10-30% có màu vàng màu đỏ Thời kỳ chín hồng: Diện tích bề mặt từ 30-60% có màu hồng nhạt màu vàng Thời kỳ hồng đỏ: Diện tích bề mặt từ 60-90% có màu vàng đỏ Thời kỳ chín đỏ: Diện tích bề mặt từ 90% trở lên Đây thời kỳ quan trọng q trình chín Từ chín xanh đến chín, tổng hợp thời gian khoảng 10-12 ngày Sau chín hồn tồn có màu nâu đỏ thâm chắc, cứng Nếu dùng làm thực phẩm thích hợp người tiêu dùng ưa chuộng Khi mềm sử dụng được, cắt lát khó khăn Quả chín mềm dùng để lấy hạt giống thích hợp, thịt dùng để chế biến cà chua cô đặc tương cà chua tốt Hình 2.4: Quả cà chua qua thời kỳ chín Khi hái cà chua tay, va đập xếp, vận chuyển bị sây sát, bị dập môi trường tốt cho bệnh hại xâm nhiểm gây hư thối giảm chất lượng, Vì thao tác thu hái, xếp vận chuyển phải nhẹ nhàng, kịp thời loại bỏ 10 Hình 4.37: Biểu đồ mối liên hệ giá trị ADC góc cài đặt khâu thứ hai Từ biểu đồ trên, ta có phương trình hồi quy mối liên hệ giá trị ADC giá trị góc quay thực tế khâu thứ hai sau: y = 1.405x + 0.1875 Trong đó: x: Góc quay khâu thứ hai y: Giá trị ADC tương ứng với góc quay Bảng 4.3: Bảng khảo nghiệm độ xác góc quay khâu thứ ba Lần đo 10 Góc cài đặt (độ) 45 60 90 120 150 180 210 240 270 ADC cài đặt 512 548 561 600 615 641 665 695 722 749 Góc thực tế (độ) 46 60 90 121 151 182 211 243 271 Sai số (độ) 0 1 Hình 4.38: Biểu đồ Độ xác góc quay khâu thứ ba Hình 4.39: Biểu đồ mối liên hệ giá trị ADC góc cài đặt khâu thứ ba Từ biểu đồ trên, ta có phương trình hồi quy mối liên hệ giá trị ADC giá trị góc quay thực tế khâu thứ ba sau: y = 0.875x + 511.37 Trong đó: x: Góc quay khâu thứ ba 56 y: Giá trị ADC tương ứng với góc quay Từ phương trình hồi quy thu được, ta điểu khiển ba khâu robot quay theo góc ta mong muốn với sai số nhỏ Chương KẾT LUẬN VÀ ĐỀ NGHỊ Qua trình thực dựa kiến thức biết kết nghiên cứu, đề tài có số kết sau: 5.1 Kết đạt Đã thiết kế, chế tạo robot có khả thu hoạch có phạm vi hoạt động bán kính 2m 57 Robot phân biệt đối tượng bị che lấp hái để không làm ảnh hưởng đến chất lượng cần thu hoạch Robot phân biệt chưa đến thời gian thu hoạch chừa lại để tiếp tục phát triển Robot có khả hoạt động liên tục điều kiện ánh sáng bình thường, phù hợp với mơ hình nhà kính, đảm bảo vệ sinh an toàn cho người sử dụng 5.2 Đề nghị Cần nghiên cứu thiết kế lại để robot hoàn thiện Nên sử dụng máy có độ xác cao để tạo chi tiết cho robot Cần nghiên cứu lại động lực học để robot hoạt động tốt Cần tăng tốc độ robot, robot hoạt động tốc độ chậm nên chưa đáp ứng nhu cầu thực tế Cần tối ưu hóa lại chương trình điều khiển Mặc dù lập trình cơng phu, q trình áp dụng có nhiều lỗi phát sinh, số có số lỗi khắc phục Song có số lỗi mà chúng tơi chưa giải triệt để 5.2 Hướng phát triển đề tài Dựa vào sở lý thuyết kết đạt được, đưa vài đề nghị để phát triển hệ thống sau: Do robot trình nghiên cứu, nên giá thành cao, nguyên vật liệu chưa hợp lý, thiết bị hoạt động chưa ổn định Do cần chuẩn hóa lại nguyên vật liệu tương lai, nghiên cứu sản xuất hàng loạt để giảm giá thành công chế tạo Trong thời gian tới nên đưa công nghệ không dây vào robot, cụ thể sử dụng camera khơng dây, điều khiển qua sóng Wifi đưa lượng mặt trời vào robot để robot hoạt mà không cần dây dẫn Phần mềm Matlab chương trình mạnh, đơn giản, dễ xử lý Nhưng tốc độ xử lý phần mềm chậm Do cần có bước nghiên cứu để kết hợp với chương trình xử lý thiên tốc độ ngơn ngữ C hay chương trình xử lý ảnh OpenCV 58 Đây đề tài lớn, tính ứng dụng cao, nên chúng tơi cần đóng góp, phát triển nhiều người để hoàn thiện sản phẩm đưa vào áp dụng thực tế TÀI LIỆU THAM KHẢO Tiếng Việt PGS.TS Nguyễn Văn Hùng, 2008 Giáo trình Phương pháp số Matlab ứng dụng Nhà xuất Nông Nghiệp, 150 trang TS Phạm Đăng Phước, 2007, Giáo trình Robot cơng nghiệp Nhà xuất Xây Dựng, Hà Nội, 200 trang Nguyễn Quang Hoan, 2006 Xử lý ảnh Học viện Cơng Nghệ Bưu Chính Viễn Thơng, Hà Nội, 119 trang 59 Tiếng Anh Matlab, Image Processing Toolbox Help The MathWorks, Inc Minakshi Kumar Digital Image Processing Indian Institute of Remote Sensing, Dehradun, 102 pages Sirma C Yavuz, 2009 Kinematic Analysis For Robot Arm Yildiz Technical University, 34 pages PHỤ LỤC Chương trình xử lý ảnh Matlab % Nút lệnh thu ảnh xử lý ảnh function cmd_xu_ly_Callback(hObject, eventdata, handles) global vid data2 D td htimer kiem_tra kiem_tra=0; vid=videoinput('winvideo',2,'YUY2_640X480'); triggerconfig(vid,'manual'); 60 set(vid,'FramesPerTrigger',1); set(vid,'TriggerRepeat',inf); set(vid,'ReturnedColorSpace','RGB'); src = getselectedsource(vid); src.Brightness = -5; src.WhiteBalance = 6500; start(vid); trigger(vid); htimer = timer('executionMode', 'fixedRate', 'Period', 3, 'TimerFcn', @(h, evt)gui_dk); start(htimer); try while(1) I=getsnapshot(vid); S=size(I); Red = imsubtract(I(:,:,1), rgb2gray(I)); BW = Red >40; BW = bwareaopen(BW,300); BW =imfill(BW,'holes'); D = bwdist(~BW,'cityblock'); ths = max(max(D)); for i=1:S(1) for j=1:S(2) if D(i,j)> ths - (0.55*ths) F(i,j)=0; else F(i,j)=1; end end end mdo=bwconncomp(D,8); dtdo=regionprops(mdo,'Area'); tongdt=0; for i=1:mdo.NumObjects 61 tongdt=tongdt+dtdo(i).Area; end phantram=tongdt/(S(1)*S(2)); F = bwareaopen(F,200); F=~F; if phantram > 0.4 se = strel('disk',15); elseif ((phantram < 0.4) & (phantram > 0.2)) se=strel('disk',12); elseif ((phantram < 0.2) & (phantram > 0.1)) se=strel('disk',11); elseif ((phantram < 0.1) & (phantram > 0.07)) se=strel('disk',5); elseif ((phantram < 0.07) & (phantram > 0.05)) se=strel('disk',3); elseif ((phantram < 0.05) & (phantram > 0.01)) se=strel('disk',2); else se=strel('disk',1); end mon=imerode(F,se); bw = bwconncomp(mon,8); stats = regionprops(bw, 'BoundingBox', 'Centroid','Area'); axes(handles.d1); imshow(I); hold on vtri_dt=0; max_area=0; for n=1:length(stats) bc = stats(n).Centroid; dt=stats(n).Area; if(dt>max_area) max_area=dt; vtri_dt=n; 62 end plot(bc(1),bc(2),'-blue+'); toado=text(bc(1)+15,bc(2),strcat('X: ',num2str(round(bc(1)-320)),';','Y: ',num2str(round(bc(2)240)))); set(toado, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 10, 'Color', 'blue'); end try bc = stats(vtri_dt).Centroid; plot(bc(1),bc(2),'-green+'); td(1)=bc(1)-320; td(2)=bc(2)-240; kiem_tra=1; i=text(bc(1)-30,bc(2)-25,'Thu hoach'); set(i, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 10, 'Color', 'yellow'); plot(320,240,'.g','LineWidth',12); toado=text(320+10,240,strcat('X: ','0',';','Y: ','0')); set(toado, 'FontName', 'Arial', 'FontWeight', 'bold', 'FontSize', 10, 'Color', 'white'); end hold off data2=I; flushdata(vid,'triggers'); end stop(vid); flushdata(vid,'triggers'); delete(vid); clear vid; catch clear vid; end 63 % Nút lệnh dừng thu ảnh xử lý ảnh function cmd_Dung_Callback(hObject, eventdata, handles) global vid data2 D kiem_tra htimer if(kiem_tra == 1) stop(htimer); end if isa(vid,'videoinput'); stop(vid); delete(vid); clear vid; end • Chương trình điều khiển sử dụng vi điều khiển PIC16F886 viết ngôn ngữ CCSC #include #include "lib/device/def_877a.h" #device *=16,ADC=10 #include #fuses HS, NOWDT, NOPROTECT, NOLVP #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7) #include "LCD_NVN.c" int16 kq_adc_1=0,kq_adc_2=0,kq_adc_3=0; char Rx_Buffer[20],string; int8 i=0; int1 flag_uart=0,flag_adc=0,flag_dc_1=0,flag_dc_2=0,flag_dc_3=1; void dc_1(signed int8 dta); void dc_2(signed int8 dta); void dc_3(signed int8 dta); void dk_dc_1(signed int16 value); void dk_dc_2(signed int16 value); void dk_dc_3(signed int16 value); signed int16 teta_1(); signed int16 teta_2(); signed int16 teta_3(); 64 #define SPI_SCK RB1 #define SPI_MOSI RB2 #define SPI_MISO RB3 void SPIinit (void) { SPI_MISO = 1; SPI_MOSI = 1; SPI_SCK = 1; } void SPI (unsigned char daata) { unsigned char i; for (i=8;i>0;i ) { SPI_MOSI=(daata>>(i-1))&(0x01); SPI_SCK=0; SPI_SCK=1; } SPI_SCK=0; SPI_SCK=1; } void adc() { set_adc_channel(0); kq_adc_1 = read_adc(); delay_us(50); set_adc_channel(2); kq_adc_2 = read_adc(); delay_us(50); set_adc_channel(4); kq_adc_3 = read_adc(); 65 delay_us(50); lcd_gotoxy(1,1); printf(lcd_putc,"k:%3ld,%3ld,%3ld",kq_adc_1,kq_adc_2,kq_adc_3); } #int_RDA void ngat_uart() { static int8 buffer_count=0; string=getc();//lenh lay ket qua nhan duoc tu uart gui xuong if(string=='*')//ki tu ket thuc chuoi { Rx_buffer[buffer_count++]=string;//de nhan ki tu cuoi cung lun buffer_count = 0; flag_uart=1; flag_dc_1=1; flag_dc_2=1; flag_dc_3=1; } else { Rx_buffer[buffer_count++]=string; } } void main(void) { enable_interrupts(int_RDA); enable_interrupts(global); SETUP_ADC(ADC_CLOCK_INTERNAL);//THOI GIAN LAY MAU TU 2->6 US SETUP_ADC_PORTS(sAN4|sAN0|sAN2);//KENH CUA DC lcd_init(); TRISB=0;//DUNG CHO SPI TRISC6=0;TRISC7=1; RC6=0;RC7=1; 66 lcd_gotoxy(1,1); printf(lcd_putc,"Hello"); dc_1(0); dc_2(0); dc_3(0); while(TRUE) { if(flag_dc_1==1 || flag_dc_2==1 || flag_dc_3==1) { adc(); dk_dc_1(teta_1()); dk_dc_2(teta_2()); dk_dc_3(teta_3()); } if(flag_uart==1) { lcd_gotoxy(1,2); printf(lcd_putc,"teta:%ld,%ld,%ld",teta_1(),teta_2(),teta_3()); flag_uart=0; } } } void dc_3 (signed int8 dta) { output_low(pin_b5); SPI(dta); output_high(pin_b5); } void dc_2 (signed int8 dta) { output_low(pin_b6); SPI(dta); output_high(pin_b6); 67 } void dc_1 (signed int8 dta) { output_low(pin_b7); SPI(dta); output_high(pin_b7); } signed int16 teta_1() { signed int16 x=0; for(i=0;i