Ensamblado de wireless fencing scoring con Arduino

El sistema tradicional funciona como expliqué más arriba. Y como bien decís, no se pueden cambiar las espadas. Estuve leyendo el thread que referenció @Jota Jota, es muy bueno porque tratan justamente esta cuestión. Por desgracia debido a mis limitados conocimientos electrónicos no logro entender muchas cosas. Por lo que entiendo, la solución propuesta consiste en hacer pasar una señal analógica por la cazoleta, pero no logro entender cómo leen esa señal desde el otro circuito sin tener un plano de tierra común.

Lo que llego a entender (quizás me puedan ayudar a entender mejor) es que haciendo pasar una señal analógica por la punta de la espada, y otra señal analógica por la cazoleta, la proximidad de ambas señales va a alterarlas de alguna forma (desconoco cómo), y yo voy a poder detectar esa alteración para saber que hubo contacto entre cazoleta y espada. Tiene algún sentido esto? En principio imagino que emitiendo/recibiendo dichas señales desde los pines analógicos de entrada/salida del Arduino podría lograr esto(?) Es decir, si en la espada hago circular una señal analógica por la cazoleta que salga de un pin del arduino y vaya a otro, y en la cazoleta hago también circular otra señal que salga de un pin analógico y entre a otro, podría por medio de alguna librería que me permita procesar las señales detectar que la señal fue alterada por la proximidad con la otra? Tiene sentido para ustedes lo que estoy diciendo? Necesitaría algo más además de hacer circular la señal? Tendría que amplificarla? Por qué?
 
Yo siempre había pensado que este sistema funcionaba al hacer contacto la espada de un oponente en él y cerrando un circuito a través del cuerpo del oponente.
Sin cables ni masa ni ... no veo forma de que funcione.
Me parece que los sistemas capacitivos o semejantes no dan una velocidad remotamente próxima a lo necesario.
Lo que llego a entender (quizás me puedan ayudar a entender mejor) es que haciendo pasar una señal analógica por la punta de la espada, y otra señal analógica por la cazoleta, la proximidad de ambas señales va a alterarlas de alguna forma (desconoco cómo), y yo voy a poder detectar esa alteración para saber que hubo contacto entre cazoleta y espada. Tiene algún sentido esto? En principio imagino que emitiendo/recibiendo dichas señales desde los pines analógicos de entrada/salida del Arduino podría lograr esto(?) Es decir, si en la espada hago circular una señal analógica por la cazoleta que salga de un pin del arduino y vaya a otro, y en la cazoleta hago también circular otra señal que salga de un pin analógico y entre a otro, podría por medio de alguna librería que me permita procesar las señales detectar que la señal fue alterada por la proximidad con la otra? Tiene sentido para ustedes lo que estoy diciendo? Necesitaría algo más además de hacer circular la señal? Tendría que amplificarla? Por qué?

Solo el arduino DUE tiene salidas analógicas, los demás no tienen, son PWM que son digitales que simulan analógico.
Por algún extraño motivo las entradas analógicas de Arduino son absurdamente lentas en la conversión., me parece que te van a resultar demasiado lentas.
 
Lo que llego a entender (quizás me puedan ayudar a entender mejor) es que haciendo pasar una señal analógica por la punta de la espada, y otra señal analógica por la cazoleta, la proximidad de ambas señales va a alterarlas de alguna forma (desconoco cómo), y yo voy a poder detectar esa alteración para saber que hubo contacto entre cazoleta y espada. Tiene algún sentido esto? En principio imagino que emitiendo/recibiendo dichas señales desde los pines analógicos de entrada/salida del Arduino podría lograr esto(?) Es decir, si en la espada hago circular una señal analógica por la cazoleta que salga de un pin del arduino y vaya a otro, y en la cazoleta hago también circular otra señal que salga de un pin analógico y entre a otro, podría por medio de alguna librería que me permita procesar las señales detectar que la señal fue alterada por la proximidad con la otra? Tiene sentido para ustedes lo que estoy diciendo? Necesitaría algo más además de hacer circular la señal? Tendría que amplificarla? Por qué?
Hola, he leído el problema que planteas y te puedo comentar lo siguiente: antes de contestar las preguntas que surgen anteriormente, desde mi punto de vista y sin ánimos de desanimarte es necesario replantear(no significa tirar todo a la basura) gran parte de lo que hasta el momento llevas de avance ya que la información que brindas es inexacta o ambigua y en momentos contradictoria, desde lo que logro interpretar del problema la solución no es simple, es decir no existe un "algo" que se compre o arme y se adapte fácilmente a lo que ya tienes funcionando, ademas también mencionas que tus conocimientos en electrónica son limitados(el grado de conocimientos pasa a segundo termino cuando se tiene convicción), por todo lo anterior la solución antes de cualquier elemento electrónico va a depender de que tanta paciencia, persistencia, tiempo, presupuesto y acceso a herramientas de electrónica tengas para dicho proyecto, aquí es donde debes tomar la decisión de si te conviene o tienes la convicción de seguir con el proyecto o no, de ser la respuesta afirmativa te puedo adelantar que la solución al problema va a constar de muchas pruebas y mucho tiempo de dedicación que vale cada segundo cuando vez un proyecto terminado y funcionando.
 
Creo que la confusión viene de que hay tres tipos de armas: florete, sable y espada. Yo estoy diseñando esto para espada. Lo que comenta @Scooter es como funciona en florete, porque el golpe sólo vale en el torso superior del oponente, entonces cada esgrimista lleva una chaquetilla eléctrica. Pero en el caso de espada, el golpe vale en todo el cuerpo (manos, pies, todo). Entonces en el caso de espada el circuito es distinto, el golpe se marca siempre y cuando la espada no toque la cazoleta (es decir, si toca el suelo marca igual y eso es correcto, lo tiene que ver el árbitro).

El sistema que tengo hasta ahora está funcionando bien, excepto por el problema de la cazoleta, que al no tener un plano de tierra en común por ser el sistema wireless no se puede hacer de la forma convencional, que es como expliqué más arriba.

Lo que tengo hasta ahora es exactamente como está diseñado el sistema wireless según los papers que mandó @Jota Jota, sólo que falta la parte de la cazoleta, que no logro entenderla.

Resumo cómo es para evitar ambigüedades e imprecisiones. Lo siguiente es para el sistema de espada (no florete, ni sable, ojo ahí):

Primero algo de esgrima:
En espada el golpe sólo vale cuando la espada toca con la punta (no con la hoja) cualquier cosa (incluso el suelo) excepto la cazoleta del oponente. Esto es así, y está bien, porque si la punta toca el suelo se supone que lo tiene que ver el árbitro y descontar él el punto.

Ahora la parte electrónica:
La punta de la espada es básicamente un interruptor. Desde la punta hasta el aparato pasa un cablecito de cobre muy finito que recorre toda la hoja y está aislado, el cablecito pasa de ida y vuelta para cerrar el circuito. Ok? Es decir, el cablecito va desde el aparato hasta la punta, entra a una pata del interruptor, y sale por la otra pata, volviendo por la hoja hasta el aparato. Una punta está conectada a 3V y la otra punta está conectada por medio de un resistor pull down a un pin de entrada del microcontrolador. Entonces cuando la punta toca un objeto el interruptor se cierra y deja pasar los 3V al pin de entrada del microcontrolador, pero si está abierto (la punta no está presionando sobre nada) entonces no pasa corriente y no hay toque. Se entiende hasta ahí?

Bueno, ahora explico cómo funciona la parte de la cazoleta en el sistema tradicional:
Cuando la punta de la espada presiona sobre la cazoleta del oponente, como la cazoleta es una superficie metálica que está conectada a otro pin de entrada del microcontrolador, entonces la corriente que circula por la espada, además de ir al pin de entrada del microcontrolador del que toca, va también al pin de entrada de la cazoleta del oponente. Entonces el aparato lo que hace es descontar el golpe por tener ambos pines recibiendo corriente. Se entiende?

Ahora explico el problema de la cazoleta en el sistema wireless:
Como no hay tierra en común, si presiono con la punta la cazoleta del oponente, como ambos circuitos están en tierras distintas (el de la cazoleta, y el de la espada) entonces la corriente no va a circular desde la punta de la espada a la cazoleta. Ese es básicamente todo el problema. Cómo hacer para detectar esto, si las corrientes esas tienen distintos planos de tierra?

Bueno, espero haber aclarado cualquier imprecisión o ambigüedad. Puede haber sido confuso para los que no están familiarizados con la esgrima porque existen otros tipos de armas (florete y sable) que funcionan de forma muy diferente. Pero esto yo lo estoy armando para espada, y lo que tengo hasta ahora es tal cual lo expliqué y es muy sencillo, el problema aparece cuando quiero implementar lo de la cazoleta, por la falta de plano de tierra en común.

Respecto a tener que tirar lo que tengo hasta ahora no me importa para nada, sólo quiero entender cómo resolver ese problema de la cazoleta en concreto. Yo lo que logro entender es que la propuesta del paper del sistema wireless consiste en algo así: (lo digo rusticamente para que me corrijan) haciendo circular una señal analógica por la espada hasta la punta, y haciendo circular otra por la cazoleta, cuando ambas señales se aproximen se van a ver alteradas de alguna forma, y entonces podría llegar a detectar ese ruido o esa alteración para saber si la punta está tocando la cazoleta. Tiene sentido esto para ustedes? Se puede lograr de alguna forma sencilla?
 
Última edición:
huilen Muy buena explicación, yo había visto como funciona el circuito eléctrico tradicional y un poco de como es este fantástico deporte, no recuerdo bien donde lo vi pero alguien realizo el WFS DIY con un timbre inalámbrico de 2 transmisores y le quedo muy bien, pero la mayoría que he visto tienen ese problema de la GND o Tierra como le llaman en Esgrima, para ser mas preciso el problema esta con el EPEE, si hubieras implementado un ESP32 el cual tiene DAC y ADC no daría problemas ya que con otro se modulo se puede monitorizar ese aspecto.

Este WFS fue desarrollado por 2 Ingenieros el cual tienen una Patente, si revisaras esa patente te darías una idea de como funciona el EPEE, el cual usaron el CC2511F32

US20060100022A1-20060511-D00007.png



Como vas a seguir implementándolo con los Modulos RF de 433MHz, hay un IC que lo complementa y facilita mucho el control de estos mismos, me refiero a los Encoder y Decoder HT12E y HT12D.


HT12E.jpgHT12D.jpg
 
Última edición:
Excelente, yo pensaba que el Arduino Nano tenía dac/adc, pero igual no tengo problemas en cambiar a un ESP32, o lo que sea necesario. Lo que pasa es que no logro entender la electrónica de esa parte. Es correcto lo que dije de las señales analógicas? Requeriría algo más además de emitir/recibir las señales por medio del codificador/decodificador? Puedo así determinar programáticamente analizando la señal que fue alterada por la otra señal? Quizá el vocabulario que estoy usando es rústico o completamente incorrecto, es que no sé sobre electrónica analógica, y les agradecería cualquier orientación al respecto, aunque más no fuera para entender a muy alto nivel la solución. El problema se puede reducir a lo siguiente (creo): si hago circular una señal analógica por la cazoleta metálica, y hago circular otra señal analógica por la espada, la proximidad de una señal a la otra puedo detectarla de alguna forma? Se alteran las señales de alguna forma? Me permitiría esto determinar que la espada se presionó sobre la cazoleta? (Teniendo en cuenta que ambas señales son emitidas por circuitos distintos, con distintas tierras).
 
Última edición:
Yo no entendí nada de lo que planteabas con las señales analógicas, no sé para qué quieres un DAC.

El ESP32 tiene dos DACs de 8 bits y el Arduino DUE dos, creo que de 12 bits.

Podrías agregar cierta resistencia en según qué partes del traje, espada, cazoleta... Y así se supone que podrías saber dónde tocas leyendo una señal analógica sobre un divisor de tensión.

También podrías conectar ciertas partes a ciertas frecuencias de onda cuadrada y así, leyendo la frecuencia sabrías dónde estás tocando. O codificar un carácter o algo así.


No sé, yo ahí me pierdo en cual pudiera ser la mejor opcion, a la señal analógica o digital habría que agregar el ruido por conectar o desconectar y la suciedad que influiría en la conexión, la velocidad del golpe y el tiempo que estaría conectado... No sé qué decirte al respecto.
Para esgrima "a cámara lenta" cualquiera valdría, para la real dudo.
 
Hago una aclaración por lo último: la chaqueta NO está conectada a ninguna parte, eso es para florete, no para espada (son dos tipos de esgrima distintos). En espada sólo dos cosas son parte del circuito: la cazoleta y la espada.

Lo de la señal analógica es porque no tengo forma de detectar si la punta de la espada tocó la cazoleta o al oponente.

Así es como tiene que funcionar:
- si toca cualquier cosa que no sea la cazoleta, tiene que contabilizarse el toque;
- incluso si toca el suelo, se contabiliza el toque (corresponde al árbitro darse cuenta de que tocó el suelo y no al oponente);
- si y sólo si la punta toca la cazoleta, entonces NO tiene que contabilizarse el toque.

Entonces, necesito saber de alguna forma que la punta entra en contacto con la cazoleta para poder determinar que no hubo toque.

Como la punta de mi espada y la cazoleta del oponente están conectados a circuitos distintos con tierras distintas (porque es wireless), entonces surge la cuestión de cómo lograr esto sin un plano de tierra en común.

Algo a tener en cuenta es que el sistema de la cazoleta y de la punta de la espada no se puede alterar porque es algo estándar. Sólo puedo cambiar lo que es el dispositivo adonde van conectados los cables que se dirigen a la cazoleta y a la punta respectivamente.

Una solución que no sé si es posible es utilizando un sensor capacitivo. Hay una librería para Arduino para usar los pines analógicos como sensores capacitivos, pero no sé si me va a servir, porque si toco la cazoleta con la mano esto va a activar el sensor capacitivo de la misma forma que si la toco con la punta de la espada, lo cual no sirve. Estuve leyendo un poco sobre las propiedades del sensor capacitivo, y según entiendo consiste en explotar las propiedades de un capacitor para detectar proximidad. Como el nivel de capacitancia de un capacitor cambia según la proximidad con otros materiales conductivos que alteran sus propiedades eléctricas, se puede usar esta propiedad para crear un sensor. Lo que no sé es si este nivel de capacitancia se modifica de forma distinta según el material del objeto que aproxime. Porque necesitaría poder saber si lo que tocó la cazoleta es la punta de la otra espada o cualquier otra cosa.

La otra solución, que todavía no entiendo bien, consiste en emitir una señal analógica que circule por el cable de la espada que pasa por la punta como expliqué, y otra señal que circule por la cazoleta metálica. Luego leer la señal de la cazoleta y analizando la señal ver si fue alterada por la otra señal, lo cual significa que la espada tocó la cazoleta.

Respondiendo a lo de si es mejor analógica o digital, entiendo que tiene que ser analógica, porque una señal digital no es tan sensible y no voy a poder detectar ningún cambio como el que digo. Yo imagino que dos señales analógicas próximas se interfieren y crean algún tipo de ruido que yo puedo detectar analizando la señal y entonces determinar que hubo toque de cazoleta. Tiene sentido? Quizá es completamente incorrecto, pero es que estoy tratando de entenderlo.
 
Lo que se me ocurre seria adaptar un modulo sensor analógico de audio.

sensor-de-sonido-con-microfono-ky-038-arduino.jpg



Quitarle el encapsulado y usar el K596 como sensor de contacto.

BENQ0005.JPG

Recordé que el K596 en cierta ocasión lo había implementado junto al LM358 para un detector de señales Mioeléctricas para un proyecto de la Universidad.

Nota: También puedes construir un sensor de alta y baja impedancia, al igual puedes usar sensor touch metal , es cuestión de adaptar algún sensor es mi humilde opinion.

 
Última edición:
A mi me parece meterse en un barrizal pasarse al analógico.
Yo no lo haría. Y menos sin resolver la velocidad de Arduino en ese tema, me parece que hay librerías alternativas que son más rápida.
 
A mi me parece meterse en un barrizal pasarse al analógico.
Yo no lo haría. Y menos sin resolver la velocidad de Arduino en ese tema, me parece que hay librerías alternativas que son más rápida.

Ese es el gran lio salir del barrizal porque si o si asi no se quiera toca implementar una serie de sensores analógicos.... con librerías como lo propone no se puede si fuese asi ya muchos hubieran hecho un WFS para Epee o Espada para otra arma como el WFS para Foil es mas factible realizar.

Parece muy simple pero no lo es porque hay varios factores a tener en cuenta, empezando que la punta de la espada debe transmitir una señal oscilante de alta frecuencia, no existe una tierra común como si existe en el circuito tradicional eléctrico, al usar frecuencias altas esto reduce la impedancia del cuerpo humano, y esto favorece al esgrimista que sea portador de una tierra flotante que al tocar el suelo o la cazoleta del contrincante anule la activación de la señal transmitida, pero aun no esta resuelto el problema, para que se entienda el lio muy gordo que hay que tratar de resolver dejo la patente a continuación.


Lo único que se me viene a la mente es implementar el sensor que propuse en el comentario anterior, ya que el modulo con el LM393 puede registrar esa frecuencia oscilante transmitida desde la punta de la espada, complementado con el K596 sin su encapsulado este funciona como si se tratase de un sensor de contacto oscilante, como sabrán IC tiene una velocidad de respuesta rápida, posee entradas de alta impedancia y esto favorece mucho contra cortacircuitos, ya que la espada lleva un voltaje y cuando choca con la cazoleta hace un corto circuito en pocas palabras.
 
Última edición:
Probé usando usando el arduino como sensor capacitivo, pero reacciona a cualquier cosa, no parece viable :( Sobre todo porque la cazoleta metálica está unida a la hoja de la espada, y tocar la cazoleta no es lo mismo que tocar la hoja, de hecho es muy común que un esgrimista tome la hoja del oponente con la suya, y en ese caso no tendría que considerarse que se tocó la cazoleta.

Muy interesante lo de la patente, lo estoy leyendo.

Una pregunta respecto a lo anterior, no me queda claro qué es el K596.
 
Probé usando usando el arduino como sensor capacitivo, pero reacciona a cualquier cosa, no parece viable :( Sobre todo porque la cazoleta metálica está unida a la hoja de la espada, y tocar la cazoleta no es lo mismo que tocar la hoja, de hecho es muy común que un esgrimista tome la hoja del oponente con la suya, y en ese caso no tendría que considerarse que se tocó la cazoleta.

Muy interesante lo de la patente, lo estoy leyendo.

Una pregunta respecto a lo anterior, no me queda claro qué es el K596.

El K596 es un Mosfet que tiene internamente el Mic, se puede adquirir pero es mas fácil adquirirlo del encapsulado del Micrófono.10665-04.jpg

El modulo usado en la patente que fue el que mas se adapto al WFS fue el Módulo Inalámbrico USB Programable de Wixel basado en el microcontrolador TI CC2511F32 y claro esta implementado con 2 sensores analógicos que están conectados a un OPA cuadruple.

wixel-programmable-usb-wireless-module-1-large.jpg

Sensor Táctil descártelo por completo porque este censa cualquier material, el K596 lo puede ajustar para que detecte desde, frecuencias, materiales, voltajes, impedancias, sonido, carga electroestática y mucho mas complementando con su respectivo OPA claro esta.
 
Última edición:
Gracias. Entiendo que lo de la frecuencia consistiría en lo siguiente:
- un oscilador en la punta de la espada que emita una señal a una frecuencia determinada;
- un detector en la cazoleta que detecte esa frecuencia.
El LM393 sería parte del oscilador, y el K596 parte del detector? Sería genial tener un proyecto de referencia en donde se haga algo parecido a esto, que pueda usar para aprender cómo funcionan estos componentes e integrados.
 
Gracias. Entiendo que lo de la frecuencia consistiría en lo siguiente:
- un oscilador en la punta de la espada que emita una señal a una frecuencia determinada;
- un detector en la cazoleta que detecte esa frecuencia.
El LM393 sería parte del oscilador, y el K596 parte del detector? Sería genial tener un proyecto de referencia en donde se haga algo parecido a esto, que pueda usar para aprender cómo funcionan estos componentes e integrados.

El LM393 es comparador que puede comparar 2 oscilaciones y si el K596 seria el detector el pin central que es el Gate iría al chasis de la cazoleta.
 
Pensaba que comparar las oscilaciones lo podía hacer con programación en el arduino, no es así?

Volviendo a leer lo que me explican, creo que puedo responder mi propia pregunta, de por qué tengo que usar un comparador.

Al tener que trabajar a altas frecuencias, para reducir efectos parásitos, entonces no puedo comparar las frecuencias con programación en el Arduino, por la velocidad de muestreo del mismo, que sólo me permite llegar hasta 10kHz. Lo entendí correctamente?

Entonces entiendo que usaría un amplificador operacional en modo comparador, para comparar la frecuencia que proviene de la punta de la espada del oponente al tocar mi cazoleta, con una frecuencia esperada. Entiendo que el comparador recibiría un input (cazoleta) y arrojaría un output que iría a un pin de entrada digital del Arduino. El output indicaría si la frecuencia input está dentro de un rango esperado o no. Imagino que este rango lo especificaría yo colocando las resistencias adecuadas al comparador. Es así?
 

Fusatronica

Well-known-Thundercat
1596557968583.png
Mi ser campeón de espada😅 es broma soy practicante de 剣道 "Kendo Thundercats", soy malo para leer 4 paginas pero a vuelo de pájaro entendí el chicharrón, pero lo que veo es que hay mucho tilín tilín y nada de paletas.

Profe Zoidberg no estaba Ud tan lejos de la solución del PLL, yo optaría por colocarle un VCO usando el CD4046 y listo.

huilen ojala tenga un osciloscopio porque medir estas frecuencias y compararlas no es nada sencillo.

Dejo unos buenos videos para que se entienda el PLL y el VCO.



 
Última edición:
Muy buenos los vídeos. Pregunta, si tuviera un mejor microcontrolador con una velocidad de muestreo más alta, hay chance de poder hacer la comparación de frecuencias con programación en vez de con electrónica?
 
Arriba