US20180205569A1 - Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation - Google Patents
Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation Download PDFInfo
- Publication number
- US20180205569A1 US20180205569A1 US15/870,563 US201815870563A US2018205569A1 US 20180205569 A1 US20180205569 A1 US 20180205569A1 US 201815870563 A US201815870563 A US 201815870563A US 2018205569 A1 US2018205569 A1 US 2018205569A1
- Authority
- US
- United States
- Prior art keywords
- hardware device
- url
- data
- hardware
- action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/2803—Home automation networks
- H04L12/2816—Controlling appliance services of a home automation network by calling their functionalities
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/954—Navigation, e.g. using categorised browsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
Definitions
- URLs which are here taken as synonymous to Uniform Resource Identifiers (URIs)
- URIs Uniform Resource Identifiers
- Examples may be Internet-of-Things (IoT) systems, such as:
- one type of prior art may have dedicated software that responds to the sensor condition with a new dedicated (non-browser) screen or display.
- the software displays data or messages within a screen on a webpage on the mobile device, such as weather station data being graphically displayed on a website.
- the prior art In the device-to-webpage direction, the prior art only displays data on the webpage, it does not change the webpage based on the device-gathered data. In the webpage-to-device direction, prior art may be able to turn on something on the device through controls on the webpage, but the action does not occur as a direct result of simply being on the webpage.
- the prior art discloses the display of data from a remote sensor on a given web-page, or the control of a remote sensor or actuator from the webpage, but that the URL of the webpage itself is not controlled by the sensors data, nor are actuators controlled by the act of changing the current URL of the display device. This deficiency in the prior art is corrected by the present invention.
- buttons presented on a webpage or in an app and the lights come on, through methods very well-known to those skilled in the art. All these methods, however, involve the complication of programming the buttons and the response to the buttons.
- bidirectional control is found in other prior art, e.g., use a webpage user interface to change the settings (direction, zoom, etc.) on a webcam, and with that in a fixed state, the webcam data flow is passed back as a display to the webpage.
- the webpage does not change in response to the camera, and the camera does not change in response to changing the webpage being viewed.
- the special-purpose communication can be designed to provide great speed if necessary, but it has the disadvantage of adding great complexity to the synergy of the hardware/web interface combination. That disadvantage is such as to restrict the development of a device with such a combination to very determined programmers. Thus the programming of a whole, responsive device involving both embedded hardware and an easily usable web interface becomes a specialty task.
- TBL. 1 is a description of an exemplary playlist
- FIG. 1 shows some timelines of a typical operation of a typical embodiment of the invention called the “HyperDuino”;
- FIG. 2 is a picture of the communicating pieces of one embodiment of the invention, HyperDuino For Chrome running an embedded device with a serial connection and connected via the Internet to servers from which URLs can draw videos or stills.
- a preferred embodiment of the present invention is a method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation. As illustrated in the various drawings herein, preferred embodiments of the invention are depicted.
- the invention is a system including a responsive electronic hardware device (the “hardware”), a browser with a user interface (the “browser”), a server or servers with content displayable by the browser (the “server”), and a software program (the “handler”) capable of:
- the handler is event-coded to comply with a table, herein called the “playlist,” which is a data table correlating hardware state input and browser URL location transmitted to the handler to actions performed by the handler. See TBL. 1.
- the term “actuator” means the handler drives the hardware, either causing internal hardware state change or further effects within or beyond the hardware, or both, while the term “sensor” means the hardware that drives the handler, either as a result of the internal hardware state or conditions detected within or beyond the hardware, or both.
- the word “microcontroller” includes any electronics within the hardware.
- TBL. 1 this is a description of an exemplary playlist.
- the Fields 1a-zzz hold extra parameters, such as start and end times for a video which may have not been implicitly written in the URL, but which are still detectable by the Software while that URL is actively displayed in the browser. (these latter parameters may have been used in the prior art, but not within the context of the URL-associated I/O disclosed in this invention).
- the Field 2: ResponseFlag (indicator) has three possible states.
- the second state is RespondLeaveURL.
- the Fields Fields 2a-zzz are I/O channels, as appropriate to the microcontroller being used by the Software, and conditions to be tested for in case RespondSense or output to be actuated in cases RespondNewURL or RespondLeaveURL.
- the handler is simultaneously quickly responsive to web interface state, including URLs, anchors, selections, and timing such as time elapsed during a video, and to microcontroller (sensor) output to the handler.
- web interface state including URLs, anchors, selections, and timing
- microcontroller (sensor) output to the handler.
- This can be accomplished by any sufficient programming construct, such as select( ) frequent enough polling, or event coding implied by the structure of a higher-level programming language like Javascript.
- the invention permits an arbitrarily complex event response to be coded as a flat table of URL responses.
- This table which in one embodiment is called a′ “playlist,” responds simply to each specified URL, using its queries to guide the activation of actuators (defined earlier in the patent text), and also permits the display of any URL in the playlist in response to the output of sensors.
- the first embodiment is the HyperDuino, an educational device. It builds on the simplicity inherent in the invention by introducing a synergistic simplicity to hardware construction, through the attachment of a shield called the “HyperDuino shield” to any of them, such as the Funduino.
- the educational value of this is well described on the inventors web page [Wagner, Roger: “Hardware & Instructional Design—HyperDuino”; www.rogerwagner.com], for example:
- the HyperDuino handler is instantiated as a Chrome OS app, written in Javascript.
- the creation of Chrome apps in Javascript is well known to web programmers skilled in the art.
- the HyperDuino handler is responsive to Web interface state, and it is also written so as to be responsive to asynchronous input from serial or other channels that are driven by the hardware.
- the response of the HyperDuino handler is completely determined by its playlist, as described in TBL. 1.
- the HyperDuino handler continues operating until a HaltEvent is received, which can come either from internal programming, such as the operating session is done, or from an external signal, such as a user stop signal or arrival at an URL in the playlist, or the detection of a hardware state.
- the transmission of URLs caused by the handler in the Field 2 RespondSense case can also include any web interface programming of which the browser is capable, and can fetch content from any accessible Internet server reached by the URL.
- the actuator response in the Field 2 RespondNewURL or RespondLeaveURL case can be driven by any knowledge of Web interface state that the browser is capable of sharing with the handler. Indirect immediate or delayed feedback responses, both as a result of hardware behavior and as a result of Web interface behavior, are possible and expected implications of the playlist.
- the second embodiment presented here is an instructional and diagnostic tool for actual breadboard circuits, where analog and digital readings from the digital and analog inputs would directly lead to the display of informational and diagnostic webpages purely by virtual of how the existing playlist responded to the values.
- the HyperDuino software playlist will see “0” for a short circuit (for example wires crossed leading to the photocell), “1023” for an open circuit (for example, the photocell has not yet been inserted), and then an expected range when the photocell is inserted.
- a lesson on a system like Google Slides may on slide N say “insert a photocell into this part of the circuit”. Until the photocell is inserted, the slide will not advance. When it is inserted, the slide will congratulate the user. Should a different item be inserted that is very different in expected resistance from a photocell, a different slide will be presented asking the operator to confirm and re-do the insertion of a photocell.
- a third embodiment would be the application of the invention in program code on the server of a webpage itself, and not requiring a local application to be running.
- the webpage could display other webpages within a sub-window of the main webpage, as is commonly done with embedded videos and other html content.
- Code running on the server would then use the method taught in this invention to correlate the URL displayed in the sub-window with hardware inputs and outputs connected to the local computer by serial or other type of communication.
- FIG. 1 shows some timelines of a typical operation of a typical embodiment of the invention, hereafter called the “HyperDuino.”
- FIG. 2 is a picture of the communicating pieces of one embodiment of the invention, HyperDuino For Chrome running an embedded device with a serial connection and connected via the Internet to two Servers from which URLs can draw videos or stills. This is during phase 104 of the timeline of FIG. 1 .
- Bidirectional serial communication in which either side can take the initiative, is 210 (embedded device to HyperDuino Web Driver) and 211 (HyperDuino Web Driver to embedded device).
- 212 represents HyperDuino For Chrome reading the playlist at will.
- 213 is data from HyperDuino For Chrome to HyperDuino Web Driver
- 214 is data from HyperDuino Web Driver to HyperDuino For Chrome, to effect the division of labor required by the OS and/or browser.
- 215 is an URL and/or timing sent from HyperDuino Web Driver to be acted upon by the browser
- 216 is the browser transmitting information about an URL to HyperDuino Web Driver.
- 217 , 219 a , and 219 b represent the URL request going from browser through the Internet to a server
- 220 a , 220 b , and 218 represent the return of data by a server to the browser.
- the embedded device and serial connection of 201 , 210 , and 211 are completely standard, as are the browser 206 , its display 207 , and the connection 217 and 218 and the Internet and servers beyond it.
- the breakdown of the HyperDuino Handler into HyperDuino For Chrome and HyperDuino Web Driver is due to requirements of the Chrome OS/browser. Other embodiments will use a different structure, but perform the same essential function.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Security & Cryptography (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Information Transfer Between Computers (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
A method and apparatus, using a responsive electronic hardware device and Uniform Resource Locators (URLs) with an Internet browser display simultaneously, both to control web navigation through hardware device action and to control hardware device action through web navigation. The method exploits the basic functionality of a hardware micro controller and the universal and bidirectional effectiveness of URLs through a data table connecting URLs with actions and actions with URLs and including timing conditions. Embodiments employ the invention's understandability and ease of construction in educational, diagnostic, and entertainment applications.
Description
- This application claims priority to U.S. Provisional Application No. 62/445,410, entitled “METHOD AND APPARATUS FOR BIDIRECTIONAL CONTROL CONNECTING HARDWARE DEVICE ACTION WITH URL-BASED WEB NAVIGATION,” filed on Jan. 12, 2017, the disclosure of which is incorporated herein in its entirety for all purposes.
- Uniform Resource Locators (URLs), which are here taken as synonymous to Uniform Resource Identifiers (URIs), have resulted in everyday browser-related experiences, of which a few examples are web search, shopping, and filling out of forms. Their applicability to special-purpose electronic hardware (hereafter called “hardware” or “device”) has been more restricted, but is nevertheless common. Among obvious cases are webcams, security notification, and environmental monitoring which reports sensor data via the Internet.
- Examples may be Internet-of-Things (IoT) systems, such as:
-
- (a) device to Internet to browser display, or an http-based web app, telling you that motion has been detected in your home, and,
- (b) browser display, or an http-based web app to Internet to device to turn on the lights in the home.
- In (a), one type of prior art may have dedicated software that responds to the sensor condition with a new dedicated (non-browser) screen or display. In another type of prior art, the software displays data or messages within a screen on a webpage on the mobile device, such as weather station data being graphically displayed on a website.
- In prior art of type (b) a person may use an app or an http-based web app to touch a screen display button to turn on lights, or it might even be automatically done by specific software, but there are not any existing methods where simply navigating to a new screen with a different URL on the device would turn on a light in the user's home.
- In the device-to-webpage direction, the prior art only displays data on the webpage, it does not change the webpage based on the device-gathered data. In the webpage-to-device direction, prior art may be able to turn on something on the device through controls on the webpage, but the action does not occur as a direct result of simply being on the webpage.
- It can be seen that the prior art discloses the display of data from a remote sensor on a given web-page, or the control of a remote sensor or actuator from the webpage, but that the URL of the webpage itself is not controlled by the sensors data, nor are actuators controlled by the act of changing the current URL of the display device. This deficiency in the prior art is corrected by the present invention.
- A further example of the prior art involves a scenario of testing the security lights around a home. In all embodiments to date, the user clicks on different buttons presented on a webpage or in an app, and the lights come on, through methods very well-known to those skilled in the art. All these methods, however, involve the complication of programming the buttons and the response to the buttons.
- In addition to the unidirectional URL-level control, bidirectional control is found in other prior art, e.g., use a webpage user interface to change the settings (direction, zoom, etc.) on a webcam, and with that in a fixed state, the webcam data flow is passed back as a display to the webpage. However, absent the method taught in this invention, the webpage does not change in response to the camera, and the camera does not change in response to changing the webpage being viewed.
- The prior art approaches require programming of at least four pieces:
-
- the mobile or web app,
- the special-purpose communication on the app side that allows communication to the hardware,
- the hardware programming, and
- the special-purpose communication module that makes it possible for the hardware to communicate to the app.
All of this must be done with dedication to a particular hardware and software combination, and it does not provide a general multi-application system that can be easily repurposed for different hardware sensor inputs and webpage displays.
- The special-purpose communication can be designed to provide great speed if necessary, but it has the disadvantage of adding great complexity to the synergy of the hardware/web interface combination. That disadvantage is such as to restrict the development of a device with such a combination to very determined programmers. Thus the programming of a whole, responsive device involving both embedded hardware and an easily usable web interface becomes a specialty task.
- Accordingly, it is an object of the present invention to provide method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation.
- These and other objects and advantages of the present invention will become clear to those skilled in the art in view of the description of the best presently known mode of carrying out the invention and the industrial applicability of the preferred embodiment as described herein and as illustrated in the figures of the drawings.
- The purposes and advantages of the present invention will be apparent from the following detailed description in conjunction with the appended tables and figures of drawings in which:
- TBL. 1 is a description of an exemplary playlist;
-
FIG. 1 shows some timelines of a typical operation of a typical embodiment of the invention called the “HyperDuino”; and -
FIG. 2 is a picture of the communicating pieces of one embodiment of the invention, HyperDuino For Chrome running an embedded device with a serial connection and connected via the Internet to servers from which URLs can draw videos or stills. - In the various figures of the drawings, like references are used to denote like or similar elements or steps.
- A preferred embodiment of the present invention is a method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation. As illustrated in the various drawings herein, preferred embodiments of the invention are depicted.
- The invention is a system including a responsive electronic hardware device (the “hardware”), a browser with a user interface (the “browser”), a server or servers with content displayable by the browser (the “server”), and a software program (the “handler”) capable of:
-
- (a) communicating in either direction with the hardware,
- (b) of emitting URLs to the browser and server,
- (c) of receiving information from the browser about the current state of its web interface, including URLs displayed, anchors, selections, and optionally,
- (d) timing of changing media content such as videos.
The browser and server are standard, and the hardware is specialized only in the sense that it is capable of monitoring sensors and inputs, and activating outputs, usually, but not limited to, actuators such as LEDs, motors, servos, buzzers, etc. and that the hardware communicates with the handler. The inventive content is focused on the combination of the browser, server, hardware and handler, as described below.
- The handler is event-coded to comply with a table, herein called the “playlist,” which is a data table correlating hardware state input and browser URL location transmitted to the handler to actions performed by the handler. See TBL. 1. In what follows, the term “actuator” means the handler drives the hardware, either causing internal hardware state change or further effects within or beyond the hardware, or both, while the term “sensor” means the hardware that drives the handler, either as a result of the internal hardware state or conditions detected within or beyond the hardware, or both. The word “microcontroller” includes any electronics within the hardware.
- Turning now to TBL. 1, this is a description of an exemplary playlist. The Fields 1a-zzz hold extra parameters, such as start and end times for a video which may have not been implicitly written in the URL, but which are still detectable by the Software while that URL is actively displayed in the browser. (these latter parameters may have been used in the prior art, but not within the context of the URL-associated I/O disclosed in this invention).
- The Field 2: ResponseFlag (indicator) has three possible states. The first state is RespondNewURL. This initiates microcontroller output (actuator(s)) based on Fields 2a-zzz in response to the URL appearing in the browser display during the cycled review of the list, when the cycle before, that URL was not the active URL. That is, URL=(URL in list) AND (CurrentURL< >Past URL) AND (ActionTaken=False).
- The second state is RespondLeaveURL. This initiates microcontroller output (actuator) based on Fields 2a-zzz in response to the URL NO LONGER appearing in the browser display during the cycled review of the list, when the cycle before, that URL WAS an active URL=found-in-list. That is, (CurrentURL< >Past URL) AND ActionTaken=False.
- And the third state is RespondSense. This passes the URL to the browser in response to microcontroller output (sensor) meeting conditions.
- The Fields Fields 2a-zzz are I/O channels, as appropriate to the microcontroller being used by the Software, and conditions to be tested for in case RespondSense or output to be actuated in cases RespondNewURL or RespondLeaveURL.
- Causality goes from hardware state to URL in the Field 2 RespondSense case, and from web interface state to hardware state in the Field 2 RespondNewURL or RespondLeaveURL state.
- The handler is simultaneously quickly responsive to web interface state, including URLs, anchors, selections, and timing such as time elapsed during a video, and to microcontroller (sensor) output to the handler. This can be accomplished by any sufficient programming construct, such as select( ) frequent enough polling, or event coding implied by the structure of a higher-level programming language like Javascript.
- Since URLs can have multiple queries attached, including variable=value pairs, this kind of single-URL event coding can imply a rich branching structure and thus result in as arbitrarily complex event responses as are normally associated with deeply nested event-based coding with callbacks.
- With local caching of data, internet latency, and even total disconnects, operation of the invention can still continue to operate satisfactorily by just passing the URL to the browser that itself uses cached data, and this is an example of how the URL-centric system provides an advantage that would be much more complex with custom-made computer code and applications.
- Thus, the invention permits an arbitrarily complex event response to be coded as a flat table of URL responses. This table, which in one embodiment is called a′ “playlist,” responds simply to each specified URL, using its queries to guide the activation of actuators (defined earlier in the patent text), and also permits the display of any URL in the playlist in response to the output of sensors.
- The first embodiment is the HyperDuino, an educational device. It builds on the simplicity inherent in the invention by introducing a synergistic simplicity to hardware construction, through the attachment of a shield called the “HyperDuino shield” to any Arduino or Arduino-equivalent device, such as the Funduino. The educational value of this is well described on the inventors web page [Wagner, Roger: “Hardware & Instructional Design—HyperDuino”; www.rogerwagner.com], for example:
-
- Physical classroom projects can now be made into interactive maker projects, but creating a two-way link between digital student-made content and physical student-created models.
- The HyperDuino solves key obstacles for those just entering the maker movement, by eliminating the need for breadboards and resistors, and combining with the HyperDuino for Chrome app to eliminate the need for scripted (written) coding, while still teaching the logic of programming.
- The HyperDuino handler is instantiated as a Chrome OS app, written in Javascript. The creation of Chrome apps in Javascript is well known to web programmers skilled in the art. The HyperDuino handler is responsive to Web interface state, and it is also written so as to be responsive to asynchronous input from serial or other channels that are driven by the hardware.
- After standard setup is complete and all communication channels both to the hardware and to the browser are functioning, the response of the HyperDuino handler is completely determined by its playlist, as described in TBL. 1. The HyperDuino handler continues operating until a HaltEvent is received, which can come either from internal programming, such as the operating session is done, or from an external signal, such as a user stop signal or arrival at an URL in the playlist, or the detection of a hardware state.
- The transmission of URLs caused by the handler in the Field 2 RespondSense case can also include any web interface programming of which the browser is capable, and can fetch content from any accessible Internet server reached by the URL. The actuator response in the Field 2 RespondNewURL or RespondLeaveURL case can be driven by any knowledge of Web interface state that the browser is capable of sharing with the handler. Indirect immediate or delayed feedback responses, both as a result of hardware behavior and as a result of Web interface behavior, are possible and expected implications of the playlist.
- The second embodiment presented here is an instructional and diagnostic tool for actual breadboard circuits, where analog and digital readings from the digital and analog inputs would directly lead to the display of informational and diagnostic webpages purely by virtual of how the existing playlist responded to the values.
- For example, if the Arduino and a breadboard are being used to construct a circuit demonstrating a photocell, the HyperDuino software playlist will see “0” for a short circuit (for example wires crossed leading to the photocell), “1023” for an open circuit (for example, the photocell has not yet been inserted), and then an expected range when the photocell is inserted.
- A lesson on a system like Google Slides may on slide N say “insert a photocell into this part of the circuit”. Until the photocell is inserted, the slide will not advance. When it is inserted, the slide will congratulate the user. Should a different item be inserted that is very different in expected resistance from a photocell, a different slide will be presented asking the operator to confirm and re-do the insertion of a photocell.
- A third embodiment would be the application of the invention in program code on the server of a webpage itself, and not requiring a local application to be running. In that case, the webpage could display other webpages within a sub-window of the main webpage, as is commonly done with embedded videos and other html content. Code running on the server would then use the method taught in this invention to correlate the URL displayed in the sub-window with hardware inputs and outputs connected to the local computer by serial or other type of communication.
-
FIG. 1 shows some timelines of a typical operation of a typical embodiment of the invention, hereafter called the “HyperDuino.” -
- 101 is a timeline from left to right. 102 is the time spent in the HyperDuino Build stage, building the playlist. 103 is an idle time of indefinite length, during which the playlist is stored. 104 is the time spent in the HyperDuino Run stage, reading the playlist and acting upon it. 105 is a drawing representing the HyperDuino Builder, with its UI windows controlled by the builder, active during 102. 106 is a drawing representing the HyperDuino Handler, the standard browser and its screen and connection to the Internet, and its connected embedded device, all active during 104.
- 107 is a timeline within 104 during which a video running on the browser is synchronized by the HyperDuino Handler with action on the embedded device. 108 is the start of the video, 109 is an appropriate first time period, 110 is a command causing action such as lights or movement on the embedded device, 111 is an appropriate second time period, 112 is another command to the embedded device, 113 is an appropriate third time period, 114 is a third command to the embedded device.
- 115 is a timeline within 104 during which a video awaits selection by an embedded action. 116 is the start of the video, 117 is an appropriate first time period, 118 is a pause of the video, 119 is an indefinite time awaiting input from the embedded device (which could be a running state or a user button push, for instance), 120 is the awaited input, and 121 is the video resuming or another display taking its place if so programmed to be dependent on the input.
- 122 is a timeline within 104 during which the HyperDuino responds to a test result. 123 is a video, a still URL, or other display appropriate to the test result being unknown, 124 is a test result or state of the embedded device that may arrive unexpectedly and cause a branching action by the handler (time for branching not shown because it is very quick), and 125 is the chosen video or still URL appropriate to the test result detected.
-
FIG. 2 is a picture of the communicating pieces of one embodiment of the invention, HyperDuino For Chrome running an embedded device with a serial connection and connected via the Internet to two Servers from which URLs can draw videos or stills. This is during phase 104 of the timeline ofFIG. 1 . -
- 201 is the embedded device. 202 is the HyperDuino Handler, and 206 is the standard Chrome browser, both running on the same system. 203, 204, and 205 are parts of the Handler: 203 is the playlist, which at this stage is read-only; 204 is HyperDuino For Chrome; and 205 is the HyperDuino Web Driver. 206 is the standard Chrome browser, 207 its screen. 208 is the Internet, and 209 a and 209 b are servers accessed by the browser through the Internet.
- Bidirectional serial communication, in which either side can take the initiative, is 210 (embedded device to HyperDuino Web Driver) and 211 (HyperDuino Web Driver to embedded device). 212 represents HyperDuino For Chrome reading the playlist at will. 213 is data from HyperDuino For Chrome to HyperDuino Web Driver, and 214 is data from HyperDuino Web Driver to HyperDuino For Chrome, to effect the division of labor required by the OS and/or browser. 215 is an URL and/or timing sent from HyperDuino Web Driver to be acted upon by the browser, and 216 is the browser transmitting information about an URL to HyperDuino Web Driver. 217, 219 a, and 219 b represent the URL request going from browser through the Internet to a server, and 220 a, 220 b, and 218 represent the return of data by a server to the browser.
- The embedded device and serial connection of 201, 210, and 211 are completely standard, as are the
browser 206, itsdisplay 207, and theconnection - While various embodiments have been described above, it should be understood that they have been presented by way of example only, and that the breadth and scope of the invention should not be limited by any of the above described exemplary embodiments, but should instead be defined only in accordance with the following claims and their equivalents.
-
TBE. 1. DESCRIPTION OF PLAYLIST Field 1: URL (text) Fields 1a-zzz: Sub-field(s) to Field 1 Field 2: ResponseFlag (indicator) as to whether this entry is, Field 2 = RespondNewURL or, Field 2 = RespondLeaveURL or, Field 2 = RespondSense Fields 2a-zzz: Sub-fields to Field 2
Claims (19)
1. A method for controlling a hardware device based on Uniform Resource Locator (URL)-based web navigation, the method comprising:
identifying a URL associated with a web browser;
determining, using an electronic lookup table, an action from a set of actions for a hardware device to perform based at least in part on the identified URL; and
causing the hardware device to perform the determined action.
2. The method of claim 1 , the determined action comprises turning the hardware device on or off.
3. The method of claim 1 , wherein the hardware device is a light source, and wherein the determined action comprises turning the light source on or off.
4. The method of claim 1 , wherein the hardware device is a camera, and wherein the determined action comprises changing one or more settings of the camera.
5. The method of claim 4 , wherein one or more settings of the camera comprises a combination of one or more of a direction or a zoom of the camera.
6. The method of claim 1 , wherein the hardware device comprises one or more of an LED, a motor, or a servomechanism.
7. The method of claim 1 , wherein the electronic lookup table correlates the URL and the determined action.
8. A method for navigating to a Uniform Resource Locator (URL) based on data corresponding to a hardware device, the method comprising:
receiving data indicative of a hardware state of a hardware device;
identifying, using an electronic lookup table, a URL location from a set of URLs based at least in part on the received data; and
causing a web browser to navigate to the identified URL.
9. The method of claim 8 , wherein the hardware device comprises a sensor, and wherein the data corresponds to data sensed by the sensor.
10. The method of claim 9 , wherein the sensor is a photocell.
11. The method of claim 8 , wherein the hardware device comprises one or more of an LED, a motor, a servomechanism, or a buzzer.
12. The method of claim 8 , wherein the hardware device is a camera, and wherein data of the hardware device corresponds to one or more settings of the camera.
13. The method of claim 12 , the data of the hardware device corresponds to a change in direction or zoom of the camera.
14. The method of claim 8 , wherein the electronic lookup table stored in a computer-readable medium.
15. The method of claim 8 , wherein the electronic lookup table correlates the hardware state of the hardware device and the URL location.
16. A system for bidirectional control between hardware device action and URL-based web navigation, the system comprising:
a microcontroller in communication with at least one hardware device; and
one or more processors in communication with the microcontroller, and a non-transitory computer-readable storage medium storing computer-executable instructions that when executed by the one or more processors cause the one or more processors to:
receive data from the hardware device, wherein the data corresponds to the one or more actions,
monitor a web browser;
responsive to receiving first data, cause the web browser to navigate to a first URL, and
responsive to determining that the web page navigated to a second URL, causing the hardware device to perform a first action.
17. The system of claim 16 , the first data corresponds to hardware state data of the hardware device.
18. The system of claim 16 , wherein the hardware device is a light source, and wherein the first action turning the light source OFF.
19. The system of claim 16 , wherein the hardware device is a light source, and wherein the first action turning the light source ON.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/870,563 US20180205569A1 (en) | 2017-01-12 | 2018-01-12 | Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762445410P | 2017-01-12 | 2017-01-12 | |
US15/870,563 US20180205569A1 (en) | 2017-01-12 | 2018-01-12 | Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180205569A1 true US20180205569A1 (en) | 2018-07-19 |
Family
ID=62841468
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/870,551 Active 2039-09-06 US11023252B2 (en) | 2017-01-12 | 2018-01-12 | Method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation |
US15/870,563 Abandoned US20180205569A1 (en) | 2017-01-12 | 2018-01-12 | Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation |
US17/243,962 Active US11586449B2 (en) | 2017-01-12 | 2021-04-29 | Method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation |
US18/170,465 Pending US20240028347A1 (en) | 2017-01-12 | 2023-02-16 | Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/870,551 Active 2039-09-06 US11023252B2 (en) | 2017-01-12 | 2018-01-12 | Method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/243,962 Active US11586449B2 (en) | 2017-01-12 | 2021-04-29 | Method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation |
US18/170,465 Pending US20240028347A1 (en) | 2017-01-12 | 2023-02-16 | Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation |
Country Status (1)
Country | Link |
---|---|
US (4) | US11023252B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11023252B2 (en) | 2017-01-12 | 2021-06-01 | Roger Wagner | Method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation |
WO2022093936A1 (en) * | 2020-10-28 | 2022-05-05 | Second Genome, Inc. | Batch processing |
US20230076376A1 (en) * | 2021-09-09 | 2023-03-09 | Texas Instruments Incorporated | Resource access in a microcontroller |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062475B1 (en) * | 2000-05-30 | 2006-06-13 | Alberti Anemometer Llc | Personalized multi-service computer environment |
US20070219654A1 (en) * | 2006-03-14 | 2007-09-20 | Viditotus Llc | Internet-based advertising via web camera search contests |
US20080243793A1 (en) * | 2007-03-21 | 2008-10-02 | Paul Hallett | Contact Information Capture and Link Redirection |
US20120136485A1 (en) * | 2010-11-19 | 2012-05-31 | Weber Theodore E | Control System and Method for Managing Wireless and Wired Components |
US20140265920A1 (en) * | 2013-03-13 | 2014-09-18 | Federal Law Enforcement Development Services, Inc. | LED Light Control and Management System |
US9348820B1 (en) * | 2000-09-14 | 2016-05-24 | Network-1 Technologies, Inc. | System and method for taking action with respect to an electronic media work and logging event information related thereto |
US20160149716A1 (en) * | 2014-11-24 | 2016-05-26 | Rajiv Nelson Raj | Remote Management And Control Of Utility Appliances |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7987491B2 (en) | 2002-05-10 | 2011-07-26 | Richard Reisman | Method and apparatus for browsing using alternative linkbases |
US7716715B2 (en) * | 2003-01-10 | 2010-05-11 | Shaobo Kuang | Interactive media system |
US7400316B2 (en) * | 2004-05-28 | 2008-07-15 | International Business Machines Corporation | Method and apparatus for dynamically modifying web page display for mobile devices |
WO2007098468A1 (en) * | 2006-02-21 | 2007-08-30 | University Of Florida Research Foundation Inc. | Modular platform enabling heterogeneous devices, sensors and actuators to integrate automatically into heterogeneous networks |
WO2007109162A2 (en) * | 2006-03-17 | 2007-09-27 | Viddler, Inc. | Methods and systems for displaying videos with overlays and tags |
US20100145479A1 (en) * | 2008-10-09 | 2010-06-10 | G2 Software Systems, Inc. | Wireless Portable Sensor Monitoring System |
US8600559B2 (en) | 2008-10-27 | 2013-12-03 | Lennox Industries Inc. | Method of controlling equipment in a heating, ventilation and air conditioning network |
US8473571B2 (en) * | 2009-01-08 | 2013-06-25 | Microsoft Corporation | Synchronizing presentation states between multiple applications |
US20100268573A1 (en) * | 2009-04-17 | 2010-10-21 | Anand Jain | System and method for utilizing supplemental audio beaconing in audience measurement |
US10713018B2 (en) * | 2009-12-07 | 2020-07-14 | International Business Machines Corporation | Interactive video player component for mashup interfaces |
US8797358B1 (en) * | 2010-11-02 | 2014-08-05 | Google Inc. | Optimizing display orientation |
US9119236B1 (en) * | 2011-03-04 | 2015-08-25 | Alarm.Com Incorporated | Monitoring system control technology |
EP2696579B1 (en) * | 2011-04-05 | 2019-04-24 | YAMAHA Corporation | Information providing system, identification information solution server and mobile terminal device |
CN102801325B (en) * | 2011-05-23 | 2015-02-04 | 广州昂宝电子有限公司 | System and method for regulating switching frequency and peak current of power converter |
US20120304062A1 (en) * | 2011-05-23 | 2012-11-29 | Speakertext, Inc. | Referencing content via text captions |
US8845429B2 (en) * | 2011-05-27 | 2014-09-30 | Microsoft Corporation | Interaction hint for interactive video presentations |
US8521848B2 (en) * | 2011-06-28 | 2013-08-27 | Microsoft Corporation | Device sensor and actuation for web pages |
US9019718B2 (en) * | 2011-08-26 | 2015-04-28 | Littlebits Electronics Inc. | Modular electronic building systems with magnetic interconnections and methods of using the same |
US20130232402A1 (en) * | 2012-03-01 | 2013-09-05 | Huawei Technologies Co., Ltd. | Method for Processing Sensor Data and Computing Node |
US9258462B2 (en) | 2012-04-18 | 2016-02-09 | Qualcomm Incorporated | Camera guided web browsing based on passive object detection |
US9690465B2 (en) * | 2012-06-01 | 2017-06-27 | Microsoft Technology Licensing, Llc | Control of remote applications using companion device |
KR20140026999A (en) * | 2012-08-23 | 2014-03-06 | (주)휴맥스 | Method, apparatus and system for remote browsing |
US9858777B2 (en) * | 2013-03-08 | 2018-01-02 | Sensormedia Inc. | System, method and computer readable medium for managing mobile devices |
US20140297804A1 (en) * | 2013-03-28 | 2014-10-02 | Sonic IP. Inc. | Control of multimedia content streaming through client-server interactions |
EP2981940A1 (en) * | 2013-04-01 | 2016-02-10 | Netmeno | Method and system for dynamically creating and transferring data corresponding to a benefit from a web page to a mobile application by using a web-based marker |
WO2015006628A1 (en) * | 2013-07-10 | 2015-01-15 | Ramin Rostami | Monitoring system, apparatus and method |
TWI543600B (en) * | 2013-10-09 | 2016-07-21 | 晨星半導體股份有限公司 | Playback device for playing multimedia files and method of playing multimedia files |
US20150172151A1 (en) * | 2013-12-18 | 2015-06-18 | Aktiebolaget Skf | Portable wireless self-hosted condition monitoring web server and method of use |
CA2947020A1 (en) | 2014-05-23 | 2015-11-26 | Search Optics, LLC | Systems and methods for programming behavior of a website to respond to capabilities of different devices |
WO2016135127A1 (en) | 2015-02-25 | 2016-09-01 | British Telecommunications Public Limited Company | Secure matrix barcode |
US10764610B2 (en) * | 2015-07-03 | 2020-09-01 | Telefonaktiebolaget Lm Ericsson (Publ) | Media user client, a media user agent and respective methods performed thereby for providing media from a media server to the media user client |
US20160310049A1 (en) * | 2016-06-30 | 2016-10-27 | Fitbit, Inc. | Wearable devices incorporating ion selective field effect transistors |
US11023252B2 (en) | 2017-01-12 | 2021-06-01 | Roger Wagner | Method and apparatus for bidirectional control connecting hardware device action with URL-based web navigation |
US10558776B2 (en) * | 2017-10-09 | 2020-02-11 | Autodesk, Inc. | Trigger-action-circuits: leveraging generative design to enable novices to design and build circuitry |
-
2018
- 2018-01-12 US US15/870,551 patent/US11023252B2/en active Active
- 2018-01-12 US US15/870,563 patent/US20180205569A1/en not_active Abandoned
-
2021
- 2021-04-29 US US17/243,962 patent/US11586449B2/en active Active
-
2023
- 2023-02-16 US US18/170,465 patent/US20240028347A1/en active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062475B1 (en) * | 2000-05-30 | 2006-06-13 | Alberti Anemometer Llc | Personalized multi-service computer environment |
US9348820B1 (en) * | 2000-09-14 | 2016-05-24 | Network-1 Technologies, Inc. | System and method for taking action with respect to an electronic media work and logging event information related thereto |
US20070219654A1 (en) * | 2006-03-14 | 2007-09-20 | Viditotus Llc | Internet-based advertising via web camera search contests |
US20080243793A1 (en) * | 2007-03-21 | 2008-10-02 | Paul Hallett | Contact Information Capture and Link Redirection |
US20120136485A1 (en) * | 2010-11-19 | 2012-05-31 | Weber Theodore E | Control System and Method for Managing Wireless and Wired Components |
US20140265920A1 (en) * | 2013-03-13 | 2014-09-18 | Federal Law Enforcement Development Services, Inc. | LED Light Control and Management System |
US20160149716A1 (en) * | 2014-11-24 | 2016-05-26 | Rajiv Nelson Raj | Remote Management And Control Of Utility Appliances |
Also Published As
Publication number | Publication date |
---|---|
US20180203711A1 (en) | 2018-07-19 |
US20210318892A1 (en) | 2021-10-14 |
US11023252B2 (en) | 2021-06-01 |
US20240028347A1 (en) | 2024-01-25 |
US11586449B2 (en) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180205569A1 (en) | Method and apparatus for bidirectional control connecting hardware device action with url-based web navigation | |
US20190019166A1 (en) | Apparatus, methods and systems for knowledge based maintenance | |
US8249726B2 (en) | Method and device for accessing a functional module of automation system | |
KR102450899B1 (en) | Web-enabled interface for embedded server | |
US11586852B2 (en) | System and method to modify training content presented by a training system based on feedback data | |
US20140337727A1 (en) | System and method for dynamic help content presentation | |
KR101058077B1 (en) | Method and device for performing service of robot | |
US20110157008A1 (en) | Device-control system, terminal apparatus, and device | |
US20070073424A1 (en) | Apparatus and method for transmitting sound information in web-based control system | |
CN106528121A (en) | Data collection system applied to software development platform | |
La Tona et al. | Modular multimodal user interface for distributed ambient intelligence architectures | |
KR20160129143A (en) | Robot control service system based on smart device and robot control service method therefor | |
Tian et al. | An implementation of cloud robotic platform for real time face recognition | |
Muhamed et al. | Implementation of node. js technology in a concept based on IOT | |
KR102434400B1 (en) | Block coding apparatus and block coding method using same | |
Naghdy et al. | Embedded internet laboratory | |
JP2019159753A (en) | Control device, control method, and control program | |
KR20180133640A (en) | IoT sns method | |
KR20150074486A (en) | Display apparatus and control method of thereof | |
CN107091940A (en) | device identification method and device | |
Tao et al. | A Remote Monitoring System of Three-Client/Server Architecture | |
JP2004236296A5 (en) | ||
Andrade et al. | Improving the laboratory environment by switching to embedded online labs | |
TWI291133B (en) | Industrial controller capable of being defined through network and the input and output method thereof | |
CN111954015A (en) | Method and device for realizing online live broadcast classroom |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |