Un fork de Python mejora las desconexiones de Sphero BOLT
Sphero BOLT puede controlarse con una biblioteca comunitaria de Python que detecta cortes Bluetooth. El código está disponible, pero la versión aún no se ha lanzado.

Al programar un Sphero BOLT desde Python, ahora se puede detectar de forma explícita una conexión Bluetooth perdida, gracias a una modificación comunitaria de la biblioteca spherov2. El fork, una variante del proyecto original mantenida por Siddharth Vaghela, permite detectar el corte y hacer fallar las órdenes pendientes, en lugar de dejar al programa esperando. Sirve para quienes experimentan con el robot desde un ordenador; no exige sustituir la esfera ni modifica su firmware.
El autor presentó el trabajo el 5 de octubre en la comunidad de Sphero [en]. Las modificaciones principales están en el repositorio desde el 22 de septiembre. Se trata de código disponible para instalar, aunque su historial identifica 0.13.0 como «unreleased», todavía sin lanzamiento [en]. No es una actualización oficial de Sphero.
Nuestra guía del BOLT original explica sus sensores y su matriz de luces. Este cambio afecta a otra parte de la actividad: qué puede hacer el código del ordenador cuando deja de recibir respuestas del robot.
Dos fallos que ahora se pueden distinguir
Una orden puede quedarse sin respuesta aunque el enlace siga conectado. El fork utiliza TimeoutError para ese caso y añade al mensaje información sobre el robot y el paquete afectado. Si se corta el enlace, emplea otra excepción, ToyDisconnectedError. Separarlas ayuda a localizar el problema al depurar una práctica.
La implementación de la conexión [en] permite además registrar una función mediante add_disconnect_listener(). Esa función se ejecuta al detectar la desconexión. Un proyecto podría utilizarla para mostrar un aviso o cancelar las siguientes instrucciones, sin esperar a que cada orden agote su tiempo de respuesta.
Detectar el corte no equivale a reconectar automáticamente ni a garantizar la parada física del robot. La notificación llega al programa del ordenador. Con el enlace caído, ese programa no puede dar por recibida una nueva orden de parada. Por eso, una primera actividad debería comenzar con luces y lectura de datos, antes de introducir desplazamientos.
El historial también recoge una recuperación del flujo de paquetes tras notificaciones corruptas o incompletas. Son cambios del transporte de datos: no añaden nuevos sensores a BOLT ni convierten su control remoto en navegación autónoma.
El paquete de PyPI todavía es otro
La ficha de spherov2 en PyPI [en] mantiene la versión 0.12.1 y enlaza el proyecto original. Ejecutar pip install spherov2 no identifica por sí solo el fork de Vaghela. Para probar exactamente el código descrito, conviene usar un entorno virtual separado, tener Git instalado y fijar la revisión del repositorio:
python -m pip install "git+https://github.com/artineering/spherov2.py@b39640306b0f379ba106c33d188ebf2f7b244ae2"
El proyecto [en] requiere Python 3.9 o posterior, declara la dependencia Bluetooth bleak y utiliza licencia MIT. El ordenador necesita Bluetooth de baja energía. La documentación de Bleak [en] concreta sistemas y requisitos propios: la compatibilidad depende también del sistema operativo y de su servicio Bluetooth, no solo de la versión de Python.
Antes de buscar el robot, hay que liberarlo de la conexión con otra aplicación y comprobar que está cargado y despierto. El escáner del fork permite seleccionar el modelo BOLT o su nombre concreto. Esto evita conectar con la primera esfera encontrada cuando hay varias en el aula. BOLT+ no aparece en la lista de modelos del proyecto; no debe darse por compatible por compartir marca.
El repositorio incluye pruebas con un adaptador simulado. Comprueban lógica del software sin hardware, pero no acreditan el comportamiento de cada ordenador con un BOLT físico. La mejora descrita procede del código y de su documentación, sin una prueba propia del robot.
Para aprender Python también existe Sphero Edu
La ruta oficial sigue disponible: Sphero Edu permite programar BOLT con bloques, JavaScript y Python [en]. Para una primera sesión con robots educativos, evita tener que gestionar bibliotecas, entornos y errores Bluetooth por separado. El fork interesa cuando se quiere integrar la esfera en un programa propio del ordenador y controlar esa comunicación.
BOLT es un producto comercial ya montado. La tienda europea de RobotShop ofrece la unidad K002ROWFFP por 217,80 €, con impuestos incluidos según la ficha, base de carga inductiva y cable USB. España aparece entre los destinos del calculador de envío; los portes se calculan al tramitar la compra. La página no concreta una entrega inmediata. Quien ya tiene un BOLT puede explorar el cambio de software con su equipo actual, conservando una copia del programa y la revisión utilizada para poder repetir la actividad.
Fuentes
- Siddharth Vaghela — presentación del fork el 5 de octubre [en]
- Artineering — código, modelos y requisitos de spherov2.py [en]
- Artineering — historial de cambios y estado de 0.13.0 [en]
- Artineering — detección de desconexiones y órdenes pendientes [en]
- PyPI — versión publicada de spherov2 y proyecto original [en]
- Bleak — requisitos del transporte Bluetooth por sistema operativo [en]
- Sphero — funciones de BOLT y programación oficial con Python [en]
- RobotShop Europa — BOLT K002ROWFFP, oferta y destinos de envío
- Imagen: Sphero — fotografía oficial de BOLT y su matriz LED [en]
Sigue explorando
Robots relacionados
Descubre sus fichas y todo lo que hemos contado sobre ellos.