|
View:
New views
7 Messages
—
Rating Filter:
Alert me
|
|
|
Need some help and advice...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 |
|
|
RE: Need some help and advice...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 |
|
|
RE: Need some help and advice...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 |
|
|
Re: Need some help and advice...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. > > 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 > > > >------------------------------------ > >To unsubscribe from the msp430 group, send an email to: >msp430-unsubscribe@... > >Yahoo! Groups Links > > > > > > > |
|
|
Re: Need some help and advice...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 |
|
|
Re: Re: Need some help and advice...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 <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] |
|
|
Re: Need some help and advice...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 msp430@..., "Henry Liu" <henryjliu@...> 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. |
| Free Forum Powered by Nabble | Forum Help |