This is an Arduino based impact timer. Like a shot timer but using vibrations instead of sound. An Android app sends a start command to the Arduino over bluetooth containing the delay between cycles and the number of cycles to run. The arduino waits the delay time + a random amount of seconds between 0 and 5 then triggers a speaker, records the current time, waits for the piezo sensor to trigger and then reports the elapsed time back to the android app.
- HiLetgo HC-06 RS232 4 Pin Wireless Bluetooth Serial RF Transceiver Module
- 6Pcs SFM-27 DC 3-24V Electronic Buzzer Alarm
- ELEGOO UNO R3 Board
- Gikfun Analog Ceramic Piezo Vibration Sensor
- Elegoo EL-CP-004 120pcs Multicolored Dupont Wire
- 5pack 9v Battery Clip
The Bluetooth module connects: RXD to Arduino pin 11, TXD to Arduino pin 10, VCC to 5v, GND to GND.
The speaker red goes to Arduino pin 13, black wire to digital GND.
The piezo sensor + to 3.3v, – to GND, Signal to A0.
The Arduino code requires the ArduinoSerialCommand library to be installed.
I wrote the Android app using MIT’s AppInventor 2. The project is here, it was my first time using it so could probably be done better.
The compiled Android app is here
The Arduino code is here
The threshhold variable in the Arduino code can be raised or lowered depending on how sensitive you want the impact sensor to be. At the current settings it seems to work fine taped to a carboard target far away from the impact area
To pair the bluetooth module use the pin: 0000 or 1234
The Android app is fairly straight forward. Settings allows you to change the delay and the number of cycles. Use the connect button to connect and the start button to start the cycle. The clear button will reset your “all time best” to 1000 seconds.
There are bugs, changing settings requires you to reconnect to the bluetooth module.
If you start a number of cycles, you must finish them, there is no cancel button 🙂
If the app bugs out just close it and reset the Arduino. If I fix the issues I’ll re-post a new APK.
If you like it, buy a knife 🙂