Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Motores:
Parte mecánica que gira hasta que se agota la energía
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.
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.
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.
Tendencias modernas
las cosas de “moda” que están desarrollando la robótica actual. como coches autónomos,
exoesqueletos, humanoides.
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
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.
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 */
}
# 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
delay (1000);
/* Esperar 1 segundo */
Digital Write
digitalWrite (variable,HIGH);
/* Estado prendido */
PROGRAMA SEMÁFORO
int verde= 5;
int amarillo= 6;
int rojo= 7;
/* Se establecen las variables, para los LEDs */
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.
(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.
Potenciómetro
Símbolo
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
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);
}
}
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
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.
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
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*/
}