Вы находитесь на странице: 1из 3

servo_control.

m function varargout = servo_control(varargin) % ************************************************************* %PROGRAMA QUE CONTROLA LAS ARTICULACIONES DE UN BRAZO ROBOT %DE CINCO GRADOS DE LIBERTAD % ************************************************************* % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @servo_control_OpeningFcn, ... 'gui_OutputFcn', @servo_control_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 % End initialization code - DO NOT EDIT %*-*-FUNCIN DE CONDICIONES INICIALES*-*-* function servo_control_OpeningFcn(hObject, eventdata, handles, varargin) %*-*-INICIO DE CONDICIONES INICIALES*-*-* %*-*-CDIGO para centrar la interfaz movegui(hObject,'center') %*-*-FIN de CDIGO para centrar la interfaz %*-*-Limpiar la pantalla y mostrar mensaje*-*-*-*clc; disp('Programa Ejecutndose') %*-*-Configuracin del puerto serial*-*-*-*-*-*-*-* handles.SerPIC = serial('COM1');%Seleccionar puerto COM1 set(handles.SerPIC,'BaudRate',2400);%Velocidad 2400 baudios set(handles.SerPIC,'DataBits',8);%8 bits de datos set(handles.SerPIC,'Parity','none');%Sin control de paridad set(handles.SerPIC,'StopBits',1);%Un bit de parada set(handles.SerPIC,'FlowControl','none');%Sin control de flujo fopen(handles.SerPIC); %--Abrir el puerto serial %********----------***************-----------************----------* %*-*-FIN DE CONDICIONES INICIALES*-*-* % Choose default handles.output = % Update handles guidata(hObject, command line output for servo_control hObject; structure handles);

% --- Outputs from this function are returned to the command line. function varargout = servo_control_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; %********PROGRAMACIN PRINCIPAL*-*-*-*-*-*-*%CONTIENE: %CONTROL DE LOS SLIDER QUE ENVIAN DATOS SERIALES %AL MICROCONTROLADOR PIC 16F628A

% ----------- MOVIMIENTO DE LA MUECA-PIN 4------------------function motor_uno_Callback(hObject, eventdata, handles) set(handles.motor_uno,'Enable','inactive') val_s=round(get(hObject,'Value')); grados=round((val_s*0.9)-45); set(handles.pos_1,'String',grados); fprintf(handles.SerPIC,'%c',[char(4) char(val_s)]); pause(0.7) set(handles.motor_uno,'Enable','on') %---------------------------------------------------% ----------- MOVIMIENTO DEL CODO-PIN 2-------------------. function motor_dos_Callback(hObject, eventdata, handles) %Slider que controla el motor del codo set(handles.motor_dos,'Enable','inactive') maxi=get(hObject,'Max');%Tomar valor mximo mini=get(hObject,'Min');%Tomar valor mnimo val_s=round(get(hObject,'Value')); val_s=maxi-val_s+mini;%Inversin de movimiento grados=round((val_s*0.9)-45); set(handles.pos_2,'String',grados); fprintf(handles.SerPIC,'%c',[char(2) char(val_s)]);% pause(0.7) set(handles.motor_dos,'Enable','on') %--------------------------------------------------------------% ----------- MOVIMIENTO DE GIRO -PIN 3-------------------. function motor_tres_Callback(hObject, eventdata, handles) %Slider que controla el motor tres (codo) set(handles.motor_tres,'Enable','inactive') val_s=round(get(hObject,'Value')); grados=round((val_s*0.9)-45); set(handles.pos_3,'String',grados); fprintf(handles.SerPIC,'%c',[char(3) char(val_s)]);% pause(0.7) set(handles.motor_tres,'Enable','on') %-----------------------------------------------------------------% ----------- MOVIMIENTO DE LA BASE-PIN 1------------------function motor_cuatro_Callback(hObject, eventdata, handles) set(handles.motor_cuatro,'Enable','inactive') maxi=get(hObject,'Max');%Tomar valor mximo mini=get(hObject,'Min');%Tomar valor mnimo val_s=round(get(hObject,'Value')); val_s=maxi-val_s+mini;%Inversin de movimiento grados=round((val_s*0.9)-45);%Conversin a grados set(handles.pos_4,'String',grados); fprintf(handles.SerPIC,'%c',[char(1) char(val_s)]);% pause(0.7) set(handles.motor_cuatro,'Enable','on') %-----------------------------------------------------------------% --- Executes on slider movement. function motor_cinco_Callback(hObject, eventdata, handles) %Slider que controla el motor cinco (pinza) set(handles.motor_cinco,'Enable','inactive') val_s=round(get(hObject,'Value')); set(handles.pos_5,'String',val_s); fprintf(handles.SerPIC,'%c',[char(5) char(val_s)]);%

pause(0.7) set(handles.motor_cinco,'Enable','on') %------------------------------------% --- Executes during object deletion, before destroying properties. function figure1_DeleteFcn(hObject, eventdata, handles) %*-*-Cierra el puerto serial al cerrar la interfaz grfica*-*-*clc try fclose(handles.SerPIC) %--CIERRA EL PUERTO COM delete(handles.SerPIC) clear handles.SerPIC disp('Puerto Serial Cerrado') catch disp('Error al cerrar el puerto serial') end

Вам также может понравиться