¿Hackear una cinta de correr con Arduino?

Me gustaría escribir una aplicación de escritorio que pueda leer automáticamente todas las medidas de mi cinta de correr y controlar completamente la cinta de correr en lugar del tablero nativo.

Desafortunadamente, no sé casi nada sobre ingeniería eléctrica, y esperaba que alguien pudiera orientarme en la dirección correcta sobre cómo construir la interfaz entre mi computadora y la caminadora.

Permítanme primero describir la configuración. La caminadora tiene dos partes principales: el tablero y la parte mecánica con la superficie para correr. Se unen a través del conector de 8 pines que se muestra aquí:

Enlace a la imagen del conector de 8 pines de mi cinta de correr

El tablero de instrumentos tiene varios controles que pueden establecer la velocidad y la inclinación de la superficie de carrera. También tiene las manijas que miden la frecuencia cardíaca.

Tenía la esperanza de realizar un análogo de un "ataque de hombre en el medio" en la conexión entre el tablero y la parte mecánica, e insertar mi propio controlador entre ellos que sería capaz de leer las medidas y controlar el funcionamiento. superficie.

Me imagino que uno podría comprar una especie de divisor de 8 pines y conectarlo a Arduino que a su vez se conectaría a mi escritorio. ¿Es ese un enfoque razonable?

Si puedo "interceptar" la comunicación entre el tablero y la superficie de carrera, probablemente podría aplicar ingeniería inversa al protocolo de comunicación y luego podría falsificar los comandos del tablero desde mi aplicación.

En este momento no sé si la comunicación entre el salpicadero y la superficie de rodadura es unidireccional o no. Podría darse el caso de que la velocidad y la inclinación que se muestran en el tablero sean los valores "objetivo", en lugar de los valores medidos directamente en la parte mecánica y comunicados al tablero. Sin embargo, también podría darse el caso de que la velocidad se mida directamente en la superficie de rodadura, se comunique al tablero, el tablero la compare con el valor objetivo y, en caso de discrepancia, envíe un comando de corrección de aceleración o reducción de velocidad. a la superficie de rodadura.

Encontré este video de Youtube donde un tipo parece haber podido conectar Arduino a su caminadora y controlar la velocidad de la caminadora desde su computadora portátil. Desafortunadamente, el video no proporciona detalles sobre cómo se logró exactamente esto.

¿Hay algún cerebro al otro lado del conector? ¿Puedes dibujar un esquema de ambos lados?
O incluso publique imágenes de buena calidad de la electrónica en cada extremo de los cables.
No saber casi nada sobre ingeniería eléctrica hará que esto sea mucho más difícil, especialmente si tiene que aplicar ingeniería inversa a la interfaz. Buscaría en el sitio del fabricante los manuales de mantenimiento o cualquier documentación que describa la electrónica. Dado que el video se originó en Arizona State U, debería poder comunicarse con las personas involucradas o al menos descargar cualquier informe de investigación u otros documentos asociados con el proyecto. Las universidades suelen ser bastante buenas para redactar su trabajo.
Por mucho que me encanta animar a la gente a entrar y aprender algo nuevo. Si no tiene experiencia en el campo, le recomiendo enfáticamente que no comience algo que involucre voltaje de red y motores eléctricos de alta potencia. Por experiencia personal, he hecho mucho daño antes de aprender a respetar la electricidad y hacer mi investigación mucho antes de trabajar físicamente en un proyecto. Un proyecto inicial genial para algo similar, ve a buscar un auto RC de una tienda de dólar e intenta hacer tu propio controlador.
youtube.com/watch?v=rAZ8FCzOuxE, siempre puede buscar las señales pwm, aunque reemplazar la interfaz es un problema y tal vez usar un sensor de corriente para establecer la velocidad en 0 cuando se activa la función de seguridad.

Respuestas (4)

Si sabes poco o nada de ingeniería eléctrica entonces no lo hagas. El Arduino es una plataforma para fines de hobby, no para sistemas que requieren un mínimo de seguridad. Si el Arduino (software o hardware) se vuelve loco, pueden ocurrir accidentes y usted podría lesionarse.

La ingeniería inversa tampoco es la forma más segura de hacer las cosas. Nuevamente, si no lo hace correctamente, puede hacer las cosas mal y lesionarse.

Pero no todo esta perdido. La cinta de correr es un dispositivo bastante simple de controlar: usted establece la velocidad a través del tablero, ya sea fija o siguiendo un programa. Esa es la salida. Las entradas son la lectura de los latidos del corazón y los botones del tablero, incluida la parada de emergencia. Elija un SBC industrial confiable para el hardware y conéctelo a las E/S. Nota: la parada de emergencia debe detener el motor en el hardware , no en el software.

Este proyecto va a necesitar mucha ingeniería inversa, y tal vez incluso un alcance. También puede ser muy difícil de hacer sin hacer que el panel de control sea inútil o piratearlo también .


ADVERTENCIA: Haga esto bajo su propio riesgo. Si se maneja incorrectamente, podría freír tanto su Arduino como su cinta de correr. Proceda con precaución. Cuando realice ingeniería inversa, asegúrese de cambiar el circuito lo menos posible para evitar un aumento de voltaje o una caída que pueda dañar su equipo. Estar a salvo. Usa el sentido común. Si no está seguro, pregunte. Desenchufe todo antes de modificar la electrónica. Comprueba tres veces tus conexiones. Vuelva a hacer cualquier cosa si no está seguro de que esté bien. La seguridad debe ser su primera prioridad.

[Me siento como un abogado ahora... :P]


Ingeniería inversa:

Este puede ser uno de los pasos más difíciles, especialmente si no tienes un osciloscopio, ya que necesitarás uno o dispositivos similares. Son útiles, pero caros. Nunca he necesitado uno, así que no tengo uno, y supongo. Cualquier corrección es bienvenida.

Si tiene suerte, su alcance tendrá una función que puede grabar y "congelar" la pantalla, y tal vez incluso editarla en la computadora.

Entonces, desconecte la cinta de correr. Desconecte el cable. Yo personalmente cortaría los conectores y les soldaría algunos cables, probablemente del mismo tamaño de cable para que sepa que puede manejar el amperaje, con la menor cantidad de resistencia. Luego, de alguna manera también conectaría los cables firmemente, para que puedan conducir, y usaría un poco de cinta adhesiva para que nadie toque los cables accidentalmente. Sin embargo, necesitará uno descubierto en todo momento. Cuál variará según la línea que desee probar. Deberá colocar los clips en cada cable. (Solo tendrá que encontrar una solución similar con cinta o pinza para la ropa si tiene una sonda).

Encienda el alcance. Disfrutar. Estudiaría los patrones de cada uno y presionaría todos los botones. Algunos lo harán y otros no responderán. Pruebe tanto los amperios como el voltaje. Es posible que puedas imitar esto con un Arduino.

Si parece un galimatías: hacer algunos pulsos que sean proporcionales a la velocidad a la que funciona el motor, entonces puede ser más difícil. Probablemente sea un motor paso a paso.


Una forma más sencilla es esta ; es una cafetera, pero la información es buena. Te muestra cómo modificar los botones para "pulsarlos" con Arduino.

Aparte de eso, sin más información, realmente no puedo ayudarte sin hacer un libro completo. Si necesita ayuda con problemas más simples en el futuro cuando haya descubierto más, no dude en publicar una nueva pregunta . El "empuje" sería ideal, y creo que aún podría usar el panel de control y la computadora también podría presionar los botones, aunque si lo presiona a 3 y lo quiere a 5 y piensa que está a 0, usted' Estaría en la velocidad 8. Es casi como una reacción en una máquina CNC. (Omita eso si no sabe lo que es).

Creo que esto es suficiente para empezar. Buena suerte.

Por favor, no publique grandes bloques de texto en una fuente grande. Me duele los ojos.
@Mels lo arregló.

Me doy cuenta de que esta es una respuesta bastante tardía, pero trabajo para una empresa involucrada con equipos de fitness. Existe una posibilidad decente de que sea RS-485 o alguna otra serie. Intente encontrar datos + y datos - utilizando un alcance y luego comience a obtener capturas de datos y comenzará a ver los diferentes comandos y sus valores entre la interfaz de usuario y el controlador del motor. Le sugiero que primero capture exactamente lo que la interfaz de usuario envía al controlador del motor y luego haga que su aplicación o lo que sea haga lo mismo. Una vez que esto funcione, puede modificar los comandos para obtener lo que desea. Quizás lo más importante es que probablemente habrá una serie de comandos de inicio que deberá imitar o no funcionará. ¡Buena suerte!

Desde el punto de vista de la seguridad, si estuviera diseñando una cinta de correr para la venta al público, tendría la señal de comando para el motor en un estado normalmente apagado y tendría que ser forzado a un estado encendido. (No lo diseñaría de tal manera que normalmente estuviera encendido y apagado).
Dado que esta es la forma en que lo diseñaría, buscaría un diseño similar para implementarlo en una cinta de correr que estaba pirateando y, una vez que verificara que esta era la intención del diseño del fabricante, me aseguraría de que mi truco cumpliera con los mismos requisitos. También me gustaría señalar que puede haber otras características de seguridad en las que pensaron que yo no, y con ese poco de duda, verificaría tres veces mi lógica y haría que alguien con experiencia en ingeniería eléctrica verificara mi plan de trabajo antes de comenzar el truco. Con respecto a las máquinas que funcionan con un voltaje más alto (p. ej., 110 VCA), un riesgo potencial real es hacer que los componentes táctiles de la caminadora se "activen" eléctricamente por accidente, lo que podría provocar la muerte.