practica1

307 views

Published on

Published in: Technology, Health & Medicine
  • Be the first to comment

  • Be the first to like this

practica1

  1. 1. Pr´cticas con Lego NXT a Rob´tica o o 3 curso de Ingenier´ T´cnica en Inform´tica de Sistemas y Gesti´n ıa e a o Universidad Rey Juan Carlos Pr´ctica 1 - Radar a En la fase 0 aprendimos a utilizar el sensor de ultrasonido, uno de los sensores m´s utiles del kit NXT. Con ´l fuimos capaces de detectar obst´culos, de manera a ´ e a que pod´ıamos esquivarlos para no chocar con ellos, de manera reactiva. Como era de esperar este sensor no es perfecto y, debido al fen´meno de la reflexi´n especular, o o cuando nos acerc´bamos a un obst´culo con bajo grado de incidencia, el sensor no a a registraba el rebote de los ultrasonidos y choc´bamos contra la pared u obst´culo. a a En esta fase vamos a construir un sensor m´s elaborado y rico que simule un radar, a aunque m´s bien deber´ a ıamos llamarle ultrasonido de barrido. Preparando el robot Para esta fase deber´s modificar el dise˜o de tu robot para que el sensor de a n ultrasonidos pueda abarcar un rango de 180◦ (siempre apuntando hacia la parte frontal del robot). Deber´s utilizar el tercer motor incluido en el kit para gobernar a el giro del sensor. Presta especial atenci´n al guiado de los cables, para evitar o que al girar se enganchen con alg´n elemento del robot. Evita los dise˜os ultra- u n sofisticados y pesados. Si tu soluci´n es funcional, cuanto m´s simple mejor. En la o a red puedes encontrar algunos dise˜os, aqu´ te damos un ejemplo usando un sensor n ı no convencional. Figura 1: Ejemplo de montaje
  2. 2. Almacenando la informaci´n o El objetivo principal de la pr´ctica es crear una nueva clase Radar.java que a contenga los siguientes m´todos p´blicos: e u public Radar (int vel,int resol,int amp,UltrasonicSensor sonar,Motor motor) Este ser´ el contructor de la clase y queremos que acepte como par´metros a a la velocidad de escaneo, la resoluci´n en grados del radar, la amplitud en grados o que es capaz de sensar, el objeto de tipo UltrasonicSensor que vamos a usar como sensor y el motor que va a controlar el movimiento de escaneo. public int[] newScan() Este m´todo provocar´ un nuevo movimiento de escaneo. Se deber´ hacer un e a a barrido completo con los par´metros apropiados y se deber´n registrar las medidas a a para ser devueltas en forma de array. public void showOnScreen(boolean value) Este m´todo habilitar´ o deshabilitar´ la presentaci´n de los datos del radar e a a o por pantalla. Si est´ habilitada, cada nuevo escaneo provocar´ un nuevo refresco a a de la pantalla con los datos actualizados. Usando nuestro radar Para usar nuestro radar crearemos la clase NavigationRadar.java. En ella ins- tanciaremos un objeto de tipo Radar y lo usaremos para navegar por el entorno. A continuaci´n mostramos un ejemplo de un peque˜o programa principal que pre- o n senta por pantalla los datos capturados por el radar. import lejos.nxt.*; public class testRadar { public static void main(String[] args) throws Exception { UltrasonicSensor sonic = new UltrasonicSensor(SensorPort.S1); Radar radar = new Radar(500,20,180,sonic, Motor.B); radar.showOnScreen(true); int[] data = new int[180 / 20]; while(!Button.ESCAPE.isPressed()) { data = radar.newScan(); } } } 2
  3. 3. Debes programar un mecanismo de navegaci´n que, haciendo uso del radar, o comande al robot movimientos para viajar a las zonas con menos obst´culos. Me- a diante el radar deber´s observar que el robot ahora dispone de mayor informaci´n a o a la hora de seleccionar una direcci´n o asumir que hay un obst´culo en la direcci´n o a o de avance del robot. 3

×