This description relates to sports training, and more particularly to an interactive sports training system.
This description further relates to an interactive sports training system (e.g., a physical, real-world trainer) with an accompanying interactive thin client software application for mobile devices. In some implementations, the system can include or can interact with a cloud computing platform and artificial intelligence (AI) algorithms that allow players, parents, and coaches to review or customize training sessions and analyze a player's performance.
While this description refers primarily to hockey in explaining the system and its advantages, the system can be used for other sports, physical training, or physical therapy. For example, the system can be adapted to any sport involving a ball, puck, or the like, with or without a racket, stick, or the like, and requiring hand-eye coordination, accurate maneuvering, positioning, passing and shooting of a ball, puck, or the like. Therefore, similar applications can be realized in many other sports, including, but not limited to, lacrosse, tennis, soccer, football, field hockey, baseball, and basketball.
Ice hockey is a sport popular in many countries around the world, including Canada, USA, Russia, Finland, Sweden, Czechoslovakia, China, Japan, and Germany. In Canada, where the sport was invented, it is common for players as young as three years old to begin practicing their skills. Many competitive young players are on the ice an average of five hours or more per week practicing and playing. At elite levels, young players will practice two to three hours each day with at least 50% of their practice time devoted to the art of stick handling, shooting, and passing.
Typically, very little competitive, individual stick handling practice is accomplished outside of the scrimmage and game situations, either on or off the ice. During on-ice practice, players may spend time moving the puck along and around predetermined routes usually marked by small orange cones along the ice. During off-ice practice, players may spend many hours practicing stick handling, passing, and shooting in their homes, schools, parking lots, and streets using various objects such as tennis balls and rubber balls. On-ice practice is limited by the cost of renting ice time, which is expensive and continues to climb. As a result, many players practice off-ice, either by themselves or in groups.
Currently, off-ice practice methods that simulate a real game environment are limited. Players can practice together and create competitive games against each other wherein each player tries to take the puck from the opposing player or players. Players play actual games against each other (with or without keeping score), commonly referred to as ball hockey or street hockey. There are many difficulties to these methods. For example, it is often hard to find additional players of the same skill level for such practice. When one player's skills are superior to those with whom he is playing, that player gets less of a ‘real’ practice because their skills are not challenged. Also, physical space constraints may severely limit players' abilities to practice their games.
Players may also practice on their own, but when a player practices alone, whether on or off the ice, the player is denied the element of anticipation, unpredictability, and spontaneity that is integral to developing a high level of proficiency at playing the sport. In other words, when players practice by themselves, they always know in advance precisely what their next move is going to be because they must decide what to do and where and how to move the ball or puck, whether that is during stick handling, passing or shooting practice. The level of challenge available in a multi-player game is simply not present when one practices alone. On their own, players may practice moving the puck or ball from side to side as fast as they can. They can also practice passing the puck or ball to imaginary spots as well as shooting the ball against imaginary targets, or, sometimes, into goal nets. Additionally, other than striving to complete a practice drill in a shorter time, a player has little or no competitive pressure or incentive on him while practicing on his own. While time for completion is a factor in a player's overall skill set, it is only one object of his proficiency. A player's ability to respond quickly and accurately to other players' unanticipated and unknown next moves is also important—this skill, however, simply cannot be practiced or honed in such individual practice. As such, a player has no accurate way to measure his performance and improvement while performing such drills.
The training system described in this specification simulates the anticipation, responsiveness and unpredictability of a physical multi-player game, which can improve a player's hand-eye coordination, stick handling, passing and shooting ability in an environment that closely approximates a multi-player hockey game. This portable, compact and affordable training system also allows a player to practice anytime and anywhere he chooses under conditions that simulate a ‘real’ competitive environment, which otherwise requires other players and a competitive physical space (e.g., a sheet of ice in the case of hockey). The training system allows users to practice stick handling, passing or shooting in a “blind,” responsive and interactive manner and is capable of providing combined improvement of maneuverability, foot speed, foot work, hand-eye coordination, reaction time and, overall, the skills required for effective stick handling, passing and shooting in a ‘real’ game of hockey. Moreover, the training system can provide a practice board that allows users to customize their training sessions and leverage AI to understand how to make improvements to their playing style and physical skills.
In some implementations, an interactive training apparatus includes a plurality of platform components. Each platform component has a substantially flat upper surface and is adapted to interconnect with at least one of the other platform components. In addition, each of the platform components includes one or more visual indicators attached to the platform component and situated at or below the upper surface of the platform component, a detector attached to the platform component substantially adjacent to each of the one or more indicators, and a detector microcontroller communicably connected to the detector. The detector is adapted to detect a presence of a game accessory in proximity to the detector. A main control unit is adapted to receive data frames from the detectors in the plurality of platform components and to determine a quantity of detectors in an interconnected set of platform components based on data contained in the data frames. A memory communicably connected to the main control unit stores a plurality of routines. The main control unit is adapted to execute a selected routine based at least in part on the determined quantity of detectors, with the selected routine defining a sequence of activation of the indicators in the interconnected set of platform components.
Implementations can include one or more of the following features. The detectors in the plurality of platform components communicate with the main control unit via at least one communication bus. The detectors in the plurality of platform components communicate with the main control unit via a daisy chain configuration. The main control unit is adapted to identify a configuration of the interconnected set of platform components based on the data contained in the data frames. Each of the detectors is a reed switch or a hall effect sensor adapted to detect a game accessory that includes an embedded magnet. In some implementations, other types of sensors or detectors (e.g., accelerometers, pulse doppler detectors and infrared detectors) can also be used. Each of the detectors is adapted to detect a game accessory that includes at least one of an embedded radio frequency identification chip or an embedded near field communication chip. The main control unit is adapted to receive data identifying a sequence and timing of the detector detecting a presence of a game accessory in proximity to the detector during execution of the selected routine and store data relating to a degree of correspondence between the identified sequence and timing of the detection of the presence of a game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components. The main control unit is adapted to wirelessly communicate with a software application installed on a mobile device to receive an identification of a selected routine from a subset of available routines identified based at least in part on the determined quantity of detectors, receive instructions for initiating the selected routine, and communicate data relating to the degree of correspondence between the identified sequence and timing of the detection of the presence of a game accessory in proximity to the detector and the sequence of activation of the indicators in the interconnected set of platform components. At least one platform attachment is adapted to connect to the platform, and the main control unit is adapted to detect a presence of the at least one platform attachment and to execute a selected routine based at least in part on the presence of the at least one platform attachment.
In some implementations, an interactive training apparatus includes one or more indicators embedded in a platform, a plurality of detectors embedded in the platform substantially adjacent to each of the one or more indicators, a main control unit, and a memory communicably connected to the main control unit. A detector microcontroller is communicably connected to each detector, and each detector is adapted to detect a presence of a game accessory in proximity to the detector. The memory stores one or more routines. The main control unit is adapted to receive data indicating a presence of a game accessory in proximity to each of the detectors, wirelessly communicate with a mobile device executing a software application adapted to communicate with the main control unit, execute a selected routine defining a sequence of activation of the indicators in the interconnected set of platform components, and communicate, to the software application executing on the mobile device, results data relating to a degree of correspondence between the detection of the presence of a game accessory in proximity to the detector and the activation of the indicators in the interconnected set of platform components.
Implementations can include one or more of the following features. The main control unit is adapted to wirelessly link to the software application using a short-range wireless connection to authenticate a mobile device. The main control unit is adapted to receive one or more routines from the software application. The software application is adapted to communicate with at least one remote server to obtain the one or more routines. The software application is adapted to enable a user to generate the one or more routines. The software application is adapted to transmit the results data to a remote server for storage and/or analysis. The selected routine is selected in response to one or more commands from the software application identifying the selected routine. The identification of the selected routine identifies the selected routine from a plurality of available routines stored on a memory connected to the main control unit or the mobile device in wireless communication with the main control unit. The selected routine is selected from a subset of the plurality of available routines, with the subset of available routines identified based on a set of parameters selected by a user. The selected routine is selected from a subset of the plurality of available routines, with the subset of available routines identified based on a configuration of the platform identified by the main control unit. The main control unit is adapted to detect a configuration of the platform based on data contained in data frames received from the plurality of detectors.
In various implementations, the systems described in this specification may provide one or more of the following features and advantages. The interactive sports training system is adaptable for, and capable of accommodating, multiple players in time and accuracy challenges by, for example, joining several such systems either physically or wirelessly. Multiple users can pair their mobile devices, such as smart phones and tablets, and to control, to record, or to customize training on the interactive sports training system. The interactive sports training system can be used by coaches and instructors to challenge players in a simulated ‘real’ game environment without the need for renting expensive ice or practice field time. The interactive sports training system can further allow a player, parent, or coach, to track player progress or to create new, customized practice routines or to conduct random routines. Users can login to the web portal on the cloud computing platform and view statistics of gameplay on the system. Additionally, players, parents, and coaches can build their own training routines that can then be downloaded directly to firmware on the training system, utilizing a thin client application on the player's mobile device (i.e., an “app”). The use of cloud AI can additionally create new games or routines based upon performance metrics and analytics of gameplay performance for each player. The interactive sports system is capable of generating endless training routine variations so as to prevent the boredom routinely associated with repetitive practice drills. Players are also allowed to add additional playing surface modules and/or accessories to the interactive gaming system to expand the training area of the training device. By way of example, a player may add an additional mat or panel to the hockey training system such that it grows from, for example, 66 inches in length to 93 inches in length. For older, larger, or more highly skilled players, this expanded practice area allows them to refine their skills over greater distances. The interactive sports training system allows a player to practice in the dark. In total darkness, a player will be able to see the activated light source only and will have to attempt to deactivate the light source without being able to see the ball or puck he is moving.
In some implementations, the interactive sports training system is suitable for improving overall physical fitness levels. The app can measure a player's vital signs during a session by connecting to existing fitness monitor devices and displaying this data on a user's mobile device. The interactive sports training system can allow potential customers to try out and get a ‘feel’ for hockey sticks in a ‘real life’ environment before purchasing a hockey stick. In addition, the AI can record a user's performance using various stick brands and make a recommendation based on the performance it observed during sessions to help them purchase the best stick for their skills or tendencies. The interactive sports training system can monitor elapsed time, or time for completion, calories expended, heart rate and other physical fitness indexes across multiple players. This data can then be sent to the cloud and coaches can observe player data together. AI algorithms can even make predictions regarding which players perform better when in each other's company. The interactive sports training system can be used for pay-for-play, the way, for example, batting cages and video games are currently available, at various gaming places such as, but not limited to, sports retailers, restaurants, pubs, arcades, etc. The system can be used for shooting or throwing accurately at designated targets, such as the goal nets of different sports when a live goalie or defender is not available. The system can be used to record training events, rank players, and share play data with other users, coaches, parents, recruiters, or other third parties. This feature can foster competition and allow players in other geographic locations to compete with each other and enhance performance. In addition, the system can provide a platform or framework for players to submit and to exchange approved routines, wherein the routines that demonstrate greatest improvement may be purchased or downloaded by other players. The system can provide a method for improving reaction time, accuracy, agility, and hand-eye co-ordination for sports in which a ball, puck, or the like, is used, with or without a stick, or the like. A player can detect the unpredictable location of a signal to which a ball, puck, or the like, must be delivered; judge, based on the detected location of the signal, the optimal movement and position of the ball, or the like; handle the racket, or the like, so as to shoot or propel the ball, or the like, to the detected location; deliver the ball, or the like, to the detected location; and repeat the sequence of in response to additional unpredictable signal locations.
Like reference symbols in the various drawings indicate like elements.
In accordance with aspects described in this specification, a physical, interactive sports training system simulates the anticipation, responsiveness, and unpredictability of a real-world, multi-player sports game in which the player is competing with, or playing against, other players whose strategy, movements, and actions are neither known nor predictable. The training system can be used to require the player to respond to signals, the location, frequency, and occurrence of which are unknown and unpredictable, or respond to signals that are intentionally sequenced to produce stronger muscle memory or physical strength and endurance for specific skills through repetition. Thus, performance can improve for both known and unknown challenges. The training system can be used to improve a player's hand-eye coordination, stick handling, ball handling, passing, and shooting ability in a ‘real game’ environment, while practicing without an opponent.
The training board 100, in some implementations, includes rebound bars 125 at each end. The rebound bars 125 can be constructed of a pair of posts 130 with an elastic loop 135 stretched around and between the posts 130. The rebound bars 125 can operate to prevent a puck, ball, or the like from exiting either end of the training board 100. Depending on the degree of elasticity of the elastic loop 135, the rebound bar 125 can cause the puck to be propelled back in the general direction of the middle of the training board 100. The rebound bar may be of various lengths, heights, and elasticity, as suitable, to accommodate a particular sport or a variety of sports.
In operation, software running on a microcontroller (or microprocessor) embedded within the substrate 110 of the training board 100 and coupled to the light sources 115 and sensors controls the light sources 115 and causes specific individual light sources 115 to illuminate according to a selected training routine. For example, the light sources 115 spaced across the training board can be illuminated in a specific sequence that is unpredictable to a user. Depending on the training routine, the light sources 115 may be illuminated one at a time, where a first light source 115 is illuminated and a second light source 115 is only illuminated after the first light source 115 is deactivated. Alternatively, more than one light source 115 may be illuminated at a time or illuminated in a staggered manner, in which a first light source 115 is illuminated and then a second light source 115 is illuminated before the first light source 115 is deactivated. The illuminated light sources 115 serve to signal to the user where the user needs to deliver the puck. In some implementations, the light sources 115 can illuminate in different colors (or different light sources having different colors can be used) to signal different requirements (e.g., scores can be incremented for blue lights and decremented for red lights). In some implementations and/or in some situations, audible signals can be used in addition to or instead of illuminated light sources. To deactivate each light source 115, the puck has to be brought into close proximity to the light source 115 to cause the proximity sensor associated with that light source 115 to detect the presence of the puck. As a result, a signal from proximity sensor can be detected or received by the microcontroller, which can deactivate the light source 115 and, for example, illuminate another light source 115 according to the selected training routine. In alternative implementations, the light sources 115 may be illuminated for a predetermined amount of time regardless of whether the puck is detected in close proximity to the light source 115.
In some implementations, the level of precision, in terms of proximity, necessary to deactivate a light source 115 can vary. For example, novice users may desire a lesser degree of precision, while higher skilled users may desire the greater challenge presented by requiring a higher degree of precision. In some implementations, the proximity sensor can be a reed switch or hall effect sensor, which is activated by a magnet embedded in the puck or the like. Other suitable types of proximity sensors (e.g., an optical sensor, a radio frequency identification (RFID) detector for detecting an embedded RFID chip or a detector for detecting an embedded near field communication chip) can also be used. The degree of precision required to activate the reed switch or other sensor (and thus deactivate the light source 115) can be adjusted based on the magnetic strength of the magnet embedded in the puck, the proximal sensitivity of the sensor, or through other suitable techniques. As one example, different pucks having different sized or strength magnets, corresponding to different degrees of required precision, can be used depending on the user's skill level, desired challenge level, or type of training routine. In alternative implementations, the training board 100 can use other techniques for adjusting the level of precision required to deactivate the light source 115. For example, each light source 115 may have a plurality of proximity sensors (e.g., spaced around the periphery and/or at varying distances from the center of the light source 115). In such an implementation, the microcontroller can control the level of precision required (or can simply record the level of accuracy) based on the number and/or location of the proximity sensors that are activated by the puck (e.g., a higher level of desired precision can require activating a proximity sensor located in the center of the light source 115, while a lower level of precision can be satisfied by activating any one of a plurality of proximity sensors located around the periphery of the light source 115). In other implementations, the voltage level signal from a hall sensor can indicate a degree of proximity and different voltage levels necessary to count as a detection can be used to adjust the level of precision required. Other techniques for adjusting the level of challenge accordingly to skill level, or for working on different skills can include using different sized or weights of pucks, balls, or the like, which, in some cases, may necessitate using a different sized magnet.
Scoring of the user's performance by software running on the microcontroller (or on another device) can be based, at least in part, on how quickly the user delivers the puck to the correct location. Scoring can also be based on whether the puck is detected by one or more other proximity sensors other than the proximity sensor associated with the currently illuminated light source 115. For example, detection of the puck by a number of proximity sensors that are not generally in line with a path from a preceding light source 115 to the currently illuminated light source 115 may suggest a lack of control of the puck and can result in a deduction from a maximum possible score for delivering the puck to the appropriate location. In some implementations, scoring can further be based on the degree of precision in cases where varying degrees of precision in delivering the puck to the correct location is detectable.
In an example implementation, the mats 105 can be square or rectangular units (e.g., around 30-36 inches in width and length), and each mat 105 can contain at least five light sources 115. As illustrated in
Although the system is described herein primarily in connection with hockey and the use of a puck, other configurations are also possible. For example, the training board 100 can instead be implemented in a vertical configuration (e.g., in a net). In some implementations, the training board 100 is. In addition, instead of a puck, a ball or other playing object (e.g., with an embedded magnet) can be used in either a vertical or horizontal configuration.
The user interface 235 of the app can also allow the user 240 to start and stop training routines for a player 245, who moves a puck 250 across the training board 205 to deliver the puck 250 to locations indicated by illuminated light sources embedded (e.g., contained at or below the playing surface 225) within the training board 205. Data relating to player performance can be sent from the training board 205 to the mobile device 210. In various implementations, scores or analysis of performance can be calculated by the microcontroller in the training board 205, by the app, or by centralized or distributed servers accessed via the Internet. In some implementations, the training board 205 can be used without a smartphone app or other connectivity (e.g., by providing training routines or games that are pre-stored on the training board 205).
In many cases, the user 240 and the player 245 can be the same individual. In other cases, the user 240 and the player 245 can be different individuals, and in such cases, a user 240 (e.g., a coach or parent) can have “read only” access to display data. In some implementations, the training board can include controls that allow a user 240 or the player 245 to perform at least some functions on the training board 205. For example, the training board 205 can include a start and/or stop button to allow a training routine selected through the app can be started by the player 245 without having to use the mobile device 210. In some implementations, the training board 205 can include additional controls (e.g., allowing selection among multiple training routines loaded onto the training board 205) and/or a display, which can display a score, a timer (e.g., to display a remaining time in a training routine), statistics, and/or other information. In some implementations,
Different training routines may be designed to focus on different skills and can have varying levels of difficulty. For example, the training routines can be designed to improve a user's hand-eye coordination, stick handling, object maneuvering, passing and/or shooting skills and accuracy. The training routines may be defined by data (e.g., a program) that specifies a sequence and/or timing of illumination of the lighting sources and/or audible indicators from a speaker. In some cases, some training programs do not define a static sequence and/or timing but can include decision trees or contingencies that change the training routine based, for example, on performance of the player 245 or, in an online “head-to-head” competition, based on performance of another local or remote player on another training board. Software or firmware running on the microcontroller of the training board 205 can interpret the program and execute the training routine on the training board 205. In some implementations, such as when the training program does not define a static sequence or timing, execution of the training routine may further involve communication with the mobile device or with a remote server, which can provide additional instructions for altering the training routine.
When a user initiates a training session through the software app 302 (at 312), the user can be prompted as to whether to play online at 314. When the user selects online play through a user interface on the mobile device 304, a determination is made as to whether the user is a new user at 316. If the user is a new user or the training board is not already registered, the user is prompted to register with an online service (e.g., to create an account for the individual user and/or the training board) at 318. In some implementations, a new user who has not previously registered with the online service may initially be required to select the online option at 314. In other implementations, offline play may be allowed. In some implementations, registration may be required to create an account and store data associated with that account in the cloud environment 308. In the interim, performance data can be stored (e.g., on the mobile device 304) until an account is created, and the performance data can be uploaded to the cloud environment at a later time.
Once the registration process is completed at 318, the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 320. The software app 302 can communicate with the training board (e.g., with a built-in microcontroller or microprocessor in the training board) to perform a system check at 322, which can confirm the current onboard software or firmware installed on the training board, whether the mats of the training board are properly interconnected to one another, whether the proximity sensors and lighting sources are responding properly, the current configuration of the training board (e.g., the number of interconnected mats), and the like. Once the system check is completed, the software app 302 can determine whether a training board software or firmware update is needed at 324. If so, update data (e.g., downloaded from the cloud environment 308) is sent to the training board at 326. Once the update is complete, or if no update is needed, training or game play can be performed at 328. As described above, training or game play can involve initiating and executing a selected training routine on the training board. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 330 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.
If, after online play is selected at 314, the user is not a new user (as determined at 316), the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 340. The software app 302 can communicate with the training board to perform a system check at 342, similar to the system check described above in connection with operation 322. Once the system check is completed, the software app 302 can determine whether a training board software or firmware update is needed at 344. If so, update data is sent to the training board at 346. After the update is complete, or if no update is needed, training or game play can be performed at 348. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 350 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.
If offline play is selected at 314, the mobile device 304, using the software app 302, can establish a wireless connection with the training board via the antenna 306, at 360. The software app 302 can communicate with the training board to perform a system check at 362, similar to the system check described above in connection with operation 322. Once the system check is completed, training or game play can be performed at 364. Performance data can be collected by the software app 302 in virtual real time or after the training routine is complete. Performance data can then be sent at 370 via the Internet 310 to the cloud environment 308 and stored in association with the user and/or training board account.
The cloud environment 308 can store a variety of different types of data that can be uploaded from users, mobile devices, and/or training boards, or that can be stored for downloading to mobile devices and training boards. The data can include game data (e.g., statistics, player ratings, etc.); user data (e.g., subscription level, demographics, social media links, etc.); UX/UI content (e.g., dashboard, game templates, etc.); website data and pages (e.g., including backend); AI analysis software (e.g., for use in learning and predicting player performance, equipment recommendations, and trend analysis); content management system software (e.g., user game creation data, archives, etc.); stakeholder notification software (e.g., for sending SMS, text, and email notifications and messages to stakeholders, such as users, parents, coaches, third parties and vendors etc.); and sharing software (e.g., links to social network platforms).
The PCB 410 includes a number of functional modules. In some implementations, the functions of the modules can be combined in a fewer number of separate modules, or the functions of each module can be distributed among multiple physical or conceptual modules without departing from the intended meaning of a module as used herein. The modules can be implemented as software, firmware, hardware, or a combination thereof. A wireless module 425 can be configured to handle the transmission and reception of signals to and from the PCB 410 of the training board 400 (e.g., to and from a mobile device via a short-range radio frequency signal) through a connected antenna 430. A buttons module 435 can be configured to receive and interpret signals received from a control panel on the training board 400. An LCD module 440 can be configured to control a display interface on the training board 400. In some implementations, the display interface can be a touch screen and can thus the display interface and the control panel can be combined in a single component. A USB module 445 can be configured to control one or more USB ports that can be used, for example, to provide a wired connection to the PCB 410 as an alternative to the wireless connectivity (e.g., to reinstall software or firmware in cases of device failure, or to transfer data stored on the training board 400 to a computing device). A power module 450 can be used to manage power usage from, and charging of, an internal battery and to manage power usage and charging from an external power supply (e.g., a 120 volt AC power supply or a 5 volt DC power supply). A sensor module 455 can be configured to receive signals from the hall sensors 415 via the serial cables 420. In some implementations, the sensor module 455 can also send communications to the hall sensors 415 (e.g., to confirm proper operation). Serial communication provides a low-cost technique for communications, although other types of communication can also be used and managed by the sensor module 455. A microcontroller unit (MCU) module 460 can perform overall control of the various modules on the training board 400 and can include memory that stores operating software and training programs. Alternatively, a separate memory can also be used and accessed by the MCU module 460. A speaker module 465 can be configured to control a speaker, which can provide audio alerts or other audio signals (e.g., to signal detection of a puck by an appropriate hall sensor 415, to alert a user to an expiring timer, or for providing other feedback to a user). In some implementations, the speaker module 465 can be used to play audio alerts, audio signals, or other audible information through a mobile device, Bluetooth speaker, or other external device.
At least one of the end mats 605 includes a microcontroller unit 620 that can provide main control of the training board 600. The microcontroller unit 620 can communicate with a memory 625. The memory 625 can be external or internal to the microcontroller unit 620 (or there can be multiple memories) and can store software or firmware instructions for controlling operation of the training board 600 and instructions for specific training routines. The microcontroller unit 620 can further communicate with an interface 630, which can include a user interface (e.g., display screen, control buttons or keys, and/or a touchscreen), which can display information (e.g., a score or timer) and receive user input (e.g., a start or stop instruction or a selection among training routines previously loaded into the memory 625). The interface 630 can include a wireless interface for communicating with a mobile device (e.g., to receive start/stop instructions input through software on the mobile device, downloading additional training routines, and communicating scores and other performance data). In some implementations, these functions can be combined in a single unit, while in other implementations, the training board 600 can include multiple separate interface units.
The microcontroller unit 620 can communicate with each of a plurality of interactive targets 635 via one or more communication cables 640. The interactive targets 635 can include a visual indicator (e.g., an LED light source) and a detector (e.g., a reed switch or other proximity sensor). As described above, the visual indicator of each interactive target 635 can be used to signal to a user that a game accessory (e.g., a ball, puck, bean bag, or the like) is a current target on the training board 600. The detector of each interactive target 635 can detect when the game accessory is delivered to an area of the training board 600 proximate to the interactive target 635. The microcontroller unit 620 can send a signal via the cables 640 to selectively and individually activate the visual indicator in each interactive target 635. In addition, the detector in each interactive target 635 can send a signal via the cables 640 to the microcontroller unit 620 when a game accessory is detected in the vicinity of the interactive target 635. In response to receiving such a signal from the appropriate detector, the microcontroller unit 620 can send a signal to the interactive target 635 to deactivate the visual indicator.
The interconnection mechanism 615 of each end mat 605 includes a physical cable interconnection 645 that provides a connection between the cables 640 in each end mat 605. The cable interconnection 645 can include physical contacts suitable to electrically connect the cables 640 in the end mats 605. Accordingly, signals from the microcontroller unit 620 in one end mat 605 can be transmitted through the cables 640 to interactive targets 635 in the other end mat 605. In some implementations, each end mat 605 can include a microcontroller unit 620, memory 625, and interface 630. In such an implementation, the microcontroller units 620 can communicate through the cables 640 and cable interconnection 645 to negotiate which one will act as a primary microcontroller unit 620. The other microcontroller unit 620 can remain dormant or can operate under control of the primary microcontroller unit 620 to, for example, control a display on a second interface 630, forward user interaction with control buttons on the second interface 630, and the like.
In some implementations, the cables 640 can include a shared communication bus that is used to implement a serial communication protocol. In other implementations, the cables can include multiple communication buses to implement parallel communications and/or separately enable each interactive target 635. In addition, the cables can also include a separate power supply wire to, for example, provide power for illuminating LED light sources and provide power to control units in each interactive target 635.
The two-mat configuration of
To control the interactive targets 635 in different configurations, the microcontroller unit 620 first discovers the number of interactive targets 635 by exchanging data (e.g., in frames) between the microcontroller unit 620 and the interactive targets 635. Based, at least in part, on the known potential configurations of the training board 600, and/or on unique identifiers associated with each interactive target 635, the microcontroller unit 620 can determine the number of interactive targets 635 in a current configuration, as further discussed below. The microcontroller unit 620 can then select training routines appropriate for the current configuration. For example, the microcontroller unit 620 may select among a subset of available training routines that match the current configuration, while omitting training routines that correspond to other configurations. In some implementations, the microcontroller unit 620 can store or can generate different sequences for a selected training routine based on the number of interactive targets 635 and/or the current configuration of the training board 600. However, because the sequences differ for a given training routine in such a situation, the result is a different training routine when executed on the training board 600. In some implementations, the microcontroller unit 620 selects an appropriate training routine in “consultation” with a software app executing on a wirelessly connected mobile device (e.g., by sending data relating to a number of interactive targets 635 and/or a current configuration of the training board 600, and receiving instructions for, or an identification of, an appropriate training routine from the mobile device).
In some implementations, data packets that control the light 710 and data packets that indicate detection of a game accessory by the sensor 715 can be sent on the same data line. In other implementations, separate data lines can be used. In addition, different controllers can be included in the interactive target for the lights 710 and the sensors 715. The lights 710 and the corresponding sensors 715 can be contained in a shared interactive target housing or can be separate components (e.g., located in close proximity to one another).
Based on the received data frames, the main microcontroller unit determines a number of detectors in the current training board configuration at 815. In addition, the main microcontroller may determine the presence of other components or interconnections based on data in the received data frames. Using this data (i.e., the number of detectors and/or the presence of other components or interconnections), along with knowledge of the possible types of mats or other components), the current training board configuration is determined at 820. This determination can be made by the main microcontroller unit independently or the main microcontroller unit can determine the current configuration by sending data over a wireless interface to a mobile device, which can process the data to identify the current configuration. Based on the current configuration, the main microcontroller unit or the mobile device identifies a subset of available training routines appropriate for the current configuration, and a training routine is selected automatically or manually by a user from the identified subset of training routines at 825. The selected training routine is executed at 830.
A vendor portal 1150 can include features that allow vendors to view user game data, analyze player data (e.g., scores and ratings), analyze game data, make predictions relating to equipment performance with AI assistance, and make marketing decisions. A recruiter portal 1155 can include features that allows recruiters to view user game data (e.g., performance) and make recruiting decisions.
Implementations of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Implementations of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions tangibly stored on a computer readable storage device for execution by, or to control the operation of, data processing apparatus. In addition, the one or more computer program products can be tangibly encoded in a propagated signal, which is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a computer. The computer readable storage device can be a machine-readable storage device, a machine-readable storage substrate, a memory device, or a combination of one or more of them.
The term “computing device” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The computing device can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, or a combination of one or more of them. In addition, a computing device can employ various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a standalone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile telephone, mobile device, a tablet computer, a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of nonvolatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; and magnetic disks, e.g., internal hard disks or removable disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, implementations of the subject matter described in this specification can be implemented on a computer having a display device, e.g., an LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackpad, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
Implementations of the subject matter described in this specification can be implemented in a computing system that includes a backend component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such backend, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
While this specification contains many implementation details, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular implementations of the invention. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Thus, particular implementations of the invention have been described. Other implementations are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.