Como descargo de responsabilidad, no soy ni un experto en Ruby ni un experto en Arduino (creo mis propios tableros ATMega, así que me salto ese nivel de abstracción).
Soy parcial al protocolo Modbus para cualquier comunicación simple de nivel bajo maestro / esclavo. Completamente abierto, muy fácil de implementar, y tiene mucha historia y soporte de la industria, y muchas herramientas gratuitas para probar su unidad. En comparación con la mayoría de los protocolos, tiene una sobrecarga muy baja y, sin embargo, incluye una forma de validar la integridad del mensaje. Se basa en la lectura y escritura de registros de 16 bits, que pueden contener cualquier tipo de datos que desee (aunque un entero de 16 bits sin signo es el valor predeterminado). En su caso, lo más probable es que el número de registro sea el selector de motor paso a paso y el valor de registro sea int16_t.
Una búsqueda rápida en la web muestra que ya hay implementaciones de Modbus para Ruby y Arduino. Tenga en cuenta que Modbus es un protocolo de sondeo diseñado para un maestro y varios esclavos, por lo que si desea que Arduino inicie la comunicación, debería ser el maestro, y el servidor Ruby debería ser el esclavo, con alguna forma de ejecutando múltiples instancias para manejar diferentes maestros que intentan conectarse.
- ¿Por qué un switch no aprende las direcciones IP además de las direcciones MAC?
- ¿Cómo el algoritmo de reenvío y poda de ruta inversa crea un árbol de multidifusión basado en la fuente?
- ¿Cómo es un protocolo de repetición selectiva?
- ¿Para qué sirven los protocolos de comunicación en sistemas embebidos?
- ¿Cómo funciona http keep-alive, cuál es la diferencia entre tcp keep-alive y http keep-alive?
De lo contrario, dado que ya está haciendo TCP / IP y, por lo tanto, tiene los beneficios de todas las pilas de bajo nivel que se ocupan de usted, un simple programa de socket personalizado que envíe 2 enteros y reciba un mensaje OK será suficiente.
Otro protocolo popular en Arduino parece ser Firmata. No lo he usado antes, pero parece que podría hacer lo que quieras.
http://firmata.org/wiki/Main_Page