Mano biónica — Control USB y BLE
Especificaciones del BrainCo Revo II
Especificaciones técnicas completas de la documentación del desarrollador del BrainCo Revo II.
Físico y cinemático
| Proveedor | BrainCo |
| Modelo | Revo II (configuración de mano izquierda) |
| total de grados de libertad | 6 (pulgar 2 DOF + índice/medio/anular/meñique 1 DOF cada uno) |
| DOF del pulgar | Flexión + rotación (rotación = flexión × 0.4) |
| DOF de los dedos | 1 DOF de flexión cada uno: índice, medio, anular, meñique |
| Rango de Posición | 0.0 = completamente abierto · 1.0 = completamente cerrado (flotante normalizado) |
| Rango del protocolo de comunicación | 0–100 entero (porcentaje de cierre) |
Interfaz USB-CDC
| interfaz USB | USB-CDC (Puerto COM virtual) |
| Dispositivo Linux | /dev/ttyACM0 |
| Tasa de baudios | 115200 (exacto — ninguna otra tasa funciona) |
| Dependencia de Python | pyserial |
Bluetooth de baja energía (BLE) GATT
| UUID del servicio BLE | 0000ffe0-0000-1000-8000-00805f9b34fb |
| Característica de escritura | 0000ffe1-0000-1000-8000-00805f9b34fb |
| Característica de notificación | 0000ffe2-0000-1000-8000-00805f9b34fb |
| Dependencia de Python | bleak |
Protocolo de comando
| Formato | JSON terminado en nueva línea, codificado en UTF-8 |
| set_finger | {"cmd":"set_finger","finger":N,"position":P} — N: 0–4, P: 0–100 |
| set_pose | {"cmd":"set_pose","positions":[p0,p1,p2,p3,p4]} — todas las cinco posiciones atómicamente |
| calibrar | {"cmd":"calibrate"} — bloquear en los límites de viaje del firmware |
Temporización del modo piano
| Fase 1 — Extender | 20 ms, dedo en posición de flotación (0.15 = 15% de cierre) |
| Fase 2 — Conducir | 30 ms, conducir a la profundidad de presión (0.55–0.95 proporcional a la velocidad) |
| Fase 3 — Mantener | Duración configurable — tecla presionada |
| Fase 4 — Retraer | 20 ms, levantar de nuevo a la posición de flotación |
| Rango de profundidad de presión | 0.55 (velocidad=0.0) a 0.95 (velocidad=1.0) |
| Posición de flotación | 0.15 (15% de cierre — neutral listo para presionar) |
| Presiones concurrentes | Sí — bloqueos asyncio por dedo, sin notas perdidas |
Calibración
| Paso de calibración | 120 ms por dedo (secuencia de onda: pulgar → meñique) |
| Patrón de onda | Abrir → cerrar al 90% → abrir (por dedo) |
| Posición posterior a la calibración | Todos los dedos se estabilizan en flotación (15% de cierre) |
| Retraso de estabilización (inicio) | 300 ms antes de que comience la ola |
Telemetría y SDK
| Tasa de telemetría | 10 Hz por defecto (configurable) |
| Agente de plataforma | brainco_revo_agent.py |
| Dependencias de Python | pyserial (USB) · bleak (BLE) · websockets (plataforma) |
| URDF | Disponible para ROS1 y ROS2 |
| Campos de instantánea | conectado, modo, posiciones (float[5]), posiciones_dict, is_pressing, any_pressing, current_note, command_count |