Abstract:
A method for determining a position using digital pixel data includes receiving pixel data from a position sensor device at a controller, sorting the received pixel data into pixel banks using the controller, identifying a maximum bank, a close bank, and a far bank using the controller, calculating a close to max ratio using a first equation and a max to far ratio using a second equation using the controller, and determining a position based on said close to max ratio and said far to max ratio.

Description:
BACKGROUND 
       [0001]    The present disclosure is related generally to position sensing devices, and more specifically to a position sensing device for an automatic plumbing fixture. 
         [0002]    Position sensing automated devices, such as automatic faucets or drinking fountains, utilize position sensors built into the structure of the faucet to determine the position of a user relative to the metal fixture of the faucet. When the user is closer than a certain distance, the faucet activates and begins dispensing water. Similar arrangements are also utilized in drinking fountains and other plumbing fixtures. 
         [0003]    A common type of position sensing device used in these arrangements is a capacitive based sensor. The capacitive based sensor detects a capacitance between the metal fixture of the faucet and the person approaching or leaving the fixture. The strength of the capacitance varies depending on the distance between the person and the fixture according to known principles. In this way, a capacitance probe contacting the fixture can sense the capacitance and determine the position of the person. 
       SUMMARY 
       [0004]    Disclosed is a method for determining a position using digital pixel data that includes receiving pixel data from a position sensor device at a controller, sorting the received pixel data into pixel banks using the controller, identifying a maximum bank, a close bank, and a far bank using the controller, calculating a close to max ratio using a first equation and a max to far ratio using a second equation using the controller, and determining a position based on said close to max ratio and said far to max ratio. 
         [0005]    Also disclosed is a method for controlling an automated plumbing fixture that includes the steps of: using a linear sensor array to determine multiple potential positions of a user, determining an actual position of the user based on the multiple potential positions of the user using a controller, and outputting instructions from the controller to a plumbing fixture, thereby causing the plumbing fixture to perform a predetermined function based on the determined actual position. 
         [0006]    These and other features of this application will be best understood from the following specification and drawings, the following of which is a brief description. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0007]      FIG. 1  schematically illustrates a position sensing device including a linear sensor array. 
           [0008]      FIG. 2  illustrates a flow chart of a process by which the position sensing device of  FIG. 1  determines a position. 
           [0009]      FIG. 3  illustrates an example table for utilization in the process of  FIG. 2 . 
           [0010]      FIG. 4  illustrates a flow chart of a sub-process performed within a sort pixel data step of  FIG. 2 . 
           [0011]      FIG. 5  illustrates a flow chart of a sub-process performed within the identified pixel data banks step of  FIG. 2 . 
           [0012]      FIG. 6  illustrates a flow chart of a sub-process performed in the calculate ratios step of the process of  FIG. 2 . 
       
    
    
     DETAILED DESCRIPTION 
       [0013]      FIG. 1  illustrates a position sensing device (PSD)  10  for use in an automated faucet arrangement. The PSD  10  includes a linear sensor array  20  with multiple individual Infrared sensors  22 . Each individual infrared sensor  22  is referred to as a pixel  22  and provides a single IR light measurement corresponding to the distance between a user and the faucet. Each pixel  22  of the linear sensor array  20  is connected to a controller  30  via a digital communication line  40 . The controller  30  includes a processor  32  that processes incoming data from the pixels  22 . The controller  30  also includes a memory  34  that stores the pixel data as well as data derived from the pixel data by the processor. The controller  30  can utilize the derived distance data to turn a faucet, such as a sink or a drinking fountain, on or off as necessary. 
         [0014]    The controller  30  uses a process described below to aggregate the data from each pixel  22  of the linear sensor array  20  and to determine an actual position of the person approaching or leaving the faucet based on the data. The actual position is compared to a threshold position, and the faucet is activated when the person is closer to the faucet than the threshold distance. In alternate configurations, the controller memory  34  stores the derived locations and the controller  30  compares a current location to a previous location and determine if a user is approaching or leaving the faucet, and the faucet is activated based upon this determination. 
         [0015]      FIG. 2  illustrates a process by which the processor  32  and the memory  34  of the controller  30  of  FIG. 1  convert data from the individual pixels  22  into an actual position of the user. Initially, the individual pixel data is retrieved from the pixels  22  over the digital communication lines  40  in a “Retrieve Pixel Data” step  110 . In one example, the linear sensor array  20  periodically transmits pixel data to the controller  30 . In an alternate example, the linear sensor array  20  continuously monitors the capacitance, and therefore the distance, and the controller  30  polls the linear sensor array  20  to retrieve the pixel data as necessary. 
         [0016]    Once the pixel data is retrieved, the processor  32  sorts the pixel data in a “Sort Pixel Data” step  120 . Each pixel  22  is part of a grouping of pixels referred to as a pixel bank. Each pixel bank has the same number of pixels  22 , and all the pixels  22  in a given bank are arranged consecutively on the linear sensor array  20 . The controller  30  determines an average pixel value for each bank and stores that value in the memory  34 . 
         [0017]    Once the pixel data is fully sorted, the controller  30  identifies a maximum bank, a close bank, and a far bank in an “Identify Pixel Data Banks” step  130 . The maximum bank is determined to be the pixel bank with the highest average distance value. The close bank is the pixel bank immediately sequentially prior to the maximum bank on the linear sensor array  20 . The far bank is the pixel bank immediately sequentially after the maximum bank on the linear sensor array  20 . 
         [0018]    Once each pixel bank is identified, the processor  32  calculates a close to max to ratio using the close bank value and the maximum bank value and a max to far ratio using the far bank value and the maximum bank value in a “Calculate Ratios” step  140 . Once the ratios are calculated, the processor  32  moves to a “Calculate Position” step  150 . 
         [0019]    In the “Calculate Position” step  150 , the controller  30  determines that the position of the user is equal to a base number minus the close to max ratio plus the max to far ratio using P=B-CM+MF where P is the position, B is the base number, CM is the close to max ratio and MF is the max to far ratio. The base number used in this calculation is a preloaded constant stored in the memory  34  of the controller  30  and corresponds to the maximum bank. Once the position data has been determined, the controller  30  performs any required corresponding action according to the programmed control scheme. 
         [0020]    In some examples, the base numbers are stored in a table, such as the example table illustrated in  FIG. 3 . Each pixel bank  202  in the table has a base number  204  assigned to the pixel bank  202 . The base number  204  for the position calculation described above is the base number  204  corresponding to the maximum bank  202  determined in the “Identify Pixel Data Banks” step  130 . Thus, in the example of  FIG. 3 , if pixel bank 8 is determined to have the maximum value in the “Identify Pixel Data Banks” step  130 , the base number utilized in the position calculation is  850 . The values listed in the sample table of  FIG. 3  are exemplary only, and practical implementations will utilize different base values  204  and different numbers of pixel banks  202 . 
         [0021]      FIG. 4  illustrates the process of the “Sort Pixel Data” Step  120  in greater detail. Initially, in the Sort Pixel Data Step  120 , the controller  30  sorts the pixel data into the pixel banks according to the physical pixel position on the linear sensor array  20  in a “Sort Data According to Pixel Position” step  122 . Each pixel bank contains the same number of pixels as each other pixel bank, and all the pixels within a single bank are sequentially adjacent along the linear sensor array  20 . Once each pixel is sorted into the correct pixel bank, the pixel data in each bank is averaged to determine a bank value in an “Average Pixel Data in Each Bank” step  124 . The bank values are then correlated with their corresponding pixel bank and stored in the controller memory  34  in a “Store Average Pixel Data in Corresponding Bank” step  126 , and the controller  30  moves to the “Identify Pixel Data Banks” step  130  of  FIG. 3 . 
         [0022]      FIG. 5  illustrates the process of the “Identify Pixel Data Banks” step  130  in greater detail. Initially, the controller  30  compares the bank values of all the pixel banks and determines which pixel bank has the highest value in an “Identify Which Data Bank Includes the Highest Average Pixel Data” step  132 . The controller  30  then determines the pixel bank immediately sequentially prior to the maximum pixel bank and labels the determined bank the close pixel bank in an “Identify Data Bank Immediately Prior to the Highest Data Bank” step  134 . The controller  30  then determines the pixel bank immediately sequentially after the maximum bank and labels the determined bank the far pixel bank in an “Identify Data Bank Immediately After the Highest Data Bank” step  136 . 
         [0023]    Once all the data banks are identified, the controller  30  moves to the “Calculate Ratios” step  140 , illustrated in greater detail in  FIG. 6 . During the “Calculate Ratios” step  140 , the controller  30  determines a close to max ratio in a “Calculate Close to Max Ratio” step  142 . The close to max ratio is CM=((MV−CBV)/(MV+CBV))*100, where CM is the close to max ratio, MV is the value of the maximum bank and CBV is the value of the close bank. Similarly, the controller  30  determines a max to far ratio in a “Calculate Max to Far Ratio” step  144 . The max to far ratio is MF=((MV−FBV)/(MV+FBV))*100, where MF is the max to far ratio, MV is the value of the maximum bank and FBV is the value of the far bank. The close to max ratio and the max to far ratio are then utilized in the “Calculate Position” step  150  described above with regards to  FIG. 2 . 
         [0024]    While the above described processes and sub-processes indicate in order by which the steps are taken by the processor, it is understood that steps not dependent on the results of a previous step can be performed in alternate orders and still fall within the present disclosure. 
         [0025]    Although an embodiment of this invention has been disclosed, a worker of ordinary skill in this art would recognize that certain modifications would come within the scope of this invention. For that reason, the following claims should be studied to determine the true scope and content of this invention.