Lihuen
RSSRSS AtomAtom

Instalación de myro en Lihuen

Myro es un paquete de módulos para python que permite controlar los robots del proyecto http://roboteducation.org/.

Instalar myro en Lihuen 3 y 4

Modo gráfico

Para instalar myro en Lihuen es necesario instalar con Synaptic los siguientes paquetes:

  • python-imaging
  • python-imaging-tk
  • python-serial
  • python-numpy
  • python-xmpp
  • idle
  • python-tksnack
  • bluetooth-serial-manager (sólo en Lihuen 4 o superior)

Luego descargar la última versión de Myro y finalmente descomprimirla e instalarla desde una terminal de root:

unzip myro-VERSION.zip
python setup.py install --install-layout deb

Luego salir de sesión y volver a entrar (o ejecutar bluetooth-applet).

Script de instalación alternativo

De forma alternativa puede ejecutar el siguiente script como usuario root:

#!/bin/sh
set -e
 
apt-get install python-imaging python-imaging-tk python-serial python-numpy python-xmpp idle python-tksnack bluetooth-serial-manager
 
WORK_DIR=$(mktemp -d)
mkdir $WORK_DIR/myro
 
pushd .
cd $WORK_DIR/myro
 
wget -c http://myro.roboteducation.org/download/myro-2.9.1.zip
unzip myro-2.9.1.zip
python setup.py install --install-layout deb
 
 
popd
rm -r $WORK_DIR
 
cat /usr/share/gnome/autostart/bluetooth-applet.desktop | sed -r 's/^(OnlyShowIn=).+$/\1LXDE\;/' > /etc/xdg/bluetooth-applet.desktop

Luego salir de sesión y volver a entrar (o ejecutar bluetooth-applet).

Conectarse al robot (Lihuen 4 o superior)

El paquete de Lihuen bluetooth-serial-manager provee una interfaz gráfica para conectarse a los robots, si seguiste las instrucciones de este tutorial entonces lo tenés instalado.

Para abrir esta herramienta ir a Menú->Herramientas_del_sistema->Administrador_de_bluetooth_para_RFCOMM.

Luego por cada dispositivo detectado aparecerá su identificación y un botón para conectarse.

Al conectarse a un dispositivo remoto aparecerá el nombre del mismo en /dev, este valor debe ser utilizado al programar en python para conectarse con el robot.

Para ver el estado actualizado de los dispositivos o escanear en búsqueda de nuevos dispositivos presionar "Actualizar".

Notas

En ocasiones, sobre todo cuando el robot (Scribbler) se empieza a quedar sin baterías, python puede quedarse bloqueado y el robot se queda también realizando la última instrucción recibida. En general con reiniciar el robot, y terminar con el proceso de python alcanza pero a veces quedan procesos utilizando el dispositivo serie relacionado con el robot.

Podemos ver que procesos usan el dispositivo del robot con el comando lsof, por ejemplo:

lsof /dev/rfcomm0

Si vemos que algún proceso está utilizando el dispositivo podemos intentar matarlo con kill. Si esto no es posible tendremos que asociar el robot con un dispositivo con otro nombre.

Por ejemplo:

rfcomm release /dev/rfcomm0
rfcomm bind /dev/rfcomm1 00:11:22:33:44:55 1

Y de ahora en adelante usamos /dev/rfcomm1 como argumento de init().