1
\$\begingroup\$

I am currently in a computer engineering class and I have been asked to design a product that can guide blind people. In my fictitious product I am going to implement a module to detect distances (a simple laser range finder that consumes 10 mA when Idle and 100 mA when it shoots a beam), a speech recognition module (which consumes 1 micro Ampere when idle), and also a GPS system. This means my device will be constantly processing input from the distance sensor and the GPS system. It will also output instructions like "turn left" based on the destination address the user entered via a voice command, and it will also tells the user observations like "There is an obstacle directly ahead".

I have been asked to estimate the processing power required by this device, and also the amount of volatile and non volatile memory required. It is all of course based on estimations, and the components used can range from 2014 to 3 years into the future (2017). Are there any estimation methods to define the processing power required? And more specifically, how is processing power quantified? In terms of non volatile memory I believe the only information I need to store are addresses the user inputs, and the commands the system can enter and the commands the system can output. Thank you for any advice!

\$\endgroup\$
4
  • 4
    \$\begingroup\$ You'll need 42.7 computrons, +-3%. \$\endgroup\$ Nov 14, 2014 at 20:51
  • \$\begingroup\$ Processing power requires so much more information it's not even funny. You need to know the processor architecture and architecture implementation, how low level the code is going to be, the specific algorithms in place, the efficiency of the implementation of those algorithms, what the polling interval is for the data...etc. Not to mention you also mention components from the future.... \$\endgroup\$ Nov 14, 2014 at 21:29
  • 1
    \$\begingroup\$ Processing "power" is not a meaningful engineering term, it's a marketing idea. (Computrons indeed...) In a real product, the requirements are constantly evolving (and just as ambitious as in your example)... so as an engineer I'd err on the side of chosing a slightly more "powerful" microcontroller, but would have to weigh that against actual power (V * I) and battery requirements. First prototype would be proof of concept, see whether it can be done at all. Then if it works, see if the system can be optimized to meet all cost/size/packaging/power/regulatory requirements. \$\endgroup\$
    – MarkU
    Nov 14, 2014 at 22:45
  • 1
    \$\begingroup\$ Seems like the basic question here is how to approach engineering design? The gadget is just an example. \$\endgroup\$
    – MarkU
    Nov 14, 2014 at 22:47

1 Answer 1

2
\$\begingroup\$

@ Jarrod Christman is absolutely correct. This, however, can be simplified quite a bit. I assume since this is a CSE class that you don't go in depth on the intricacies of electrical design and thus will refrain for a systems approach. Let us ignore all of the components of the system except the MCU, which will be doing your processing.

Go ahead and look for a nice MCU (I recommend an STM32). They have wonderful datasheets, and in there you will find the MIPS count which will be millions of IPS (instructions per second). Use this as a baseline for how many operations you can compute in a given time. Now with your CS background you should be able to find how many operations you need based on your algorithm (which is hopefully O(N)). Past this there are inefficiencies and specs for temperatures, noise based on the layout, and the list goes on.

If you really get into this you should look at what sensors you need, look at their sampling rate, and thus see how fast you can pull data from them. This will let you know a more realistic time for getting the processing data. I almost guarantee that the processor can compute faster than you can extricate sensor data. This becomes very important when you consider that a sensor for the blind should have real time processing. If you can't get data fast enough, blind guy WILL crash.

I believe these considerations will get you off to a good start. From there, look at any special considerations which all of these parts say to look into. You'll be led down a rabbit hole far to big, and then come back and ask more questions. Cheers.

\$\endgroup\$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.