Please advise - urgent

Hello,

I need help! :-[

I am developing the worlds first wrist worn adaptive virtual reality controller, it moves into the hand when you grab a tool in-game. The timing is synced so the controller arrives in the hand at the moment of grabbing in-game (seperate optional sync function)

The goal of this is to bridge the gap between op hand capture and controllers.

Here is a proliminary design :

This is a part of a much larger venture called Experience (software platform).

http://experience.freeforums.org/

Ok so, here is the issue.

I am new to Arduino, and i need to know which board to get for the following parts

-8 buttons
-mouse wheel
-servo
-linear servo
-2pcs KY-040 Rotary Encoder Module for Arduino AVR PIC
-6 Axis MPU6050 Sensor Serial Gyroscope Acce​lerometer Sensor Module for Arduino
-MPU6050 6 Axis Gyroscope Acce​leromete Sensor Module for Arduino
-KY-003 Hall Magnetic Sensor Module for Arduino AVR PIC
-KY-023 PS2 Game Joystick Axis Sensor Module for Arduino AVR PIC
-Infrared IR Sensor Obstacle Avoidance Sensor Smart Car for Arduino
-Passive Buzzer Module 5V Buzzer Control Panel for Arduino AVR Raspberry Pi Mega
-Sound detection sensor module sound sensor Intelligent vehicle for Arduino
-TTP223B Digital Touch Sensor Capacitive Touch Switch Module for Arduino
-PIR infrared sensor Pyroelectric Motion Sensor Detector Sensor Module
-FSR402 0.5" Thin Film Force Sensor Pressure Sensor for Arduino

I might not use everything in this list, this is for a prototype.

Please advise on which board i need (also cant be large)

also, how powerfull should the servo be to move the controller, is this overkill? 53g/29kg/0.14sec

and does it require an aditional servo controller chip?

Thank you
Michael Littlesmith

YOu should count the IO lines needed by type

  • digital
  • analog
  • PWM
  • I2C
    etc.

Experience111:
Ok so, here is the issue.

I am new to Arduino, and i need to know which board to get for the following parts

It would help if you can explain what other programming and electronics experience you have.

It would also help if you can explain the role the Arduino will play in your project.
You have a very ambitious list of components.

…R

No experience what so ever. This is part of a much larger venture. If people like the idea i will crowdfund with a prototype and hire real electrician/engineer.

I want to use the arduino components to R&d a prototype without comissioning a custom board, to testout features and performance.

these chips dont cost much on ebay.

I want to use this controller to help fund Experience development. It also plays a huge part on the experience platform, you open a U.I with a big button on top of the wrist with a scroll wheel. That puts the controller in a mode, for example building mode, and then all the buttons are bound to building mode.

When you see a tool in-game and you grab it the controller moves into the hand aswell

Experience111:
No experience what so ever.

In that case buy an Arduino Uno and work through several of the examples that are included in the Arduino IDE and look at the online tutorials. Reading other Threads in the Forum is also a great way to gather knowledge.

Then, when you have got to the stage where you can write a simple program yourself buy one of the gadgets on your list and learn how to connect it to the Uno. Do the same with the other gadgets one at a time.

When you know how to make each of them work individually it will be time to think about incorporating them into a larger project.

...R

That makes sense :slight_smile:

thank you!

It might be to big, but if i need a few more millimeters i can still adapt the design.

so in your opinion the uno is the most versatile with the most chance of succesfully combining all these components?

I have trimmed the list to only what i must have in there

-Infrared IR Sensor Obstacle Avoidance Sensor Smart Car for Arduino
-KY-023 PS2 Game Joystick Axis Sensor Module for Arduino AVR PIC
-Atmega328P UNO R3 Development Board Compatible Arduino UNO R3
-Ultrasonic Module HC-SR04 Distance Measuring Transducer Sensor
-65pcs Wire Breadboard plug wire Bread board cable Bread board tie line
-Prototype Breadboard Socket Vero Electronic Deck 400 8.5*5.5cm
-L3G4200D Triple Axis Gyro Angular Velocity Sensor Module 4 Arduino MWC A097 FPV
-Passive Buzzer Module 5V Buzzer Control Panel for Arduino AVR Raspberry Pi Mega
-TTP223B Digital Touch Sensor Capacitive Touch Switch Module for Arduino
-6 Axis MPU6050 Sensor Serial Gyroscope Acce​lerometer Sensor Module for Arduino
-FSR402 0.5" Thin Film Force Sensor Pressure Sensor for Arduino
-Arduino Compatible 7 Multicolor Digital Push Button Switch Kit with LED Set New

Let`s hope it will all become 1 awesome controller!

buy the UNO because you can use it to quickly attach boards (called shields) that are already made.

but also buy at least 1 NANO. these are much smaller but have the heart of the Arduino.

the reason for multiple boards is that you can work our the bugs on one part and then put that aside and work on a separate part. then marry them. use one as a testing board the other as the growing and expanding board.

It would help if you can explain what other programming and electronics experience you have.

No experience what so ever.

Excuse me for asking but how then were you planning to write the software ? Were you expecting us to write it ? (because the experience needed to meet your requirements involves a learning curve that would be essentially a vertical line. Unless you have a programmer to interface the above you will still be working on this project next year.) Are you sure you're not biting off more than you can chew ?

BTW,
What does "urgent" mean (exactly) ? There can't be a deadline if you are doing this on your own.

Infrared IR Sensor Obstacle Avoidance Sensor Smart Car for Arduino
-KY-023 PS2 Game Joystick Axis Sensor Module for Arduino AVR PIC
-Atmega328P UNO R3 Development Board Compatible Arduino UNO R3
-Ultrasonic Module HC-SR04 Distance Measuring Transducer Sensor
-65pcs Wire Breadboard plug wire Bread board cable Bread board tie line
-Prototype Breadboard Socket Vero Electronic Deck 400 8.5*5.5cm
-L3G4200D Triple Axis Gyro Angular Velocity Sensor Module 4 Arduino MWC A097 FPV
-Passive Buzzer Module 5V Buzzer Control Panel for Arduino AVR Raspberry Pi Mega
-TTP223B Digital Touch Sensor Capacitive Touch Switch Module for Arduino
-6 Axis MPU6050 Sensor Serial Gyroscope Accelerometer Sensor Module for Arduino
-FSR402 0.5" Thin Film Force Sensor Pressure Sensor for Arduino
-Arduino Compatible 7 Multicolor Digital Push Button Switch Kit with LED Set New

I wonder if the UNO has enough memory to support all the code for the above.

i would not expect anybody to do that, that would be rude :slight_smile:

The urgent means i like to keep things moving since Experience is a massive venture. I need to have something to show before others want to join or help. People respond to visual stimuli better then text.

Its a bit of a chicken and egg situation, i need funds for a gameplay demo, and investors want to see a demo before investing those funds.

So i need to get out of that situation creativly.

about the memory.

do you think another board would be better? whats going on with that Due?, it looks fancy

raschemmel:
you will still be working on this project next year

But that's in 2 weeks' time, that's not bad....

I wonder if the UNO has enough memory to support all the code for the above.

about the memory. ...do you think another board would be better? whats going on with that Due?, it looks fancy

Size of the board (footprint) and memory (SRAM) do seem to go hand-in-hand, but really the larger boards are for the standard connectors which essentially means that footprint is a function of I/O, input-output pins. What many of us do is use a standard board to design on a sensor basis and then use a larger board to integrate.

There is another way. You can start with a larger board and then integrate on the same board and then move to a naked-chip or your own board design. That is the way I like to work. The reason is that if you go through 10 different configurations one-by-one on an UNO then when you move to the Mega or Due you have a darn time trying to integrate all the code. Now, everyone approaches code integration differently, but what I do is start with #1 (seems to be a reasonable place to start), write the code as a completely separate function or functions placing the global variables in the main sketch and the #1 code is a separate TAB in the Arduino GUI. So, a tab for each major component or protocol. I may have a tab named Display that contains the LCD and a tab named I2C_things which would have the barometer code, and a tab named SPI which would contain the SD_Card code, etc. You could also name the SD_Card stuff as SD_Card stuff. The idea here is to build like you are using Legos.

Then to test, you simply include the call to the desired function in the loop() section of the code and when you are ready for the next thingy, you comment the previous stuff out (or leave it and move your new code ahead of the previous function call.) If you avoid remarking, you can get a real pulse on the memory usage as well as the code size. So, upon completion of the 3rd sensor code, you are actually testing #1, #2, and #3. If you run into problems, you can then comment #1 and #2. You will develop your own style.

So, were I you (knowing that libraries do eat into available SRAM), I would start with a Bobduino or Goldilock:
Goldilocks

Bobduino

The reason that the 1284 IMO is a good board to start is that is has 20K of SRAM and lots of I/O on the 40 pin DIP chip.

After you get everything the way you want, you can stay with the Bobduino or Goldilocks layout or move to a smaller layout, such as:
Little Board 1284

Or, you can design your own board or simply leave this mess to the to-be-hired engineer.

The Due is interesting and powerful. The number of knowledgeable forum members is smaller than with the other Arduino community, but there are some very smart folks on that forum. It may be something your engineer may want to consider if the 1284 starts to get cramped.

Opinion by,

Ray

But that's in 2 weeks' time, that's not bad....

Yeah, ok. You got me there. (I think you know what I meant)

and then move to a naked-chip or your own board design.

Do you have any links on how to add program memory to an UNO based project ?

Updated/Edited: because I am an idiot and did not read "program memory"

No, I do not.
Even if it were possible by having some callable-routine in the bootloader (to permit overlaying some of the internal flash), how would we ever communicate this to the compiler?
About the best would be to build some simple interpreter in the internal flash and then communicate external (unlimited) instructions from external flash. (Like the Bitlash...)

raschemmel:
Do you have any links on how to add program memory to an UNO based project ?

Stupid question but does that apply to a standalne atmega328 chip ?

Do you have any links on how to add program memory to an UNO based project ?

Besides going to a chip with more flash & SRAM?

I'll take that as a "yes" thank u.

Experience111:
so in your opinion the uno is the most versatile with the most chance of succesfully combining all these components?

I am not saying anything about that.

I am saying that the Uno is the best Arduino to start learning with because most things work with an Uno (one at a time).

It is only when you have gained some experience that you will be able to answer the above question. It is very likely that your experience will lead you to reconsider your requirements. So don't make rigid plans at this early stage.

...R

mrburnette:
Or, you can design your own board or simply leave this mess to the to-be-hired engineer.

Just don't expect that this engineer will only have to do some polishing and packaging and it'll be done.

I've been that proverbial engineer for several products that the customer thought was almost ready for prime time, and all that was needed was to turn the breadboard into a circuit board, then clean up the code. It has ALWAYS turned out to be much more work than the customer expected. Especially when it was a prototype done by someone with little or no experience. What the customer thought was days or weeks worth of work usually turns into months or years.

Then to test, you simply include the call to the desired function in the loop() section of the code and when you are ready for the next thingy, you comment the previous stuff out (or leave it and move your new code ahead of the previous function call.) If you avoid remarking, you can get a real pulse on the memory usage as well as the code size. So, upon completion of the 3rd sensor code, you are actually testing #1, #2, and #3. If you run into problems, you can then comment #1 and #2. You will develop your own style.

This idea is fine for prototyping. But it's this mentality that has caused me the greatest consternation. I've seen it far too often, usually by the tinkerer or the recent college graduate on their first job. They usually come to me saying that it's basically working, but it needs some cleaning up: when doing one thing at a time it works, but as soon as a couple things happen at once it acts up. The cause has always been that the code is written where the rate of calls from the main loop is critical. With only one thing being called, it works. But when the loop calls each sub function in turn, it falls apart because the timing relationship between the calls changes as more things are done or more things are added. If the code needs to do multiple things at once without interactions messing up other functions, it needs to be designed from the beginning with that in mind, and it almost never results in a set of functions that are simply called sequentially from the main loop.

I've been down this road many times. It's helpful when the customer has a kind-of-sort-of working breadboard and sample code. That's because it serves as a useful requirement specification and working example of what is wanted. It helps with the first step of proper engineering: determining the requirements. As the engineering analysis and development proceeds, virtually none of the original hardware design or code makes it into the final product.

While the initial tinkering can be helpful, it's usually a throw-away effort. But don't let this discourage you from tinkering. Just don't expect the poor engineer you hire to take that, add a little spit and polish, and turn it into a real product in record time. It ain't gonna happen, I've been there and done that.