1

Grandmother in the kitchen

Posted by Stephen on Feb 13, 2009 in General, Input

Let’s take a look at the modern kitchen and the interaction we have with it today.  If you where to standing in the middle of a modern kitchen, or even the local appliance store, you would find that mass about of buttons, knobs, colors displays, buttons that light up, make sounds, and even disappear when not needed.  This could borders on overload for some.

When I look at the modern appliances, one vision that I remember as kid growing up was my Grandmother cooking lunch for me.  It was not a fancy lunch, usually grilled cheese and soup, but the vision of her standing there with her apron on, oversized oven mitts, and wooden spoon in one hand will never leave my mind.  The stove she used was not fancy, but efficient in how the user interacted with it with simple knobs that she could turn to adjust the temperature of the cooking surface.

Today, the style of the appliance is an important aspect when selecting one.  Does it have buttons that light up, or is it stainless steel.  What about a solid surface to clean?  These are some of the items that my Grandmother would look at today.  So how do you operate one of these modern cook top will still keeping your hands inside the oven mitts or even use the wooden spoon to press the off button?  The answer to this question is simple…Inductive touch .

Image if you will a Grandmother standing in front of the stove as a child has just come in out of the cold from building a snowman in anticipation of warm soup.  The Grandmother has on the classic oven mitts, as she just finished making chocolate chip cookies, and is stirring the soup as it begins to boil over the top of the pot.  Instantly she reacts and uses the end of the spoon to press the off key while removing the pot from the hot burner.

The cook top that she is using has single face plate made of stainless steel for the control buttons.  These buttons are etched or silk-screened on the faceplate providing the elegant look and feel demand by today’s consumers.  But how was she able to use the end of the spoon to control the buttons.  The inductive touch solution is a complement to the capacitive touch solutions out there today.  Capacitive solutions make use of the person to change the value of a capacitor and this is hard to do with a wooden spoon.  While the wooden spoon will not work for capacitive, it will work with inductive touch.

Inductive touch makes use of the metal or in this example the stainless steel ability to move.  The movement is so small that the consumer will not even know that it is moving as it only moves about 10 – 20 microns.  That is less than 1/1000 of an inch.  This movement is sensed by a circuit that is mounted behind the user interface panel.  Once the movement is sensed and debounced, the rest of the operation is the same as if there was a mechanical or capacitive button in the design.

Inductive touch technology is not a replacement for capacitive touch, but one that will work in different environments.  For example capacitive touch can sense a finger just slightly above the user surface, where inductive can not.  On the other side, when you clean capacitive buttons you will be pressing the buttons as you wipe across them.  This is not the case with inductive touch as you need to physically press the button to create the deflection.

Now that I have introduced inductive touch to the blog, we will be adding further blogs talking more about the technology itself and some of the other uses for it.

Tags:

 
1

Debouncing Mechanical Systems

Posted by Keith on Feb 4, 2009 in Input

It is pretty much a given that any serious discussion of user interfaces and embedded design will eventually cover the subject of de-bouncing mechanical buttons. This simple intrusion of physics on the equally simple subject of user input has been a source of aggravation to more programmers than almost any other subject. Basically, all the screaming is about the mechanical bounce of switch contacts when the button is pressed. The problem is that the microcontroller is easily fast enough to see the multiple make-break transitions and report them as multiple key presses.

Most programmers handle this problem by sampling the input at a relatively slow rate, and then waiting for 3 consecutive low inputs before calling the button down. The release is generally taken to be the first high after a valid press. While this works and is relatively simple to implement, it does have an Achilles heal. If the contacts are closed, and the system is subjected to a shock, then bouncing contacts will be interpreted as a release followed by a new press.

One common method of fixing this problem is to just require 3 consecutive high inputs before calling the button released. The problem with this method is that a 3 sample system has to be fast enough to see at least one open during the bounce, while also slow enough to not see 3 closed samples during the bounce. Basically, 3 samples do not always allow enough of a window for the potential variability of the mechanical system. While we could expand out the system to 5 or 7, the overhead of keeping the last 5-7 samples become more complex, and more aggravating, plus the added de-bounce delay time will eventually become noticeable to the user. What we need is a system that starts the de-bounce process before the contacts stop bouncing.

The system that I use is based on the duty cycle of the bounce and it calls a button closed when the duty cycle exceeds 75%. I do this by using a single 3-6 bit counter, which I increment for every low sample, and decrement for every high sample. I also limit the counter so it can not roll over or under. When the count gets to 75%, I set the de-bounce output, and when it gets to 25%, I clear it. Using this system I can actually de-bounce the button before its contacts stop bouncing.

The C code for a single button is shown below;

Void poll_keys()

{

IF (swx_input() == 0)

IF (count < (max+1)) count++;

ELSE

IF (count > 0) count–;

IF (count >= (max*3/4)) button = 1;

IF (count <= (max/4) button = 0;

}

Tags:

Copyright © 2013 Notes from the Lab All rights reserved. Theme by Laptop Geek.