TECHNICAL FIELD
Embodiments of the present invention relate to a means and apparatus for locking and unlocking a door using a sequence of footsteps on a pressure-sensitive pad.
BACKGROUND
Devices for locking and unlocking doors remotely are coming onto the market. Most of these devices work using remote keys or apps, but all of them require the user to input codes by hand. Such locking device pose a problem to users with full hands, for example after returning home carrying bags full of groceries. Such locking devices can also pose problems to users that are limited by a disability.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which:
FIG. 1 shows one embodiment of a step pad door lock system in use.
FIG. 2 shows one embodiment of an application (app) that is used to set parameters of a step pad door lock system.
FIG. 3 shows basic functional blocks of one embodiment of a step pad lock system including a deadbolt subsystem, a step pad subsystem, and a user application subsystem.
FIG. 4 shows basic functional blocks of one embodiment of a step pad subsystem.
FIG. 5 shows basic functional blocks of one embodiment of a deadbolt subsystem.
FIG. 6 shows basic functional blocks of one embodiment of a user application subsystem.
FIG. 7 shows one embodiment of an unlocking and locking flowchart for a step pad lock system.
FIG. 8 shows one embodiment of a process for changing a password in a step pad subsystem of a step pad door lock system.
FIG. 9 shows one embodiment of a process for changing a password in a user application subsystem of a step pad door lock system.
FIG. 10 shows one embodiment of the materials and construction of a pressure-sensitive pad in a step pad subsystem of a step pad door lock system.
DETAILED DESCRIPTION
Embodiments of the invention are directed to a method and apparatus for locking and unlocking a door using a sequence of footsteps on a pressure-sensitive pad (referred to herein as a step pad). Embodiments of the invention make use of a basic knowledge of mechanical engineering, electrical engineering, and computer programming.
Embodiments of the present invention are directed to a mechanical and electronic system for locking and unlocking a door using a sequence of footsteps on a pressure-sensitive pad, referred to herein as a step pad door lock system.
FIG. 1 shows an embodiment of the step pad door lock system in use. A user 100 steps on a step pad 102 in a particular sequence of steps. Step pad 102 consists of a sensor which is underneath the step pad and out of sight, assuming the step pad is faceup. If the sequence of steps matches a previously set unlocking sequence, deadbolt 101 unlocks. If the sequence matches a previously set locking sequence, deadbolt 101 locks. If the sequence does not match the locking or unlocking sequence, deadbolt 101 does not change state.
FIG. 2 shows an embodiment of an app of the step plate door lock system that is used to set parameters of the step plate door lock system. A display 200 of the application (e.g., a graphical user interface) is displayed on a smartphone, tablet, computer, or similar computing device. A button 201 may be pressed by a user to record a change in a stored password sequence, also called the password. A button 202 may be pressed by the user to cancel a password change. A display prompt 203 may be pressed by the user to allow the user to enter a passcode that verifies that the user is authorized to change the password.
In one embodiment, when the user steps on the step pad, a microcontroller in the step pad registers that a switch has been pressed down. When the user takes their foot off the step pad, the step pad microcontroller registers that the switch has been released. When the switch has been pressed down, it is recorded in a data structure as a signal. This signal is then stored in a sequence of signals. In one embodiment, the step pad microcontroller then calculates how long the user stepped on the step pad by measuring how long a signal is active. The step pad microcontroller then puts the step event data into a data structure in memory storage for later use.
The step pad microcontroller accesses the most recent step event lengths in the data structure, so that every time the user steps on the step pad, the step pad microcontroller adds the new step event length data into the data structure. The step pad microcontroller also checks or compares if the recent sequence of step event lengths is the same (within a certain amount of time leeway) as the predetermined sequence, which is also called the password. If so, the microcontroller may send a wireless radio transmission to the deadbolt lock's receiver to command it to unlock the door. Alternatively, the step pad may have a wired connection to the deadbolt and may send a wired transmission to the deadbolt to cause it to unlock the door. The stored password sequence can be set at the time of manufacture, chosen by the user, or changed by the user.
In one embodiment, if one of the step lengths is greater than a certain amount of time, the step pad microcontroller detects this step event length as a sequence to command the deadbolt to lock.
In embodiments, whenever the user steps on the pad, unlocks the deadbolt, or locks the deadbolt, indicator lights signal the state of the step pad or of the lock.
In one embodiment, to reprogram the password, an electronic device is wirelessly connected to the step pad. After completing a series of actions such as entering a password update mode, inputting the current password, inputting the new password, and verifying the new password, the stored password sequence will be changed until the user changes it again. Throughout this process, indicator lights 405 will blink and flash to communicate different phases in the password changing sequence.
FIG. 3 shows basic functional blocks of one embodiment of the step pad door lock system (also referred to as a step pad locking and unlocking system 300), which may include a deadbolt subsystem 301, a step pad subsystem 302, and a user application subsystem 303. In some embodiments, these subsystems communicate wirelessly. Alternatively, these subsystems may have wired connections, and may communicate via the wired connections.
FIG. 4 shows basic functional blocks of one embodiment of the step pad subsystem 302. In one embodiment, a step pad microcontroller 404 transmits from two transmitters, where one transmitter communicates with the deadbolt subsystem and the other transmitter communicates to the user application subsystem. The microcontroller also receives inputs from the step pad sensor switch and a receiver that communicates from the user application subsystem. In some embodiments, the microcontroller controls indicator lights.
Step pad microcontroller 404 locks and unlocks a door wirelessly through radio transmissions in some embodiments. In one embodiment, a radio receiver and motor in the door's deadbolt lock opens and closes the deadbolt door lock. Step pad microcontroller 404 also sends and receives signals via step pad transmitter and receiver 401 in some embodiments to communicate with electronic devices such as a cell phone or other mobile device so that a software app executing on the cell phone or other mobile device can communicate the state and operation of the step pad to a user based on the steps. Deadbolt transmitter 406 is configured to send a signal to deadbolt subsystem 301. Depending on the steps, different signals will be transmitted. In one embodiment, an unlock signal will be sent to the deadbolt subsystem 301 if the user's steps match the stored password sequence. If the user's steps do not match the stored password sequence within the predetermined leeway, a lock signal will be transmitted. When deadbolt microcontroller 502 receives a lock or unlock signal from deadbolt transmitter 406, deadbolt microcontroller 502 will send a corresponding signal to deadbolt motor 504 to lock or unlock the deadbolt. Indicator lights 405 may conveniently communicate the state and operation of step pad 403 to the user. Some embodiments of this are the lights blinking white when detecting a new step, blinking green when deadbolt subsystem 301 unlocks, or blinking red when deadbolt subsystem 301 locks.
Step pad microcontroller 404 is battery-powered by removable step pad battery 402 in some embodiments. Alternatively, step pad microcontroller 404 may be powered by a wired power connection (e.g., to a wall outlet). For the battery powered configuration, the unit lasts a long period of time (e.g., one or more years) before step pad battery 402 needs to be changed or recharged. The battery life may be extended by using a low-power sleep mode in step pad microcontroller 404 when step pad 403 has not been stepped on for a threshold period of time. An example of such a threshold period of time is fifteen seconds. In sleep mode, battery consumption is very low, and the step pad door lock system wakes up after a certain event, such as connecting with the user application or the user stepping on the mat. Upon waking, indicator lights 405 will all flash.
FIG. 5 shows basic functional blocks of one embodiment of deadbolt subsystem 302. Deadbolt microcontroller 502 controls a deadbolt motor 504 to lock and unlock a deadbolt accordingly. The microcontroller also receives inputs from the deadbolt receiver. Deadbolt microcontroller 502 is battery-powered by removable deadbolt battery 501 in one embodiment. The unit lasts a long period of time before deadbolt battery 501 needs to be changed or recharged. The battery life is extended by using a low-power sleep mode in deadbolt microcontroller 502 when deadbolt receiver 503 has not received a signal for a threshold period of time. Deadbolt receiver 503 is configured to receive signals from deadbolt transmitter 406 in step pad subsystem 302. An example of such a specific period of time is fifteen seconds. In sleep mode, battery consumption is very low, and the deadbolt microcontroller wakes up after deadbolt receiver 503 receives a signal. In some embodiments, deadbolt microcontroller is connected to a wired power source (e.g., a wall outlet).
FIG. 6 shows basic functional blocks of one embodiment of user application subsystem 303. In one embodiment an app microprocessor 602 is connected to app battery 603, app transmitter and receiver 604, and display 601. App transmitter and receiver 604 can utilize Bluetooth or Wi-Fi or another wireless transmitting protocol. The components of the user application subsystem 303 are typical components of a common consumer electronics device such a cell phone or tablet in embodiments. App microprocessor 602 gets power from app battery 603, gets inputs from wireless signals received by app transmitter and receiver 604, and sends out signals using app transmitter and receiver 604. Display 601 presents the user interface to the user.
FIG. 7 shows one embodiment of a process for unlocking and locking a deadbolt within step pad subsystem 302. The process starts in block 701. When a user steps on step pad 403, a sensor within step pad 403 is activated at block 702 and step pad microcontroller 404 stores a timestamp in memory at block 703. When the user stops stepping on step pad 403, the sensor is deactivated at block 704 and step pad microcontroller 404 calculates how long the user stepped on step pad 403 based on the current timestamp and the stored timestamp at block 705. There is a predetermined “lock time” for how long the user must step on the step pad to send a lock signal. At block 706, step pad microcontroller 404 determines if the length of the button press is longer than this lock time. If so, step pad microcontroller 404 sends a signal to lock a deadbolt in block 710. The list of inputs is cleared in block 711 and the process returns to the start block 701. This algorithm and the sequence of step event lengths may be modified for several buttons and include positional data as well as duration data. Positional data includes any data about what region of the step pad has been stepped on. Embodiments may have two or more buttons, and the sequence of step event lengths includes what region of the step pad was stepped on and for how long.
If the length of the button press is less than the lock time as determined in block 706, then the step event duration is pushed onto a list of inputted duration values at block 707. In one embodiment, in block 708, step pad microcontroller 404 determines whether the n most recent inputted step event lengths (n being the length of the password) are within an error margin to the corresponding stored password sequence. If so, step pad microcontroller 404 sends an unlock signal to the deadbolt in block 709. The error margin can be, for example, around 100 to 500 milliseconds. The list of inputs is cleared in block 711 and the process returns to the start block 701.
FIG. 8 shows one embodiment of a process for changing the stored password sequence in the step pad subsystem 302. The process starts at block 801. In block 802, step pad microcontroller 404 determines if it has received the character “1.” If not, step pad microcontroller 404 goes back to block 801 to start the process over again. If so, a user enters the current password at block 803. In block 803, step pad microcontroller 404 receives a password from a user and in block 804 determines if the user has input the correct password by comparing it to the stored correct password. If so, the character “p” is transmitted in block 806 to user application subsystem 303. Otherwise, the character “d” is transmitted in block 805 to user application subsystem 303. In block 807, step pad microcontroller 404 receives a new password from the user. Block 808 determines if the new password received in block 807 is valid. If so, the letter “a” is transmitted in block 809 to user application subsystem 303. Otherwise, the character “d” is transmitted in block 805 to user application subsystem 303. In block 810, step pad microcontroller 404 again receives an additional sequence of signals from the user. This additional sequence of signals is turned into an additional sequence of step event lengths. In block 811, step pad microcontroller 404 determines if the additional sequence of step event lengths inputted from block 810 is valid and matches the password that it previously stored from block 807. If so, the character “b” is transmitted in block 812 to user application subsystem 303, and the stored password sequence is updated in memory in block 813 before the process returns to start block 801. Otherwise, the character “d” is transmitted in block 805.
Note that at any time in the process, if a cancel button is pressed on the app, the user application subsystem 303 will transmit a “2” to the step pad subsystem 302. In step pad subsystem 302, step pad transmitter and receiver 401 may always be able to receive a “2”. Upon receiving a “2”, the process in FIG. 8 restarts at block 801.
FIG. 9 shows one embodiment of a process for changing a password in the user application subsystem 303. The process begins at start block 901. App microprocessor 602 receives a signal that a user pressed a change password button in block 902. Once the change password button is pressed, at block 903, user application Subsystem 303 transmits the character “1” to step pad subsystem 302. This transmission of character “1” serves as a request. Upon receiving this request, the step pad and application enter a password update mode. The words, “Input current password” are displayed on display 601 at block 904. App microprocessor 602 determines if it received the character “d” or “p” from user application subsystem 303 at block 905. If not, block 905 goes back to block 901 to start the process over again. If a “d” or “p” has been received, block 906 determines if the character “p” was received in block 905. If so, display 601 shows “correct password-input new password” on block 908. Otherwise, the words “incorrect password” is displayed on display 601 on block 907. After block 908, app microprocessor 602 determines if it received the character “a” or “d” from user application subsystem 303 at block 909. If not, block 909 goes back to block 901 to start the process again. If an “a” or “d” has been received, block 910 determines if the character “a” was received in block 909. If so, display 601 shows “Registered new password-repeat password” in block 911. Otherwise, “incorrect password” is displayed on display 601 in block 907. Following block 911, app microprocessor 602 determines if it received the character “b” or “d” from user application subsystem 303 at block 912. If not, block 912 goes back to block 901 to start the process again. If a “b” or “d” has been received, app microprocessor 602 determines if the character “b” was received in block 913. If so, display 601 shows “new password accepted/updated” in block 914 before returning to the start of the process at block 901. Otherwise, “incorrect password” is displayed on display 601 in block 907. Whenever app microprocessor 602 in user application subsystem 303 is at block 907, the process in FIG. 9 restarts at block 901.
FIG. 10 shows one embodiment of step pad 403, in which step pad 403 includes conductive material 1000 and conductive material 1001, both being conductive sheets separated by perforated sheet 1002. Perforated sheet 1002 may be a perforated, non-conductive insulation sheet. Together, the conductive material 1000, conductive material 1001 and perforated sheet 1002 comprise a mat. When sufficient pressure is applied on the mat, such as a human step, sensor 1003 registers that the conductive points on conductive material 1000 and conductive material 1001 touch through the perforated holes. Sensor 1003 is connected to conductive material 1000 and conductive material 1001 through wire 1004 and wire 1005. When the conductive sheets touch, a circuit is completed, acting as a button or switch to send signals to a microcontroller via Sensor 1003. Sensor 1003 may be configured to detect steps on one or more regions of the step pad. However, Sensor 1003 may alternatively be implemented as an optical, capacitive, or optical-mechanical sensor if it detects the user's steps. In one embodiment, the optical sensor may be infrared and detect a step when a user's foot gets close to the step pad. To ensure conductive material 1000 and 1001 do not falsely trigger due to water conductivity, step pad 403 also comprises of a waterproof casing 1006. Waterproof casing 1006 is a sealed enclosure made from a thin and flexible material. Said waterproof casing would also enclose the entire mat, including components such as transmitter and receiver 401 and indicator lights 405.
In the preceding description, numerous details are set forth. One of ordinary skill in the art would know that the present invention can be implemented in hardware, software, or combinations thereof. It will also be apparent to one skilled in the art, that the present invention may be practiced without these specific details. In some instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.