Hiện nay hệ thống san phẳng mặt ruộng điều khiển bằng tia Laser ứng dụng mạnh mẽ trong nông nghiệp nhằm tăng năng suất giảm rủi ro. Tuy nhiên một vấn đề khi đo đạc chiều cao của mặt đồng cần tốn rất nhiều thời gian và công sức của người thực hiện. Nhằm tự động hóa quá trình thu thập giá trị mấp mô của bề mặt để giảm tốn thời gian và công sức nên chúng tôi thiết kế và chế tạo mô hình robot mô phỏng độ mấp mô của mặt đồng. Hoạt động chính yếu của mô hình robot là thu thập dữ liệu chiều cao của mặt đồng để mô phỏng độ mấp mô của mặt đồng trực quan thông qua phần mềm trên máy tính. Để có thể làm được như vậy, mô hình robot cần những bộ phần có tính năng riêng biệt gồm bộ thu tia laser được gắn trực tiếp trên bộ phận cân bằng với sai số so với mặt phẳng ngang chênh lệch gần 10mm, mô hình robot có thể di chuyển đến điểm cần đo có độ sai số thực tế khoảng 10200mm so với điểm cần đo. Thông qua bộ phận truyền nhận dữ liệu không dây bluetooth dữ liệu độ mấp mô mặt đồng cũng được truyền nhận trực tiếp lên phần mềm trên máy tính, phần mềm trên máy tính sẽ xử lý dữ liệu và mô phỏng lại bề mặt đo đạt bằng biểu đồ trên giao diện. Kết quả thiết kế, chế tạo, thử nghiệm và khảo nghiệm cho thấy mô hình robot mô phỏng độ mấp mô của mặt đồng có thiết kế đơn giản, hoạt động ổn định, đáp ứng được mục tiêu của đề tài.
THIẾT KẾ, CHẾ TẠO MƠ HÌNH ROBOT MƠ PHỎNG ĐỘ MẤP MƠ MẶT ĐỒNG Tác giả ĐỒN TỐ HỮU TRẦN VĂN HÀNH 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: ThS NGUYỄN ĐĂNG KHOA Tháng năm 2016 CẢM TẠ Em xin trân trọng cảm ơn tất quý thầy cô trường Đại Học Nông Lâm TPHCM quý Thầy Cô khoa CƠ KHÍ – CƠNG NGHỆ trang bị cho em kiến thức quý báu giúp đỡ em suốt trình học tập trường để em có đủ kiến thức để thực đề tài cách tốt Em xin chân thành cảm ơn quý thầy cô môn Cơ Điện Tử giúp đỡ em nhiệt tình suốt trình thực đề tài Em xin bày tỏ biết ơn chân thành thầy Nguyễn Đăng Khoa tận tình hướng dẫn chúng em suốt trình thực đề tài Đặc biệt, em xin chân thành cảm ơn quý Thầy Cô hội đồng dành thời gian để nhận xét góp ý cho đề tài em hoàn thiện cho tính ứng dụng đề tài cao Cuối , em xin gửi lời cảm ơn đến người thân bạn bè động viên, ủng hộ tạo điều kiện cho chúng em điều kiện thuận lợi suốt q trình hồn thành đề tài nghiên cứu Thành Phố Hồ Chí Minh, ngày tháng năm 2016 Sinh Viên Thực Hiện Đồn Tố Hữu Trần Văn Hành TĨM TẮT Hiện hệ thống san phẳng mặt ruộng điều khiển tia Laser ứng dụng mạnh mẽ nông nghiệp nhằm tăng suất giảm rủi ro Tuy nhiên vấn đề đo đạc chiều cao mặt đồng cần tốn nhiều thời gian công sức người thực Nhằm tự động hóa q trình thu thập giá trị mấp mô bề mặt để giảm tốn thời gian công sức nên thiết kế chế tạo mơ hình robot mơ độ mấp mơ mặt đồng Hoạt động yếu mơ hình robot thu thập liệu chiều cao mặt đồng để mô độ mấp mô mặt đồng trực quan thơng qua phần mềm máy tính Để làm vậy, mơ hình robot cần phần có tính riêng biệt gồm thu tia laser gắn trực tiếp phận cân với sai số so với mặt phẳng ngang chênh lệch gần 10mm, mơ hình robot di chuyển đến điểm cần đo có độ sai số thực tế khoảng 10-200mm so với điểm cần đo Thông qua phận truyền nhận liệu không dây bluetooth liệu độ mấp mô mặt đồng truyền nhận trực tiếp lên phần mềm máy tính, phần mềm máy tính xử lý liệu mô lại bề mặt đo đạt biểu đồ giao diện Kết thiết kế, chế tạo, thử nghiệm khảo nghiệm cho thấy mơ hình robot mơ độ mấp mơ mặt đồng có thiết kế đơn giản, hoạt động ổn định, đáp ứng mục tiêu đề tài Đề tài nghiên cứu “Thiết kế, chế tạo mơ hình robot mơ độ mấp mơ mặt đồng.” tiến hành khoa Cơ Khí – Công Nghệ Trường Đại Học Nông Lâm Thành Phố Hồ Chí Minh, thời gian từ tháng 1/2016 đến tháng 6/2016 MỤC LỤC TRANG TỰA i MỤC LỤC iv DANH SÁCH CHỮ VIẾT TẮT vii DANH SÁCH CÁC HÌNH .viii DANH SÁCH CÁC BẢNG xi Chương MỞ ĐẦU 1.1 Đặt vấn đề 1.2 Mục tiêu nghiên cứu đề tài 1.3 Phạm vi nội dung nghiên cứu .2 1.4 Giới hạn đề tài Chương TỔNG QUAN .3 2.1 Tổng quan phương pháp đo độ cao máy thủy chuẩn 2.1.1 Đo cao hình học 2.1.2 Đo cao lượng giác 2.1.3 Đo cao thủy tĩnh .10 2.1.4 Đo cao khí áp 10 2.2 Tổng quan phương pháp đo độ cao tia laser .11 2.2.1 Thiết bị thiết yếu hệ thống đo độ cao tia laser 11 2.2.2 Phương pháp đo đạc độ cao tia laser 12 2.2.3 Ứng dụng phương pháp đo độ cao tia laser 13 2.2.4 Nhận xét 15 2.3 Tổng quan gui Matlab để thiết kế phần mềm điều khiển mô hình .16 2.4 Tổng quan Arduino .17 Chương NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 19 3.1 Bố trí thực đề tài 19 3.2 Phương pháp nghiên cứu 19 3.2.1 Phương pháp lý thuyết .19 3.2.2 Phương pháp chế tạo phần cứng 19 3.2.3 Phương pháp xây dựng phần mềm 20 3.2.4 Phương pháp nội suy chiều 20 Chương KẾT QUẢ VÀ THẢO LUẬN 22 4.1 Chế tạo mơ hình robot mô độ mấp mô mặt đồng 22 4.1.1 Bộ phận di chuyển khung mơ hình robot 23 4.1.2 Bộ phận cân cảm biến 24 4.1.3 Thiết kế mạch cảm biến nhận tín hiệu laser 28 4.1.4 Tính tốn chọn nguồn cho mơ hình robot 32 4.1.5 Hình ảnh mơ hình robot sau thi cơng 32 4.2 Xây dựng thuật toán điều khiển mơ hình robot mơ độ mấp mơ mặt đồng 33 4.2.1 Thuật toán di chuyển tự động đến điểm cần đo 34 4.2.2 Thuật toán phận cân 36 4.2.3 Thuật tốn dò tìm tia laser 40 4.2.4 Phương pháp chọn điểm để đo đạc độ mấp mô mặt đồng 41 4.2.5 Phần mềm điều khiển máy tính Simulator 42 4.2.6 Phương pháp kết nối phần mềm điều khiển máy tính với mơ hình robot mơ độ mấp mô mặt đồng 43 Chương KẾT LUẬN VÀ ĐỀ NGHỊ .46 5.1 Kết luận 46 5.2 Đề nghị 46 TÀI LIỆU THAM KHẢO 47 PHỤ LỤC 48 PHỤ LỤC 1: Code chương trình file Main.ino điều khiển Arduino .48 PHỤ LỤC 2: Code Arduino phần kiểm tra tín hiệu Start Stop 51 PHỤ LỤC 3: Code Arduino giao tiếp I2C với module MPU6050 52 PHỤ LỤC 4: Code Arduino phận cảm biến dò tia laser 54 PHỤ LỤC 5: Code Arduino phận cân 55 PHỤ LỤC 6: Code Arduino di chuyển đến điểm cần đo độ cao mặt đồng .60 PHỤ LỤC 7: Code Arduino xử lý điểm cần đo 65 PHỤ LỤC 8: Code phần mềm điều khiển máy tính 77 PHỤ LỤC 9: Tập lệnh AT để giao tiếp Bluetooth 81 PHỤ LỤC 10: Hình ảnh khảo nghiệm đo đạc độ mấp mô mặt đồng .82 DANH SÁCH CHỮ VIẾT TẮT DC: Direct Current IC: International Circuit I2C: Inter-Integrated Circuit UART universal asynchronous receiver/transmitter WIFI Wireless Fidelity AT Attention DANH SÁCH CÁC HÌNH Hình 2.1: Đo cao hình học Hình 2.2: Các thiết bị đo độ cao hình học Hình 2.3: Máy thủy chuẩn phận Hình 2.4: Máy thủy chuẩn thường gặp Hình 2.5: Mia thủy chuẩn Hình 2.6: Phương pháp đo tỏa Hình 2.7: Đo cao lượng giác .9 Hình 2.8: Cách tính đo cao lượng giác Hình 2.9: Phương pháp đo cao tia laser 11 Hình 2.10: Nguyên lý hoạt động phát tia laser .11 Hình 2.11: Máy dò tia laser cách lắp đặt lên mia thủy chuẩn .12 Hình 2.12: Cách đo độ cao tia laser 12 Hình 2.13: Phương pháp đo độ cao mặt ruộng laser 13 Hình 2.14: Ứng dụng đo độ cao tia laser dân dụng 14 Hình 2.15: Ứng dụng vào việc ốp tường xây dựng 14 Hình 2.16: Ứng dụng xây dựng cấp thoát nước .14 Hình 2.17: Ứng dụng việc lắp đặt trần nhà 15 Hình 2.18: Xây dựng rào phương pháp san phẳng laser 15 Hình 2.19: Lắp đặt thiết bị nội thất nhà phương pháp san phẳng laser 15 Hình 2.20: Giao diện Matlab .16 Hình 2.21: Giao diện Gui phần mềm máy tính 16 Hình 2.22: Board Arduino mega sử dụng mơ hình 18 Hình 3.1: Kết phương pháp nội suy chiều 21 Hình 3.2: Kết hiển thị nội suy chiều Matlab .21 Hình 4.1:Mơ hình robot mơ độ mấp mơ mặt đồng 22 Hình 4.2: Khung xe mơ hình robot 23 Hình 4.3: Cơ cấu bốn khâu lề .24 Hình 4.4: Cơ cấu phận cân cho cảm biến dò tia laser 24 Hình 4.5: Cơ cấu điều chỉnh cân theo phương ox .25 Hình 4.6: Cơ cấu điều chỉnh cân theo phương oy .25 Hình 4.7: Tay quay 26 Hình 4.8: Thanh đỡ khớp cardan .26 Hình 4.9: Giá đỡ cảm biến laser 26 Hình 4.10:Tấm mặt phẳng cân 27 Hình 4.11: Bộ phận cân sau thi cơng 27 Hình 4.12: Mối quan hệ vận tốc góc vận tốc dài điểm A 29 Hình 4.13:Sơ đồ nguyên lý IC 9684 29 Hình 4.14: Phổ đáp ứng IC9684 30 Hình 4.15: Sơ đồ nguyên lý mạch cảm biến dò tia laser 31 Hình 4.16: Hình ảnh thực tế mạch dò tia laser sau thi công 31 Hình 4.17: Mơ hình robot sau thi cơng hồn thành .32 Hình 4.18: Sơ đồ khối tổng qt mơ hình robot đo đạc độ mấp mơ mặt đồng 33 Hình 4.19: Sơ đồ khối chi tiết mơ hình robot đo đạc độ mấp mơ mặt đồng 33 Hình 4.20: Tính tốn số vòng để mét 34 Hình 4.21:Lưu đồ thuật tốn di chuyển đến điểm cần đo độ cao 35 Hình 4.22: Sơ đồ kết nối phận chuyển động 35 Hình 4.23: Biểu đồ khảo nghiệm thuật tốn di chuyển .36 Hình 4.24: Lưu đồ thuật toán phận cân .37 Hình 4.25: Nguyên lý làm việc cảm biến cân 37 Hình 4.26: Sơ đồ kết nối chân phận cân 38 Hình 4.27: Sai lệch mặt phẳng cân theo phương OX .39 Hình 4.28: Sai lệch mặt phẳng cân theo phương OY .39 Hình 4.29: Lưu đồ thuật tốn dò tia laser .40 Hình 4.30: Sơ đồ kết nối dây arduino ngoại vi dò laser .41 Hình 4.31: Quỹ đạo đường robot 41 Hình 4.32: Giao diện phần mềm điều khiển máy tính 42 Hình 4.33: Module Bluetooth HC05 44 Hình 4.34: Sơ đồ kết nối chân Module HC05 với Arduino .45 Hình PL 1: Sơ đồ layout mạch cảm biến laser 82 Hình PL 2: Mạch cảm biến tia laser 82 Hình PL 3: Khung xe robot .82 Hình PL 4: Bộ phận cân sau thi công 83 Hình PL 5: Khảo nghiệm mô độ mấp mô mặt đồng .83 Hình PL 6: Mơ hình robot di chuyển đến điềm cần đo .84 Hình PL 7: Hình ảnh mơ hình robot mơ độ mấp mô mặt đồng 84 10 MPU6050(); Laser_Processing(); Serial2.print("P30"); Serial2.print(numlaser); Serial2.print(","); break; case 24: Dithang(); delay(1000); Quaytrai(); MPU6050(); Laser_Processing(); Serial2.print("P40"); Serial2.print(numlaser); Serial2.print(","); case 25: Dithang(); MPU6050(); Laser_Processing(); Serial2.print("P41"); Serial2.print(numlaser); Serial2.print(","); break; case 26: Dithang(); 79 MPU6050(); Laser_Processing(); Serial2.print("P42"); Serial2.print(numlaser); Serial2.print(","); break; case 27: Dithang(); MPU6050(); Laser_Processing(); Serial2.print("P43"); Serial2.print(numlaser); Serial2.print(","); break; case 28: Dithang(); MPU6050(); Laser_Processing(); Serial2.print("P44"); Serial2.print(numlaser); Serial2.print(","); case 29: Dithang(); delay(1000); Quayphai(); 80 MPU6050(); Laser_Processing(); Serial2.print("P45"); Serial2.print(numlaser); Serial2.print(","); break; case 30: Dithang(); delay(1000); Quayphai(); MPU6050(); Laser_Processing(); Serial2.print("P55"); Serial2.print(numlaser); Serial2.print(","); case 31: Dithang(); MPU6050(); Laser_Processing(); Serial2.print("P54"); Serial2.print(numlaser); Serial2.print(","); break; case 32: Dithang(); 81 MPU6050(); Laser_Processing(); Serial2.print("P53"); break; case 33: Dithang(); MPU6050(); Laser_Processing(); Serial2.print("P52"); Serial2.print(numlaser); Serial2.print(","); break; case 34: Dithang(); MPU6050(); Laser_Processing(); Serial2.print("P51"); Serial2.print(numlaser); Serial2.print(","); case 35: Dithang(); MPU6050(); Laser_Processing(); Serial2.print("P50"); Serial2.print(numlaser); 82 Serial2.print(",");}} 83 PHỤ LỤC 8: Code phần mềm điều khiển máy tính function varargout = DATN(varargin) % DATN MATLAB code for DATN.fig % DATN, by itself, creates a new DATN or raises the existing % singleton* % H = DATN returns the handle to a new DATN or the handle to the % existing singleton* % DATN('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in DATN.M with the given input arguments % DATN('Property','Value', ) creates a new DATN or raises the % existing singleton* Starting from the left, property value pairs % are applied to the GUI before DATN_OpeningFcn gets called An % unrecognized property name or invalid value makes property % application stop All inputs are passed to DATN_OpeningFcn via % varargin % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help DATN % Last Modified by GUIDE v2.5 17-May-2016 21:05:49 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @DATN_OpeningFcn, 'gui_OutputFcn', @DATN_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function DATN_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); % UIWAIT makes DATN wait for user response (see UIRESUME) % uiwait(handles.figure1); global countEvent; countEvent = 0; global MaxPoint; MaxPoint = 6; 84 global Point ; Point = zeros(MaxPoint); global hang; global cot; hang = 1; cot = 1; global b ; b = Bluetooth('HC-05',1); b.Terminator = ','; b.BytesAvailableFcnMode = 'terminator'; b.BytesAvailableFcn = {@ReceiveEvent,handles} ; function varargout = DATN_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function Stop_Callback(hObject, eventdata, handles) global b; fprintf(b,'Stop'); set(handles.Stop,'Enable','off'); set(handles.Continue,'Visible','on'); set(handles.Stop,'Visible','off'); set(handles.Continue,'Enable','on'); function Start_Callback(hObject, eventdata, handles) global b; fprintf(b,'Start'); set(handles.Stop,'Enable','on'); set(handles.Start,'Enable','off'); function Mapmo_Callback(hObject, eventdata, handles) set(handles.Mapmo,'Enable','off'); global Point; x = 0:1:5; % gia tri x y = 0:1:5; z = Point; % hang cot vi phan giai 1/2 => 5*2 = 10 diem xi = linspace(0,5,200); yi = linspace(0,5,200); [xxi,yyi] = meshgrid(xi,yi); zzi = interp2(x,y,z,xxi,yyi,'cubic'); mesh(handles.Bieudo,xxi,yyi,zzi) hold on [xx,yy] = meshgrid(x,y); plot3(handles.Bieudo,xx,yy,z,'.') hold off set(handles.Rotate,'Enable','on'); 85 function BCoordinates_Callback(hObject, eventdata, handles) set(handles.Mapmo,'Enable','on'); set(handles.BCoordinates,'Enable','off'); function COM_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function Connect_Callback(hObject, eventdata, handles) global b; if (b~=0) fopen(b); end set(handles.Connect,'Enable','off'); set(handles.Disconnect,'Enable','on'); set(handles.Start,'Enable','on'); function Disconnect_Callback(hObject, eventdata, handles) global b; if(~(strcmp(get(b,{'Status'}),'closed'))) fprintf(b,'Exit'); fclose(b); end set(handles.Connect,'Enable','on'); set(handles.Disconnect,'Enable','off'); set(handles.Mapmo,'Enable','off'); set(handles.Start,'Enable','off'); set(handles.Stop,'Enable','off'); function ReceiveEvent(hObject, eventdata, handles) global DataReceive ; global b; global Point chieucao; global hang cot; global Data ; global xpoint ypoint ; global countEvent; DataReceive = fscanf(b); switch DataReceive(1) case 'P' countEvent = countEvent+1; cot = str2double(DataReceive(2)); % x is cot , y is hang hang = str2double(DataReceive(3)); Data = DataReceive(4:end-1); % get char 86 chieucao = str2double(Data); Point(hang+1,cot+1) = chieucao; xpoint(countEvent) = cot ; ypoint(countEvent) = hang ; set(handles.Mapmo,'Enable','on'); plot(handles.Toado,xpoint,ypoint); xlim(handles.Toado,[0 5]) ylim(handles.Toado,[0 5]) case 'C' fprintf(b,DataReceive(2:end-1)); case 'S' set(handles.Start,'Enable','on'); set(handles.Stop,'Enable','off'); otherwise flushinput(b); end function Exit_Callback(hObject, eventdata, handles) global b; if(~(strcmp(get(b,{'Status'}),'closed'))) fprintf(b,'Exit'); fclose(b); end close ; function Continue_Callback(hObject, eventdata, handles) global b; set(handles.Continue,'Visible','off'); set(handles.Stop,'Visible','on'); set(handles.Stop,'Enable','on'); fprintf(b,'Start'); function Rotate_Callback(hObject, eventdata, handles) rotate3d(handles.Bieudo,'on'); set(handles.Rotate,'Enable','off'); function About_Callback(hObject, eventdata, handles) open('About.htm'); function Help_Callback(hObject, eventdata, handles) open('Help.htm'); 87 PHỤ LỤC 9: Tập lệnh AT để giao tiếp Bluetooth Cú pháp AT AT+RESET AT+VERSION? AT+ORGL AT+ADDR? AT+NAME= Giá trị trả OK OK +VERSION: OK OK +ADDR: OK OK AT+NAME? +NAME:OK (/FAIL) AT+RNAME? +NAME: OK FAIL AT+CLASS= OK AT+ CLASS? +CLASS: OK FAIL AT+IAC= 1.OK FAIL AT+INQM=, , AT+ INQM? 1.OK FAIL AT+PSWD= +INQM, , OK OK AT+ PSWD? + PSWD : OK AT+UART=, , AT+UART? OK AT+CMODE= OK AT+ CMODE? + CMODE: OK AT+BIND= OK +UART=, , OK 88 Tham số Param : firmware version address of Bluetooth module Param: Bluetooth module name (Default :HC-05) Param: Bluetooth module name (Default :HC-05) Param1,Param : the address of Bluetooth device Param: Device Class Param: Device Class Param: GIAC (Default : 9e8b33) … … Param: PIN code (Default 1234) Param: PIN code (Default 1234) Param1: Baud Param2: Stop bit Param3: Parity Param1: Baud Param 2: Stop bit Param3: Parity Param: - connect fixed address - connect any address - slave-Loop Param: - connect fixed address - connect any address - slave-Loop Param: Fixed address (Default 00:00:00:00:00:00) PHỤ LỤC 10: Hình ảnh khảo nghiệm đo đạc độ mấp mô mặt đồng Hình PL 1: Sơ đồ layout mạch cảm biến laser Hình PL 2: Mạch cảm biến tia laser 89 Hình PL 3: Khung xe robot 90 Hình PL 4: Bộ phận cân sau thi cơng Hình PL 5: Khảo nghiệm mô độ mấp mô mặt đồng 91 Hình PL 6: Mơ hình robot di chuyển đến điềm cần đo 92 Hình PL 7: Hình ảnh mơ hình robot mô độ mấp mô mặt đồng 93 ... trị mấp mơ bề mặt để giảm tốn thời gian công sức nên thiết kế chế tạo mô hình robot mơ độ mấp mơ mặt đồng Hoạt động yếu mơ hình robot thu thập liệu chiều cao mặt đồng để mô độ mấp mô mặt đồng. .. cho thấy mơ hình robot mơ độ mấp mơ mặt đồng có thiết kế đơn giản, hoạt động ổn định, đáp ứng mục tiêu đề tài Đề tài nghiên cứu Thiết kế, chế tạo mơ hình robot mô độ mấp mô mặt đồng. ” tiến hành... khối tổng quát mơ hình robot đo đạc độ mấp mơ mặt đồng 33 Hình 4.19: Sơ đồ khối chi tiết mơ hình robot đo đạc độ mấp mơ mặt đồng 33 Hình 4.20: Tính tốn số vòng để mét 34 Hình 4.21:Lưu đồ