Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

Mi primer robot (java inside)

Marzo 23rd, 2004 - [Enlace local]

Mis primeros pasos en el mundillo de la robótica van dando sus frutos. Así, os presento el primer robot que he construído:



Bueno, la construcción no tiene mérito, es el rover que viene como primer ejemplo en la Contructopedia de R.I.S., dotado con el sensor de luz dirigido hacia el suelo con el objetivo de seguir una línea negra. Voy poco a poco aprendiendo los truquillos de construcción con Lego y espero ir complicando los diseños con el tiempo.

Pero claro, a mí lo que más me gusta es la programación, y sobre todo la programación en Java, así que sustituí el firmware original de Lego por leJOS, y tras leer un poco la documentación y ver un par de ejemplos sencillos, en apenas media hora hice mi primer programa en java para el robotito: un sencillo programa que hace que el robot siga una línea negra que forma un circuito ovalado (la pista que viene incluída en el kit R.I.S.). Asombrosamente el robot recorre perfectamente el circuito con un código tan sencillo como éste:

import josx.platform.rcx.*;
// Programa para recorrer una linea negra que forma un circuito ovalado

public class Circuito implements SensorConstants {

public static void main(String[] args) throws InterruptedException {
        // Configurar sensor de luz
        Sensor.S2.setTypeAndMode(SENSOR_TYPE_LIGHT, SENSOR_MODE_PCT);
        Motor.A.setPower(2);
        Motor.C.setPower(2);
        while (true){
                Sensor.S2.activate();
                int valor = Sensor.S2.readValue();
                if (valor > 50) {
                        // El robot esta fuera de la linea negra, hay que rectificar la direccion
                        Motor.A.stop();
                        Motor.C.stop();
                        rectificar();
                }else {
                        // el robot esta sobre la linea negra, seguimos adelante
                        Motor.A.forward();
                        Motor.C.forward();
                        Thread.sleep(100);
                }
        }

}

public static void rectificar(){
        Motor.A.backward();
        Motor.C.forward();

}
}

Evidentemente, el código esta poco trabajado, pero da una idea de lo sencillo que es la programación y de los resultados que se pueden conseguir. Ahora a seguir leyendo la documentación de leJOS y a trastear con las piezas de lego para construir nuevos robots y jugar con otros sensores. Os tendré informados de mis avances …

» Leer más, comentarios, etc...