11.1 Living in the Near
The open hardware movement is rapidly gaining momentum, and more businesses and services are expanding or being created as a result. The established technologies like Arduino and Android are not standing still either. Both of these platforms had major version upgrades just as this book was finishing its production.
This section talks about what changes are in store with these near-term technology innovations and how these new releases will impact anyone choosing to use these as the technologies of choice when constructing the projects in this book.
Arduino 1.0
Just as the final pages in this book were written, the Arduino team announced the impending release of Arduino version 1.0. A number of substantial changes have been made in this version that will certainly create legacy code nightmares. This was a bold move by the Arduino team given the considerable amount of user-generated libraries, code samples, documentation, books, and videos made using earlier Arduino releases. As a consequence, this book is no different. Once Arduino 1.0 is widely adopted, the project and library dependencies will almost certainly need to be rewritten to support the changes. Most notable of these changes include the following:
-
Sketch file name extensions have been changed from
.pde
to.ino
. This was done to avoid confusion with Processing sketches that also use the same.pde
extension. -
The Arduino Ethernet library will natively support DNS and DHCP. This will make IP address assignments vastly easier.
-
The String class has been optimized so that it requires fewer onboard resources and can do more with less.
-
The Serial class contains more parsing functions to search for data and to quickly read multiple bytes into a buffer. This may also create timing issues when using legacy code since such asynchronous operations were not available or accounted for in most sketches preceding the Arduino 1.0 release.
-
Other bundled libraries like those for using the SD card reader have also been upgraded to make it easier to write sophisticated sketches without having to worry so much about the underlying code such sketches rely upon.
-
Cosmetic changes have been made to the IDE. New icons, color schemes, and indicators like compilation progress bars have been added to modernize the IDE and make it easier to locate and interact with the user interface elements.
-
Several other key library class and function names (such as the Wired library) have changed along with their return types and implementations. Library authors will be busy in the months ahead as they port their contributions to support these lower-level modifications.
For more details about these changes, read the entry on this topic posted on the Arduino blog.[111] Fortunately, the Arduino IDE is self-contained and portable enough to install several different versions on your computer. You will be able to continue to use the previous releases of the IDE when sketch dependencies have not yet been upgraded to support the latest improvements. As the new version becomes more widely adopted over the next year or so, more of the popular user libraries will be converted and supported. As such, future editions of this book intend to provide code compatible with the new and the old IDE releases.
Android@Home
At the 2011 Google IO conference, the Android Open Accessory API and Development Kit (ADK) was officially unveiled. The intent of this initiative was to provide Android API-level access to low-cost microcontrollers, sensors, and actuators. Conference attendees were given custom versions of the Arduino Mega board populated with basic sensors that could be polled from an Android device like the Google Nexus phone.[112] Several configuration scenarios were posited at the conference using this technology combination, one of which was dubbed Android@Home. Examples that controlled wireless lighting, entertainment systems, and exercise equipment were demonstrated, and more third-party solutions are expected to be announced at Google IO 2012.
The ADK is really what drives Google@Home, and at its heart it is a hardware specification that attempts to standardize communication across devices. The Android OS can then react to these messages accordingly. The expectation is that as hardware becomes more commoditized, the Android OS will be embedded into more devices beyond just phones. Google hopes that this will revolutionize the home automation market by having enough electronic appliance manufacturers adopt the specification and allow these devices to talk to one another.
Unfortunately, having seen this scenario play out with other home automation standardization attempts, I don’t think there has been enough momentum behind the Google@Home initiative outside of Google that shows much interest…yet. Many are taking a wait-and-see approach before investing much attention. But even if Android@Home doesn’t have white-hot adoption, its impact on the home automation space will no doubt spur Google’s competitors, namely Apple and Microsoft, to take a closer look at this market opportunity. The most likely initial point of entry for these companies will be the television.
The Apple Home Button
With the introduction of Apple’s Siri in the iPhone 4S, Apple has constructed a meta-interface on top of information searching, one that does not rely entirely on a web browser to view query results. For search providers like Google and Microsoft, this is a game changer, since those company’s revenue models are derived by interleaving relevant advertising with search results. In certain scenarios, Siri’s vocal output filters these text-based results to form a conversation with the user rather than a database dump, obviating the need for a slurry of ads to be displayed. While it’s technically possible that Apple may someday incorporate advertising in Siri’s conversation, the near-term Siri experience is expected to be ad free. If you had the choice between typing in a query and receiving a blob of links and ads in return versus asking your TV for information and having it respond with a clear, direct answer, which technology would you use?
Apple, like Google and Microsoft, also designed a computer that connects to a television and allows streaming music and video content to be played back on the TV. Hopeful rumors abound that Apple will release a next generation version of their Apple TV device that could incorporate Siri technology for voice remote control. It isn’t hard to imagine asking your TV to display the local weather forecast, play album tracks by your favorite artists, perform speech-to-text dictation email responses and, yes, even reach out to other devices in the home (predominantly iPhones and iPads) that synchronize via iCloud and participate in the conversation. Google and Microsoft won’t be sitting still either, and it’s possible that their voice recognition and huge data sets of aggregated information will beat Apple to the spoken command automation party.
It should also come as no surprise if engineers at Apple have been looking for ways to more tightly couple their platform into the home. With Google’s Android@Home intentions and Microsoft’s Kinect experiments, Apple’s home consumer cards have yet to be shown. But when they are, Apple’s approach will undoubtedly receive significant attention and developer support.