Git Product home page Git Product logo

touche's Introduction

Touché

Overview

Touché is a wireless scoring system for fencing based on Arduino and nrf24l01.

The goal is to make an affordable, open source and open hardware system.

It currently only works for epee.

⚠️ Foil and sabre support is in the roadmap but in a latter version that will certainly be on a different mcu (ESP32 or STM32).

The system is divided into 3 parts: one base station and two fencer boxes.

During the early days of this project I called the base station the server and the fencer boxes the clients, I will use this naming in this document and across the project.

Getting started

To make a system you'll have to go through these steps:

  1. Order the PCB and all the components
  2. 3D print the boxes
  3. Program the Arduino
  4. Solder the PCB and assemble everything
  5. Enjoy!

I wrote a step-by-step tutorial that you can find in Assembly_Guide.

If you have a question about anything (please read the tutorial first) you can open a Github issue and I will try my best to answer you.

About the directory structure

This repository contains all the sources, 3D files, and PCB files needed to make this system.

.
├── Archive           # some old versions of the project
├── Documents         # pcb sources, and STL files
├── Code              # source code
├── Assembly_Guide/   # step by step tutorial to DIY

Each directory has its own README.md to explain this with more details.

Roadmap

See Github issues.

Contribute

If you have any improvement idea, find a bug or encounter a problem you can open a Github issue.

License

All the code, CAD files, PCB files, and everything within this repository is licensed under the terms of the GNU General Public License V3.0.

touche's People

Contributors

drysque avatar yohannfra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

touche's Issues

Timing question

Looking at touche.h, line 65 (as of Jun 13th commit), the double touch time is set to 300ms. Above in the comments, it is explained that there is ~260ms of processing time when both tips are pressed. For clarification, does this mean that the system cannot meet the rules timing requirements to distinguish between a single touch or double touch due to processing/communication delays?

I am also wondering what are good methods to measure these timings across the whole system given the various factors?

Could Touche be adapted for Boffer Combat?

Hello. I was to use an automated scoring system for my Boffer Combat.

The main things I can think of is that Boffer Combat has many opponents at one and multi hit locations.

Would I just have change the software to track more that 2 combatants then to change the hardware to add multiple lamè connectors?

Edit: correct epee to lamè

Foil and Saber

Are the program and assembly instructions updated to accommodate saber and foil?

Typo server code LedRing.cpp?

Hi,
I've been trying to familiarise myself with the project code while I await the arrival of parts to make it.
In the process I think I may have spotted a typo in the show_hits function.
Line 113:
else if (action_player2 == ActionManager::VALID_HIT)
I think should be
else if (action_player2 == ActionManager::INVALID_HIT) ??

PS: I'm really enjoying learning about this project - you are doing great work!!

Use SMT components

Pro:

  • makes the assembly faster and easier (for some)
  • cheaper bill of material
  • smaller pcb
  • use of ATMEGA328P directly, no useless components (like arduino's led , buttons or usb driver)

Cons:

  • makes the assembly harder (for some)

PWM detection instead of capacitance detection for future iterations

Hi,
Big fan of the project! I was also thinking of developing a system, but this is great. While researching the issue of detecting guard hits (talking epee specifically), the question has been posed multiple times, without a good answer besides capacitive sensing, which has its obvious drawbacks.

According to this thread, https://forum.arduino.cc/t/wireless-fencing-scoring-system-detecting-a-pwm-signal-without-common-ground/686963 the patent for true wireless systems uses PWM detection to discriminate against grounded hits. Now, the issue is that without a common ground, floating detector pins will give a lot of false negatives.

But, doing further investigation (reply nr 8 here https://www.avrfreaks.net/forum/communication-wout-common-ground) 100kHz and up signal could be detected reliably.
I believe with some care it's possible to use Arduino as a signal generator to drive 100kHz PWM signal to grounded surfaces and detect it with the depressed point. I'll try and experiment with this to confirm I can detect PWM without a common ground.

Your thoughts?

Info about touch sensing and timing

Hi @Yohannfra

Firstly what a great project. This is something I have tried to implement myself over the years and I am excited to see that you have solved some of the problems I encountered. I would be keen to hear how you solve them.

On target sensing for foil? How did you manage this, was it with the capacitive sensor on the attacking fencer?

Then the timing between the 2 fencers, particularly lockout. How do you synchronise the 2 clients and then ensure that if an NRF packet is lost and needs to be re transmitted that it doesnt mess with the timing? Do you put a time stamp in the packet that is synced to the client clock?

Again, awesome project. I am keen to collaborate if you are interested to take this further.

Regards

W (Author of https://github.com/wnew/fencing_scoring_box)

Move to rechargable 3.7v batteries

For now each device is powered with 3xAA alkaline batteries, maybe a 3.7v lipo rechargeable battery would be better.

Pro :

  • rechargeable
  • open the road to arduino pro mini 3.3v (Logic level shifter will be needed for the neopixel)
  • makes all the boxes smaller and lighter

Cons:

  • Need to recharge the devices
  • Lipo batteries are more expensive than AA alkaline batteries

Interested in this project

Hi there,

Very cool project and I'm interested in knowing more. I'm wondering if you have some research material to tackle this project. Feel free to contact me by dropping me an email [email protected]

Epee Mode

Hello, I recently did a project for my graduation in Eletrotecnic Engineering but my capacitive sensor sometimes works, sometimes not. I'm interested in your capacitive sensor, does it always work without any problem?
Thanks

Collaboration

Hi @Yohannfra,

I have been looking at this project and love what you have done. I am the author of the https://github.com/wnew/fencing_scoring_box.

I have been upgrading and creating a couple of PCB designs for my design and would like to collaborate. Would you be interested in having a chat sometime?

Regards

Wes

Wiring question...

I've built the boxes and checked that they are working by enabling debug mode. I'm able to see messages between the client and server, and it seems like epee touches work. Unfortunately, they also trigger on the bell guard. Is the capacitive sensor supposed to detect the bell guard and disable the signal?

Also, I'm not sure foil is working correctly, and it seems like the pins might be mixed up. Normally, the middle pin on the foil body cord carries the voltage up the wire in the weapon; however, the voltage seems to be on the alligator clip instead. Can you explain how the pins are intended to work with this system? I only get foil touches if I connect the weapon (not the tip) to the alligator clip--not if I press the tip.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.