Verificar circuito cerrado a través de USB

2

Soy un entrenador de esgrima, y el equipo electrónico de puntuación es muy caro. Como proyecto, quería hacer un dispositivo que pudiera verificar si se producía un toque de puntuación que pudiera interactuar con mi computadora portátil a través de USB. Escribí un programa de cuadro de indicadores básico en C # que podría mostrar las puntuaciones, pero no tengo experiencia en escribir software para interactuar con el hardware.

Con el equipo eléctrico, esto se hace simplemente verificando si el circuito se completó o no cuando se presionó la punta del botón. Un circuito cerrado es un punto, un circuito abierto es una falla.

¿Qué tendría que hacer para construir una máquina que pudiera enviar información sobre si el circuito está cerrado al programa en mi computadora?

(Información adicional) Dos tiradores tienen una lámina que tiene un botón en la punta. Un cable sale de la espada de cada esgrimista y se conecta a la máquina. Ambos también tienen chalecos metálicos que están conectados a la máquina. Cuando se presiona el botón en el chaleco, se completa el circuito. Cuando se presiona el chaleco, está fuera del objetivo.

Tengo las láminas y los chalecos electrónicos. Tengo el cableado. Lo que necesito es la máquina que verifica si el circuito está completo o no, y luego envía esa información a través del USB al programa de la computadora portátil.

    
pregunta chancedurant

2 respuestas

1

Tienes tres problemas:

  1. Los eventos reales pueden ser breves, pero también pueden sufrir un "rebote de contacto" en el que lo que un ser humano consideraría un evento realmente consistente de muchos eventos únicos de creación / interrupción eléctrica, que no todos deberían ser contados. / p>

  2. Lógicamente, debe "Y" el botón y la prueba de continuidad para detectar puntos, pero debido al rebote, pueden no ser simultáneos, por lo que deberá buscar la correspondencia dentro de una pequeña ventana de tiempo.

  3. Debe ingresar los datos a una computadora a través de USB.

Creo que el entorno más simple (y más ajustable) para implementar las decisiones de las dos primeras tareas sería el software que se ejecuta en un microcontrolador incorporado. Y la forma más sencilla de obtener eventos en una computadora a través de USB es el puerto serie virtual.

Por lo tanto, la solución que recomendaría es una pequeña cantidad de software personalizado, desarrollado experimentalmente para una tarjeta incrustada barata que tiene un canal de comunicación serie-USB para la computadora.

El candidato más conocido sería un Arduino o equivalente. Sin embargo, hay opciones adicionales: si desea programar en C # en cualquier lugar, está el Netduino. Si desea profundizar más en los detalles de implementación subyacentes, ST ofrece unos tableros de evaluación de "descubrimiento" de clase de $ 10. En realidad, casi todos los fabricantes de chips tienen algo parecido a un panel de evaluación o demostración barato para al menos uno de sus chips con capacidad USB en el mercado.

Si este será su primer proyecto de este tipo, probablemente encontrará una mayor variedad de recursos de soporte de aplicación inmediata para Arduino que para cualquier otra cosa.

Ahora que lo pienso, hay una organización de software alternativa en el mismo hardware que podría tener más sentido para usted. En lugar de tomar decisiones, puede hacer que la placa incorporada se ejecute en un circuito cerrado, leer un puerto digital de 8 bits (hasta dos pares de tiradores) y emitir ese valor en serie. Se puede utilizar una interrupción (o en un Arduino UNO, la velocidad en baudios del propio puerto serie si se ejecuta en modo esquivo en lugar de usar la API con búfer) como una fuente de tiempo para regularizar las mediciones. Por ejemplo, a 115200 baudios obtendría en el pedido hasta 10,000 muestras por segundo, lo que probablemente asegurará que cualquier evento se muestre al menos una vez. Luego, puede escribir software en el escritorio que analice este flujo de datos, buscando grupos de eventos de continuidad y botón que coincidan. Personalmente, prefiero hacer eso en la placa incorporada y hacer que el sistema sea autónomo, pero hacerlo en el escritorio puede hacer que sea más fácil para usted experimentar con el algoritmo de agrupación, trazar visualmente el rebote de señal (en un grado imperfecto) le permite poner controles deslizantes para ajustar las tolerancias, etc. Realmente es una cuestión de su preferencia.

    
respondido por el Chris Stratton
0

Un enfoque muy simple sería usar un convertidor USB-RS232 (o un chip FT232 si lo prefieres) y tener tu circuito conectado a algunos de los pines del protocolo. Puede verificar el nivel de los pines del protocolo de enlace en la mayoría de las bibliotecas de puertos serie de Windows.

Me preocuparía un poco (o más bien un poco) conectar un chaleco eléctrico directamente a una computadora, por lo que probablemente debería haber algunos optoacopladores en los circuitos y baterías para alimentar la parte aislada (humana).

¿Esto te da suficiente dirección?

    
respondido por el Wouter van Ooijen

Lea otras preguntas en las etiquetas