The present invention relates to programming the moving actions of a moving object, and more specifically, an interactive surface that enables a user to use functional objects to create computer programs.
“Everybody in this country should learn how to program a computer . . . because it teaches you how to think.”—Steve Jobs.
Computer programming is becoming a way of thinking and doing for the broader society, beyond the narrow confines of computer programming professionals, particularly as the Internet continues to be a transformative force in driving changes in almost every aspects of modern life. People are starting to learn computer programming at an ever-younger age, a trend encouraged and reinforced by programming tools and platforms specifically developed for younger children or beginners.
Currently there are a number of programming tools and platforms that enable the creation of interactive stories, games, and animations, and the sharing of such creations in the online community. Their stated aim is to help young people learn to think creatively, reason systematically, and work collaboratively. Many games running on smart phones or tablet computers have also been developed that aim to further reduce the entry barrier for programming, and to teach the ways of logical thinking, to children as young as 4 years of age, often without much focus on writing programming code.
However, despite all these efforts, learning to program a game is still not intuitive and less fun than playing one, and it is desirable to develop ways that make programming fun and intuitive. Currently, most if not all of the programming tools and games are screen-based—they require users to interact with an electronic screen, whether it is on a laptop computer, a smart phone, or a tablet computer. An off-screen and physical building blocks-based system and method would be desirable, especially for young children whose parents desire to stimulate the children's interest in structured thinking and logical reasoning but at the same time wish to reduce the children's time spent with electronic screens.
The present invention discloses a novel way of programming the moving actions of a moving object using functional objects, in conjunction with an interactive surface.
In accordance with one embodiment of the present invention, a moving object is placed on an interactive surface, and the moving object further includes a movement module. A plurality of functional objects are also placed on the interactive surface. Each of the functional objects is marked with a programming symbol related to a moving action. The functional objects are placed next to each other or on top of each other to form a structural pattern. A processor that is operatively linked to the interactive surface is configured to derive a set of moving actions from the structural pattern, and direct the moving object to perform the moving actions on the interactive surface.
In accordance with one embodiment of the present invention, the moving object and each functional object further include an identifier, and the interactive surface is configured to recognize the identifier, location and orientation of the moving object and each functional object. The system further includes a memory that is configured to store a database of relationships among and between identifier, programming symbol and moving action.
In accordance with one embodiment of the present invention, the system further includes a wireless communication means, and the processor is configured to direct the moving object to perform the moving actions by sending the moving object moving instructions via the wireless means. And the processor is configured to track the movement of the moving object based on the identifier, location and orientation of the moving object periodically and throughout the movement of the moving object on the interactive surface.
In accordance with one embodiment of the present invention, the programming symbol represents a moving action to be performed by the moving object or a function for programming a moving action to be performed by the moving object.
In accordance with one embodiment of the present invention, the identifier may be encoded with a passive radio frequency identification chip, an active radio frequency identification chip, a pattern of capacitive tabs, or a pattern of magnetic tabs.
In accordance with one embodiment of the present invention, the sensory accessory can be an LED light, an audio device, a video device, or a vibration generator device. The processor is configured to direct a sensory accessory to produce an output related to the moving actions.
Reference will now be made in detail to various embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention will be described in conjunction with the embodiments, it will be understood that this is not intended to limit the scope of the invention to these specific embodiments. The invention is intended to cover all alternatives, modifications and equivalents within the spirit and scope of invention, which is defined by the apprehended claims.
Furthermore, in the detailed description of the present invention, specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be obvious to one of ordinary skill in the art that the present invention may be practiced without these specific details. In other instances, well known methods, procedures, components, and circuits are not described in details to avoid unnecessarily obscuring a clear understanding of the present invention.
The present invention may be better understood and its numerous objects and advantages will become apparent to those skilled in the art by reference to the accompanying drawings.
The embodiments of the present invention disclose a system and method for creating and running a computer program for moving an object using functional objects, typically cards, in conjunction with the use of an interactive surface.
The system further includes an interactive surface 103, a processor 104 that is operatively linked to the interactive surface, a memory 105, and a wireless communication means. The interactive surface 103 recognizes the identifier, location and orientation of the moving object 101 and the functional objects 102 placed on or near the interactive surface 103 in real time. The memory 105 is operatively linked to the processor 104 and stores a database of relationships among and between identifiers, programming symbols and moving actions. The processor 104 derives a set of moving actions based on the programming symbols embedded in the structural pattern formed by the functional objects 102 placed on the interactive surface 103 and directs the moving object 101 to perform the set of moving actions by sending the moving object 101 moving instructions via the wireless means.
The system described in
1. Moving Action Cards
Several moving action cards are used to represent moving actions performed by the moving object in different directions. As shown in
2. Programming Function Cards
The moving action to be performed by the moving object is programmed using a few programming function cards. As shown in
As shown in
The physical sheet 302 with printed elements to lay out a maze is first placed on top of the interactive surface 301, and then the moving object 304 is placed on the physical sheet 302. The interactive surface 301 detects the ID, location and orientation of the moving object 304 and transmits such information to the processor 308 that is operatively linked to the interactive surface 301. The physical sheet also includes an identifier that can be detected and recognized by the interactive surface 301.
Multiple cards 303 are then placed next to each other to form a structural pattern in the coding area 310 of the physical sheet 302. The interactive surface 301 detects the ID, location and orientation of the cards 303 placed on the interactive surface 301, and transmits such information to the processor 308. The processor 308 receives the information and derives a set of moving actions for the moving object to perform, based on the programming symbols embedded in the structural pattern formed by the cards 303 and a database of relationships among and between identifiers, programming symbols and moving actions stored in the memory 309. The processor 308 then directs the moving object 304 to perform the set of moving actions derived above by sending the moving object moving instructions via a wireless means (not shown). The processor 308 also tracks the movement of the moving object 304 based on the identifier, location and orientation of the moving object periodically and throughout the movement of the moving object on the interactive surface 301.
The user can run the computer program that has been created by pressing the play button 305, and the output is produced via a sensory accessory (not shown), which can be arranged to produce an output to indicate the progress of execution of the set of moving actions. For example, an LED light may be attached to each card 303, and the LED light can be lighted when the moving action associated with that particular card 303 is being executed, which enables the user to visualize the execution of the moving actions by the moving object 304, and easily track any movement of the moving object 304 that does not execute as intended. The sensory accessory can also be an audio device, a video device, or a vibration generator device. If the user is unsatisfied with the actions derived or would like to debug, he may simply press the stop button 306 first, and then add, remove, or change cards to re-derive a set of moving actions.
As illustrated in
Step 401: placing a moving object on or near an interactive surface. The moving object consists of an identifier and a movement module.
Step 402: placing a plurality of functional objects on or near an interactive surface to form a structural pattern. Each object includes an identifier and is marked with a programming symbol related to a moving action for the moving object to perform.
Step 403: recognizing the identifier, location and orientation of the moving object and each functional object by the interactive surface. The interactive surface detects the identifier, location and orientation of the moving object and each functional object placed on or near the interactive surface.
Step 404: obtaining the programming symbol based on the identifiers of the functional objects. A database of correlation relationships between identifiers and programming symbols is stored in a memory, and the processor obtains a programming symbol for each functional object.
Step 405: deriving a set of moving actions based on the programming symbols embedded in the structural pattern. A database of correlation relationship between programming symbols and moving actions is also stored in the memory. The processor derives a set of moving actions based on the location and orientation of the moving object and the programming symbols embedded in the structural pattern formed by the functional objects.
Step 406: performing the set of moving actions by the moving object, as directed by the processor. For example, the user can push a Play button to initiate the moving actions by the moving object, as shown in
Step 407: directing a sensory accessory to produce an output to indicate the progress of execution of the set of moving actions of the moving object. The system may include a sensory accessory, such as LED lights. For example, an LED light may be attached to each functional object, and the LED light can be lighted when the moving action represented by a particular functional object is being executed, which enables the user to visualize the progress of execution of the set of moving actions of the moving object.
Step 408: stopping the action of the moving object if it does not move as intended. For example, if the moving object in
Step 409: debugging the computer program by rearranging the functional objects forming the structural pattern. The user can easily debug the computer program as the LED light will direct him to the functional object that is causing the problem.
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2014/079891 | Jun 2014 | CN | national |
PCT/CN2014/081721 | Jul 2014 | CN | national |
PCT/CN2014/084498 | Aug 2014 | CN | national |
PCT/CN2014/085668 | Sep 2014 | CN | national |
PCT/CN2014/086745 | Sep 2014 | CN | national |
PCT/CN2015/072626 | Feb 2015 | CN | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2015/078556 | 5/8/2015 | WO | 00 |