Sign in

username:

password:



Not a member?

Search msp430



Search tips

Subscribe to msp430



Ads

Discussion Groups

Discussion Groups | MSP430 | Need some help and advice...

The purpose of this group is to foster exchange of information on the Texas Instruments MSP430 family of microcontrollers and related tools. Everyone welcome, all levels of familiarity/expertise.

Need some help and advice... - lnatan25 - Aug 14 14:26:23 2008

Hey guys! In a bit of a hurry and don't have much time to search the
group. Basically I need some help and advice on a project I'm about to
do for my Bachelor's degree in software engineering.

I intend to make a Wii-like remote for general use on the PC. I have
already purchased and received the eZ430-RF2500 kit, and intend to use
it as the backbone for the remote. Now, I have to admit, I'm a complete
newbie when it comes to dealing with microprocessors, electronics and
embedded programing. I have a few questions, and if anyone can answer
them, I'd be very grateful!

First, this is what I mean by Wii-like remote:
http://en.wikipedia.org/wiki/Wii_remote

First of all, from my limited time with the hardware and software, I
could only read information from the device from the virtual COM that
was installed with the driver. Would I be able to read in a better way
somehow directly from the USB? I'll be doing the the API in .NET, and
for a Wii-like remote, I need it to be as responsive as possible, which,
I think, COM communication isn't.

Next, for the heavier questions. As I understand it, Wii controllers are
using two systems to sense motion and acceleration. One is the
accelerometer, the other, IR bar for tracking the location of the
remote. Now, my questions is, can I somehow manage with accelerometer
only (using Newton laws for instance :P)? I need someone who has
experience dealing with accelerometers to advice me...

Another question is, how hard is to to connect an accelerometer to the
eZ430-RF2500 kit? I don't really have any experience in soldering, but
it shouldn't really be a problem. What I fear most is I don't know how
and where I'd have to solder the accelerometer to be able to use it.
Then, after connecting it, how hard would it be to start using its
outputs as inputs in the MSP430?

I have more questions, but these are the most pressing ones for now.

Thanks in advance for every bit of help,
Leo Natan

------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )


RE: Need some help and advice... - Paul Curtis - Aug 15 5:42:46 2008

Hi,

> Hey guys! In a bit of a hurry and don't have much time to search the
> group.

Not a good start.

> I intend to make a Wii-like remote for general use on the PC. I have
> already purchased and received the eZ430-RF2500 kit, and intend to use
> it as the backbone for the remote. Now, I have to admit, I'm a complete
> newbie when it comes to dealing with microprocessors, electronics and
> embedded programing. I have a few questions, and if anyone can answer
> them, I'd be very grateful!

You know, your project is not unlike my pet project. As a newbie, I
wouldn't attempt it, but if you don't stretch yourself you never learn.

> First of all, from my limited time with the hardware and software, I
> could only read information from the device from the virtual COM that
> was installed with the driver. Would I be able to read in a better way
> somehow directly from the USB? I'll be doing the the API in .NET, and
> for a Wii-like remote, I need it to be as responsive as possible, which,
> I think, COM communication isn't.

Don't worry about performance AT ALL. Just get it working. The fact it
works slowly is not a problem, your main problem is getting it working.

> Next, for the heavier questions. As I understand it, Wii controllers are
> using two systems to sense motion and acceleration. One is the
> accelerometer, the other, IR bar for tracking the location of the
> remote. Now, my questions is, can I somehow manage with accelerometer
> only (using Newton laws for instance :P)? I need someone who has
> experience dealing with accelerometers to advice me...

IIRC, the accelerometer is used for dead-reckoning when IR direct line of
sight is blocked (rather like dead-reckoning in GPS navigation systems).
The Wii remote is being upgraded with more sensitive accelerometers for
better motion estimation. I guess you already know you will need numerical
integration? Accelerometers have jitter so you'll need some smoothing (I
happen to use a moving average) which will provide smoothed acceleration
data (with attendant lag, of course).

> Another question is, how hard is to to connect an accelerometer to the
> eZ430-RF2500 kit? I don't really have any experience in soldering, but
> it shouldn't really be a problem. What I fear most is I don't know how
> and where I'd have to solder the accelerometer to be able to use it.
> Then, after connecting it, how hard would it be to start using its
> outputs as inputs in the MSP430?

If you haven't chosen your accelerometer then you'll need to figure out how
accurate you need your readings and whether you wish to use an analog or
digital accelerometer, and what range it will work over (I happen to use
~4G). The accelerometers I have chosen come from ST and Kionix and both are
digital.

If you want to try out accelerometer algorithms, try getting yourself an
STM32 Starter Kit: it's cheap, comes with some applications, you get a free
go on RIDE, and is a great piece of kit. STM32 is seen by some as the
natural progression from MSP430 to the world of ARM microcontrollers. If
you get the Circle then you have a known-working platform.

http://www.stm32circle.com/hom/index.php

At Farnell it's fairly inexpensive (about GBP 25, that's $50).

I always try to prototype my software on hardware I *know* works. I suggest
you do the same... If you don't have the skills to solder this stuff up
yourself, get a technician to do it for you!

--
Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
CrossWorks for ARM, MSP430, AVR, MAXQ, and now Cortex-M3 processors

------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )

RE: Need some help and advice... - Paul Curtis - Aug 15 5:56:07 2008

Hi,

> I always try to prototype my software on hardware I *know* works. I
suggest
> you do the same... If you don't have the skills to solder this stuff up
> yourself, get a technician to do it for you!

Oh, one more thing: I didn't stick down the accelerometers I used, I
happened to purchase know-working evaluation boards from SparkFun, RS, and
others:

This is a nice one. Kionix also offer an MSP430 board with the
accelerometer, but I happened to test with an LPC2000 ARM7 (LPC2148
actually).

http://uk.rs-online.com/web/search/searchBrowseAction.html?method=getProduct
&R=0253706

I purchased this one too, because it was pretty cheap and I can bit-bash I2C
easily (I find hardware accelerated I2C to be the spawn of the devil):

http://www.sparkfun.com/commerce/product_info.php?products_id=8658

--
Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
CrossWorks for ARM, MSP430, AVR, MAXQ, and now Cortex-M3 processors

------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )

Re: Need some help and advice... - Onestone - Aug 15 7:02:25 2008

Hi leo. As soon as I saw .NET I very nearly didin't answer. I have bee
involved with 2 groups using .NET, neither experience has been
-pleasant, even though I wasn't supposed to be involved at the PC end
of things. however I decided this was more because of the ineptitde of
the people involved than necessarily the language.

I first built a 6 DOF data entry device for the PC in 1991 and filed
patent (which lapsed due to lack of funds) in 1992, even built a matrix
like user interface before the Matrix was ever heard of, since then I've
designed and built a couple of inertial tracking systems. I can't advise
you much on the PC interface other than to say my recent PC interfaces
have been USB based, using the com drivers from the chiop supplier and
these have worked well with software written by a friend using VB, so
COm itself would certainly seem nto be adequate as several of these have
been fairly high speed data interfaces.

lnatan25 wrote:

>Hey guys! In a bit of a hurry and don't have much time to search the
>group. Basically I need some help and advice on a project I'm about to
>do for my Bachelor's degree in software engineering.
>
>
If you're in a hurry this is probably NOT the best project for you to
choose. what you really need is an off the shelf hardware module, so
that you can concentrate on the user interface. I would also probably
skip the RF stuff at this point, and go directly for a USB interface and
use the commercial drivers. From your description this seems more about
the PC interface than the mchanics of gathering the data, and your lack
of microcontroller experience is going to be very hard to overcome if
you're limited in time.

>I intend to make a Wii-like remote for general use on the PC. I have
>already purchased and received the eZ430-RF2500 kit, and intend to use
>it as the backbone for the remote. Now, I have to admit, I'm a complete
>newbie when it comes to dealing with microprocessors, electronics and
>embedded programing. I have a few questions, and if anyone can answer
>them, I'd be very grateful!
>
>First, this is what I mean by Wii-like remote:
>http://en.wikipedia.org/wiki/Wii_remote
>
>First of all, from my limited time with the hardware and software, I
>could only read information from the device from the virtual COM that
>was installed with the driver. Would I be able to read in a better way
>somehow directly from the USB? I'll be doing the the API in .NET, and
>for a Wii-like remote, I need it to be as responsive as possible, which,
>I think, COM communication isn't.
>
>
See above, the COM drivers with most USB interfaces seem responsive
enough for this.

>Next, for the heavier questions. As I understand it, Wii controllers are
>using two systems to sense motion and acceleration. One is the
>accelerometer, the other, IR bar for tracking the location of the
>remote. Now, my questions is, can I somehow manage with accelerometer
>only (using Newton laws for instance :P)? I need someone who has
>experience dealing with accelerometers to advice me...
>
>
Sine you don't have much in the way of embedded skills I would suggest
that you keep the embdded hardware and software to an absolute minimum
possible. To me that suggests data collection and then transmission in
UART form to a USB interface device and then let the PC handle the maths.

The IR distance and orientation system might be hard to duplicate, again
because you lack embedded skills. You might be easier using inertial
style tracking. You can do this in a variety of ways. You can combine
gyro devices, which are expensive, a 3D acceleration sensor. this won't
give you exact position, but distance travelled from a start point.
Analog devices have a module to do this, the ADIS ???? but it is
ludicrously expensive.

You can also use a pair of 3D acceleration sensors, offset from each
oher. One problem with most accelerometers is differentiating between
tilt angle and motion. One way to do this on some sensors like the
ADXl202 digital 2D sensor is to use the filter cap pin and tap off a
raw analog signal from here, this a should be buffered and capacitively
coupled. In this scheme the DC part of the signal, which is related to
the tilt angle, is blocked by the Dc coupling, so the analog signal
comprises motion only, whereas the digital signal is a combination of
tilt angle and motion. this is only a 2D part, so I'd use 3 of them.
These also have the advantage of being available in a larger SOIC
package, which makes soldering easier.

>Another question is, how hard is to to connect an accelerometer to the
>eZ430-RF2500 kit? I don't really have any experience in soldering, but
>it shouldn't really be a problem.
>
Ah, the voice of innocence here!! Most accelerometers that are
relatively inexpensive are MEMs types and are constantly pushing towards
smaller sizes. Most packages are therefore pinless using chip carriers.
Some current devices have solder pads under the device which are less
than 0.4mm square. Now even if you are a really good solderer, and have
a professonal soldering station tis isn't going to be easy to do by
hand. to complicate things even further you can't simply leave these
tings floating in air, they are susceptible to the slightest movement. i
once mounted an arly through hole sensor with 1" leads so that the
sensor was as far from the PCB as possible. even though the leads were
rigid i still made a great microphone, and was particyularly good at
detecting light footsteps across a floor. So hanging it out there on
wires will be almost unworkable. Indeed if you look at most EVAL boards
they mount there sensors on PCb that is 3.2mm or thicker, rather than
the more common 1.6mm or 0.8mm. this is to make the sensor less prone to
vibration.

>What I fear most is I don't know how
>and where I'd have to solder the accelerometer to be able to use it.
>Then, after connecting it, how hard would it be to start using its
>outputs as inputs in the MSP430?
>
>
It depends upon the sensor you choose. The ADXL202 is a diigtal 2D
sensor, the ADXL330 is an analog 3D sensor, the MMA7455 is a serial (SPI
or IIC0 3D sensor. The LIS331 is available in either analog or serial
formats. personally I'm not a big fan of the serial sensors. many of
these only have 8 bits resolution, and it can be hard to synchronise th
signals timewise. Analog sensors are good, but many micros only have an
8 bit A/D, some have 10 bits, but 12 bits is much better. You can also
usually use an onboard timer on the microcontroller to coordinate
sampling of the 3 channels. I prefer duty cycle type digital sensors
like the ADXL202 personally, because I can time the signals very
precisely using the internal timers of a micro. For example with the
MSP430F2274 I would use a 16MHz crystal to get very precise timing.

Another thing to remember is to set the bandwidth of the sensor
correctly, but to sample it at least 6 times higher than the bandwidth,
then to apply some kind of filtering. Moving averages are not too bad,
FIR is better, but I would not do any of that in the micro. Instead I
would calibrate the sensor against gravity (not 100% accurate as gravity
varies more than most people think), store that dtaa in the PC and run
any filtering algorithms in the PC. here a high quality FIR algorithm
would be a piece of cake.

In the interests of education :@} I can offer you a few ADXL202 boards
with sensors fitted, and holes in the boards for wire connection to the
EZ430. these are the older, bulky digital duty cycle devices that make
soldering easier. You would connect the outputs of these sensors to the
Timer capture inputs of the 2274 micro (pins labelled TA0, TA1, TA2,
TB0, TB1, TB2). i would run these timers at 16Mhz by fitting a high
speed crystal to the board, OR using the crystal clock output of the CC2500.

these boards don't have DC blocking, but this would be easy enough to
add, and the micro has a 10 bit analog to digital converter.

As a start point I would use a pair of the sensors arranged to give the
centre of 3 axes as close as possible. The tilt angle will give you the
3D orientation of the device and from this you can derive roll pitch and
YAW. The composite Dc signal gives you tilt + motion, while the analog
signal gives motion only, so record the signals, compensate and
normalise the signals against the calibration data, then subtract motion
from tilt+motion to get tlt angle. this gives 3D orientation and roll
rate in 3D ie gyyroscopic action aboutt he cental axis. Motion allows
you to track psoition, although the error rate builds e.
Txponentiallyhere are ways to limit this, but not now. this will likely
suffice for your short term needs. Placing 3 3D sensors (or 3 pairs)
orthogonally will give relative rotation, and allow you to determine
rotation more accuratley.

Enough for now.

Al

>I have more questions, but these are the most pressing ones for now.
>
>Thanks in advance for every bit of help,
>Leo Natan
>
>------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )

Re: Need some help and advice... - lnatan25 - Sep 7 1:02:45 2008

Hey guys! Thanks all for the replies!

So I've bought an ADXL330 accelerometer breakout, and I need some hold
welding it to one of the eZ430-RF2500 MSP430 boards.

Here is the accelerometer I have:
http://www.sparkfun.com/commerce/product_info.php?products_id=692

I'm guessing I need to connect each axis into a different input on the
MSP430 and somehow power the accelerometer, but I have no idea how to do
that, so if anyone can give me some pointers, I'd be grateful!

Leo

------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )

Re: Re: Need some help and advice... - Henry Liu - Sep 7 2:45:09 2008

The sparkfun electronics board seems easy to use. Just put GND to GND, Vdd
to the the +3 V and hook each of the pins up to a pin on the
microcontroller.

Set the pins to ADC mode and read in your voltage.

Note that you will spend a lot of time learning how to program the simpli-ti
protocol to get it to do what you want.

I think it'd be easier to buy a basic stamp (www.parallax.com) and a Digi
zigbee wireless serial connection. They also have a very good support
forum.

The basic stamp is easier to learn than the C kickstart. You just send
serial data out to the zigbee wireless connection and it appears on the
other side.

You can do it all with the EZ430 but you're going to need to invest a lot of
time into it.

On Sat, Sep 6, 2008 at 10:02 PM, lnatan25 wrote:

> Hey guys! Thanks all for the replies!
>
> So I've bought an ADXL330 accelerometer breakout, and I need some hold
> welding it to one of the eZ430-RF2500 MSP430 boards.
>
> Here is the accelerometer I have:
> http://www.sparkfun.com/commerce/product_info.php?products_id=692
>
> I'm guessing I need to connect each axis into a different input on the
> MSP430 and somehow power the accelerometer, but I have no idea how to do
> that, so if anyone can give me some pointers, I'd be grateful!
>
> Leo
>
[Non-text portions of this message have been removed]
------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )

Re: Need some help and advice... - lnatan25 - Sep 7 22:52:48 2008

Hey, thanks for your answer!

Can I ask you to write a more specific guide on how to do all the things
you've said? I have to admit, being a software developer, I have no
experience in electronics... Perhaps some guide on the internet can help
as well...

Thanks in advance,
Leo

--- In m...@yahoogroups.com, "Henry Liu" wrote:
>
> The sparkfun electronics board seems easy to use. Just put GND to
GND, Vdd
> to the the +3 V and hook each of the pins up to a pin on the
> microcontroller.
>
> Set the pins to ADC mode and read in your voltage.
>
> Note that you will spend a lot of time learning how to program the
simpli-ti
> protocol to get it to do what you want.
>
> I think it'd be easier to buy a basic stamp (www.parallax.com) and a
Digi
> zigbee wireless serial connection. They also have a very good support
> forum.
>
> The basic stamp is easier to learn than the C kickstart. You just
send
> serial data out to the zigbee wireless connection and it appears on
the
> other side.
>
> You can do it all with the EZ430 but you're going to need to invest a
lot of
> time into it.

------------------------------------



(You need to be a member of msp430 -- send a blank email to msp430-subscribe@yahoogroups.com )