Inspiration
The inspiration behind "Score Master" derives from a passion to amplify community engagement and enjoyment through an inclusive and accessible platform. Guided by the spirit of "Go Touch Grass," the project was conceived to create a product that not only promotes outdoor activity but also cultivates a sense of unity. Inspired by the vibrant moments of a basketball gameβwhere people from diverse backgrounds come together to share joy and create enduring memoriesβwe envisioned a straightforward yet impactful solution. By integrating technology, we transformed ordinary basketball hoops into smart scoring systems. The goal was to provide a universal and affordable experience, allowing individuals of all backgrounds to participate without financial constraints. "Score Master" embodies our dedication to inclusivity, uniting communities through the shared love of sports while embracing the essence of outdoor enjoyment and social connection.
What it does
"Score Master" revolutionizes the basketball experience by introducing a smart scoring system that seamlessly integrates with any hoop. Our sensors, easily attached to basketball rims, detect successful shots and transmit the data via Bluetooth to a user-friendly mobile application. Developed with React Native and Expo, the app provides real-time score updates, turning ordinary games into spirited competitions. The project's focus on the "Go Touch Grass" theme translates into fostering community engagement, bringing people outdoors, and promoting social interactions through the universal language of basketball. Every basket becomes a moment of shared joy, building connections among diverse individuals. The product not only enhances the thrill of the game but also serves as a catalyst for community bonding, exemplifying the power of technology to create accessible and enjoyable experiences that transcend backgrounds and bring people together in the spirit of friendly competition and fun.
How we built it
Regarding the firmware, we needed a microcontroller which supported bluetooth. For this we settled on the ESP32 Devkit V1 which allowed us to program using the arduino esp32 bluetooth library. Additionally we used PlatformIO as opposed to Arduino IDE for flexibility. To detect shots, we used a 3.3v distance sensor along with its associated library. Additionally we used a physical OLED display to show the current supplemental on board score. For this we used the Adafruit SSD1306 library. We also had to implement our own algorithms to increase the reliability of the score detector.
For the mobile app, we decided to use the Expo framework. We realized we needed a way to communicate with the MCU, so we settled on using Bluetooth for our communication protocol, specifically BLE. In order to achieve this, we found an online bluetooth API for react-native known as react-native-ble-plx.
Challenges we ran into
A big challenge that we ran into was connecting the mobile device with the scoreboard using Bluetooth. This required us to delve into the details of how the BLE protocol works. Through thorough debugging, we were able to get the communication to perform smoothly. We also ran into issues compiling our app do to java version bugs in the expo codebase.
Another challenge was reliably reading the score data from the sensor as well as writing to the display. The display library we used was very buggy, and thus much iteration and library source code analysis was used to figure out a solution.
Accomplishments that we're proud of
One accomplishment that we are proud of was achieving perfect synchronization between the app and the scoreboard. We were also able to responsive feedback for tracking when the ball is scored. A highlight of our project was also that we were able to get our device in a very portable form, as well as the appealing display driver we wrote.
What we learned
Through this project, we were able to achieve a much greater understanding of how the BLE protocol works. We also gained a lot of experience in mobile app development and embedded systems programming.
What's next for Score Master
Given the cost-effectiveness and versatility of our project, there is potential to enhance and integrate its components for mass production and widespread availability. A key aspect of this improvement could involve minimizing the hardware size for increased portability and adaptability to various basketball hoops. Additionally, exploring methods to differentiate between 2-point and 3-point shots is essential. While our initial plan involved calculating ball velocity, we realized that numerous edge cases could not be addressed with such a straightforward algorithm.
Log in or sign up for Devpost to join the conversation.