jueves, 27 de septiembre de 2012

Programando en Simuproc

Autor: Fermín Pradena.
Competencia: Gestión en TI (Nivel 1).
Palabras clave: Programación, Simuproc.

Descripción de la actividad
Esta actividad presentada es un programa escrito en AMS, el cual fué evaluado.
Este trabajo pide utilizar el software Simuproc (Simulador de Procesador), el cual nos permite ejecutar un programa escrito en su propio compilador, y en su propio lenguaje. Esta actividad nos pide que escribamos un programa matemático, ya que pide al usuario ingresar altura y radio de un cono, calcule su volumen y finalmente terminar imprimiendo en pantalla el volumen del cono.

Código de la solución con sus respectivos comentarios en cada línea


#SimuProc 1.4.3.0
    msg ingrese altura:        ; se le pide al usuario que ingrese el valor "altura"
    in ax,1                            ; se almacena el dato ingresado en ax
    stf 020                            ; se guarda el dato de ax en la casilla 020, para que ax pueda volver a almacenar un dato
    msg ingrese radio:         ; se le pide al usuario que ingrese el valor "radio"
    in ax,1                            ; se almacena el dato ingresado en ax
    stf 030                            ; se guarda el dato de ax en la casilla 030
    mulf 030                         ; se multiplica el dato de la casilla 030, por la misma, para obtener radio al cuadrado
    mulf 020                         ; se multiplica por que resulta del dato de la casilla 020, para obtener radio al cuadrado por altura
    mulf 014                         ; se multiplica por que resulta del dato de la casilla 020, para obtener radio al cuadrado por altura por pi
    divf 010                          ; se divide todo lo obtenido en la casilla 020 por 3, ese es el termino de la formula para obtener el volumen de un cono
    msg volumen del cono : ; se le indica al usuario que el programa imprimirá el volumen del cono
    out 1,ax                           ; se imprime en pantalla el valor final de ax
    hlt                                    ; fin del programa


#014                                   ; es la casilla donde está almacenado en 32 bits el numero expresado de pi en binario
    0100000001001000       ; numero expresado de pi en 32 bits, en esta linea se encuentran los digitos mas significativos
    1111010111000010       ; numero expresado de pi en 32 bits, en esta linea se encuentran los digitos menos significativos

#010                                  ; es la casilla donde está almacenado en 32 bits el numero expresado de 3 en binario
    0100000001000000      ; numero expresado de 3 en 32 bits, en esta linea se encuentran los digitos mas significativos
    0000000000000000      ; numero expresado de 3 en 32 bits, en esta linea se encuentran los digitos menos significativos


Demostración de programa en ejecución
 http://sphotos-b.ak.fbcdn.net/hphotos-ak-snc6/228078_4702005673263_367423202_n.jpg
http://sphotos-c.ak.fbcdn.net/hphotos-ak-ash4/262809_4701999073098_1088179474_n.jpg
http://sphotos-f.ak.fbcdn.net/hphotos-ak-snc7/581418_4701999873118_699662225_n.jpg
http://sphotos-d.ak.fbcdn.net/hphotos-ak-snc7/404757_4701999553110_1893148642_n.jpg

Reflexión

Como reflexión de esta actividad puedo decir que fue una actividad entretenida, ya que en comparación con demás lenguajes de programación, según mi punto de vista, éste no cuesta aprender su funcionamiento y normas, por lo tanto lo hace un lenguaje quizas fácil, aunque sus contras sean que solo se utiliza en este programa llamado Simuproc, o por lo menos es en el único en donde utilizamos en este ramo (Introducción a las tecnologias de la información).

jueves, 6 de septiembre de 2012

Primer recorrido del NXT


Autor: Fermín Pradena.
Competencia: Desarrollo de Software (Nivel 1).
Palabras Clave: Programación, NXC, robótica, Lego, NXC.

Descripción de la Actividad
En esta primera actividad realizada en el ramo Programación de Robots, como grupo tuvimos que programar y armar por primera vez un robot, este tenia que ser capaz de recorrer un circuito; el cual tenia caminos plano, camino en subida y camino en bajada. El propósito del robot era que este debía dar un tour a supuestas turistas que estaban en él, para esto el robot debía avanzar y detenerse en ciertos lugares para que los turistas pudiesen tomar fotografías del tour.

Código de la solución, con sus debidos comentarios

task main ()   {
OnFwd(OUT_BC,75);
Wait(2300);                         //Primer avance del robot

OnFwd(OUT_BC,0);          //Detenerse
Wait(2000);

OnFwd(OUT_BC,75);        //Segundo avance
Wait(3600);

OnRev(OUT_C,30);           //Giro hacia la izquierda
Wait(850);

OnFwd(OUT_BC,0);          //Detenerse
Wait(2000);

OnFwd(OUT_BC,75);        //Tercer avance, subiendo por pendiente
Wait(2300);

OnRev(OUT_C,30);           //Giro hacia la izquierda
Wait(850);

OnFwd(OUT_BC,0);          //Detenerse
Wait(2000);

OnFwd(OUT_BC,60);        //Cuarto avance, bajando la pendiente y seguir el camino
Wait(3000);
OnFwd(OUT_BC,75);
Wait(3500);

OnRev(OUT_C,30);            //Giro hacia la izquierda
Wait(845);

OnFwd(OUT_BC,60);        //Quinto y ultimo avance derecho
Wait(1800);

OnRev(OUT_C,33);           //Giro para comenzar a hacer el cuadrado
Wait(850);

OnFwd(OUT_BC,75);        //Girando en torno a un cuadrado
Wait(2000);
OnRev(OUT_C,33);
Wait(850);
OnFwd(OUT_BC,75);
Wait(2000);
OnRev(OUT_C,33);
Wait(850);
OnFwd(OUT_BC,75);
Wait(2000);
OnRev(OUT_C,33);
Wait(850);
OnFwd(OUT_BC,75);
Wait(2000);

Off(OUT_BC);                    //Apagar motores
}                                         //Fin del programa

 Como una conclusión de este codigo, se aprecia que solo se usan comandos básicos de programación NXC, estos son OnFwd (avanzar), OnRev(retroceder), Wait(realizar acción por "n" milisegundos) y OFF(apagar).

 Video de la actividad


Reflexión 
Esta primera actividad fue entretenida, ya que fue la primera vez que armamos un robot NXT y programamos el NXC, también fue una actividad que nos abrió rápidamente a la ingeniería, ya que por ejemplo para armar el robot, este tenia que ser capaz de subir y bajar pendientes, existieron varios fallos donde este se volcaba o no lograba subir, pero al final se encontró la apariencia correcta para que completara su objetivo.