viernes, 16 de diciembre de 2011

MathStudio

Autor: Gabriel Pereira
Competencia: Comunicación Oral y Escrita.
Palabras Clave: Taller de Integración, SqLite, Android, MathStudio.

Descripción: La siguiente presentación da a conocer un poco nuestro proyecto en la asignatura de Taller de Integración I.

Dentro de su objetivo general, la idea es desarrollar una Aplicación Android para solucionar las dudas matemáticas del sector educacional de nivel medio(enseñanza media).

Algunos objetivos mas específicos de la aplicación están, Mediante el asesoramiento de un especialista del campo de la matemática(profesor, etc), establecer los contenidos que tendrá la aplicación y  Lograr una interfaz de fácil uso para los usuarios.









Presentación Alter Table

Autor: Gabriel Pereira
Competencia: Comunicación Oral y Escrita.
Palabras Clave: Base de datos, MySQL.

Descripción: Presentación para la asignatura de Introducción a las bases de datos donde
semana a semana debíamos presentar un póster o un powerpoint, en esta ocasión un powerpoint con el tema 'Alter Table'. 



















viernes, 9 de diciembre de 2011

Presentación Proyecto Cristiano

Autor: Gabriel Pereira
Competencia: Trabajo en Equipo.
Palabras Clave: Proyecto cristiano,mormones.

Descripción: 
Esta presentación tuvo como fin dar a conocer una investigación sobre la Iglesia de Jesucristo de los santos de los últimos días. La investigación fue desarrollada en el trancurso de las semanas a traves de distintas entrevistas a los llamados mormones para conocer entre otras cosas: su ritos, los mitos, las creencias que tienen y su forma de organización entre otras.










Trabajo Regresión Lineal

Autor: Gabriel Pereira

Competencia: Ciencias de la Ingeniería.
Palabras Clave: Arreglos,Java,if,while,for.



Diseño de Interfaz:

 Trozo del Código:




1.- Descripción del Problema


1.1- Descripción de la problemática general a resolver.
El problema a resolver en este trabajo se centraliza en el ámbito de la regresión lineal, para la cual debemos usar distintos puntos x e y para ajustar una curva la cual conlleva realizar varios cálculos matemáticos.

1.2- Descripción de casos ejemplos del proceso de solución (5 casos de borde).

a) Al ingresar los datos x e y falle la conexión y los datos no puedan ser guardados correctamente afectando al cálculo de otros datos como a, b, r etc.

b) Falta de ingreso de datos en las columnas como solo ingresar los puntos x, lo que sería un problema ya que no podrían resolverse los otros cálculos necesarios.

c) Fallo de la programación del botón para guardar, viéndose reflejado en el no guardado de los datos lo que sería una perdida.

d) Vista mal hecha en el código lo que al momento de clickear en el botón pueda lanzar un error o simplemente dar un valor erróneo.

e) Al intentar eliminar puede causar un error datos inexistentes en la base de datos.

2.- Descripción de los aspectos generales de solución

2.1.- Descripción general de la solución
La solución implementada en este problema consta de varios pasos importantes, iniciando con la creación de una base de datos con una tabla donde se guardaran los datos de los puntos x e y, a través de los cuales se podrán crear a la vez vistas para calcular distinto datos y mostrarlos en pantalla como a, b y r.
A la vez debemos crear un proyecto java empezando con la parte grafica que constara de campos de texto en los que se ingresaran los puntos a guardar y también botones para calcular con las vistas los datos a usar mostrándolos en pantalla después del proceso.

2.1.1.- Diagrama de Clases.
Como podemos ver en este diagrama las distintas clases con sus atributos y métodos interactúan entre sí a través de llamadas entre una y otra para los distintos procesos como hacer un click en un botón dado, o guardar una lista de datos en un arreglo para después enviarlo a una base de datos a través de una sentencia SQL.




2.2.- Diseño de Procesos

Los procesos en el uso de la aplicación van en tres niveles el de usuario, código y base de datos los cuales trabajan en conjunto para resolver las solicitudes del usuario en este caso el guardar los puntos en la base de datos como a la vez que esta calcule y muestre datos necesarios para el usuario



2.3.- Diseño de Base de Datos

El diseño de la base de datos consta solo de una tabla la cual contiene las columnas x e y donde se almacena cada registro de estos puntos.
También cuenta con las vistas para calcular a, b, r, etc. Para las cuales toman los puntos de la tabla Números y hace los cálculos respectivos puestos en la línea SQL.



3.- Descripción de los aspectos específicos de la implementación

3.1.- Aspectos de implementación solución – 1

La solución uno fue la base del trabajo ya que con esta implementamos la numero dos, con la diferencia solo de la parte grafica que debimos implementar.

3.1.1.- Implementación de Clases.
Las clases implementadas fueron destacando la de conexión que es el puente entre nuestra aplicación java y la base de datos, la clase contenedora donde definimos los puntos x e y con sus respectivos accesadores(get) y mutadores(set) para un correcto uso, también la clase principal la cual interactúa se podría decir con el usuario y los distintos métodos implementados para realizar funciones específicas, y la más importante donde están todos los métodos para guardar los datos en arreglos, conectarse a la base de datos, enviar sentencias SQL, y tomar datos obtenidos como las vistas para mostrarlas en pantalla.

3.2.3.- Implementación de GUIs
La implementación de la GUI fue de manera gráfica primeramente generando un código automático por el IDE el cual después se puede empezar a programar dependiendo de su uso como botones para realizar “x” eventos o cuadros de texto para ingresar los datos.

4.- Evaluación y conclusiones al desarrollo

Evaluando el trabajo podemos darnos cuenta de los variados usos que tiene el software en cualquier ámbito por su eficacia al momento de prestar un servicio a un usuario inexperto por ejemplo que necesite una mejora en algunos aspectos mejorando y facilitándole el trabajo.

Robot cosechador

Autor: Gabriel Pereira
Competencia: Creatividad e Innovación.
Palabras Clave: Nxt, física, robótica.

Descripción: Se acerca el verano y en el fundo "la Aurora" se hacen las preparaciones para la cosecha anual. Mas, esta vez no serán sino robots los que realizarán la recolección.

Su equipo ha sido contratado para diseñar y construir uno de los robots de la granja. Este robot ha de sacar los duraznos de los durazneros, para que otro los pueda recolectar. Sin embargo, debe dejar los manzanos intactos, pues su fruta - aún inmadura - debe ser recolectada luego del otoño.

Además, se debe realizar una evaluación del funcionamiento y rendimiento del robot respecto a la distribución de arboles en la pista (detalles en el resumen y pauta de informe final).



Estrategia de solución: 

Estrategia de trabajo (forma de trabajo):  En este informe final la idea o el concepto principal del trabajo era realizar una solución para el  Robot cocechador para esto tuvimos que trabajar arduamente para la realización del código y del diseño optimo del robot

Roles tomados Dentro del trabajo:

   -Gabriel Pererira: Asi como jefe de grupo se encargo en su mayoría de realizar el código del   programa, además Ayudo en la construcción del robot cocechador

   -Joel Cortez: Secretario Se encargo preferentemente de anotar todo tipo de apunte que era importante apollo ideas relevantes en la confeccion  del código y del robot en si.

   -Juan Navarrete: Productor multimedia, Inicialmente se encargo del diseño del robot para que Este fuera lo mas optimo relacionado también con el código del robot, Y finalmente es el encargado de capturar toda imagen y video que se sea relacionada con el robot cocechador

   -Fernando Meza: Staff de apollo, Ayudo con la confeccion primariamente del pseudocódigo, que bien siendo la estructura del código, y la  construcción del robot.
Diseño:
El Robot esta constituido de por 2 sensores y 3 motores los cuales presentaremos a continuación:

Sensor de luz: La misión de este sensor será detectar las líneas negras primariamente para medir los tiempos entre una y otra huincha negra, luego servirá para determinar si un árbol es de manzana o es de durazno, Debera recolectar solo los arboles que tienen hunichas negras asta el final que representan que dicho árbol es de durazno.

Sensor de tacto: Este sensor servirá para detectar Si el árbol es de durazno o manzana ya que si se activa este sensor osea avanza asta un punto el robot y choca y se activa entonces ara girar el motor 3 que hara que el cuadrado de madera que esta arriba(fruto) del cuadrado grando(árbol) lo bote en un movimiento Delicado y lento para no botar los demás frutos de los arboles de a un costado.
  
Motor A y B: Estos 2 motores son la base del robot y están conectados con 2 ruedas las cuales hacen que el robot se dirija a la parte que nosotros queramos tiene una potencia de 0 a 100.
Motor C: Es el encargado de hacer girar la garra la cual cosechara el fruto pero solo si este está maduro, este motor está compuesta por el motor y la garra. Se ubica al costado derecho del robot. 
Pantalla: La pantalla muestra los números y los cálculos de las distancias entre los arboles también muestra el numero de arboles cosechados, duraznos o manzanos. La pantalla se encuentra en el centro del robot.



Pseudocodigo:

//   Pseudocodigo Robot Recolector
//  Grupo NXC
//  Integrantes: -Joel Cortes
//               - Juan Navarrete
//               - Fernando Meza
//               - Gabriel Pereira
Definimos Constante de Umbral en 40 // Constante para el uso del sensor de luz
Definimos Variable Contador         // variable que cuenta las lineas negras
Definimos Variable Duraznos         // variable que cuenta los duraznos
Definimos Variable Manzanos         // variable que cuenta los manzanos
Definimos Variable Avance           // variable que va contando las lineas en el transcurso
Definimos Variable Arboles          // variable que suma los arboles en total
Sub Rutina Medicion de Tiempo()     // sub rutina para medir los intervalos de lineas negras
{                                   // llave de inicio
 Avanza;                           // avanza el robot
 Si (Encuentra punto negro)        // condicion si encuentra un punto negro
 {                                 // llave inicio condicion
   Muestra Tiempo;                 // imprime en pantalla el intervalo entra cada linea negra
   Contador += 1;                  // contador de lineas aumenta en uno
 }                                 // llave final de condicion
 Detenerse Al final;               // se detiene el robot al llegar al extremo
 Girar en 180°;                    // el robot gira en 180 grados
}                                   // llave final de la sub rutina
Sub Rutina Recoleccion()            // sub rutina para recolectar las frutas
{                                   // llave inicio sub rutina
 Avanza                            // el robot avanza
 Si(Encuentra punto negro)         // condicion si encuentra un punto negro
 {                                 // llave incicio condicion
   Sigue la linea;                 // sigue la linea negra encontrada
   Si(Sensor de Tacto Choca)       // condicion si el sensor de tacto choca
   {                               // llave inicio condicion
     Detiene;                      // el robot se detendra
     Si(Borde caja es negro)       // condicion si el borde de la caja es negro
     {                                          // llave inicio condicion
       Gira motor de movimiento de garra;       // el motor que controla la garra actuara removiendo la fruta
       Duraznos += 1;              // la variable que cuenta duraznos aumentara en uno
       Avance += 1;                // el avance aumentara en uno
     }                             // llave final condicion
   }                               // llave final condicion
 }                                 // llave final condicion
 Sino                              // condicion sino  sucede lo anterior
 {                                 // llave inicio sino
   Manzanos += 1;                  // los manzanos aumentaran en uno
   Retrocede;                      // el robot retrocedera
   Gira 90°;                       // y girara en 90 grados
   Avanza;                         // y volvera avanzar
 }                                 // llave final condicion sino
}                                   // llave final condicion si
Tarea Principal()                   // tarea principal
{                                   // llave inicio tarea principal
 Iniciar Sensor de Luz;            // inicia sensor de luz
 Iniciar Sensor de Tacto;          // inicia sensr de tacto
 Definimos Variable Contador en 0; // variable contador inicia en 0
 Definimos Variable Duraznos en 0; // variable contador inicia en 0
 Definimos Variable Avance en 0;   // variable contador inicia en 0
 Definimos Variable Manzanos en 0; // variable contador inicia en 0
 Definimos Variable Arboles en 0;  // variable contador inicia en 0
 Medicion de Tiempo();             // se inicia sub rutina medicion tiempo
 Mientras(Avance sea menor al Contador)  // ciclo si el avance es menor a el contador
 {                                       // llave inicio ciclo
   Recoleccion();                        // llama sub rutina recoleccion
   Arboles = Duraznos + Manzanos;        // arboles suma los duraznos y manzanos
   Si(Avance >= Contador)                // condicion si el avance es igual o mayor al contador
   {                                     // llave inicio condicion si
     Girar en 180°;                      // girara en 180 grados
     Avanzar;                            // avanzara
     Si(Arboles es mayor o igual a 8)    // condicion si los arboles son mayores a 8
     {                                   // llave inicio condicion si
       Detiene el programa;    // el robot se detiene
     }                                   // llave final condicion si
   }                                     // llave final condicion si
 }                                       // llave final ciclo
}                                         // llave final tarea

Aplicación de Física:
A continuación mostraremos los datos recopilados en el proyecto, gráficos con respecto a la parte física del proyecto.
Datos obtenidos a una potencia de 60.
Tiempo (S)
Distancia (M)
0
0
2,6
0,7
4,2
1
6,3
1,5





Velocidad  media de nuestro robot: 0,235 m/s
Fórmula para obtener  la distancia entre cada línea negra:
y = 0,235x + 0,028 
-          Reemplazamos nuestro tiempo en la ecuación.
y = 0,235x + 0,028
y = 0,235*2,6 + 0,028
y = 0,639
 0,639 seria la distancia estimada entra la 1° y 2° linea. 
     Entre la 2° y 3° línea.
y = 0,235*4,2 + 0,028
y = 1,015 
-          Entre la 3° y 4° línea.
y = 0,235*6,3 + 0,028
y = 1,5085


Video:

 Resumen:

En este proyecto final de robotica nosotros ademas de consolidarnos como grupo aprendimos a buscar multiples soluciones para un unico problema el cual nos servira para ramos de otros semestres. Todos como grupo hicimos todo en conjunto, todos armamos el robot y buscamos la mejor forma de adecuarlo para que sea mas faciles para armar el codigo el cual era muy complejo por las multiples partes de este proyecto pero con las subrutinas se nos hizo facil y todo arreglado mutuamente no hubo problema para poder llegar a la solucion la cual no funciono en el momento donde tenia que funcionar por problemas X, pero llegamos a un final como se muestra en el video mas satisfactorio y sin quedarnos con la duda de como podia llegar a funcionar, sino lo terminamos como se debia.