domingo, 2 de noviembre de 2014

Subconsultas - Bases de datos

Subconsultas

Autor : René Curín
Competencia : Comunicacion oral y escrita (nivel 1)
Asignatura: Introiduccion a los sistemas de bases de datos
Palabras claves: Mysql, Bases de datos, subconsultas

Descripción de la actividad

En esta actividad debimos realizar una presentación sobre las subconsultas en los sistemas de bases de datos, en la cual explicamos con detalle el uso correcto de esta herramienta para poder realizar consultas mejor elaboradas y con un mayor grado de complejidad, además debimos crear una base de datos nueva para poder dar conocimiento visual de que efectivamente funcionaba nuestra forma de realizar estas consultas.

Objetivos principales

- Aprender y comprender el uso correcto de las subconsultas
- Poder realizar una consulta bien elaborada


Herramientas utilizadas:

- Motor de Bases de datos Mysql
- XAMPP
- Phpmyadmin (que viene incluido en XAMPP)

Desarrollo de la actividad:

 













De que me sirvio esta actividad:

Al momento de desarrollar esta presentación tuve que buscar información por mi cuenta y complementarla con lo ya aprendido por lo cual comprendí mejor su funcionamiento y formas de utilizar, además como debimos crear una base de datos nueva y aplicar estos conocimientos para su presentación, tuvimos que repasar varias veces los códigos y leer la materia para saber cuáles eran los errores que cometíamos, por lo cual ayudo mucho esta presentación para nuestra calificación en la prueba sobre esta misma materia.

Cerro Tarima - Robotica

Cerro Tarima - Robotica

Autor : René Curín
Competencia : Trabajo en equipo (nivel 1)
Asignatura: Programacion de Robots
Palabras claves: NQC, Robotica, Lego, Codigo


Descripción de la actividad

Esta actividad consistía en la programación de un robot lego que fuera capaz de subir una maqueta de cerro, en donde el robot debía ir girando automáticamente y seguir subiendo según como allá sido la situación en que este se encuentre, además al llegar a  la sima del el cerro debía emitir un sonido cualquiera para verificar que efectivamente había llegado a su destino.

Enunciado de la actividad:


El robot debe subir la tarima guiándose por el sensor de tacto. Se utilizaran dos sensores de tacto. El sensor de tacto al ser activado permitirá que el robot avance guiándose por la pared de la tarima. Una vez que el robot llegue al punto final debe emitir una señal sonora y girar quedando en posición para comenzar el descenso.

Objetivos principales

- Aprender el uso correcto de los sensores de tacto
- Emplear el uso de motores
- Generar una buena idea sobre la implementacion del sensor para que funcione correctamente
Herramientas utilizadas:
- Robot Lego NQC
- Editor de lenguaje NQC
- Maqueta de simulacion de un cerro

Desarrollo de la actividad:
 Estrategia de Trabajo:
Nuestra estrategia consistió en emplear las diversas posibles dificultades que podría presentar el robot en su trayecto, como podría ser la posibilidad de que quedara estancado en las esquinas, el problema de que calce exactamente en el agujero para poder avanzar al siguiente obstáculo y para que nuestro robot pudiera seguir junto a la pared avanzando, y luego poder comenzar a programar nuestro código fuente.

 Modelo de Solución:
La solución al problema fue la de programar nuestro robot para que cuando choque con el sensor 1 avance, y cuando sea 0 gire y choque nuevamente, esto quiere decir que el robot debe ir apegado a la pared, presionando el sensor para poder avanzar, ya que si suelta el sensor este debe girar hacia el lado de la pared para continuar su recorrido.
Pseudocódigo:
task main()
{
    pocision_sensor(pocicion 1, sensor_choque);
    pocision_sensor(pocision 3, sensor_choque);
    enciende_motores(A + C, potencia 2);
    avanza_motor(A+C);
    entero i es igual a 0;
    while (true)
   {
        Si (sensor_pocision 1 en igual a 1)
           {
                avanza_motor(A+C);
           }
       Sino
                Si (sensor_pocision 1 en igual a 0)
                    {
                          retrocede_motor(A+C);
                         por_un_tiempo(1 segundo);
                         avanza_motor(A+C);
                         por_un_tiempo(1 segundo);
                        i++;
                    }
      Si (sensor_pocision 3 en igual a 1)
      {
               retrocede_motor(A+C);
              por_un_tiempo(22 segundos);
             avanza_motor(A);
      }
     Si (i es igual a 9)
     {
            retrocede_motor(A+C);
            por_un_tiempo(1/5 segundos);
           avanza_motor(A);
           retrocede_motor(C);
           por_un_tiempo(1 segundo);  
           emitir_sonido(tono,1000);
    }
}

Codigo Fuente

task main()
{
    SetSensor(SENSOR_1, SENSOR_TOUCH);
    SetSensor(SENSOR_3, SENSOR_TOUCH);
    SetPower(OUT_A+OUT_C, 1);
    OnFwd(OUT_A+OUT_C);
   int i=0;
    while (true)
    {
        if (SENSOR_1 == 1)
        {
            OnFwd(OUT_A+OUT_C);
        }
        else
            if (SENSOR_1==0)
                {
                      OnRev(OUT_A+OUT_C);
                      Wait(100);
                     OnFwd(OUT_C+OUT_A);
                     Wait(100);
               }
      if (SENSOR_3 == 1)
      {
             OnRev(OUT_A+OUT_C);
             Wait(22);
            OnFwd(OUT_A);
       }
      if (i == 9)
      {
           OnRev(OUT_A+OUT_C);
           wait(50);
           OnRev(OUT_C);
           OnFwd(OUT_A);
           wait(100);
           playtone(100,10000);
}
}


Video del robot funcionando:

De que me sirvió esta actividad:


Este trabajo permitió aprender el uso y funcionamiento de los sensores de tacto que tiene el Kit del robot, además aprendí a emplear el sensor de acuerdo a varios aspectos en los que se podrían encontrar permitiendo auto dirigir al avance del robot por el camino, u como ultima instancia aprendí a emitir sonidos directamente del robot. Ademas como este trabajo no lo hubiera echo gracias a mi compañera de equipo Crla Moya puesto que ella fue a diseñadora de la arquitetura del robot para que los sensores pudieran funcionar correctamente.