Está en la página 1de 16

NXT PC Remote Control

Introduccin
Este proyecto provee a los usuarios de Linux, la posibilidad de
controlar un Robot Lego NXT por medio de un computador
usando el dispositivo bluetooth. Otras aplicaciones con similares
caractersticas pueden ser encontradas, pero ninguna de ellas
trabaan completamente. !ientras algunas solo corren sobre
"indo#s, otras corren sobre Linux sin la $uncionalidad bluetooth.
%ara mayor compresi&n, ver videos en youtube buscando la
expresi&n 'nxt-pc-remote-control(.
) * )
Dedicado a mis hijos, quienes ahora ya pueden
jugar con su Kid de LEGO Mindstorms
desde sus computadores con Linux
) + )
1. Principales facciones
1.1 Minimalista
La inter$ace de NXT %, Remote ,ontrol es bastante limpia,
preservando lo esencial. -n usuario puede enviar comandos al
robot NXT en solo . pasos obvios/
1 Bsqueda de dispositivos cercanos
2 Conecccin con el dispositivo elegido
3 Jugar
1.2 Rapidez y Precisin
,omunmente, ugar con un Robot NXT re0uiere de dos tipos de
velocidades/ una velocidad r1pida para despla2amientos y otra
velocidad lenta para a$inar movimientos. NXT %, Remote ,ontrol
utili2a la telca 3lt para cambiar de una velocidad a otra con un
solo to0ue.
Estas velocidades pueden ser austadas en $orma separada.
1.3 Prorama optimizado
El leguae de programaci&n utili2ado para crear NXT %, Remote
,ontrol 4,55 6 permite eecutar ordenes desde el computador en
$orma mas r1pida y utili2ando menos recursos computacionales.
) . )
2. Re!uerimientos
NXT %, Remote ,ontrol, $ue dise7ada para todos a0uellos
usuarios 0ue re0uieren manipular un Robot NXT de Lego desde
su computador con sistema operativo linux, por este motivo se
re0uiere 0ue el usuario disponga de/
Robot NXT de Lego 4!indstorms +.86
%, con dispositivo bluetooth corriendo sistema operativo
linux
2.1 Ro"ot NXT de #eo $Mindstorms 2.%&
La industria de LE9O ha creado una linea de construcci&n
denominada !indstorms, actualmente se encuentra en el
comercio la versi&n +.8 de este :id. ;e prevee 0ue para
mediados de +8*. ya se encuentre disponible la versi&n ..8 4NXT
%, Remote ,ontrol ha sido probado con la versi&n +.86.
!indstorms proporciona al usuario la posiblidad de armar robots
por medio de $ichas compatibles con las $ichas de un LE9O
normal. http/<<mindstorms.lego.com<.
3dicionalmente, provee una unidad de procesamiento central
) = )
denominada Brick, la cual es capa2 de procesar pe0ue7os
programas para mover . servomotores. ,on esto, LE9O ha
generado una nueva era de robots armables susceptible de un
pe0ue7o grado de inteligencia arti$icial.
El portal http/<<###.nxtprograms.com<index+.html o$rece una
gran cantidad de proyectos para armar di$erentes tipos de
robots. -na de las $ormas de trabaar con estos proyectos se
basa en controlarlos va bluetooth desde un computador.
2.2 PC con dispositi'o "luetoot( corriendo
sistema operati'o linu)
!indstorms de LE9O es entregado al p>blico con un so$t#are
denominado NXT)9, el cual solo puede ser eecutado desde
entornos "indo#s o !ac. Teniendo en cuenta 0ue actualmente
los usuarios de sistemas operativos linux han alcan2ado un alto
porcentae respecto a la poblaci&n en general de usuarios de
computadores, se ha visto la necesidad de iniciar proyectos de
desarrollo de so$t#are para 0ue los usuarios de Linux puedan
trabaar con los Robots NXT directamente, sin necesidad de
levantar m10uinas virtuales, ya 0ue NXT)9 tampoco puede ser
eecutado con '#ine( http/<<###.#ineh0.org<.
) ? )
3. *escara y puesta en marc(a
Esta primera versi&n 8.r+@ de NXT %, Remote ,ontrol, $ue creada
con destino a usuarios de Linux. ;e ha estimado 0ue para la
versi&n *.88 ya se pueda utili2ar esta aplicaci&n desde entornos
"indo#s y !ac.
NXT %, Remote ,ontrol provee . $ormas de ad0uirirlo/
3.1 Comunidad +rc(linu)
%ara los usuario de 3rchlinux, se ha provisto en el repositorio de
usuarios https/<<aur.archlinux.org el pa0uete de instalaci&n, el
cual puede ser instalado siguiendo las instrucciones para este
tipo de pa0uetes. La ruta exacta del pa0uete de instalaci&n es/
https/<<aur.archlinux.org<pac:ages<nxt)pc) remote)control< . Este
pa0uete tambiAn es visible para ser instalado desde 'yaurt(.
3.2 Comunidad de"ian $*e"ian, #inu) Mint ,
-"untu, )u"untu&
%ueden descargar el pa0uete de instalaci&n desde/
http/<<code.google.com<p<nxt)pc)remote)control<do#nloads<list,
) @ )
encontr1ndose para sistemas de .+bits y para @=bits. TambiAn
se ha dispuesto la posibilidad de descargar estos pa0uetes desde
http/<<###.udenar.edu.co<sonar.
3.3 Cdio fuente para compilar
El c&digo $uente de este aplicativo esta aloado en el servidor de
c&digo de google/ http/<<code.google.com<p<nxt)pc)remote)
control< desde ah se puede descargar el so$t#are, compilarlo y
ponerlo en $uncionamiento.
3ntes de eecutar los pasos re0ueridos para poner en marcha a
NXT %, Remote ,ontrol, es necesario tener instalado como
obligatorio los siguiente pa0uetes/
- subversion
- qt o ma!or
- icu
- blue"
El procedimiento para hacer la descarga y compilaci&n correcta
es el siguiente/
) B )
Paso 1 - Ubicarse en la ruta destinada para la compilacin del
proyecto
$ mkdir pathwork
$ cd pathwork
Paso 2 - Hacer el checkout del cdigo usando subversion.
$ svn checkout http://nxt-pc-remote-
control.googlecode.com/svn/trunk/ nxt-pc-remote-control
Paso 3 - Compilar el proyecto desde la carpeta build!
$ cd nxt-pc-remote-control/build
$ qmake -o Makefile ../nxt-pc-remote-control.pro
$ make
Paso " - #$ecutar el programa
$ ./nxt-pc-remote-control
) C )
.. Manual de uso
La utili2aci&n de NXT %, Remote ,ontrol no re0uiere de
conocimientos especiali2ados, ni mucho menos un re0uerimiento
de edad mnima. De hecho, esta apliaci&n $ue dise7ada para ser
manipulada por ni7os de corta edad.
La minimicidad de NXT %, Remote ,ontrol contribuye a 0ue
pueda ser utili2ado de $orma intuitiva.
..1 Iniciar aplicacin
%ara iniciar NXT %, Remote ,ontrol, se ha provisto de un lan2ador
0ue puede ser encontrado en la secci&n de uegos del escritorio.
Debido a 0ue los comandos son enviados por medio de la
conexi&n bluetooth, es necesario asegurarse de 0ue el
computador tenga encendido el dispositivo bluetooth.
El procedimiento de establecer el enlace entre NXT %, Remote
,ontrol y el Robot NXT se reali2a en + pasos/
Paso 1 % &uscar dispositivos cercanos
) E )
El primer bot&n dispuesto en la inter$ace 'Fuscar(, escanea
todos los dispositivos con bluetooth 0ue se encuentren
disponibles cerca del computador. -na ve2 0ue el bot&n es
accionado, la aplicaci&n 0uedar1 inactiva aproximadamente *8
segundos mientras se reali2a la b>s0ueda.
3l $inali2ar el proceso, se listar1 el resultado en el combo
desplegable.
En el listado se puede visuali2ar la in$ormaci&n de cada
dispositivo encontrado. Esta in$ormaci&n est1 compuesta por la
direcci&n et#ernet seguida del nombre asociado al dispositivo.
NXT %, Remote ,ontrol podr1 conectarse con cual0uiera de los
dispositivos 0ue lleven por nombre GNXTH.
;i no $ue posible encontrar dispositivos cercanos al computador,
) *8 )
NXT %, Remote ,ontrol in$ormar1 de lo sucedido.
De la lista de dispositivos seleccione el 0ue corresponda con el
NXT brick deseado.
Paso 2 % Conectar con el 'obot ()*
El bot&n ',onectar( enla2a la aplicaci&n con el Robot NXT.
Durante esta acci&n la aplicaci&n se inactivar1 aproximadamente
? segundos. 4El sistema operativo reali2ar1 intercambio de
claves con el Brick usando por de$ecto *+.=6
;i no se muestra ning>n mensae de error, entonces, estar1 listo
para enviar comandos al Robot.
Las conexiones recientes, son guardadas por NXT %, Remote
,ontrol, de tal $orma 0ue en el $uturo no sea necesario escanear
nuevamente los dispositivos, y deando la posibilidad de
conectarse a un dispositivo directamente. 4$er en el apartado %2
&pciones adicionales6
..2 Controlar el Ro"ot NXT
,ontrolar el robot utili2ando NXT %, Remote ,ontrol es una tarea
intuitiva. %ara iniciar las pruebas se puede comen2ar creando
alguno de los proyectos explicados en
http/<<###.nxtprograms.com<proects+.html.
) ** )
El video tutorial adunto 4o 0ue se puede encontrar en IouTube6,
utili2a el prototipo 'orkli(t 0ue se encuentra en /
http/<<###.nxtprograms.com<NXT+<$or:li$t<index.html.
+espla,amientos
NXT %, Remote ,ontrol tiene programadas las teclas 3rriba y
3bao para hacer los despla2amientos. La velocidad con la cual
el robot se mover1 depende de la potencia con$igurada hasta el
momento.
-iros
Este tipo de robots como el presentado en el proyecto 'orkli(t)
gira al robot rotando las dos ruedas en sentidos contrarios, para
tal $in hay 0ue recordar conectar el servomotor 0ue tiene la
rueda derecha en el puerto F y el servomotor 0ue tiene la rueda
i20uierda al puerto ,.
NXT %, Remote ,ontrol tiene programadas las teclas i20uierda y
derecha para girar el robot. La velocidad de los giros tambiAn
depende de la potencia 0ue se haya con$igurado hasta el
momento.
) *+ )
.ccin del *ercer /ervomotor
El tercer servomotor est1 reservado para acciones adicionales.
En el caso de 'orkli() est1 acondicionado para elevar o descender
una carretilla de carga. NXT %, Remote ,ontrol tiene
programadas las teclas N y ! para hacer girar a este tercer
servomotor) acci&n 0ue conllevar1 a elevar y descender la
carretilla.
3l igual 0ue con los despla2amientos y los giros, la velocidad de
esta >ltima acci&n est1 condicionada a la potencia con$igurada.
0odi1icacin de Potencia
La velocidad con la 0ue se mueve el robot depender1 de la
potencia con$igurada, esta potencia es visuali2ada en la parte
in$erior de la inter$ace, la cual por de$ecto inicia en B8J. %ara
modi$icar este valor NXT %, Remote ,ontrol tienen programadas
las teclas '5( y ')( para aumentar o disminuir esta potencia.
El valor con$igurado desde esta opci&n, a$ectar1 la velocidad de/
los despla2amientos, los giros y la acci&n del tercer motor.
Cambio inmediato de velocidad
NXT %, Remote ,ontrol tiene programada una muy >til $unci&n
) *. )
0ue permite cambiar de potencia en $orma r1pida para lograr dos
obetivos/ agilidad y precisi&n.
NXT %, Remote ,ontrol tiene programada la tecla 3lt para 0ue
sostenida temporalmente, bae la potencia, lo cual permitir1 0ue
el robot realice movimientos con precisi&n.
El valor de la potencia de precisi&n se visuali2a en la parte
in$erior de la inter$ace, por de$ecto se encuentra con$igurada en
+=J. %ara con$igurar su valor tambiAn se utili2a la tecla '5( y la
tecla ')( acompa7adas de la tecla 3lt.
2pciones adicionales
3l pulsar click derec#o con el mouse, se presentar1 un men> de
opciones adicionales. 3 continuaci&n se explican cada una de
ellas.
Conexiones *ecientes/ Listar1 las >ltimas conexiones reali2adas.
,on esta opci&n el usuario podr1 conectarse al dispositivo de
) *= )
$orma directa, sin necesidad de hacer un escaneo de dispositivos
cercanos.
+impiar conexiones/ Remueve el listado de ,onexiones
Recientes, si ya no se desea tener la cac#e de conexiones 0ue ya
no se utili2ar1n mas.
Cambiar ,dioma/ %ermite intercambiar entre dos idiomas
disponibles para esta versi&n/ Espa7ol e KnglAs. La primera ve2
0ue se eecuta la aplicaci&n se presentar1 en KnglAs, una ve2
cambiado el idioma seguir1 mostr1ndose en el idioma
con$igurado.
-cerca de/ Lisuali2a la in$ormaci&n de los autores de la
aplicaci&n. %ara regresar a la presentaci&n por de$ecto, es
necesario hacer click sobre la presentaci&n actual.
/. Recursos
%ara desarrollar este proyecto $ue necesario apoyarse en varios
recursos, entre los cuales se cuentan/ Documentos tAcnicos %DM,
Documentos tutoriales "EF y %royectos de desarrollo operativo.
3#-2 04(+/*2'0/ ()* Communication protocol
#ttp.//mindstorms%lego%com/en-us/support/(iles/de(ault%aspx
Este documento %DM detalla los aspectos tAcnicos 0ue un
desarrollador de so$t#are necesita saber para establecer
conexi&n via Fluetooth con el Brick de LE9O.
) *? )
3#-2 04(+/*2'0/ ()* +irect commands
#ttp.//mindstorms%lego%com/en-us/support/(iles/de(ault%aspx
Este documento %DM describe el protocolo por medio del cual el
Brick de LE9O entiende comandos directos via Fluetooth, los
cuales eecuta directamente sin tener almacenado ning>n
so$t#are en su memoria.
5hat is a 3ego ()* &luetooth *elegram
#ttps.//000%robotappstore%com/1no0ledge-Base/2#at-,s-a-345-
Bluetoot#-5elegram/2%#tml
,on este documento escrito en $ormato "EF, se aclara la $orma
c&mo los comandos deben ser enviados $ormateados en un
streaming de bits.
C Plus Plus
#ttp.//000%cplusplus%com/
En este sitio se encuentra la documentaci&n del lenguae con el
cual $ue creado NXT %, Remote ,ontrol. Re$erencia precisa de
cada una de las $unciones y eemplos de los mismo.
6t Pro$ect - +ocumentation
#ttp.//qt-pro6ect%org/doc/qt-7%8/qtdoc/index%#tml
Este portal tienen la in$ormaci&n y los manuales de re$erencia de
las libreras visuales con las cuales esta creada la inter$ace de
NXT %, Remote ,ontrol.
.n 4ntroduction to &luetooth Programming
#ttp.//people%csail%mit%edu/albert/blue9-intro/index%#tml
Este documento escrito en $ormato "EF, escrito por el Dr. 3lbert
Nuang del !KT, explica c&mo crear un programa en ,55
utili2ando las apis de blue" para/ buscar, conectar y enviar
mensaes a otro dispositivo va bluetooth.
Proyects 1or ()* 2.7
#ttp.//000%nxtprograms%com/index2%#tml
En este portal, se pueden encontrar una gran variedad de
proyectos para reali2ar con un Oid de LE9O !indstorms. 43ntes
de ser creado NXT %, Remote ,ontrol, los proyectos de este
portal no podan ser trabaados a control remoto desde Linux6.
) *@ )

También podría gustarte