Está en la página 1de 20

Introducción a la Robótica

Partes principales de un robot


CI

Motores:
Parte mecánica que gira hasta que se agota la energía

Motor DC hay de 5V a 12V.


Se diferencia por su torque, el torque indica que tan fuertes son, un motor de alto torque va
a poder cargar mucho peso, uno de “Bajo torque” no va a poder cargar casi nada.

Servomotor, se mueven 180 grados, en posiciones, por eso recomiendan para robótica. Hay
de bajo torque, plásticos con engranajes plásticos. Alto torque con metales.

Sensores:
medidores que ingresa la información, le indican al robot su entorno. Hay sensores entrada
y salida.

Mećanico. para fuerza y resistencia


Óptico. iluminación, flujo luminoso, detecta color
Proximidad. objetos a su alrededor
Temperatura. Miden en grados celsius o farenheit

Controlador:
Las indicaciones lógicas del robot. La controladora se coloca en medio del robot,
idealmente. envía señales de entrada y de salida

Fuente de energía:
energiza las partes del robot
Controlador H L298N. funciona para controlar a dos motores del robot de manera asíncrona
sin que Arduino controle. Se usa (Puente H) mueve los motores es una tarea especializada
porque lo entiende con señales.

/*4 domingos, clase por materia. Al término de la materia examen */

¿que apps tienen los sensores?

Tipos de Robots
CII

Robot doméstico
robot de uso casero con 1 tarea simple, específica y de baja demanda, uso ocasional. no
necesariamente tiene forma humanoide

Robot industrial
robot para realizar trabajos complejos de manera continua, por más tiempo, Habitualmente
es un brazo

Robot disruptivo
tiene mayor eficiencia con menores componentes, sustituye una tecnología anterior.
Ejemplo entregas de Amazon Prime por drones, autos autónomos.

Robótica Aplicada
Robot práctico (acercamiento práctico)
El acercamiento práctico se refiere al robot que completa la tarea con el mínimo de recursos
para su funcionamiento, se refiere a simpleza de su diseño inclusive sin que se de cuenta el
usuario.

normalmente la forma humanoide no tiene acercamiento práctico.

Tendencias modernas
las cosas de “moda” que están desarrollando la robótica actual. como coches autónomos,
exoesqueletos, humanoides.

Sensores de coche autónomo.

Sensor Lidiar: ve a 360 grados, visualiza su entorno.


Radares: sensor medidor radial hace cambios de velocidad
Sensor ultrasónico: manda ondas para saber cómo estacionarse
GPS: ubicación y ruta a seguir

Arduino

CIII

Programación
Serie de pasos para llegar a una solución

ARDUINO
Placa programable. Controlador, con pines. La placa controla señales digitales y análogas
provenientes de sensores, motores, circuitos integrados, etc. Es open source o de código
abierto

Hecho por italiano, el creador iba a un bar llamado así, y decidió nombrarlo igual porque en
la taberna se le ocurrió el nombre de “arduino” para su placa programable.

CONCEPTOS
Corriente. La cantidad de electrones que circula dentro de un circuito.
Voltaje. Es la fuerza con la cual viaja la electricidad dentro de un circuito eléctrico. También
se conoce como tensión.
Resistencia. La fuerza que impide

Cableado de sensores:
Rojo: Positivo
Cafe: Negativo
Amarillo: Hacia la controladora

Placa Arduino:
Pines de 0 a 13. para conectar sensores
RESET: Reinicio de placa
GND: Tierra o Ground

Conector USB. Como fuente de energía y para insertar el código de programación.

VIDEO: PIN Digital_

Lado contrario placa están PIN de fuente de energía.

3.3V y 5V Arduino tiene regulador para que salga a cualquier de las dos
Vin (Voltaje in) es para colocar una fuente externa de voltaje. Soporta 23/24V máximo. y no
tiene regulador. si se aumenta puede quemar la placa.

EN LOS PINES SOLO PUEDE IR UN DISPOSITIVO POR VEZ

Ejercicio LED: Sin resistencias se conecta a la placa


ANALOGICO Y DIGITAL. DIferencia es que analógico es una curva oscilatoria. Cambia de
Positivo a Negativo. Digital es constante. Es igual a pensar en la Corriente Alterna
(Analogico). y Corriente Directa (Digital)

En electricidad. Cable Verde es Negativo. Cable Amarillo es Positivo.

Programación Mindstorm (LabView)


Programa por bloques de colores
Verdes. Acción. Esquina superior Derecha, se programa el puerto
Motor mediano, Motor grandes y Volante
Pantalla LCD
Tanques
Bocinas

Naranja. Lógicos. Esquina sup Der para programar en el puerto


En el programa son los íconos
Inicio. Comenzar el programa
Pausa. por un tiempo determinado
Loop. Ciclos para repetir acción
Switch. Condiciones
Amarillo. Sensores
Infrarrojo
Proximidad
Rotación del motor
Táctil o Contacto

SENSOR PROXIMIDAD. Puede medir o comparar.

Rojo. Variables
operaciones lógicas
crear variables

Azules. Avanzado
Código propio para Mindstorm

Turquesa.
Se guardan los bloques propios, hechos en Azules

Librerías en Arduino
CIV

Librerías son trozos de código hechos por otras personas que facilitan la interconexión. Se
debe escribir correctamente, ayudan a interactuar con otros sensores, otras placas, etc.

# include
/*Se llama a las librerías */

<Servo.h>
/*Llamar a la librería con las funciones del Servomotor */

# include <Servo.h>
Servo Panchito;
/*Se nombra al servo, para reconocer cuál es cual */

void Setup () {
/*Comienzo mi menú */
Panchito.attach (9);
/*Damos el mismo nombre y le decimos dónde va conectado
}

void Loop () {
Panchito.write (90);
/* se mueve a 90 grados */
}

Programa con 5 servomotores

# include <Servo.h>
Servo Hombro1;
Servo Hombro2;
Servo Codo3;
Servo Codo4;
Servo Muneca5;

void Setup () {
Hombro1.attach (1);
Hombro2.attach (2);
Codo3.attach (3);
Codo4.attach (4);
Muneca5.attach (5);
}

void Loop () {
Hombro1.write (90);
Hombro2.write (180);
Codo3.write (90);
Codo4.write (90);
Muneca5.write (180);
}
Programa Semáforo
Se usa PinMode para realizar el cambio

pinMode (variable, OUTPUT);


/* Elemento de Salida */

pinMode (variable, INPUT);


/* Elemento de Entrada */

Variables. usar parte de la memoria para guardar valor

int= ENTEROS (1, 2, 3, 4…)


Float= DECIMALES (0.1, 0.2, 0.3, 0.4)
Character= LETRAS (A, B, C, D, E)
Delay= tiempo que tarda en hacer la acción, en milisegundos.

delay (1000);
/* Esperar 1 segundo */

Digital Write

digitalWrite (variable, LOW);


/* Estado apagado */

digitalWrite (variable,HIGH);
/* Estado prendido */

PROGRAMA SEMÁFORO

int verde= 5;
int amarillo= 6;
int rojo= 7;
/* Se establecen las variables, para los LEDs */

void Setup() { Commented [1]: Aquí empieza el fragmento de


pinMode (verde,OUTPUT); programa "Configuración"
pinMode (amarillo,OUTPUT);
pinMode (rojo, OUTPUT);
} Commented [2]: Cerrando } indica que se terminó el
/* Se establece la configuración que tiene cada LED, en este caso es un elemento de salida programa "Configuración"
*/
void Loop() {
digitalWrite (verde,HIGH);
digitalWrite (amarillo,LOW);
digitalWrite (rojo,LOW);
delay (5000);

digitalWrite (verde,LOW);
digitalWrite (amarillo,HIGH);
digitalWrite (rojo,LOW);
delay (2000);

digitalWrite (verde,LOW);
digitalWrite (amarillo,LOW);
digitalWrite (rojo,HIGH);
delay (5000);
}
/* Se indica LEDs apagados y prendidos, por cuánto tiempo, empieza siguiente cambio. Se
indican los 3 cambios del semáforo */

Diagrama
Colocar resistencia al final del circuito. Se coloca al final, porque nos interesa LEDs brillen, y
entre la energía. Pero se protege a la salida para no se queme.

Programa Arduino, primero debe seleccionarse el puerto al cual va conectado. Ir a Menú


Herramientas / Puerto (Seleccionar el puerto)
Después se verifica con el botón de Palomita y luego, botón siguiente para Subir el
programa.
Protoboard
CV
constructor virtual

(Dibujo Protoboard)

Continuidad.

Tipos de señales
CVI

Señal analógica
Varía en el espacio la información. Tiene una forma de onda senoidal, sube a positivo y baja
negativo por pasos gradualmente.

Hace lo mismo que la Corriente Alterna, y su ventaja es que puedes tener mucho valores.

Señal digital
Es una señal con dos valores (HIGH, LOW) que es el lenguaje de computadora con valores
0 o 1. LED de luz es un ejemplo, porque tiene dos estados (prendido y apagado).
Circuito en serie y Circuito paralelo
Circuito en serie están unidos y si un elemento falla, tiene corto, ya no sigue hacia los
demás.

En Paralelo, dispositivos están independientes uno de otros. Si uno hace corto sigue
haciendo su recorrido.

Nodo: cuando se interconectan 1 o más elementos eléctricos.

Potenciómetro

Símbolo

Función: Adentro tiene varias resistencias de diferentes cantidades. Esto le permite


aumentar o disminuir gradualmente la energía que va a dejar pasar. Esto convierte a un
LED digital, a señal analógica, porque gradúa el paso de corriente.

Tiene tres pines. Es libre escoger en cuál patita (pin) conectar positivo y tierra. Normalmente
el del centro es para Arduino.
Instrucción en Arduino
Para leer señales analógicas se tienen dos instrucciones:

En Arduino hay una variable add que es “CONSTANTE”, y se usa para no tener valor

analogWrite
Va a escribir el valor que le asignó

analogRead
Va a leer el valor analógico que llega de la entrada

Instrucción FOR
Para hacer bucle por un cierto tiempo que queramos definir

PROGRAMA MANEJAR UN LED analogo

const int led=3;


// led conectado al pin 3
int brillo; //variable para el brillo

void setup () {
pinMode (led, OUTPUT);
/ declaramos LED como salida. Los pines analigicos se declaran como entrada
automáticamente
}

void loop () {
for (brillo = 0; brillo < 255; brillo ++);

/se repite una instrucción con un cierto número de veces, con un valor inicial

{
analogWrite (led,brillo);
delay(1000);
}
for (brillo= 0; brillo >=255; brillo --); {
analogWrite (led,brillo);
/escribe valor en el pin
delay(1000);
}
}

LED CON POTENCIOMETRO


Arduino tiene una sección para dispositivos que son nativamente analógicos, están
ubicados en la parte de ANALOG IN, pero del otro lado, hay pines con una ~
para convertir a analógico.

PROGRAMA PARA USAR LED CON POTENCIOMETRO

const int led =3;


// led conectado al pin 3

const int pot = 0;


// el potenciómetro conectado al pin A0

int brillo;
//variable para designar el brillo

void setup () {
pinMode (led, OUTPUT);
//declaramos el led como salida
//los pines analogicos se declaran como entrada automaticamente

void loop () {
brillo = analogRead (pot) / 4;
//leemos el valor del potenciometro y lo dividimos entre 4, porque el potenciometro aumenta
el valor

analogWrite (led, brillo);


//para usarlo en analogWrite
}
Engranes
CVII

El principio básico del uso de engranes en la robótica es para aumentar ya sea el torque
(fuerza) o la RPM (velocidad) en un motor.

Mecánica: rama de la física que estudia el movimiento de un cuerpo.

Fuerza de momento: En un radio pequeño se requiere mayor fuerza, a mayor radio se


aplica menor fuerza. Debe existir un punto de inicio o eje. Ejemplo, usar un perico y
desatornillas tomando el perico desde el extremo del mango.

Engranes. menores crestas, mayor velocidad, mayores crestas, más lento.


Movimiento de engrane al estar unido a un segundo (D-I), se mueve en sentido inverso.
Cuando se unen por una banda, se mueven en el mismo sentido (D-D), excepto cuando la
banda sea cruzada (D-I) porque se “anula” el egrane.

Puente H
Arduino de forma individual no es capaz de controlar motores, es por ello que se necesita al
“Puente H”, para manejar los motores. Este “puente H”, es un artefacto que mueve de forma
sincronizada a dos motores DC. Hay varios tipos. Segun tensión hay de (12V, a 1A) y tiene
un circuito integrado y capacitores; otro a 24V y 5A tiene capacitor; uno más de 15A que es
un micro.controlador.

Puente H tiene 4 pines digitales (IN1… IN4) para controlar el Puente H. De lado de Motor A
y Motor B, se controla el motor. Cable verde, va hacia Arduino, Rojo/Amarillo, Tensión
(positivo). Y tiene su fuente de poder (+ / -)

IN1 MotorDer
IN2

IN3 MotorIzq
IN4

Esto permite girar hacia adelante o izquierda.

PROGRAMACIÓN
Lo anterior en programación es:

int in1 = 2;
int in2 = 3;
int in3 = 4;
int in4 = 5;

PLACA ARDUINO
Pines Digitales
Pin 0 tiene RX = Recibir
Pin 1 tiene TR = Transmitir

PROGRAMA ROBOT
Movimiento hacia delante y atrás

int IN1 = 1;
int IN2 = 2;
int IN3 = 4;
int IN4 = 5;

void setup() {
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}

void Loop () {
digitalWrite (IN1,HIGH);
digitalWrite (IN2,LOW);
digitalWrite (IN3,HIGH);
digitalWrite (IN4,LOW);
delay (15000);

digitalWrite (IN1,LOW);
digitalWrite (IN2,HIGH);
digitalWrite (IN3,LOW);
digitalWrite (IN4,HIGH);
delay (15000);
}

PROGRAMA ROBOT
Movimiento hacia delante, derecha, adelante, izquierda, giro.
int IN1 = 1;
int IN2 = 2;
int IN3 = 4;
int IN4 = 5;
/* Se declaran variables */

void setup() {
pinMode (IN1, OUTPUT);
pinMode (IN2, OUTPUT);
pinMode (IN3, OUTPUT);
pinMode (IN4, OUTPUT);
}
/* Se configuran los pines como salida */

void Loop () {
digitalWrite (IN1,HIGH);
digitalWrite (IN2,LOW);
digitalWrite (IN3,HIGH);
digitalWrite (IN4,LOW);
delay (5000);
/* Robot hacia adelante */

digitalWrite (IN1,HIGH);
digitalWrite (IN2,LOW);
digitalWrite (IN3,LOW);
digitalWrite (IN4,LOW);
delay (3000);
/* Robot hacia derecha */

digitalWrite (IN1,HIGH);
digitalWrite (IN2,LOW);
digitalWrite (IN3,HIGH);
digitalWrite (IN4,LOW);
delay (5000);
/* Robot hacia adelante */

digitalWrite (IN1,LOW);
digitalWrite (IN2,LOW);
digitalWrite (IN3,HIGH);
digitalWrite (IN4,LOW);
delay (3000);
/* Robot hacia izquierda*/
digitalWrite (IN1,LOW);
digitalWrite (IN2,HIGH);
digitalWrite (IN3,HIGH);
digitalWrite (IN4,LOW);
delay (3000);
/* Robot giro*/
}

También podría gustarte