Está en la página 1de 41

GUÍAS DE PRÁCTICA DE ELECTRÓNICA

Código de registro: RE-10-LAB-249 Versión 6.0


UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

UNIVERSIDAD
PRIVADA DEL VALLE
FACULTAD DE INFORMÁTICA Y
ELECTRÓNICA

DPTO: ELECTRÓNICA

GUÍA PRACTICA DE LABORATORIO


ROBÓTICA

Título de la Practica
PRACTICA 1. DESCRIPCIÓN ESPACIAL DEL ROBOT MANIPULADOR
PRACTICA 2. CINEMÁTICA DIRECTA DEL ROBOT MANIPULADOR
PRACTICA 3 MOVIMIENTO DE TRAYECTORIA CIRCULAR DEL
ROBOT MÓVIL
PRACTICA 4. MOVIMIENTO DE TRAYECTORIA RECTILÍNEA DEL ROBOT
MÓVIL CON SINCRONIZACIÓN PID
PRACTICA 5. SEGUIMIENTO DE LÍNEAS EN ROBOTS MÓVILES
MEDIANTE EL SENSOR DE LUZ
PRACTICA 6. CONTROL DE PERIFÉRICOS EN ROBOTS MÓVILES
PRACTICA 7. CONTROL DE SENSORES EN ROBOTS MÓVILES
PRACTICA 8. PROGRAMACIÓN DE TRAYECTORIAS DEL ROBOT
MANIPULADOR
PRACTICA 9. RECONOCIMIENTO E IDENTIFICACIÓN DE OBJETOS
USANDO EL SOFTWARE OPENCV, Y EL ROBOT MANIPULADOR

1
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA
PRACTICA Nº 1

DESCRIPCIÓN ESPACIAL DEL ROBOT MANIPULADOR

1. CONOCIMIENTO TEÓRICO REQUERIDO

• Cinemática directa de manipuladores


• Cinemática inversa de manipuladores
• Programación avanzada de Arduino.

2. COMPETENCIA (S)

• Desarrolla la calibración de robots manipuladores, por medio de la programación de


tarjetas de desarrollo electrónico.

3. MATERIALES, INSUMOS Y EQUIPOS.

MATERIALES Y EQUIPOS

Item Denominación Cantidad Unidad Observaciones

1 Fuente de alimentación 1 Pza

2 Monitor 1 Pza
Los equipos son utilizados por un
grupo de 3 estudiantes y la
3 Mouse 1 Pza capacidad del laboratorio es para
10 grupo
4 Teclado 1 Pza

5 CPU 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones
1 Arduino uno R3 1 Pza

2 Cable de poder 1 Pza

3 Cable jumper H-M 4 Pza

4 Cable USB para Arduino tipo A - B 1 Pza

Robot serial de 5 grados de


5 1 Pza
libertad+Griper

6 Servomotor MG996R 6 Pza

Los insumos son utilizados


Modulo controlador de por un grupo de 3
7 1 Pza
servomotores PCA9685 estudiantes y la capacidad
del laboratorio es para 10
grupo
8 Raspberry Pi 3 modelo b + 1 Pza

9 Pantalla táctil Raspberry Pi 1 Pza

10 Micro SD 16 G 1 Pza

11 Lector de micro SD 1 Pza

12 Fuente de Raspberry Pi 1 Pza

13 Conversor hdmi - vga 1 Pza


GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

4. TÉCNICA Ó PROCEDIMIENTO

Parte 1.
Identifique la posición de los servomotores en el robot y la conexión de estos con el
controlador de servomotores PCA9685. Llene la tabla 1

Parte 2.
Instale la biblioteca del PCA9685 en el Arduino Uno: “Adafruit PWM Servo Driver
Library”,

Realice la conexión del modulo con el Arduino y la fuente de alimentación según lo


mostrado en la figura. Configurar a la fuente en modo paralelo y 5V, máxima corriente.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

Utilizando el RASPBERRY PI como computadora y sus accesorios, el ARDUINO UNO.


Determinar el rango de trabajo de los servomotores conectados a las articulaciones del robot
manipulador y completar la tabla 2. El código mostrado realiza el movimiento de un servomotor
conectado al módulo PCA9685, utilizando como base este código para determinar los ángulos
de las articulaciones.

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver servos = Adafruit_PWMServoDriver(0x40);
unsigned int pos_0 = 172; // Calculo de pulsos para 0 grados
unsigned int pos_180 = 565; //Calculo de pulsos para 180 grados
const int servo_ch_1 = 0;// asignar el canal
const int lim_max=180;// asignar el valor máximo de la articulación.
const int lim_min=0;// asignar el valor mínimo de la articulación.

void movServo(uint8_t n_servo, int angulo) {


int duty;
duty = map(angulo, 0, 180, pos_0, pos_180);
servos.setPWM(n_servo, 0, duty);
}

void setup() {
servos.begin();
servos.setPWMFreq(50); //Frecuecia PWM de 50Hz
}

void loop() {
//servo 0
for (int i = lim_min; i < lim_max; i++) {
movServo(servo_ch_1, i); //Mover servo del canal 1
delay(10);
}
delay(1000); //Esperamos 1 segundo antes de regresar
for (int i = lim_max; i > lim_min; i--) {
movServo(servo_ch_1, i);//Mover servo del canal 1
delay(10);
}
delay(1000);
}
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

5. TIEMPO DE DURACIÓN DE LA PRÁCTICA

La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS


Parte 1.

Tabla 1.
Identifique la conexión de los servomotores con el controlador
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

Parte 2.

Angulo mínimo Angulo máximo


Articulación 1
Articulación 2
Articulación 3
Articulación 4
Articulación 5
Efector final
Tabla 2.
Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y
adjuntar el enlace) que muestren el proceso de movimiento del robot.

7. CUESTIONARIO

1. Determine los parámetros de Denavid Hartenberg del robot utilizado en la práctica.


2. Indique cinco fabricantes más importantes de robots industriales.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

PRACTICA Nº 2

CINEMÁTICA DIRECTA DEL ROBOT MANIPULADOR

1. CONOCIMIENTO TEÓRICO REQUERIDO

• Cinemática directa de manipuladores


• Cinemática inversa de manipuladores
• Programación avanzada de Arduino.

2. COMPETENCIA (S)

• Desarrolla la calibración de robots manipuladores, por medio de la programación de


tarjetas de desarrollo electrónico.

3. MATERIALES, INSUMOS Y EQUIPOS.

MATERIALES Y EQUIPOS

Item Denominación Cantidad Unidad Observaciones

1 Fuente de alimentación 1 Pza

2 Monitor 1 Pza
Los equipos son utilizados por un
grupo de 3 estudiantes y la
3 Mouse 1 Pza capacidad del laboratorio es para
10 grupo
4 Teclado 1 Pza

5 Cpu 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones
1 Arduino uno R3 1 Pza

2 Cable de poder 1 Pza

3 Cable jumper H-M 4 Pza

Los insumos son utilizados


4 Cable USB para Arduino tipo A - B 1 Pza por un grupo de 3
estudiantes y la capacidad
del laboratorio es para 10
Robot serial de 5 grados de grupo
5 1 Pza
libertad+Griper

6 Servomotor MG996R 6 Pza

Modulo controlador de
7 1 Pza
servomotores PCA9685

8 Raspberry Pi 3 modelo b + 1 Pza

9 Pantalla táctil Raspberry Pi 1 Pza

10 Micro SD 16 G 1 Pza

11 Lector de micro SD 1 Pza

12 Fuente de Raspberry Pi 1 Pza

13 Conversor hdmi - vga 1 Pza


GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

4. TÉCNICA Ó PROCEDIMIENTO

Parte 1.
Realice la conexión del módulo con el Arduino y la fuente de alimentación según lo
mostrado en la figura. Configurar a la fuente en modo paralelo y 5V, máxima corriente.

Parte 2.
Desarrollar un programa en IDE DE ARDUINO y PYTHON para el ARDUINO UNO y el
RASPBERRY respectivamente, para que el robot manipulador pueda moverse cada articulación
de forma independiente. Los movimientos de cada articulación deben ser de manera fina, a una
velocidad media, de tal forma que no provoque vibración y oscilación mecánica en el
manipulador.

El programa desarrollado en Python envía un vector por el monitor serial la siguiente trama:

Posición 0 Posición 1 Posición 2 Posición 3 Posición 4 Posición 5


'0' '0' '0' '0' '0' '0'
Servomotor Servomotor Servomotor Servomotor Servomotor
Efector final
5 4 3 2 1

Para mover una articulación, simplemente enviar un carácter en la posición deseada del vector.
Para incrementar el ángulo enviar la letra “a”, para decrementar el ángulo enviar la letra “b”.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

En Python debe instalar las bibliotecas de “pygame” y “pyserial”. En las instrucciones debe estar
presente la comunicación serial con el ARDUINO:

arduino = serial.Serial('COM11', 9600,timeout=1)

El manejo del robot debe ser mediante teclado, por ejemplo el código mostrado a continuación,
es usado para el movimiento del efector final:

for event in pygame.event.get():


if event.type == pygame.QUIT:
run=False
if event.type == pygame.KEYDOWN:
## EFECTOR FINAL: a-> + , b-> -
if event.key == K_UP:
screen.blit(efector, (tux_pos_x, tux_pos_y))
pygame.display.flip()
mensaje='a'+'0'+'0'+'0'+'0'+'0'
arduino.write(mensaje.encode())
if event.key == K_DOWN:
screen.blit(efector, (tux_pos_x, tux_pos_y))
pygame.display.flip()
mensaje='b'+'0'+'0'+'0'+'0'+'0'
arduino.write(mensaje.encode())

El código en IDE DE ARDUINO se muestra a continuación, con la recepción del vector enviado
por el programa de PYTHON.

Utilizar el código patrón de IDE DE ARDUINO, complementando el control de los limites de los
servomotores de las articulaciones, y el movimiento de cada servomotor en la función loop().

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver servos = Adafruit_PWMServoDriver(0x40);
unsigned int pos_0 = 172; // Calculo de pulsos para 0 grados
unsigned int pos_180 = 565; //Calculo de pulsos para 180 grados
const int servo_ch_1 = 0;// asignar el canal
const int lim_max=180;// asignar el valor máximo de la articulación.
const int lim_min=0;// asignar el valor mínimo de la articulación.

void setup() {
Serial.begin(9600);
servos.begin();
servos.setPWMFreq(50);
}
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

void loop() {
movServo(servo_ch_1, anguloRobot[0]); //Mover servo del canal 1
// añadir código para el movimiento del resto de los servomotores
}

void movServo(uint8_t n_servo, int angulo) {


int duty;
duty = map(angulo, 0, 180, pos_0, pos_180);
servos.setPWM(n_servo, 0, duty);
}

void serialEvent(){
if (Serial.available())
{
mensaje = Serial.readString();
actualizarAngulo();
AngulosRobots = "";
}
for (int i = 0; i < 6; i++)
{
AngulosRobots = AngulosRobots + " / " + String(anguloRobot[i]);
}
Serial.println(AngulosRobots);
}

void actualizarAngulo(){
// falta controlar los límites máximos y mínimos de los servomotores conectado a las
articulaciones.
for (int i = 0; i < 6; i++)
{
switch (mensaje[i])
{
case 'a': anguloRobot[i] = anguloRobot[i] + incremento;
break;
case 'b': anguloRobot[i] = anguloRobot[i] -incremento;
break;
default: break;
}
}
}
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

5. TIEMPO DE DURACIÓN DE LA PRÁCTICA

La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS

Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y
adjuntar el enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO

1. Indique dos robots seriales que se utilizan en su área de especialidad.


2. Indique dos efectores finales (Neumático y electromecánico) compatibles con el IRB120 y
el IRB 1300.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

PRACTICA Nº 3

MOVIMIENTO DE TRAYECTORIA CIRCULAR DEL ROBOT MÓVIL

1. CONOCIMIENTO TEÓRICO REQUERIDO

• El estudiante deberá tener conocimiento del kit educacional LEGO MINDSTORMS.


• Conocimiento de los sensores y actuadores que dispone LEGO.
• Sintaxis de comandos para programar el sistema.

2. COMPETENCIA (S)

• Describe las funciones básicas del programa BricxCC, usando la programación de la


célula de trabajo de LEGO, realizada por el docente.
• Desarrolla programas de movimiento de trayectoria circular de robot moviles.

3. MATERIALES, INSUMOS Y EQUIPOS.

MATERIALES Y EQUIPOS
Item Denominación Cantidad Unidad Observaciones
1 CPU 1 Pza
2 Lego Mindstorms 1 Pza Los equipos son utilizados por un
grupo de 3 estudiantes y la
3 Monitor 1 Pza
capacidad del laboratorio es para
4 Mouse 1 Pza 10 grupo

5 Teclado 1 Pza
6 Lego EV3 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA
INSUMOS
Item Denominación Cantidad Unidad Observaciones
1 Baterías LEGO 1 Pza
2 Cable RJ12 para LEGO 7 Pza
3 Cable USB para LEGO 1 Pza
4 Cable de poder 2 Pza Los insumos son utilizados
por un grupo de 3
5 Motores LEGO. 4 Pza estudiantes y la capacidad
del laboratorio es para 10
6 Sensor de ultrasonido 1 Pza
grupo
7 Sensor de luz 1 Pza
8 Sensor de contacto 1 Pza
9 Piezas para armado LEGO 100 Pza
10 Pista de la trayectoria 1 Pza

4. TÉCNICA Ó PROCEDIMIENTO

Utilizando el robot móvil LEGO MINDSTORMS (Prototipo armado con sensores y actuadores) para
completar el laboratorio, programe el robot en BRICX CC para que se mueva por el exterior de cada
bandera sin golpearla mediante trayectorias circulares. La ruta correcta para seguir se muestra en la
siguiente figura.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA

La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS


Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y adjuntar el
enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO

1. Describa la función OnFwdSync de BRICX CC


2. Describa la función OnFwdReg de BRICX CC
3. Describa la función nMotorPIDSpeedCtrl de RobotC
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

PRACTICA Nº 4

MOVIMIENTO DE TRAYECTORIA RECTILÍNEA DEL ROBOT MÓVIL CON


SINCRONIZACIÓN PID

1. CONOCIMIENTO TEÓRICO REQUERIDO.

• El estudiante deberá tener conocimiento del kit educacional LEGO MINDSTORMS.


• Conocimiento de los sensores y actuadores que dispone LEGO.
• Sintaxis de comandos para programar el sistema.

2. COMPETENCIA (S).

• Desarrolla programas para la sintonización del PID en motores de robots móviles,


incluyendo la sincronización de este.

3. MATERIALES, INSUMOS Y EQUIPOS.

MATERIALES Y EQUIPOS
Item Denominación Cantidad Unidad Observaciones

1 CPU 1 Pza
2 Lego Mindstorms 1 Pza
Los equipos son utilizados por un
3 Monitor 1 Pza grupo de 3 estudiantes y la
4 Mouse 1 Pza capacidad del laboratorio es para
10 grupo
5 Teclado 1 Pza

6 Lego Ev3 1 Pza


GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones

1 Baterías LEGO 1 Pza


2 Cable RJ12 para Lego 7 Pza
3 Cable USB para LEGO 1 Pza
4 Cable de poder 2 Pza Los insumos son utilizados
por un grupo de 3
5 Motores LEGO. 4 Pza estudiantes y la capacidad
del laboratorio es para10
6 Sensor de ultrasonido 1 Pza grupos
7 Sensor de luz 1 Pza
8 Sensor de contacto 1 Pza
9 Piezas para armado LEGO 100 Pza
10 Pista de la trayectoria 1 Pza

4. TÉCNICA Ó PROCEDIMIENTO.

Utilizando el robot móvil LEGO MINDSTORMS (Prototipo armado con sensores y actuadores) para
completar el laboratorio, programe el robot en BRICX CC para que complete dos vueltas alrededor del
cuadrado interior del recorrido. Las líneas a lo largo del camino están ahí para la retroalimentación del
sensor de LUZ (debe usar el mismo para el cambio de trayectoria); sobrepasarlos no es tomando en
cuenta como falta en la tarea.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

5. TIEMPO DE DURACIÓN DE LA PRÁCTICA.

La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS.-

Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y adjuntar el
enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO.

1. Describa la función RotateMotorEx en Bricx CC


2. Realice un ejemplo de programa de multitarea en Bricx CC
3. Desarrolle el diagrama de flujo del programa usado en la práctica.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA
PRACTICA Nº 5

SEGUIMIENTO DE LÍNEAS EN ROBOTS MÓVILES MEDIANTE EL SENSOR DE LUZ

1. CONOCIMIENTO TEÓRICO REQUERIDO

• El estudiante deberá tener conocimiento del kit educacional LEGO MINDSTORMS.


• Conocimiento de los sensores y actuadores que dispone LEGO.
• Sintaxis de comandos para programar ambos sistemas, en el kit educacional
LEGO MINDSTORMS se investigará comandos que permitan controlar los
elementos actuadores por medio de comandos PID y de realimentación de datos
desde el actuador.

2. COMPETENCIA (S)

• Desarrolla programa para el seguimiento de líneas negras en robots moviles


usando el sensor de luz.

3. MATERIALES, INSUMOS Y EQUIPOS

MATERIALES Y EQUIPOS
Item Denominación Cantidad Unidad Observaciones

1 CPU 1 Pza

2 Lego Mindstorms 1 Pza


Los equipos son utilizados por un
grupo de 3 estudiantes y la
3 Monitor 1 Pza capacidad del laboratorio es para
10 grupo
4 Mouse 1 Pza

5 Teclado 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones

1 Baterías LEGO 1 Pza


2 Cable RJ12 para Lego 7 Pza
3 Cable USB para LEGO 1 Pza
Los insumos son utilizados
4 Cable de poder 2 Pza por un grupo de 3
estudiantes y la capacidad
5 Motores LEGO. 4 Pza del laboratorio es para 10
grupo
6 Sensor de ultrasonido 1 Pza
7 Sensor de luz 1 Pza
8 Sensor de contacto 1 Pza
9 Piezas para armado LEGO 100 Pza
10 Conos de plastico color amarillo 10 Pza
11 Pista de la trayectoria 1 Pza

4. TÉCNICA Ó PROCEDIMIENTO.

Utilizando el robot móvil LEGO MINDSTORMS (Prototipo armado con sensores y actuadores) para
completar el laboratorio, programe el robot en BRICX CC para que siga la línea negra usando el sensor
de luz. El robot no debe chocar con ninguno de los obstáculos (vasos amarillos) a lo largo del recorrido.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA
5. TIEMPO DE DURACIÓN DE LA PRÁCTICA
La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS


Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y adjuntar el
enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO

1. Describa los sensores de LEGO MINDSTORMS NXT compatibles con LEGO MINDSTORMS EV3
2. Describa dos tipos de algoritmos seguidores de línea comúnmente utilizados.
3. Describa mediante un ejemplo la forma de crear funciones en BRICX CC
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

PRACTICA Nº 6
PROGRAMAS PARA EL CONTROL DE PERIFÉRICOS EN ROBOTS MÓVILES

1. CONOCIMIENTO TEORICO REQUERIDO.

• El estudiante deberá tener conocimiento de la descripción del kit educacional LEGO


MINDSTORMS.
• Conocimiento de los periféricos que acompañan, los sensores y actuadores que
dispone LEGO.
• Sintaxis de comandos para programar en BricxCC.

2. COMPETENCIAS.

• Desarrolla programas para utilizar los periféricos (Pantalla), para el control de


ejecución de un programa.

3. MATERIALES, INSUMOS Y EQUIPOS.

MATERIALES Y EQUIPOS
Item Denominación Cantidad Unidad Observaciones

1 CPU 1 Pza

2 Lego Mindstorms 1 Pza


Los equipos son utilizados por un
grupo de 3 estudiantes y la
3 Monitor 1 Pza capacidad del laboratorio es para
10 grupo
4 Mouse 1 Pza

5 Teclado 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones

1 Baterías LEGO 1 Pza


2 Cable RJ12 para Lego 7 Pza
3 Cable USB para LEGO 1 Pza
4 Cable de poder 2 Pza
5 Motores LEGO. 4 Pza
Los insumos son utilizados
6 Sensor de ultrasonido 1 Pza por un grupo de 3
estudiantes y la capacidad
7 Sensor de luz 1 Pza del laboratorio es para 10
grupo
8 Sensor de contacto 1 Pza
9 Sensor acelerómetro 1 Pza
10 Sensor de control de angulo 1 Pza
11 Sensor giroscopio 1 Pza
12 Sensor de colores 1 Pza
13 Piezas para armado LEGO 100 Pza
14 Pista de la trayectoria 1 Pza

4. TECNICA Ó PROCEDIMIENTO.

Utilizando el robot móvil LEGO MINDSTORMS (Prototipo armado con sensores y actuadores) para
completar el laboratorio, programe el robot en BRICX CC para que se mueva desde la ubicación de
inicio a cada línea y regrese al inicio. El robot móvil debe moverse a la primera línea, regresar al inicio,
moverse a la segunda línea, regresar al inicio, etc. Mientras hace esto, el robot también debe
almacenar el número de líneas que ha cruzado en una variable y mostrar ese número en la pantalla
LCD del ladrillo del robot móvil.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

5. TIEMPO DE DURACIÓN DE LA PRÁCTICA

La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS.-

Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y adjuntar el
enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO

1. Desarrolle el diagrama de flujo del programa empleado para la solución de la práctica.


2. Describa los pasos para verificar el estado de funcionamiento de los sensores en el ladrillo del
LEGO MINDSTORMS NXT y EV3.
3. Describa brevemente las posibles aplicaciones del practica realizada.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA
PRACTICA Nº 7

CONTROL DE SENSORES EN ROBOTS MÓVILES

1. CONOCIMIENTO TEÓRICO REQUERIDO

• El estudiante deberá tener conocimiento del kit educacional LEGO MINDSTORMS.


• Conocimiento de los periféricos que acompañan, los sensores y actuadores que
dispone LEGO.
• Sintaxis de comandos para programar en BricxCC..

2. COMPETENCIA (S)

• Desarrolla programas combinando los distintos sensores conectados al robot móvil,


para utilizarlas en la navegación.

3. MATERIALES, INSUMOS Y EQUIPOS

MATERIALES Y EQUIPOS
Item Denominación Cantidad Unidad Observaciones

1 CPU 1 Pza

2 Lego Mindstorms 1 Pza


Los equipos son utilizados por un
grupo de 3 estudiantes y la
3 Monitor 1 Pza capacidad del laboratorio es para
10 grupo
4 Mouse 1 Pza

5 Teclado 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones

1 Baterías LEGO 1 Pza


2 Cable RJ12 para Lego 7 Pza
3 Cable USB para LEGO 1 Pza
4 Cable de poder 2 Pza
5 Motores LEGO. 4 Pza
Los insumos son utilizados
6 Sensor de ultrasonido 1 Pza por un grupo de 3
estudiantes y la capacidad
7 Sensor de luz 1 Pza del laboratorio es para 10
grupo
8 Sensor de contacto 1 Pza
9 Sensor acelerómetro 1 Pza
10 Sensor de control de angulo 1 Pza
11 Sensor giroscopio 1 Pza
12 Sensor de colores 1 Pza
13 Piezas para armado LEGO 100 Pza
14 Pista de la trayectoria 1 Pza

4. TÉCNICA Ó PROCEDIMIENTO.

Utilizando el robot móvil LEGO MINDSTORMS (Prototipo armado con sensores y actuadores) para
completar el laboratorio, programe el robot en BRICX CC para avanzar hacia la pared usando el sensor
táctil (TOUCH), siga el curso de seguimiento de línea usando el sensor de luz, llegue al área de
calibración (zona con un libro verde) usando el sensor ULTRASONIDO y finalmente viaje a la meta. Su
robot no debe golpear ningún obstáculo ni cruzar las líneas de límite de desafío.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

5. TIEMPO DE DURACIÓN DE LA PRÁCTICA


La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS.-

Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y adjuntar el
enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO.

1. Describa las tareas involucradas en la navegación de un robot móvil.


2. Explique brevemente la navegación planificada del robot móvil.
3. Describa el método de planificación de rutas de la robótica móvil.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 6.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

PRACTICA Nº 8

PROGRAMACIÓN DE TRAYECTORIAS DEL ROBOT MANIPULADOR

1. CONOCIMIENTO TEÓRICO REQUERIDO

• Cinemática directa de manipuladores


• Cinemática inversa de manipuladores
• Programación avanzada de Arduino.

2. COMPETENCIA (S)

• Desarrolla la calibración de robots manipuladores, por medio de la programación de


tarjetas de desarrollo electrónico.

3. MATERIALES, INSUMOS Y EQUIPOS.

MATERIALES Y EQUIPOS

Item Denominación Cantidad Unidad Observaciones

1 Fuente de alimentación 1 Pza

2 Monitor 1 Pza
Los equipos son utilizados por un
grupo de 3 estudiantes y la
3 Mouse 1 Pza capacidad del laboratorio es para
10 grupo
4 Teclado 1 Pza

5 CPU 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones
1 Arduino uno R3 1 Pza

Cable jumper H-M 4 Pza


2
Cable USB para Arduino tipo A - B 1 Pza
3
Cable de poder 1 Pza
4 Los insumos son utilizados
Cubo en 3d 1 Pza por un grupo de 3
5 estudiantes y la capacidad
Robot serial de 5 grados de del laboratorio es para 10
1 Pza grupo
6 libertad+Griper
7 Servomotor MG996R 6 Pza

Modulo controlador de
8 1 Pza
servomotores PCA9685

9 Raspberry Pi 3 modelo b + 1 Pza

10 Pantalla táctil Raspberry Pi 1 Pza

11 Micro SD 16 G 1 Pza

12 Lector de micro SD 1 Pza

13 Fuente de Raspberry Pi 1 Pza

14 Conversor hdmi - vga 1 Pza

4. TÉCNICA Ó PROCEDIMIENTO

Parte 1.
Realice la conexión del módulo con el Arduino y la fuente de alimentación según lo mostrado
en la figura. Configurar a la fuente en modo paralelo y 5V, máxima corriente.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

Parte 2.
Desarrollar un programa en IDE DE ARDUINO para que el robot manipulador que cumpla lo
siguiente:
• Posición inicial, de tal forma que en los servomotores no exija mucho esfuerzo. Tomar
en cuenta que esta posición debe ser cómoda para la estructura del robot. (ver figura
1)
• Desplazarse al Punto A (ver figura 1), desde la posición inicial, evitando vibraciones y
oscilaciones mecánicas en el robot manipulador. Los movimientos no deben ser
rápidos. Una vez llegada a la posición A, debe agarrar el objeto y moverse a la
posición inicial.
• Por último, desplazar al punto B (ver figura 1), desde la posición inicial, evitando
vibraciones y oscilaciones mecánicas en el robot manipulador. Los movimientos no
deben ser rápidos. Una vez llegada a la posición B, debe soltar el objeto y moverse a
la posición inicial.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

Figura 1

Parte 3.
Añada al programa desarrollado en la parte 2 lo siguiente:
• Desplazarse al Punto A (ver figura 2), desde la posición inicial, evitando vibraciones y
oscilaciones mecánicas en el robot manipulador. Los movimientos no deben ser
rápidos. Una vez llegada a la posición A, debe agarrar el objeto y moverse a la
posición inicial.
• Por último, desplazar al Punto C (ver figura 2), desde la posición inicial, evitando
vibraciones y oscilaciones mecánicas en el robot manipulador. Los movimientos no
deben ser rápidos. Una vez llegada a la posición C, debe soltar el objeto y moverse a
la posición inicial.

Figura 2.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

5. TIEMPO DE DURACIÓN DE LA PRÁCTICA

La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS

Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y adjuntar el
enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO

1. Indique dos efectores finales (Neumático y electromecánico) compatibles con el IRB120 y el


IRB 1300.
2. Explique los tipos de controladores compatibles con el IRB120 y el IRB 1300.
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

PRACTICA Nº 9

RECONOCIMIENTO E IDENTIFICACIÓN DE OBJETOS USANDO EL SOFTWARE


OPENCV, Y EL ROBOT MANIPULADOR

1. CONOCIMIENTO TEÓRICO REQUERIDO

• Técnicas de filtrado de imágenes


• Técnicas de detección de bordes y contornos.
• Técnicas de reconocimiento de objetos.

2. COMPETENCIA (S)

• Desarrolla técnicas de procesamiento de imágenes mediante algoritmos de detección de


contornos para el reconocimiento de objetos usando OpenCV.

1. MATERIALES, INSUMOS Y EQUIPOS.

MATERIALES Y EQUIPOS

Item Denominación Cantidad Unidad Observaciones

1 Fuente de alimentación 1 Pza

2 Monitor 1 Pza

Los equipos son utilizados por un


3 Mouse 1 Pza
grupo de 3 estudiantes y la
capacidad del laboratorio es para
4 Teclado 1 Pza 10 grupo

5 Cámara WEB 1 Pza

6 CPU 1 Pza
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

INSUMOS
Item Denominación Cantidad Unidad Observaciones
1 Arduino uno R3 1 Pza

Cable jumper H-M 4 Pza


2
Cable USB para Arduino tipo A - B 1 Pza
3
Cable de poder 1 Pza
4
Los insumos son utilizados
Cubo en 3D (azul, amarillo, rojo) 3 Pza
5 por un grupo de 3
Robot serial de 5 grados de estudiantes y la capacidad
1 Pza del laboratorio es para 10
6 libertad+Griper
grupo
7 Servomotor MG996R 6 Pza
Modulo controlador de servomotores
8 1 Pza
PCA9685

9 Raspberry Pi 3 modelo b + 1 Pza

10 Pantalla táctil Raspberry Pi 1 Pza

11 Micro SD 16 G 1 Pza
12 Lector de micro SD 1 Pza

13 Fuente de Raspberry Pi 1 Pza

14 Conversor hdmi - vga 1 Pza

4. TÉCNICA Ó PROCEDIMIENTO

Parte 1.
Realice la conexión del módulo con el Arduino y la fuente de alimentación según lo
mostrado en la figura. Configurar a la fuente en modo paralelo y 5V, máxima corriente.

23
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

Parte 2.

El campo de la visión por ordenador ha crecido a un ritmo muy acelerado. La visión del robot es
considerada una de las habilidades sensoriales más importantes de los robots. Al igual que los
ojos humanos, un sistema de visión artificial permite al robot percibir el entorno en el que se
encuentra y es uno de los puntos tecnológicos que mejor representa el grado de inteligencia del
robot. Entre las áreas principales donde se han implementado manipuladores están el campo
quirúrgico y automovilístico. En el sector automotriz, los brazos robóticos se utilizan en líneas de
montaje, en las que es necesario seleccionar piezas de automóvil específicas con diferentes
materiales, formas, colores y peso. En el campo quirúrgico, los brazos robóticos han sido
implementados debido a que sus movimientos de alta precisión durante el proceso ayudan a
reducir del tiempo de cirugía.

En este laboratorio se propone la implementación de un sistema de visión por ordenador en un


brazo robótico de cinco grados de libertad cuya finalidad es la de identificar y clasificar objetos
de diferentes colores. El objetivo de este laboratorio es inicialmente, proporcionar un prototipo
automatizado para manipular herramientas y objetos en situaciones donde se requiere un alto
nivel de autonomía en el robot. Posteriormente se proyecta adaptar este desarrollo tecnológico
a un sistema de clasificación de fruta por su grado de madurez basado en las propiedades de
color de la fruta.

El sistema que se implementa en el laboratorio se muestra en la figura 1. Los tres bloques


corresponden a la detección objetos por color usando H.S.V. desarrollado en la plataforma de
PYTHON usando la biblioteca de OPEN CV.

24
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

Figura 1. Integración de visión de maquina y movimiento del robot.

Utilizando el RASPBERRY PI como computadora y sus accesorios. Configure el código


proporcionado de OPEN CV en Python para el reconocimiento de posición de dos objetos por
color, su comunicación serial y realice las pruebas usando la cámara web. Asigne
correctamente el puerto COM.

import numpy as np
import cv2
import serial, time

# Seleccionando la webcamara (0) y capturando la imagen


webcam = cv2.VideoCapture(1)
arduino = serial.Serial('COM11', 9600,timeout=1)

while(1):
# Lee el video webcam en tramas
_, imageFrame = webcam.read()

# Convierte imageFrame de BGR(espacio de color RGB) al espacio de color HSV(hue-


saturation-value)
hsvFrame = cv2.cvtColor(imageFrame, cv2.COLOR_BGR2HSV)

# Valores de configuracion del color rojo


# definir la mascara (mask)
red_lower = np.array([5, 100, 111], np.uint8)
red_upper = np.array([13, 190, 255], np.uint8)
red_mask = cv2.inRange(hsvFrame, red_lower, red_upper)

# Valores de configuracion del color verde


# definir la mascara (mask)

25
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

green_lower = np.array([29, 100, 72], np.uint8)


green_upper = np.array([31, 190, 255], np.uint8)
green_mask = cv2.inRange(hsvFrame, green_lower, green_upper)

#Transformación morfológica, dilatación para cada color y


#bit a bit y el operador entre imageFrame
#y máscara determina detectar solo ese color en particular
kernal = np.ones((5, 5), "uint8")
# Para el color rojo
red_mask = cv2.dilate(red_mask, kernal)
res_red = cv2.bitwise_and(imageFrame, imageFrame,
mask = red_mask)

# Para el color verde


green_mask = cv2.dilate(green_mask, kernal)
res_green = cv2.bitwise_and(imageFrame, imageFrame,
mask = green_mask)

# Crear contorno para rastrear al color rojo


contours, hierarchy = cv2.findContours(red_mask,
cv2.RETR_TREE,
cv2.CHAIN_APPROX_SIMPLE)

for pic, contour in enumerate(contours):


area = cv2.contourArea(contour)
if(area > 300):
x, y, w, h = cv2.boundingRect(contour)
imageFrame = cv2.rectangle(imageFrame, (x, y),
(x + w, y + h),
(0, 0, 255), 2)

cv2.putText(imageFrame, "COLOR ROJO", (x, y),


cv2.FONT_HERSHEY_SIMPLEX, 1.0,
(0, 0, 255))
###########################################
mensaje="R"
arduino.write(mensaje.encode())
#############################################
# Crear contorno para rastrear el color verde
contours, hierarchy = cv2.findContours(green_mask,
cv2.RETR_TREE,
cv2.CHAIN_APPROX_SIMPLE)

for pic, contour in enumerate(contours):

26
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

area = cv2.contourArea(contour)
if(area > 300):
x, y, w, h = cv2.boundingRect(contour)
imageFrame = cv2.rectangle(imageFrame, (x, y),
(x + w, y + h),
(60,255,255), 2)

cv2.putText(imageFrame, "COLOR VERDE", (x, y),


cv2.FONT_HERSHEY_SIMPLEX,
1.0, (60,255,255))
###########################################
mensaje="V"
arduino.write(mensaje.encode())
#############################################

# Fin del rpograma


cv2.imshow("Deteccion de multiples colores en Real-Time", imageFrame)
if cv2.waitKey(10) & 0xFF == ord('q'):## Para salir presionar la tecla "q"
webcam.release()
cv2.destroyAllWindows()
arduino.close()
break

Parte 3.
Utilice el código desarrollado en el laboratorio anterior e integre con lo desarrollado en la parte
2, de tal forma que mueva objetos a la posición B o C de la posición A conforme al color del
objeto, pasando por la posición inicial, como se muestra en la figura 1.

Figura 1.

Utilice el código que se muestra a continuación como base.

27
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver servos = Adafruit_PWMServoDriver(0x40);
unsigned int pos_0 = 172; // Calculo de pulsos para 0 grados
unsigned int pos_180 = 565; //Calculo de pulsos para 180 grados
const int servo_ch_1 = 0;// asignar el canal
bool bandera = false;
char msj;

void MoverPiezaRoja()
{
/// Inserte el código para mover la pieza roja
}
void MoverPiezaVerde();
{
/// Inserte el código para mover la pieza verde
}
void PosiciónInicial()
{
/// Inserte el código para mover el robot a la posición inicial
}
void movServo(uint8_t n_servo, int angulo) {
int duty;
duty = map(angulo, 0, 180, pos_0, pos_180);
servos.setPWM(n_servo, 0, duty);
}

void serialEvent() {
if (Serial.available())
{
char msj2 = Serial.read();
Serial.end();
if (bandera == false)
{
msj = msj2;
bandera = true;
}
}
}

void setup() {
Serial.begin(9600);
servos.begin();

28
GUÍAS DE PRÁCTICA DE ELECTRÓNICA
Código de registro: RE-10-LAB-249 Versión 4.0
UNIVERSIDAD DEL VALLE
LABORATORIO DE ROBÓTICA

servos.setPWMFreq(50); //Frecuecia PWM de 50Hz


PosiciónInicial();
}
void loop() {
if (bandera == true)
{
if (msj=’R’)
{
MoverPiezaRoja();
}

if (msj=’V’)
{
MoverPiezaVerde();
}

Serial.end();
Serial.flush();
}

Serial.begin(9600);
bandera = false;
}
}

5. TIEMPO DE DURACIÓN DE LA PRÁCTICA

La práctica tendrá una duración de 100 minutos.

6. MEDICIÓN, CÁLCULOS Y GRÁFICOS

Debe incluir en el informe el código usado, fotografías y grabar el video (Subirlo al STREAM y adjuntar el
enlace) que muestren el proceso de movimiento del robot y su finalización.

7. CUESTIONARIO

1..- ¿Cuál es el concepto de Visión Maquina?


2.- ¿Cuáles son las aplicaciones de la visión máquina que son aplicadas a la robótica?
3.- ¿Cuáles son las técnicas que se usan para la detección de objetos?
4.- ¿Cuáles son las técnicas que se emplean para la medición de objetos?

5.- ¿Qué aplicaciones se pueden usar en robótica con la técnica de medición de objetos?
29

También podría gustarte