Agility Trainer || V1

by SnifferGuardian in Circuits > Assistive Tech

51 Views, 0 Favorites, 0 Comments

Agility Trainer || V1

IMG_0391.jpeg

This is version 1 of my project: Grandpa's Trainer! I made this for my grandpa, who has this condition called Parkinson's disease. It is a condition that reduces your motor skill (He moves in slow motion), reduces dopamine and makes things harder for him. To battle this, I used the things that my grandpa and I both like: boxing, music, and robotics. Boxing is a great way in combating Parkinson's because it retrains his internal clock, recalibrates the brain to move in larger steps, and it makes the brain think while responding to external stimuli. Hope you enjoy this project (Not just for old people!). This project uses the Piezoelectric sensor to detect how hard a person punches and analyses the data to calculate the average reaction time of the punch.

Supplies

  1. 1x Arduino Maker Nano
  2. 1x Cutter
  3. Tape
  4. 16x Magnet buttons (4x for one box)
  5. 4x Transparent Box
  6. 4x USB -> USB cable
  7. 4x Piezoelectric module
  8. 6x USB module
  9. 1x Breadboard
  10. 8x LED
  11. Some jumper wires
  12. 1x Soldering Iron + Solder + Workbench
  13. Windows running computer with NVIDIA Graphics Card (For full functionality)

Control Board: Connecting Power

Screenshot 2026-03-29 151730.png

Connect power pins as shown

Control Board: Connect Power to USB Ports

Screenshot 2026-03-29 153057.png

Connect the power pins on the USB module to the power rails that we previously connected the Arduino to as shown

Control Board: Connect Digital Data Pins to USB Ports (LEDs)

Screenshot 2026-03-29 154031.png

Connect the digital pins (7-12) to the "D+" pins on all 6 USB modules as shown (These are the LED pins)

Control Board: Connect Analog Data Pins to USB Ports (Piezoelectric Sensor)

Screenshot 2026-03-29 154711.png
IMG_0400.jpeg

Connect the digital pins (A0-A5) to the "D-" pins on all 6 USB modules as shown (These are the Piezo sensor pins) You're done for the control board!!!! here's what it should look like:

Punching Box: Setup LEDs

Screenshot 2026-03-29 160530.png

Connect two LEDs as shown, do this step 4x

Punching Box: Connect GND Pins

Screenshot 2026-03-29 161214.png

Connect GND pins from the LED, Piezoelectric module, and USB all together as shown! Do this 4x for each box

Punching Box: Connect LED and Piezoelectric to USB

Screenshot 2026-03-29 161613.png
IMG_0403.jpeg

Using the 4 pieces you made in the previous step, connect the LED's anode to the USB's "D+" wire. Don't forget to do this 4x. Now you're done with the circuit stuff!!! Above is what it should look like for the circuit

Control Board Housing: Secure Breadboard Onto Housing

chaos monkey.jpg

Grab a piece of cardboard box and put in the breadboard that has the Arduino on it and secure it someway (I just hot glued it

Control Board Housing: Cut Holes in Housing for USB Ports

asdf.jpg

For each of your 6 USB ports, cut a hole using a cutter to fit your USB port in! if you want, you can permanently secure it using hot glue, Now you're done for the Control Board Housing!!!!!!

Punching Box Housing: Drill Hole for USB Port

IMG_0413.jpeg

Use a drill to drill a hole into the clear plastic casing for the punching box housing, do this 4x

Punching Box Housing: Attach Piezoelectric Sensor to Front of Casing

IMG_0411.jpeg

Attach the Piezoelectric Sensor to the front of the casing as shown above, do this 4x

Punching Boxing Housing: Glue Magnets

IMG_0412.jpeg

Glue on the magnetic buttons onto the casing in a square pattern, do this for all casings

Punching Boxing Housing: Tape Both Sides of Casing

Tape both sides of casing for all casings: NOW You are done for the hardware!!!!

Software: Clone From GitHub

Screenshot 2026-03-29 170716.png

Go to your windows PowerShell and type in the command:

git clone https://github.com/SnifferGuardian/boxing.git

Upload Code to the Arduino

Screenshot 2026-03-29 170815.png

After that, go into the boxing folder and copy the boxing.ino into Arduino IDE, and upload that code to the Arduino Nano

Installing Libraries

Now, you need to install these dependencies:

aesara==2.9.4

capturer==3.0

charset_normalizer==3.4.4

checks==0.2

clr==1.0.3

cog==0.17.1

colored==2.3.2

contextlib2==21.6.0

controlnet_aux==0.0.10

cupy==14.0.1

Cython==3.2.4

diffusers==0.37.1

docutils==0.22.4

evaluate==0.4.6

flet==0.82.0

flet_audio==0.82.0

flint==0.0.1

gmpy2==2.3.0

HTMLParser==0.0.2

hypothesis==6.151.10

importlib_metadata==9.0.0

ipython==8.12.3

librosa==0.11.0

lxml==6.0.2

matchpy==0.5.5

mock==5.2.0

monotonic==1.6

mpi4py==4.1.1

mtrand==0.1

multiset==3.2.0

mypy==1.19.1

nvtx==0.2.15

onnxconverter_common==1.16.0

onnxruntime_extensions==0.15.2

onnxscript==0.6.2

opencv_contrib_python==4.13.0.90

opencv_python==4.11.0.86

optimum==2.1.0

pandas==3.0.1

parameterized==0.9.0

Pillow==12.1.1

polygraphy==0.49.26

psutil==7.2.1

py==1.11.0

py3nvml==0.2.7

pycosat==0.6.6

pydot==4.0.1

pydy==0.8.0

pygame==2.6.1

pyglet==2.1.13

PyInstaller==6.19.0

pymc==5.28.2

pymc3==3.11.6

pynput==1.8.1

pysat==3.2.2

pyserial==3.5

pytest_run_parallel==0.8.2

PyYAML==6.0.3

Requests==2.33.0

sage==0.0.0

scipy==1.17.1

scipy_doctest==2.2.0

setuptools==70.0.0

symengine==0.14.1

tensorrt==10.7.0

tensorrt_cu12==10.7.0

tf2onnx==1.17.0

theano==1.0.5

threadpoolctl==3.6.0

torch==2.6.0+cu124

torchvision==0.21.0+cu124

tqdm==4.67.3

ultralytics==8.4.7

verboselogs==1.7

wcwidth==0.6.0

using pip!

Run the Game!!!!!

Screenshot 2026-03-29 172754.png

Now, you are done! run: python3 app.py and start testing out the app!!! Hope you have fun! Also set the correct COM port and make sure no other process are using the COM port to interact with the arduino!!! HAVE FUN!