jueves, 20 de agosto de 2009

Presentación

ICARO es un software desarrollado con la intención de acercar de una manera trasparente al usuario los fundamentos de la programación (iteraciones, repeticiones, recursividad, si condicionales) aplicados a un contexto físico como puede ser un robot o cualquier sistema de automatización.

Uno de los principales objetivos de la Robótica Educativa es la generación de entornos de aprendizaje basados fundamentalmente en la práctica real de los estudiantes. La idea es que los niños puedan concebir, desarrollar y poner en práctica diferentes robots educativos que les permitirán resolver algunos problemas y facilitarán, al mismo tiempo, ciertos aprendizajes.

La Robótica Educativa, dado su carácter polivalente y multidisciplinario, constituye una actividad que permite el abordaje de conocimientos complejos en torno a las nuevas tecnologías a partir de aportes provenientes de la electrónica, física, matemática e informática.

En particular, es posbile trabajar la enseñanza de las bases fundamentales de la lógica de los sistemas computacionales a través de la creación de un mecanismo autónomo electrónico (robótico).

Por otro lado, la posibilidad de desarrollar una serie de juguetes-objetos implica una experiencia que contribuye a expandir la creatividad y el pensamiento reflexivo y científico de los alumnos (en relación la formulación de hipótesis, la experimentación, la elaboración de conclusiones).


En otras palabras, se trata de crear las condiciones para la apropiación de conocimientos por parte de los niños y de permitir su transferencia en diferentes campos de problemas. Se trata de otorgar a los alumnos un rol activo en sus aprendizajes, colocándolos como diseñadores de sus propios proyectos y constructores de conocimientos.


miércoles, 19 de agosto de 2009

Como funciona ICARO

ICARO se podría considerar como un Framework para trabajar con el puerto paralelo (lpt) de una manera sencilla.

Su funcionamiento se basa en escribir instrucciones en un archivo de texto plano para que el software (que funciona como un intérprete) vaya leyendo linea por linea y enviando la información traducida al puerto paralelo, y mediante un hardware de protección eléctrico, poder encender/apagar distintos mecanismos electrónicos como motores, motores paso a paso, solenoides, servos etc etc.
El puerto paralelo es una interfaz entre una computadora y un periférico cuya principal característica es que los bits de datos viajan juntos enviando un byte completo o más a la vez. Es decir, se implementa un cable o una vía física para cada bit de datos formando un bus. El puerto paralelo de una PC es ideal para ser usado como herramienta de control de motores, relés, LED's, etc. El mismo posee un bus de datos de 8 bits (Pin 2 a 9) y muchas señales de control, algunas de salida y otras de entrada que también pueden ser usadas fácilmente.



Diagrama de pins del conector DB-25 estándar
para el puerto paralelo


En la figura se describen todas las líneas del estándar Centronics, con indicación de su denominación y el número de pin que le corresponde, tanto en el conector tipo Centronics de 36 pines como en el conector DB-25. En esta tabla se indica que las 8 líneas correspondientes a los bits de datos (Data 0 a Data 7) son líneas de salida, pues así lo establece el estándar Centronics, sin embargo y sobre todo en las implementaciones más recientes, la circuitería asociada al interface del puerto paralelo puede ser tal que las líneas de datos pueden ser leídas desde el PC y, por tanto, ser consideradas como líneas bidireccionales.

Cuando se envía un Byte al puerto paralelo, este lo separa y manda cada bit (0/1) por un pin del concetor (Data 0 a Data 7). Como los niveles de tensión y de corriente coinciden con los niveles de la lógica TTL, cuyos valores típicos son 5v - 2.6 mA para un estado alto (1) y 0V para un estado bajo (0), cuando un pin del puerto esta en estado 1, tiene una tensión de 5 volt, en cambio cuando esta en estado 0, no hay tensión a la salida del pin.

De esta forma es sencillo controlar componentes, sólo hay que saber calcular el valor binario que se le envía al puerto para poder activar (que tenga tensión) el pin especifico del conector db25.

martes, 18 de agosto de 2009

Primeros pasos con ICARO

Una vez descargadas las fuentes del software (o el binario), se tiene que crear un archivo de texto plano (usando cualquier editor de texto como vi, emac, nano, gedit etc.) con las instrucciones para pasar al Framework.

El sistema ICARO se puede considerar como un lenguaje de programación interpretado. Cada orden que se escribe es interpretada por el programa y ejecutada hasta llegar a la instrucción “final”. Todo el código debe empezar con la instrucción “inicio” y terminar con la instrucción “final”.


Código de ejemplo

#----programa de ejemplo---- 

inicio

#(todo el codigo que se quiera ejecutar)
final

Para ejecutar el programa hay que grabar el archivo (ejemplo.icr) y en la terminal escribir el siguiente comando:


$\icaro \directorio\ejemplo1.icr
El programa leerá el archivo y comenzará a interpretar las instrucciones. En el caso del código "ejemplo1.icr", el sistema elimina los comentarios (todas las líneas de código que empiezan con el carácter #) y procede a leer las instrucciones después de la instrucción "inicio". Como no hay ninguna instrucción, al leer "final" el sistema sale del programa.


La instrucción multipuerto(valor,tiempo)

Esta es la instrucción más importante y básica del sistema; tiene dos valores: en el primer campo se ingresa el valor en decimal (de 0 a 255) que se pasará (en binario) al puerto paralelo, y en el segundo campo se ingresa el tiempo en milisegundo que el sistema esperará hasta pasar a la próxima linea del código.

El ejemplo mas básico de programa funcional en sistema ÍCARO sería:


Código de ejemplo

#----programa de ejemplo----

inicio
#enciende los 8 pines del conector db25
multipuerto(255,1000)
#apaga los 8 pines del conector db25
multipuerto(0,0)
final


Al ejecutar

$\icaro \directorio\ejemplo2.icr


Se prenderán los 8 bits del puerto (tendrán tensión) durante 1000 milisegundos (1 segundo) y luego se apagarán.
De esta forma, se debe hacer un cálculo matemático para saber que valor en binario representan los pines que hay que activar, para controlar los distintos dispositivos que se conecten al puerto.