Archive for the 'sensors' Category

Accelerometers

Having demonstrated to friends how my phidget accelerometer works made me realize that people are generally unfamiliar with this type of sensors. In this post, therefore, I’m going to tell some facts about accelerometers, as well as show the classic and new ways of using them.

An accelerometer is capable of measuring vibration, motion, acceleration, and gravity, to name a few appliances. Assuming the sensor is fixed to an object, the readouts can be interpreted in many ways. It may detect the motion of a building, the tilt of a camera, the acceleration of a car, and so on.

Accelerometers are calibrated to read zero when forces cancel out each other, that is free fall, for example. When an accelerometer stands still on some surface on Earth, it reads 1G as the vectorial sum of the readings on its three orthogonal axes. The two basic parameters of such sensors are the number of axes (1 to 3) and measurement range. The range of the sensor determines its potential uses, with simpler implementations only able to determine a rough tilt, to high-precision ones capable of measuring heavy vibration.

But how does it work, one may ask. Well, the most widespread accelerometer implementation is MEMS (that is a Micro-Electro-Mechanical-System), basically a piece of hanging microscopic weight that changes its electrical parameters when a force bends it, and an auxiliary circuit measures and quantifies this alteration, all on the same wafer of silicone packaged into a single chip.

Let’s take a look at what ways can it be used. The classical, industrial usage of accelerometers include building-control systems (sensing motion and vibration), airplane navigation systems (that only rely on inertial changes to tell where the airplane is), car-safety systems (to determine when an airbag need to be blown). Accelerometers have also been used for mapping land features otherwise hard to measure due to the lack of reference points (e.g. tunnels and caves).

New appliances have emerged since, with airbags became more and more widespread, and the price of accelerometres have fallen while the size of the sensor was shrinking. Then, all of a sudden, embedding them into notebooks and hand-held devices became feasible, opening up innovative ways of extending the computers’ awareness of the surrounding physical world.

An embedded sensor’s readings may save your data by issuing emergency-shutdown for the HDD when gravity tilt suddenly disappears, which means the notebook is free-falling, and is about to crash-land on hard surface. This feature appeared in MacBooks just a few years ago, using an accelerometer often referred as sudden motion sensor. By providing access to the sensory readings, however, Apple has opened up a way for a new breed of fun applications, utilities and games, including MacSaber, my personal favourite. In recent news, iPhone’s tilt sensor has just been put into action.

An accelerometer in a hand-held device, such as a phone has even more potential, as these gadgets are moving basically all day. Recognising gestures could simplify the interaction, for example answering a call could be as easy as raising the phone to our ears, while a simple shake would reject the same call. An accelerometer provides enough info to use as a secure-guard: the walking-pattern is different for every individual, so the phone can literally sense, and therefore act, when it has taken away from its owner. Check this link for some other ideas.

So why not use them in input devices? Taking a look at Gyration’s air-mouse or Nintendo’s WiiMote clearly shows the advantages of accelerometer-equipped input devices, which bring more spatial freedom into the interaction, so much you can even crash your TV screen with. Industrial grade data gloves can capture the fine motion of the human hand with accelerometers. One may say these tools are very expensive, but check out the accelerometer mouse project from students of the Cornell University, who created a mouse glove from a mere 13 dollars.

This latter project inspired me too, so I grabbed a USB 3-axis accelerometer from phidgets.com to experiment with. Probably not the cheapest solution, but it worked right away as I plugged it into the USB port. Not that I’m anything closer to my goals with that easeness.

All in all, starting in the heavy-weight industry, and gradually shrinking into mobile appliances, accelerometers have become part of our everydays, and hold a huge potential for improving Human-Computer Interaction.

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]

Phidgets

Phidget is a shorthand for “physical world widget”, which is some hardware sensor or controller connecting to a computer, originally created by students of University of Alberta, later packaged and distributed by Phidgets Inc..

Phidgets are a painless way to extend a USB-equipped computer’s interactions with the physical world, providing a wide range of sensors, displays, and controllers as simple as plugging them in. With an acceptable pricetag, phidgets open up a world of new possibilities for software developers with only limited skills in electronics, ultimately resulting in some fun projects.

Phidgets Inc. provides software drivers and libraries for Windows, Windows CE, Mac OSX, and Linux, including driver source code (with a restrictive license, though). There are APIs for COM, Java, .Net, C, ActionScript, and bindings to a variety of languages to speed up development. Browsing the web and the forum for python support I’ve also came across the python-phidgets and the phydget projects that provide python bindings.

I decided to give phidgets a try, so I’ve purchased a 3-axis phidget accelerometer, a phidget interface kit with text-LCD, and a few analog sensors to measure temperature, magnetic fields, and light, and also a touch sensor. The sensors are going to be used in a home-automation project, while the accelerometer will somehow become an input device (thinking of something like the accelerometer mouse).

With the limited time I have spent with my phidgets so far, I’ve added accelerometer support to phydget (should you be interested, here’s the source code for my accelerometer-enabled version), and created a minimalistic visualizer for the accelerometer readings using the excellent vpython library. More to come as soon as I could make some progress in either of my planned phidgets projects…

[Slashdot] [Digg] [Reddit] [del.icio.us] [Facebook] [Technorati] [Google] [StumbleUpon]