SparkFun Forums 

Where electronics enthusiasts find answers.

General project discussion / help
Did you make a robotic coffee pot which implements HTCPCP and decafs unauthorized users? Show it off here!
By WhizzWr
#163903
Hello, :)

I'm currently working on a Arduino-based capstone project, and I could use some advice regarding the which flavour of Arduino suits my project the best.

I'm quite new to Arduino world, however heaps of documentations & tutorials definitely helps a lot. Then again it's the first reason I choose Arduino instead of barebone MCUs :P

So my conditions are as the following:

I'm making a data glove (like KeyGlove but much more simple). Its main purpose is to manipulate VR object inside a program (Mainly 3D CAD program).
Generally it consists of:
  • 1. A glove where the sensors and MCU are going to be mounted
    2. IMU sensors (for hand orientation and position, I planned to use MPU 9150
    3. Two flex sensors (one for the thumb, one for the index finger)
Yeah, I'm going to use only those 2 fingers, and likely the flex resolution is rather crude (Something like: open, half-open and closed). So it's rather a simple HW implementation. At least I think so :smiley-fat:
I'm going to do the signal filtering either on the Arduino (preferred) or on the PCs.

Initially, I'm going with UNO instead of Mega because of space problem (I know there are a lot of Arduino Pro-sized boards, but I'm not confident enough working with them).
The thing is I don't want to make the glove so bulky. My first thought when using Uno, the free analog pins should be enough. (i.e 4 pins for 2x flex and 2 pins for the IMU)

The problem starts I when I decided to use Pansenti’s MPU9150 Library. I realised the flash memory size left would be so tiny (i.e MPU9150 lib code size is ~29k, Uno has 32k).

My project is still in very early stage, so a lot things are expected to be changed and added, with so little flash memory left. I can only do so much.

So the story starts here, I immediately looking for already-proven Mega as replacement, but I realised there is also newer Due with faster processor that I expect to perform better on the signal filtering.


They cost effectively the same as for now.

As far as I'm aware, the main differences between Mega and Due are:
  • 8 bits vs 32 bits, Due's clock is faster too
  • 5V vs 3.3 volts, I believe the MPU 9150 is a 3.3v devices too, But I'm already considering using logic shifter with Mega[/li]
  • A little differences in analog pins number
I'm thinking should I want to add something else (i.e Touch LCD for user control,) I imagine Due is the the best option.
That said Mega has a lot numbers of compatible sensors, software library support, shield, etc compared to Due.

My main concern here is the robustness and compatibility when:
  • Designing the HW (making circuits, addding shield)
  • Code development
  • Streaming and filtering the sensor readings
Should I go with Mega or Due?

Can anyone share they thought? I'd greatly appreciate it.

Thanks!
User avatar
By Ross Robotics
#163926
WhizzWr wrote:Hello, :)

I'm currently working on a Arduino-based capstone project, and I could use some advice regarding the which flavour of Arduino suits my project the best.

I'm quite new to Arduino world, however heaps of documentations & tutorials definitely helps a lot. Then again it's the first reason I choose Arduino instead of barebone MCUs :P

So my conditions are as the following:

I'm making a data glove (like KeyGlove but much more simple). Its main purpose is to manipulate VR object inside a program (Mainly 3D CAD program).
Generally it consists of:
  • 1. A glove where the sensors and MCU are going to be mounted
    2. IMU sensors (for hand orientation and position, I planned to use MPU 9150
    3. Two flex sensors (one for the thumb, one for the index finger)
Yeah, I'm going to use only those 2 fingers, and likely the flex resolution is rather crude (Something like: open, half-open and closed). So it's rather a simple HW implementation. At least I think so :smiley-fat:
You can get more resolution with very little effort in the software..
I'm going to do the signal filtering either on the Arduino (preferred) or on the PCs.

Initially, I'm going with UNO instead of Mega because of space problem (I know there are a lot of Arduino Pro-sized boards, but I'm not confident enough working with them).
The thing is I don't want to make the glove so bulky. My first thought when using Uno, the free analog pins should be enough. (i.e 4 pins for 2x flex and 2 pins for the IMU)

The problem starts I when I decided to use Pansenti’s MPU9150 Library. I realised the flash memory size left would be so tiny (i.e MPU9150 lib code size is ~29k, Uno has 32k).
You also have to realise that the bootloader takes up space as well, I think about 2k..
My project is still in very early stage, so a lot things are expected to be changed and added, with so little flash memory left. I can only do so much.

So the story starts here, I immediately looking for already-proven Mega as replacement, but I realised there is also newer Due with faster processor that I expect to perform better on the signal filtering.


They cost effectively the same as for now.

As far as I'm aware, the main differences between Mega and Due are:
  • 8 bits vs 32 bits, Due's clock is faster too
  • 5V vs 3.3 volts, I believe the MPU 9150 is a 3.3v devices too, But I'm already considering using logic shifter with Mega[/li]
  • A little differences in analog pins number
I'm thinking should I want to add something else (i.e Touch LCD for user control,) I imagine Due is the the best option.
That said Mega has a lot numbers of compatible sensors, software library support, shield, etc compared to Due.

My main concern here is the robustness and compatibility when:
  • Designing the HW (making circuits, addding shield)
  • Code development
  • Streaming and filtering the sensor readings
Should I go with Mega or Due?

Can anyone share they thought? I'd greatly appreciate it.

Thanks!
Well, I can tell that the DUE is still quite new with few libraries and documentation online. The Mega on the other hand has been widely explored and offers a range of libraries and tutorials. If you are as new as you say your are, I would recommend the Mega. The DUE is not like programming other Arduinos. It is much more complicated. But I agree that the DUE's speed can be an advantage.

Is the glove going to be wireless or wired?

If I were you, you need to look at what libraries and tutorials are out there for the DUE before you purchase it.
By Mee_n_Mac
#163943
Don't forget the Teensy 3.
https://www.sparkfun.com/products/8665

Frankly this is also question for the ARM forum, given the MCUs on the higher end boards.

It's my belief that a Mega has more memory, more I/O, more peripherals than an Uno but the same processing power/speed. Any ARM based board is leaps and bounds faster. And I expect you'll be doing mucho matrix rotations.
By WhizzWr
#164175
Thanks for all the input.

I decided to work with the UNO for now and see what can I squeeze into it before upgrading to Mega/Due (most likely mega based on codlink advice)
I'll also take a note about the load of matrix operation Mee n Mac pointed, thanks everyone!
By stevech
#164353
Consider going to a Teensy3 ARM based processor. Low cost, high capability, more flash and RAM, and oh, so nice- single address space unlike PIC and AVR.
see PJRC's web site or google Teensy3. Teensy2 is an 8 bit AVR.
Many of the Arduino libraries exist for the Teensy3, and if you wish, you can use the Aurduino compiler user interface (or one of the better ones).