Proyecto
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Proyecto

on

  • 460 views

 

Statistics

Views

Total Views
460
Views on SlideShare
460
Embed Views
0

Actions

Likes
0
Downloads
13
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Proyecto Document Transcript

  • 1. TECNOLOGICO DE ESTUDIOS SUPERIORES DE IXTAPALUCA CARRERA: INGENIERIA EN SISTEMAS COMPUTACIONALES MATERIA: LENGUAJES Y AUTOMATAS II PROFESOR: SOBERANES MARTIN ALFONSO INTEGRANTES: GALICIA SANCHEZ ANA KAREN MARTINEZ OJEDA DANIA ANAHI SOTO ZAMUDIO SAMANTHA PROYECTO: ROBOT EN SIMULADOR GRUPO: 1701
  • 2. 1- Lenguaje a manejar Lenguaje c 2- Función de cada lenguaje Realiza las instrucciones de la velocidad y los movimientos de dirección 3- Actividades de cada integrante Soto Zamudio Samantha y Martínez Ojeda Dania Anahi La realización del diseño electrónico y mecánico Galicia Sánchez Ana Karen La realización en programa en c 4- Funciones específicas del robot Avance retrocede o gire mediante instrucciones que se le impartan desde el equipo está constituido por ruedas, motores, fuentes de energía y tarjetas de control programado en lenguaje c. 5- Simulador a utilizar Robot main Características Es un simulador avanzado de robotica tipo de herramienta para definir modelos propios. Define la física, escribir, controladores para los bots y hacer simuladores a gran velocidad. Ventajas Código en c++ Tiene las bibliotecas de robot incluidas se maneja en la plataforma. Desventajas Tiene un solo diseño.
  • 3. MATERIALES DE PROTOTIPO Activiades 2 2 2 1 2 Precio $35 4 paquete $ 10 $ 12.46 $ 437.69 Cables para conexion 2 1 1 1 1 1 1 Componentes Ledinfrarojo (ny70) Resistencias (220) Resistencia 47 k Driver motor (l293 bo Secciones de acrílico 12x 12 Tornillos y tuercas Ruedas 8 cm diametro Ruedas locas Twin motor Placa arduino at mega protoboard $ 95 condensadores $ 107 5 $ 50 $ 30 $ 45 $ 35 $329 $97 CRONOGRAMA ACTIVIDADES Planeación Diseño Electrónico Requerimientos Control de Motores Ejemplo Diseño Mecánico Aplicación Diseño del Robot 1 Periodo 1, 2, 3, 4 2 Periodo 3 Periodo 5, 6 7, 8, 9, 10, 11 12, 13, 14, 15, 16
  • 4. PRESUPUESTO PRODUCTO 2 LED INFRARROJO CNY7035 2 RESISTENCIAS 220 2 RESISTENCIAS 47K 1 DRIVER MOTOR CL293 2 SECCIONES DE ACRILICO 12x12 2 TORNILLOS Y TUERCAS RUEDAS DE 8 cm DE DIAMETRO 1 RUEDA LOCA 1 TWIN MOTOR GTEAR BAR 1 PLACA ARDUINO AT mesa 1 PROTOBOARD PARA ARDUINO CABLES PARA CONEXIÓN 5 CONDENSADORES COSTO $35 $10 $12 $475.69 $100 $50 $30 $45 $35 $329 $97 $95 $107
  • 5. Vehículo Controlado Mediante un Computador se podría controlar un “vehículo” (Robot pequeño de ruedas) que avance, retroceda o gire mediante instrucciones que se impartan desde el equipo, o se podría hacer que este vehículo en vez de seguir instrucciones desde el PC, siga una ruta determinada mediante infrarrojos. Este será constituido por ruedas, motores, fuente de energía, y tarjeta de control (micro controlador Arduino ATmega168) programado en lenguaje Arduino. Fase de diseño electrónico El robot actuará como un móvil seguidor de línea negra haciendo uso de sensores infrarrojos, los cuales detectan la línea y envían una señal al resto del circuito del robot. Allí, de acuerdo a la programación realizada, se tomará una decisión respecto a las acciones que el robot debe realizar para mantenerse en el camino y llegar a la meta. Este diseño electrónico cuenta con dos sistemas: percepción y potencia. Percepción Es el sistema encargado de obtener la información del entorno para enviarla al sistema de comunicación en el cual se determinarán las acciones para los robots. En este caso se usarán leds infrarrojos, un emisor y un receptor, los cuales están encargados de detectar la línea negra que define el camino a seguir. En este caso se utilizarán dos sensores CNY70. El led infrarrojo (IR) es un componente electrónico que emite luz infrarroja, caracterizada por encontrarse en una frecuencia menor (10-5 m) que la luz visible por el ojo humano (0.5 x 10-6m), por lo que sólo puede ser detectada por otro componente electrónico llamado fotodiodo. De esta manera el led infrarrojo actúa como el emisor y el fotodiodo como el receptor. La configuración usada es de tipo auto-reflexiva, es decir que tanto el emisor como el receptor se encuentran ubicados uno al lado del otro y la luz emitida que viaja en línea recta se refleja en un objeto o superficie hacia el fotodiodo (figura 5). Este tipo de luz se refleja sobre
  • 6. colores blancos o claros, si se hace sobre un color oscuro o negro la luz es mayormente absorbida, disminuyendo la intensidad que recibirá el fotodiodo. De acuerdo a este y al diseño del entorno, debe invertirse la señal para que pueda actuar sobre la línea negra. En el sensor infrarojo lo que hace es enviar y recibir una señal muy pequeña que determina la transmisión de luz infraroja que dependiendo de las condiciones del espacio puede darnos varios valores, estos van conectados a unas resistencias R2 y R4 controlan el flujo de corriente, la cual desbloqueará su base y permitirá la amplificación de la señal. Las resistencias R1 y R3 actúan como protección de los led disminuyendo el flujo de corriente hacia éstos. Potencia La señal de salida obtenida de los sensores infrarrojos se convierte en la señal de entrada a la fase de programación, en la que interviene un módulo electrónico (Arduino) para el control del robot. Para ello se utilizará un componente (SN754410NE) o el componente (L293D) quienes realizarán la función de indicar a los motores que actividad realizar dependiendo del momento.
  • 7. Se crea puente H para control de los motores Como hemos dicho el puente H se usa para invertir el giro de un motor, pero también puede usarse para frenarlo (de manera brusca), al hacer un corto entre las bornas del motor, o incluso puede usarse para permitir que el motor frene bajo su propia inercia, cuando desconectamos el motor de la fuente que lo alimenta. En el siguiente cuadro se resumen las diferentes acciones. S1 S2 S3 S4 Resultado 1 0 0 1 El motor gira en avance
  • 8. 0 1 1 0 El motor gira en retroceso 0 0 0 0 El motor se detiene bajo su inercia 1 0 1 0 El motor frena (fast-stop)
  • 9. La señal de salida de los sensores infrarrojos es de tipo análoga porque su variación depende de la distancia entre los componentes, la cantidad de luz percibida y la línea negra, de la incidencia de la luz ambiente y de las pérdidas en el flujo de corriente en todo el circuito. Esta señal entra a la fase de programación y allí es transformada en una señal digital, la cual a su vez es la entrada al driver de los motores (Puente H).
  • 10. Fase de diseño mecánico El robot cuenta con tracción diferencial, ya que utiliza dos ruedas que son controladas de manera individual y soportadas en un eje central común (rueda loca) para el balance. Las dos ruedas tienen un recubrimiento de caucho que permite mayor adhesión a la superficie plana del entorno; la rueda loca además facilita el movimiento del robot al contar con un giro libre de 360 grados. Las dos ruedas principales son controladas por un motor de corriente continua que cuenta con un sistema de engranajes que ayuda a aumentar la potencia en el movimiento. Código para nuestro robot seguidor de línea con Arduino: #define M1A 19 //Motor 1A #define M1B 18 //Motor 1B #define M2A 17 //Motor 2A #define M2B 16 //Motor 2B #define PIN_PWM 11 //Modulacion por ancho de pulso - Emular salida analogica con salida digital #define VEL 100 //Velocidad #define S1 0 //IZQ #define S2 1 //DER #define _UMBRAL_ 200 //Umbral de los sensores unsigned long timeserial; void setup (){ Serial.begin(9600); timeserial = millis(); pinMode(M1A, OUTPUT); pinMode(M1B, OUTPUT);
  • 11. pinMode(M2A, OUTPUT); pinMode(M2B, OUTPUT); STOP(10000); analogWrite(PIN_PWM, VEL); } void loop() { byte SDER = (analogRead(S1)> _UMBRAL_ )?0:1; byte SIZQ = (analogRead(S2)> _UMBRAL_ )?0:1; if(SDER && SIZQ) STOP(0); else if (!SDER && SIZQ) DER(0); else if (SDER && !SIZQ) IZQ(0); else ADE(0); if(millis() - timeserial> 500){ timeserial = millis(); Serial.print("Sensor1: "); //Serial.print(SDER); Serial.print(analogRead(S1)); Serial.print(" Sensor2: ");
  • 12. //Serial.println(SIZQ); Serial.println(analogRead(S2)); } } void ATR(uint16_t time){ digitalWrite(M1A, HIGH); digitalWrite(M1B, LOW); digitalWrite(M2A, HIGH); digitalWrite(M2B, LOW); delay(time); } void ADE(uint16_t time){ digitalWrite(M1A, LOW); digitalWrite(M1B, HIGH); digitalWrite(M2A, LOW); digitalWrite(M2B, HIGH); delay(time); } void DER(uint16_t time){ //Llanta Izquierda digitalWrite(M1A, HIGH); digitalWrite(M1B, LOW);
  • 13. //llanta Derecha digitalWrite(M2A, LOW); digitalWrite(M2B, HIGH); delay(time); } void IZQ(uint16_t time){ //Llanta Izquierda digitalWrite(M1A, LOW); digitalWrite(M1B, HIGH); //Llanta Derecha digitalWrite(M2A, HIGH); digitalWrite(M2B, LOW); delay(time); } void STOP(uint16_t time){ digitalWrite(M1A, LOW); digitalWrite(M1B, LOW); digitalWrite(M2A, LOW); digitalWrite(M2B, LOW); delay(time); }