
¡Es el objetivo de AutoBit!
En informática se han prometido muchas cosas fáciles, pero... ¡No lo son!
AutoBit
comenzó siendo un programa para resolver la lógica de automatismos todo-nada, pero ha terminado como
sistema capaz de programar tareas de propósito general. Fué pensado especialmente para las áreas de automatismos,
pero sus características lo hacen adecuado para crear recursos educativos y otras aplicaciones sin
necesidad de programar, al menos de la forma que se entiende con los lenguajes de programación clásicos.
El proyecto no ha llegado a liberarse de un aprendizaje mínimo, pero si deseas crear recursos propios no te
defraudará. Puedes olvidarte de las líneas de instrucciones y recurrir solamente a representaciones gráficas,
manteniendo un alto grado de flexibilidad para hacer lo que quieras.
Tengo una nueva página distribuida en secciones y con información más amplia. En ella podrás descargar
gratuítamente el programa, lo que no facilita este servidor y lo que ha sido el motivo para incluir el siguiente
enlace:
http://es.geocities.com/yacorre
AutoBit, un programa para recursos didácticos (y más...)

Esta es la primera versión del programa (1.0) y todavía se puede considerar como un libro en blanco, sin
embargo tiene todo lo necesario para comenzar a trabajar. Si este sistema de recursos progresa, cuando
tenga un poco más de rodaje habrá crecido en posibilidades que cualquiera puede añadir (la capacidad de
crecer es una de sus características y con recursos adecuados se puede eliminar la necesidad de programar).
Estas son las características fundamentales del proyecto:
1.-
Está basado en componentes con capacidad de relacionarse entre sí mismos y con el usuario, de modo
que lo que se define son mensajes entre componentes y no instrucciones que deban ser ejecutadas en riguroso
orden. Todos los mensajes se ejecutan de forma simultánea, de la misma forma que ocurre en la vida real.
Por ejemplo, si tenemos un componente que simula un gallo y le decimos que cante, no parará de cantar hasta
que le digamos lo contrario, así de facil.
2.-
Todos los mensajes se configuran sin escribir código (de forma gráfica), pero la lógica de estos mensajes
puede ser tan elaborada como se quiera, por ejemplo, al gallo le podemos decir que cante solo si está
amaneciendo.
3.-
Una característica fundamental es que el proyecto puede seguir creciendo en recursos. Cada componente
creado puede ser utilizado en cualquier programa, pero no solamente componentes gráficos, sino también
aquellos que resuelven una actividad determinada. Por ejemplo un trazador de funciones de propósito general
permitirá dibujar cualquier función, en cualquier posición y con cualquier escala. Es fácil deducir que con una
nutrida colección de componentes se habrá eliminado la necesidad de programar
4.-
Se dispone de un editor de componentes cuyo modo de proceder es parecido al de un programa de dibujo.
Se han previsto 7 tipos básicos de componentes, cada uno de ellos con unas aplicaciones características y con
unos mensajes determinados que pueden recibir y transmitir. Estos componentes y sus mensajes se han
pensado para conseguir la mayor flexibilidad posible en las aplicaciones. Por ejemplo los de tipo gráfico pueden
contener texto y símbolos, imágenes recortables y dibujos vectoriales. Cada parte de un componente puede ser
editada por separado y hacerse visible o no visible a lo largo de una secuencia (esto aporta la posibilidad de
crear largas presentaciones o animaciones tipo Disney). En dicha secuencia se pueden utilizar transformaciones
como las traslaciones, giros, escalado y transparencias. Hay un octavo tipo de componente (las páginas de
programa) que puede programar el usuario a partir de otros componentes y es el que aporta nuevos recursos
al proyecto. El usuario configura sus capacidades y define sus propios mensajes de entrada y salida
5.-
Se dispone de un editor de funciones gráficas que servirá para definir los mensajes. Los más simples
consisten en consultar un mensaje de salida de un componente o cualquier otro valor, y conectarlo con un mensaje
de entrada de otro componente o cualquier otra función que defina el usuario. Los mensajes de entrada se
denominan funciones porque dependen de otros valores como pueden ser los mensajes de salida. Los
mensajes de salida tienen entonces el carácter de variables. Aquellas funciones que dependan de más de una
variable se crean mediante bloques de dos entradas (generalmente) y una salida. El editor presenta ayuda
rápida y resumida sobre la función que desempeña cada tipo de bloque y cualquier otra característica necesaria.
6.-
La información que se presenta sobre el desarrollo de un programa es completa e inmediata. A medida que
se construyen las funciones puede verse el resultado de su ejecución en un panel de simulación y el editor de
funciones muestra todos los valores de todas las entradas y salidas, así como todo aquello que pueda ser
verdadero o falso. El panel de simulación es la base para comprobar qué es lo que se necesita modicar o
añadir, por ejemplo, al ver que un componente está mal posicionado, habrá que consultar las entradas de dicho
componente y ver cuáles permiten posicionarlo, después solo habrá que utilizar esas entradas y asignarlas
valores (la nueva posición se verá en ese mismo momento).
7.-
Cuando las funciones construidas satisfacen las condiciones planteadas, tendremos la posibilidad de crear
con ello un programa o una página de programa. La diferencia fundamental está en que el programa se ejecuta
en una ventana propia y la página es un componente personalizado cuyas características ya se han comentado
a grandes rasgos. Un programa puede ser ejecutado desde cualquier otro programa y varios programas
pueden formar un proyecto común para compartir datos del disco o comunicarse entre sí, de forma que
cualquier información que modifique uno de ellos quedará actualizada inmediatamente para los demás.
8.-
La utilidad de AutoBit en el campo de los automatismos consiste en la programación manual o en la creación
automática del programa que pueda controlar un automatismo simulado. Son ideales las páginas de programa
para crear previamente simulaciones de automatismos, dotándolas de las entradas y salidas necesarias para
el control de la simulación. Cualquier página de simulación permitirá plantear numerosos problemas de control
diferentes.La resolución automática resuelve sistemas de tipo todo-nada, lo que es en definitiva una lógica de la
decisión aplicable en muchas situaciones, no solamente con automatismos. Está basado en la teoría de los
diagramas de Karnaugh tanto para problemas combinacionales como secuenciales, gestionando de forma
automática todas las memorias que sean necesaias. El límite de variables con el que trabaja es de 30, pero
pueden ser muchas más si el problema se divide en partes que lo simplifiquen.
Nuevos recursos.
Cada utilidad o recurso se acompaña de un breve archivo de ayuda que explica cómo utilizarlo en los
programas y normalmente de un programa de ejemplo a modo de demostración. Alguno de estos recursos
necesitan un mínimo de programación pero no será complicado en ningún caso y será mostrado en el archivo
de ayuda.
1.- Presentaciones (utilidad de propósito general).
Una página de programa se encarga del control de una secuencia que puede crearse con el editor de
componentes, para ello se puede elegir entre un control por teclado o por medio de botones con el ratón.
Mediante una lista se crea un índice de contenidos que sirve para saltar directamente al punto correspondiente
de la secuencia. El resultado final será un programa pero se podrá realizar cambios en la presentación
editando la secuencia, sin necesidad de intervenir en el programa. También es posible añadir la presentación
en cualquier programa que contenga otros componentes y controlarla por programa en lugar de hacerlo
mediante los controles indicados anteriormente. Contiene una presentación de ejemplo que explica cómo
crear sus propias presentaciones.
2.- Simulación de un aparcamiento (aprendizaje de la lógica de control).
Se trata de un ejercicio de control de un aparcamiento simulado que contiene semáforo, barrera de entrada y
de salida, dispositivo de apertura de la salida mediante tarjeta, detectores para los coches y coches que entran
y salen de forma aleatoria. Es posible cualquier forma de control, aunque el reto consiste en no cometer
ninguna incoherencia, como sería el caso de permitir la entrada con el aparcamiento lleno o de abrir la salida
sin haber pagado. El control debe programarlo el usuario, ya que es una utilidad para el aprendizaje de la
lógica digital, lo cuál se ajusta perfectamente a la forma de programar con AutoBit. El programa que cumpla
las exigencias será fácilmente traducible a esquemas cableados o al lenguaje de programación de
autómatas y será posible obtener el programa de forma automática con el editor de funciones, simplemente
indicando lo que debe ir haciendo. AutoBit contiene un tutorial que explica un sencillo ejemplo de resolución
automática.
3.- Simulación de un juego de lámparas (aprendizaje de la lógica de control).
Como el anterior, es una utilidad para el aprendizaje de la lógica de control. Contiene 6 lámparas, 6 pulsadores
y 6 interruptores y lógicamente, permite plantear múltiples problemas de control como pueden ser juegos de
luces, secuencias, etc. Contiene un programa de ejemplo que incluye una intermitencia, varios juegos de luces,
encendido aleatorio, una conmutada y encendido de un número de lámparas distinto con cada pulsador.
4.- Test de evaluación (utilidad de propósito general).
La presentación de las cuestiones y la gestión de respuestas correctas corre a cargo de una página de
programa. Solo se necesita crear una secuencia con las preguntas y una lista para indicar las respuestas
correctas. El programa necesario es mínimo y siempre el mismo, de modo que no es ningún problema
crear todos los test que se quiera. Incluye un test de ejemplo al que se ha añadido una animación de muestra
que puede servir como ejemplo para utilizar otros componentes en los test. Contiene controles para avanzar y
retroceder a lo largo de las cuestiones, número de preguntas con respuesta y número total de preguntas.
Cuando se completan, se muestra el número de aciertos.