Element14 has given me another opportunity to review a product from their website, this time I chose the Element14 XL_STAR Development Board which is based on the Freescale MC9S08MM128 MCU that can run at 48MHz and has 128K flash, 12K RAM, 16-bit ADC, 47 I/O pins, SPI, DAC, RTC, to name a few features.
The XL_STAR’s main feature is the interaction between a 3-axis Freescale MMA8451Q accelerometer and an assortment of 48 LEDs around the accelerometer. This allows you to easily prototype ideas for your project ideas that which involve a 3-axis accelerometer.
The other features of the XL_STAR are:
- Can be powered by a Li-Ion coin cell battery
- Can to debugged from the PC using the USB port
- Battery charger for the Li-Ion coin cell battery
There are 5 demos that come pre-programmed to show the various features that can be achieved with the accelerometer which include:
- Orientation – LEDs light depending on how you hold the board
- Shake – LEDs light in one direction depending on how fast you move the board
- Tap – Tapping the board results in LEDs lighting
- Freefall – Freefalling lights the LEDs
- Transient – Any movement of the board and the LEDs light
Included with the development board is a CD with the CodeWarrior IDE which is a simple process to install by clicking on each step on after the other. Also included is the demo project’s code so you can easily modify it.
https://www.youtube.com/watch?v=mlf_B_hljGw
For a test, I decided to use the XL_STAR in transient mode, place it in centre console of my car then bump my car to see how sensitive it really was. It turns out its sensitive to just about any place that tapped on my car. This means you could use it to protect your car, say to detect if someone hit your car, if someone broke into your car (like broke a window), etc however it could be a bit too sensitive say if a bird landed on your car.
if (CurrentDemo == DEMO_SHAKE) { /* Transient is indicated when acceleration on one of the axes is above threshold 8 x 0.063g = 0.5g */ IIC_RegWrite(SlaveAddressIIC, TRANSIENT_THS_REG, 8); } else { /* Transient is indicated when acceleration on one of the axes is above threshold 1 x 0.063g - i.e. a small movement */ IIC_RegWrite(SlaveAddressIIC, TRANSIENT_THS_REG, 1); }
You could easily use this transient mode to detect any earthquakes and from quickly glancing at the source code you could potentially measure the number of G’s of the earthquake. You could probably decreasing the sensitivity of the accelerator (i.e. adding more “g” after it detects movement), then re-testing for movement until no more movement is detected (and you would go back 1 “g” step to make sure the movement was still active).
When I was doing my testing I used just a standard CR2032 coin cell (non-rechargeable) and now I know why they have a charger on-board; the battery voltage started at about 3V (it was discharged already) and dropped to 2.5V whilst running in the XL_STAR due to the current draw of the LEDs.
I haven’t used accelerometers before however this board provides an easy way to test your code with the accelerometer and it would suit even if you didn’t use an Freescale MCU in your final design.