Control de tareas en RobotC

El objetivo principal del procesador es ejecutar la secuencia de instrucciones de los programas de entre un posible conjunto de programas. Cuando es uno sólo el programa a ejecutar, podemos intuir fácilmente cuál es la secuencia de operaciones que se está ejecutando sin más que seguir la traza del proceso en curso. La ayuda de los entornos de programación puede ser de valor incalculable cuando nuestra aplicación se complica y son varios los procesos que deben ser procesados. Seguir leyendo →

Robot Multiproceso en NXT-G

IMG_2556Hoy queremos presentar un pequeño experimento realizado por nuestros alumnos en uno de nuestros talleres de robótica. Se trata de un robot que utiliza dos ladrillos NXT que se comunican entre sí mediante bluetooth. Este experimento nos permitirá explorar aún más las posibilidades de interacción bluetooth entre ladrillos, es decir, un robot Multiproceso en NXT-G, fundamental para controles remotos (como ya hemos visto en varios artículos). Pero también para robots que tengan más de un NXT. Seguir leyendo →

Problema de la deriva en NXT y LeJOS

lateralEstudiamos hoy el problema de la deriva en NXT y LeJOS. Se trata de uno de los problemas que tienen cualquier sistema que tenga que desplazarse, y en particular un robot NXT móvil: la deriva en la navegación. La deriva es el desvío de la trayectoria real respecto de la trayectoria prevista, y se debe a diversos factores. Cuanto menos deriva tenga un robot más preciso será su desplazamiento y menos se desviará de su destino objetivo al finalizar el movimiento. Este problema es muy común con los LEGO Mindstorms NXT debido a que no son robots con una forma única, sino que hay muchos montajes diferentes de robots móviles. La forma en que estén implementados los programas también influye en esta deriva. Seguir leyendo →

Manejo de imagenes y shift register en LabVIEW

Shift Register 5En el artículo del Lunes vimos como recorrer imágenes con LabVIEW. Para ello necesitábamos un bucle anidado que podíamos recorrer gracias a que teníamos la información de la altura, la anchura y el color de la imagen. A la hora de manejar bucles muchas veces nos interesa saber los resultados de operaciones en iteraciones anteriores para poder manejarlos y operar con ellos, aquí es donde entran los Shift Register, que guardan la información que queramos de una iteración anterior para que podamos usarla cuando queramos. En el artículo de hoy vamos a crear una nueva imagen a partir de la información que saquemos de una que ya tengamos. En resumen, manejo de imagenes y shift register en LabVIEW- Seguir leyendo →

Microsoft Robotics Developer Studio, ¡ahora Gratis!

Se acaba de anunciar que Microsoft Robotics Developer Studio será gratuito a partir de ahora. Esta herramienta permite programar y controlar (incluso remotamente) Mindstorms NXT haciendo uso de Visual Basic y C#. Anteriormente existían 3 versiones de este software, dos de las cuales requerían licencias de pago, ahora las 3 versiones se han unido en una sola, que puede descargarse y usarse sin coste alguno desde la página de Robotics Developer Studio. Seguir leyendo →

JCreator para LeJOS NXJ

Ya hemos comentado en otros artículos la forma de instalar dos entornos de desarrollo para trabajar con LeJOS, el Eclipse y NetBeans. JCreator para LeJOS NXJ es otro entorno de desarrollo que incorpora un amplia abanico de funcionalidades. Matthias Paul Scholz, uno de los desarrolladores del proyecto LeJOS NXJ, la plataforma Java para el NXT, ha creado un pequeño tutorial sobre cómo poner a punto JCreator para poder emplearlo con LeJOS NXJ. Seguir leyendo →

Marble Run en LabVIEW

Ya hemos visto en un artículo anterior una implementación de máquina de estados que nos permitía hacer un sigue líneas. Ahora vamos a utilizar el Template de máquina de estados que viene con LabVIEW para un poner en marcha nuestra marble run en LabVIEW. Este diseño se basa en el trabajo de Erling (Posibilidades del Datalog), aunque en este caso hemos utilizado un sensor de luminosidad para detectar la presencia de la bola y diferenciar el valor. Seguir leyendo →