In: Electrical Engineering
Make a posting on the M2 Discussion board that summarizes your opinion on the embedded systems overhaul
5 Embedded Systems That Will Revolutionize The Future:
1. Embedded Vison And Speech
Maxfield demonstrated the potential of embedded vision and speech by painting a future scenario revolving around a smart toaster. Imagine waking up from bed and walking into the kitchen, ready to enjoy a delicious breakfast. You decide to try something new and toast some rye bread to start your morning.
As you approach the toaster, the smart device asks what kind of bread you’re holding, since it’s the first time it has encountered that specific type. After you answer, it then asks how you’d like it prepared (lightly toasted, a bit dark, etc.). The next time you take out the rye bread, whether it be the next day or next month, the toaster won’t have to ask any of its previous questions. The device learns, remembers, and evolves.
2. Augmented Reality Enhanced With Artificial Intelligence (AI)
One of the current trends involving embedded systems is objection detection and recognition in real time.
Maxfield noted how a future of people walking around with enhanced goggles, like the Oculus Rift, is very near. With forward-facing cameras, humans will see the world around them with extra thought bubbles of information. Imagine walking around the office, and next to each person is relevant data, notes, and stats.
A future with people walking around with AR headgear sounds farfetched. However, if one person is wearing the device, it looks silly, says Maxfield, but if 50 people around you are donning the goggles, then you start to wonder.
3. Gaming Tech Gets VR, Haptics Upgrade
In order to illustrate just how immersive gaming systems may be in the future, Maxfield described potential upgrades for the popular board game Clue. As someone who’s always up for a good mystery to solve, Clue already ranks high on the fun scale in my book, but Maxfield’s vision for the future does up the ante on the classic game.
His prediction involves a headset device that transports you to a photo-realistic environment. Instead of moving pieces around a flat board, you’re actually standing inside the renowned mansion. Characters will walk about, with the capability of dynamic interactions. Not only that, but users will also be able to interact with objects, looking everywhere for the case-breaking clue. Haptics may even play a part in the overall experience, adding realistic, tactile sensations.
As users attempt to solve the mystery at hand, they can approach characters and engage in realistic conversations. The characters will have the ability to lie and forget, which will require players to use real detective work to uncover the truth.
4. Auto-Focus Smart Glasses
Earlier this year, researchers from the University of Utah created “smart glasses” that can automatically focus on what the user is seeing, whether it’s right in front of their face or far off into the distance.
Created with liquid-based lenses, each lens membrane is connected to three mechanical actuators responsible for moving the membranes back and forth, which change the lens’ curvature. As the curvature changes, the focal length between the lens and the eye changes as well.
Before someone tries on a pair for the first time, all they have to do is input their eyeglasses prescription into a companion smartphone app. The device then automatically calibrates to the proper level via Bluetooth.
5. MyScript Memo
For those who suffer from handwriting legibility, MyScript Memo offers a helpful solution. The device uses a proprietary algorithm that’ll take your handwritten words on an iPad or iPhone screen and convert it into neatly typed digital text.
Even those who have, shall we say, unique handwriting abilities have found accurate script recognition while using the free app. Maxfield explains a friend’s comical experience, noting how the device “can recognize things that he can’t even read himself."
As the session described, "Things are beginning to move very, very quickly in the embedded space," and each advancement paves an interesting road to the times ahead.
5 embedded system characteristics to keep an eye on:
1 - System Timing:
Ask any developer the minimum, maximum, and average execution times for a system interrupt or other system function and ninety percent of the time the answer will be a blank stare. When it comes to understanding the real-time performance for an embedded system, many developers just cross their fingers and hope for the best. Microcontrollers have gotten very fast and powerful, but they are by no means a general computing device where timing can be completely ignored. Developers need to understand how their system will respond if, say, multiple interrupts fire simultaneously or if (my favorite test case to try which fails nearly 100% on the first attempt) a user mashes all the buttons at once.
Fortunately, modern microcontrollers have available numerous tools that allow developers to understand their system timings and responses. For example, ARM microcontrollers have trace capabilities that allow a developer to sample the PC counter at regular intervals and reconstruct the systems timing and execution path. Utilizing these tools can give developers insights into their system and provide them with real data as to how their system is performing rather than a hope and a prayer that the system is executing code the way a developer thinks it is.
2 - Execution Order:
Understanding instruction execution order is just as important to developers as knowing their system timing. It is critical to know where the system is branching or jumping and when and in what order various functions or interrupts are executing. Systems have become so complex that, while we can think we understand what is happening, we need to pull trace data and visually see the code execution. This often reveals a completely different story from what we expected.
I highly recommend that developers investigate and become familiar with their microcontroller's trace tools. These modern day tools provide visually engaging and insightful diagrams that just weren’t possible a few years ago. I’ve caught so many bugs using the insights they offer that before I write a single line of code I set up my trace and bug trapping tools.
3 - Code Size:
Every developer monitors code size right? I would argue that they don’t, really. Most developers, if asked how much code space a GPIO or SPI driver will take on their system, don’t even have a place to go and look for the answer! All they know is that the last application they worked on had GPIO and SPI and the final application used approximately 47 kB of flash space. We are notorious for not tracking the code usage details for our systems.
Now in our defense, code size can vary drastically depending on the compiler used and even the optimization level and flags used. (If you are interested in the potential differences between open source and commercial compilers I recommend checking out Open Source versus Commercial Compilers.) In addition, in most cases today, monitoring code size has become less important because flash is pretty inexpensive and vendors have made it very easy to switch between different parts within the same microcontroller family based on code size. However, it can still be extremely useful to track the details of items like drivers in order to aid future project planning and part selection.
4 - RAM usage:
Rather than code memory, RAM is becoming the crucial factor in embedded software development. It isn’t uncommon for microcontrollers to offer flash space exceeding 100kB but at the same time only offer 16 kB of RAM. This means RAM space is still at a premium. Throw an RTOS in the mix and the situation could quickly become even worse. In an RTOS based system, it is not uncommon for developers to allocate ungodly amounts of RAM to thread stack space because it is difficult to estimate just the right size. So, as developers create and implement their software, they need to be monitoring where their RAM space is going.
5 - Energy Consumption:
Battery operated devices undoubtedly have energy consumption as a key requirement for the system design. But systems that have access to the grid often neglect energy since it isn’t a key requirement. Given rising energy costs and limitations in natural resources, though, developers should still continue to monitor their design's power needs to understand what their energy footprint is and how they can minimize the energy they use. With such monitoring, battery operated devices will obviously gain increased operational life between swapping out batteries or recharging the device. Devices that are directly connected to the grid, though, can benefit consumers and end users by saving costs for electricity. Yes, the savings is minute, but consider a few million devices and suddenly we have a lot of energy no longer being wasted.