You are on page 1of 2

1. Sensor de ultrasonido.

Radar Simple Se trata de un robot tipo tribot que va girando a la par que va toma medidas de la distancia a la que se encuentra el objeto ms cercano frontalmente. Para ello se hace uso del sensor de ultrasonidos. El robot va representando en pantalla lo que detecta. Realizado un giro de 180 grados el robot volver a su posicin original. La complejidad de este programa no radica tanto es sus mtodos, sino en la complejidad de cmo calcular la relacin entre el valor en distancia que nos da el sensor de ultrasonidos y qu dibujar en la pantalla. A pesar de podamos haber elegido realizar una presentacin en el display tipo radar mediante el uso de funciones trigonomtricas, hemos preferido no hacer tan denso este artculo. La distancia que detecta el sensor de ultrasonido se va presentando como rayas verticales que van desde la base una altura que representa la distancia detectada. El cdigo del programa se presenta a continuacin: import lejos.nxt.*; public class RadarSimple { public static void main(String[] args) throws Exception { UltrasonicSensor u1 = new UltrasonicSensor(SensorPort.S1); int dist, x = 0 ,y = 0; u1.continuous(); for(int i = 0; i <= 180; i++){ dist = u1.getDistance(); x= (i*LCD.SCREEN_WIDTH)/180; y= (dist*LCD.SCREEN_HEIGHT)/255; for(int j = y; j <= LCD.SCREEN_HEIGHT; j++){ LCD.setPixel(255, x, j); } Motor.A.rotateTo(-2*i,true); Motor.B.rotateTo(2*i); } Motor.A.rotateTo(0,true); Motor.B.rotateTo(0); Button.ESCAPE.waitForPressAndRelease(); Thread.sleep(1000); } } Respecto a su funcionamiento: 07 - Ponemos el sensor de ultrasonido en modo continuo. 08 - Esto es un bcle for. Como se ve la definicin de los for esta dividida en tres partes: en la primera se define un entero llamado i cuyo valor inicial ser 0, el segundo es la condicin (mientras i sea menor o igual a 180 se repetir todo lo que hay dentro), la tercera parte es de cuanto en cuanto incrementar i, en este caso de uno en uno

(i++ es lo mismo que decir i = i +1)). Este bcle lo utilizaremos para tomar unas 180 medidas del sensor de ultrasonidos y dibujarlas. 09 - Guardamos en dist la distancia que ha medido el sensor de ultrasonidos. 10 - Aqu calculamos en que posicin x de la pantalla del LCD dibujaremos. Es una simple regla de 3: Si la pantalla mide SCREEN_WIDTH y vamos por la medida i de 180 tendremos que dibujar el la posicin (i*LCD.SCREEN_WIDTH)/180. Asi por ejemplo cuando i sea igual a 180, dibujaremos en la posicin SCREEN_WIDTH, o sea, en la parte ms a la derecha del LCD. 11 - Igual que la lnea anterior, pero con la posicin y. En este caso nos centraremos en la medida calculada con el sensor de ultrasonidos, por lo que el valor mximo ser 255. 12 - Este bcle lo usaremos para dibujar una linea desde la posicin x, y hasta la posicin x, SCREEN_HEIGHT. Para ello recorreremos esa lnea dibujando pxel por pxel. 15 y 16 - Giramos un poco las ruedas, lo que nos servir para tomar nuevas medidas con el sensor de ultrasonidos en la siguiente iteracin del bcle. 18 y 19 - Una vez termina todas las medidas y el dibujo hacemos que el robot regrese a su posicin original. http://blog.electricbricks.com/es/2010/03/tutorial-java-lejos-lego-mindstorms-nxt-7/

You might also like