Fabulous Four

Max Harper, Alvin Li, Tao Yang, Jeff Chonko

             An embedded system that will track the arc of a basketball foul shot intended as a training device to raise free throw percentage. Our system will track the basketball using an array of sonar range sensors. Using these data points, we will extrapolate a parabolic curve, analyze this curve, and give immediate audio feedback to the player.

             The current commercial product that utilizes computer vision that is comparable to our project costs $6000, which is out of the price range of all except the richest of high school/ college basketball programs. Our product will cost substantially less and could be a viable option for even an average high school. High school students and even younger athletes can have access to a tool that could dramatically increase their shooting ability.

Noah Select System - $5,798

             Our product is more affordable, portable,

gives immediate feedback, and does not require

a laptop to operate.




Arc-A-Shot - $86.95
             Our product is gives immediate audio

feedback, measures complete shot arc, and

gives more accurate and valuable feedback.




Spalding Intelligent Basketball  - Not available commercially

             Our product can be used with everyday basketballs while giving immediate audio feedback and not changing the characteristics of the basketball.


· Robostix/Gumstix

· Audiostix2

· LV Maxsonar EZ0



· C and Assembly Languages



· RS232 Serial communications or Universal Asynchronous Receiver/Transmitter communications


Complete Parts List with Pricing

· Provide player with valuable audio feedback within 2 seconds of the shot going through the hoop

· Measure the shot arc degree within  5 degrees

· Remember keep record of the last 100 shots and provide more in-depth feedback

Risk: Balls landing or people stepping on sensors


             Strategy: Mount each sensor in a small enclosure with an

                          opening (less than an inch across) in the top.



Risk: Noisy sensor data


             Strategy: Use a simple bounds check to filter data in real-time.


             Strategy: Only pulse a sensor if an adjacent sensor detects                             the ball (default is pulse the first sensor).


             Strategy: Collect a large amount of data to facilitate detection                           of erroneous data.



Risk: Ball travels fast enough to avoid sensor pulses


             Strategy: High frequency sensors used in the system.


             Strategy: Sensors with a non-negligible beam spread used.


             Strategy: All data analysis done after all data collection.                                    During data collection simply record entries with a                                   distance reading, sensor number, and time of reading.



Risk: Sensor beam spread provides inaccurate position data


             Strategy: Calculate each ball position by triangulating two                                adjacent sensors’ distance readings in a small time                                 interval and the known distance between sensors.



Risk: User does not place sensors in required locations


             Strategy: Entire system is attached at the proper relative                                  locations to a slightly stiff strip of cloth or plastic weave.                           The user will be able to simply secure one end under                              the hoop and unroll the system, eliminating any                                        significant user setup.



Risk: Sensory interference from the shooter or hoop


             Strategy: All sensors will be offset from the shooter and hoop                           towards the middle of the shot arc.

-Bad Readings will be handled by prompting the user to shoot again.

-User errors will require a manual reset by the user

-Errors noticeable through code execution will result in a restart by the program


Implementation Details

Test Cases

Test plan


Power On/Off

why: most basic sanity check

how: repeated tests where we simply turn on and off the system(gumstix)

result:fault free



why: make sure each sensor produces consistent data

how: position the sensor toward the ceiling, it should produce a

consistent reading(with minor noise). Then move the sensor down,

its reading should go up accordingly.

result: TBD


Throwing the Basketball

why: verify the accuracy of each sensor.

how: setup all 4 sensors, space them apart and throw a few passes

 across them. We will video tape the process,

so we can approximate the actual distance and use it to verify

 the sensor readings are accurate.



Free Throw

why:  verify the correctness of the system

how: The user will shoot 20 free throws. We will video tape the process,

analyze the shot arc from the video,

use that to verify the shot arc we extrapolated from the sensor

readings are correct.



I/O Device

why: make sure the I/O devices are working correctly

how: verify the audio output from the speaker matches the input we sent

result TBD



why: make sure the system can record shot statistics correctly

how: pull the memory card after a few trials and read it using a

computer, it should still have the data for last 20 shots



Useless Data

why: If the user shoots so far off the target(or the sensor data is

corrupted somehow) that we can't

reconstruct an arc that makes sense with the data collected, the

system should tell the user to shoot again rather than calculating with useless data

how: shoot the ball wide left/over the backboard, and check the system output

result TBD


Sensor/Audio Connection Dies

why: The system should stop and the users should be notified if such events occur

how: disconnects one of the sensors during the operation, error should be reported



Power Outage


why: The system should act reasonably when the power is lost and

restored(restart correctly,no lingering effects etc).

The data recorded before the power went out should still be there

how: yank the power line. See what happens


More detail will be provided soon...

More detail will be provided soon...

More detail will be provided soon...