Beruflich Dokumente
Kultur Dokumente
Lerdo
INGENIERA ELECTRNICA.
Integrantes:
Abstract
In this project a parking system will be developed with the help of a robotic arm
which will be manipulated through an interface in Matlab software and this same
arm will be the one that takes the vehicle and directs it to a conveyor belt which
will be manipulated through The help of a PLC (Programmable Logic Controller)
and it will move the vehicle to a point in particular this being detected by proximity
sensors, and at the end of its path will be waiting for a hydraulic piston which will
be responsible for moving the Vehicle to a drawer where it will be prepared for its
final destination.
Objetivo
En este proyecto se realizara un sistema de estacionamiento autnomo el cual
tendr el objetivo de dirigir los vehculos estacionados haca una banda
transportadora la cual mover el auto del punto A al punto B donde un pistn se
accionar para colocar el vehculo en un cajn donde llegar a su destino final.
Para poder realizar este proyecto se elaborar un brazo robtico el cual ser el
encargado de sacar el vehculo del estacionamiento, en esta ocasin ya se
contaba con un brazo robtico por lo cual se omiti este paso, este brazo deber
ser controlado por una interfaz la cual deber ser elaborar con el software
Matlab en la cual se presentar cada uno de los cajones que contiene el
estacionamiento y si este est ocupado o est vaco de esta forma se podr
sacar el vehculo deseado, todo esta informacin ser precargada a una tarjeta
adquisitoria Arduino, todo este proceso se llevar para colar el vehculo en una
banda transportadora la cual ser controlada por un par de sensores en el punto
de inicio se tendr un sensor de proximidad el cual detectar cuando el vehculo
sea colocado para que de esta forma la banda empiece a funcionar, cuando el
vehculo llegue a su destino ser detectado por el ultimo sensor de proximidad y
segundos despus la banda transportadora se detendr para dar la ltima seal
al pistn el cual arrojar el vehculo a su cajn de destino, toda esta operacin
ser controlada por un PLC de marca Siemens en el cual utilizamos contactores
y temporizadores para el funcionamiento de cada dispositivo antes
mencionados, y con todas esta herramientas desarrollar el estacionamiento
autnomo.
Marco Terico
GUIDE Matlab
Las GUI (tambin conocidas como interfaces grficas de usuario o interfaces de
usuario) permiten un control sencillo (con uso de ratn) de las aplicaciones de
software, lo cual elimina la necesidad de aprender un lenguaje y escribir
comandos a fin de ejecutar una aplicacin.
Mano robtica
El efector final, o mano robtica, se cre para realizar cualquier tarea que se
desee como puede ser soldar, sujetar, girar, etc., dependiendo de la aplicacin.
Por ejemplo los brazos robticos en las lneas de ensamblado de la industria
automovilstica realizan una variedad de tareas tales como soldar y colocar las
distintas partes durante el ensamblaje. En algunas circunstancias, lo que se
busca es una simulacin de la mano humana, como en los robots usados en
tareas de desactivacin de explosivos.
Tipos
Robot cartesiano: Usado para trabajos de pick and place (tomar y
colocar), aplicacin de impermeabilizantes, operaciones de ensamblado,
manipulacin de mquinas herramientas y soldadura por arco. Es un robot
cuyo brazo tiene tres articulaciones prismticas, cuyos ejes son
coincidentes con los ejes cartesianos.
Robot cilndrico: Usado para operaciones de ensamblaje, manipulacin
de mquinas herramientas, soldadura por punto, y manipulacin en
mquinas de fundicin a presin. Es un robot cuyos ejes forman un
sistema de coordenadas cilndricas.
Robot esfrico / Robot polar, tal como el Unimate: Usados en la
manipulacin en mquinas herramientas, soldadura por punto, fundicin
a presin, mquinas de desbarbado, soldadura por gas y por arco. Es un
robot cuyos ejes forman un sistema polar de coordenadas.
Robot SCARA: Usado para trabajos de pick and place (tomar y colocar),
aplicacin de impermeabilizantes, operaciones de ensamblado y
manipulacin de mquinas herramientas. Es un robot que tiene dos
articulaciones rotatorias paralelas para proporcionar elasticidad en un
plano.
Robot articulado: Usado para operaciones de ensamblaje, fundicin a
presin, mquinas de desbarbado, soldadura a gas, soldadura por arco,
y pintado en spray. Es un robot cuyo brazo tiene como mnimo tres
articulaciones rotatorias.
Robot paralelo: Uno de los usos es la plataforma mvil que manipula las
cabinas de los simuladores de vuelo. Es un robot cuyos brazos tienen
articulaciones prismticas o rotatorias concurrentes.
Robot Antropomrfico: Similar a la mano robtica de Luke Skywalker que
se le coloca al final de The Empire Strikes Back. Se le da forma para que
pueda sustituir a una mano humana, p.e. con dedos independientes
incluido el pulgar.
Metodologa
Desarrollo de interfaz GUIDE en Matlab.
1.- Ingresamos al software de Matlab, dentro del software pasamos a escribir la
palabra GUIDE en el cuadro de comandos, de esta forma llamamos a la
herramienta GUIDE.
set(handles.text8,'String',(readPosition(motor set(handles.text9,'String',(readPosition(motor
4)*180)); 5)*180));
pause(0.01); pause(0.01);
end end
pause(1); pause(1);
for angulo=0.41:0.01: 0.53 motor4 = servo(a,'D9');
writePosition(motor5,angulo); for angulo=0.5:-0.01: 0.11
writePosition(motor4,angulo);
set(handles.text9,'String',(readPosition(motor
5)*180)); set(handles.text8,'String',(readPosition(motor
pause(0.01); 4)*180));
end pause(0.01);
pause(1); end
for angulo=0.92:-0.01:.71 pause(1);
writePosition(motor3,angulo); for angulo=0.67:0.01:.76
writePosition(motor5,angulo); pause(1);
writePosition(motor1,0);
set(handles.text9,'String',(readPosition(motor set(handles.text5,'String',(readPosition(motor
5)*180)); 1)*180));
pause(0.01); pause(3);
end %reposo---------------------------------------
pause(1); ----------------------
motor1 = servo(a,'D3'); writePosition(motor1,.18);
writePosition(motor1,1); set(handles.text5,'String',(readPosition(motor
set(handles.text5,'String',(readPosition(motor 1)*180));
1)*180)) motor2 = servo(a,'D5');
c1=imread('azul.JPG'); writePosition(motor2,.79);
set(handles.pushbutton3,'CData',c1) set(handles.text6,'String',(readPosition(motor
pause(3); 2)*180));
%salida--------------------------------------- writePosition(motor3,.5);
--------------------- set(handles.text7,'String',(readPosition(motor
for angulo=0.76:-0.01:.62 3)*180));
writePosition(motor5,angulo); writePosition(motor4,.5);
set(handles.text8,'String',(readPosition(motor
set(handles.text9,'String',(readPosition(motor 4)*180));
5)*180)); writePosition(motor5,.5);
pause(0.01); set(handles.text9,'String',(readPosition(motor
end 5)*180));
pause(1); writePosition(motor6,.5);
for angulo=1:-0.01:0.85 set(handles.text10,'String',(readPosition(moto
writePosition(motor3,angulo); r6)*180));
pause(3);
set(handles.text7,'String',(readPosition(motor c2=imread('carro3.JPG');
3)*180)); set(handles.pushbutton3,'CData',c2)
pause(0.01); % hObject handle to pushbutton3 (see GCBO)
end % eventdata reserved - to be defined in a
pause(1); future version of MATLAB
for angulo=0.62:-0.01:.42 % handles structure with handles and user
writePosition(motor5,angulo); data (see GUIDATA)
% --- Executes on button press in pushbutton4.
set(handles.text9,'String',(readPosition(motor function pushbutton4_Callback(hObject,
5)*180)); eventdata, handles)
pause(0.01); global a;
end motor6 = servo(a,'D11');
pause(1); for angulo=0.5:-0.01:.34
for angulo=0.46:0.01: 0.93 writePosition(motor6,angulo);
writePosition(motor6,angulo);
set(handles.text10,'String',(readPosition(moto
set(handles.text10,'String',(readPosition(moto r6)*180));
r6)*180)); pause(0.01);
pause(0.01); end
end pause(1);
motor3=servo(a,'D6');
pause(1); for angulo=0.5:0.01: 1
for angulo=0.42:-0.01: 0.41 writePosition(motor3,angulo);
writePosition(motor5,angulo);
set(handles.text7,'String',(readPosition(motor
set(handles.text9,'String',(readPosition(motor 3)*180));
5)*180)); pause(0.01);
pause(0.01); end
end pause(1);
pause(1); motor5 = servo(a,'D10');
for angulo=0.11:-0.01:.09 for angulo=0.5:0.01:.67
writePosition(motor4,angulo); writePosition(motor5,angulo);
set(handles.text8,'String',(readPosition(motor set(handles.text9,'String',(readPosition(motor
4)*180)); 5)*180));
pause(0.01); pause(0.01);
end end
pause(1); pause(1);
for angulo=0.41:0.01: 0.53 motor4 = servo(a,'D9');
writePosition(motor5,angulo); for angulo=0.5:-0.01: 0.11
writePosition(motor4,angulo);
set(handles.text9,'String',(readPosition(motor
5)*180)); set(handles.text8,'String',(readPosition(motor
pause(0.01); 4)*180));
end pause(0.01);
pause(1); end
for angulo=0.85:-0.01:.71 pause(1);
writePosition(motor3,angulo); for angulo=0.67:0.01:.76
writePosition(motor5,angulo);
set(handles.text7,'String',(readPosition(motor
3)*180)); set(handles.text9,'String',(readPosition(motor
pause(0.01); 5)*180));
end pause(0.01);
pause(1); end
for angulo=0.09:-0.01:.0 pause(1);
writePosition(motor4,angulo); motor1 = servo(a,'D3');
writePosition(motor1,1);
set(handles.text8,'String',(readPosition(motor set(handles.text5,'String',(readPosition(motor
4)*180)); 1)*180));
pause(0.01); c1=imread('azul.JPG');
end set(handles.pushbutton4,'CData',c1)
pause(3); pause(0.01);
%salida--------------------------------------- end
-------------- pause(1);
for angulo=0.76:-0.01:.62 writePosition(motor1,0);
writePosition(motor5,angulo); set(handles.text5,'String',(readPosition(motor
1)*180));
set(handles.text9,'String',(readPosition(motor pause(3);
5)*180)); %reposo---------------------------------------
pause(0.01); ----------------------
end writePosition(motor1,.18);
pause(1); set(handles.text5,'String',(readPosition(motor
for angulo=1:-0.01:0.85 1)*180));
writePosition(motor3,angulo); motor2 = servo(a,'D5');
writePosition(motor2,.79);
set(handles.text7,'String',(readPosition(motor set(handles.text6,'String',(readPosition(motor
3)*180)); 2)*180));
pause(0.01); writePosition(motor3,.5);
end set(handles.text7,'String',(readPosition(motor
pause(1); 3)*180));
for angulo=0.62:-0.01:.42 writePosition(motor4,.5);
writePosition(motor5,angulo); set(handles.text8,'String',(readPosition(motor
4)*180));
set(handles.text9,'String',(readPosition(motor writePosition(motor5,.5);
5)*180)); set(handles.text9,'String',(readPosition(motor
pause(0.01); 5)*180));
end writePosition(motor6,.5);
pause(1); set(handles.text10,'String',(readPosition(moto
for angulo=0.34:0.01: 0.93 r6)*180));
writePosition(motor6,angulo); pause(3);
c2=imread('carro4.JPG');
set(handles.text10,'String',(readPosition(moto set(handles.pushbutton4,'CData',c2)
r6)*180)); % hObject handle to pushbutton4 (see GCBO)
pause(0.01); % eventdata reserved - to be defined in a
end future version of MATLAB
% handles structure with handles and user
pause(1); data (see GUIDATA)
for angulo=0.42:-0.01: 0.41 % --- Executes on button press in pushbutton5.
writePosition(motor5,angulo); function pushbutton5_Callback(hObject,
eventdata, handles)
set(handles.text9,'String',(readPosition(motor global a;
5)*180)); motor1 = servo(a,'D3');
pause(0.01); writePosition(motor1,.18);
end set(handles.text5,'String',(readPosition(motor
pause(1); 1)*180));
for angulo=0.11:-0.01:.09
writePosition(motor4,angulo); motor2 = servo(a,'D5');
writePosition(motor2,.79);
set(handles.text8,'String',(readPosition(motor set(handles.text6,'String',(readPosition(motor
4)*180)); 2)*180));
pause(0.01); motor3 = servo(a,'D6');
end writePosition(motor3,.5);
pause(1); set(handles.text7,'String',(readPosition(motor
for angulo=0.41:0.01: 0.53 3)*180));
writePosition(motor5,angulo); motor4 = servo(a,'D9');
writePosition(motor4,.5);
set(handles.text9,'String',(readPosition(motor set(handles.text8,'String',(readPosition(motor
5)*180)); 4)*180));
pause(0.01); motor5 = servo(a,'D10');
end writePosition(motor5,.5);
pause(1); set(handles.text9,'String',(readPosition(motor
for angulo=0.85:-0.01:.71 5)*180));
writePosition(motor3,angulo); motor6 = servo(a,'D11');
writePosition(motor6,.5);
set(handles.text7,'String',(readPosition(motor set(handles.text10,'String',(readPosition(moto
3)*180)); r6)*180));
pause(0.01); % hObject handle to pushbutton5 (see GCBO)
end % eventdata reserved - to be defined in a
pause(1); future version of MATLAB
for angulo=0.09:-0.01:.0 % handles structure with handles and user
writePosition(motor4,angulo); data (see GUIDATA)
set(handles.text8,'String',(readPosition(motor
4)*180));
Resultados
Desarrollo de interfaz GUIDE en Matlab.
1.- Interfaz finalizada con la ayuda de herramientas de Panel, texto esttico y el
de Axel.
De esta forma pudimos abarcar muchas de las materias que llevamos en este
semestre ya sea en control del brazo robtico como en la programacin del PLC
y de esta forma poder realizar el proyecto integrados con xito.
Bibliografa
Brazo Robtico.
https://es.wikipedia.org/wiki/Brazo_rob%C3%B3tico
Interfaz de Usuario.
https://es.wikipedia.org/wiki/Interfaz_gr%C3%A1fica_de_usuario
GUIDE de Matlab.
https://es.mathworks.com/discovery/matlab-gui.html