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.

Programming Your Home
cover.xhtml
f_0000.html
f_0001.html
f_0002.html
f_0003.html
f_0004.html
f_0005.html
f_0006.html
f_0007.html
f_0008.html
f_0009.html
f_0010.html
f_0011.html
f_0012.html
f_0013.html
f_0014.html
f_0015.html
f_0016.html
f_0017.html
f_0018.html
f_0019.html
f_0020.html
f_0021.html
f_0022.html
f_0023.html
f_0024.html
f_0025.html
f_0026.html
f_0027.html
f_0028.html
f_0029.html
f_0030.html
f_0031.html
f_0032.html
f_0033.html
f_0034.html
f_0035.html
f_0036.html
f_0037.html
f_0038.html
f_0039.html
f_0040.html
f_0041.html
f_0042.html
f_0043.html
f_0044.html
f_0045.html
f_0046.html
f_0047.html
f_0048.html
f_0049.html
f_0050.html
f_0051.html
f_0052.html
f_0053.html
f_0054.html
f_0055.html
f_0056.html
f_0057.html
f_0058.html
f_0059.html
f_0060.html
f_0061.html
f_0062.html
f_0063.html
f_0064.html
f_0065.html
f_0066.html
f_0067.html
f_0068.html
f_0069.html
f_0070.html
f_0071.html
f_0072.html
f_0073.html
f_0074.html
f_0075.html
f_0076.html
f_0077.html
f_0078.html
f_0079.html
f_0080.html
f_0081.html
f_0082.html
f_0083.html
f_0084.html
f_0085.html
f_0086.html
f_0087.html
f_0088.html
f_0089.html
f_0090.html
f_0091.html
f_0092.html
f_0093.html
f_0094.html
f_0095.html
f_0096.html
f_0097.html
f_0098.html
f_0099.html
f_0100.html
f_0101.html
f_0102.html
f_0103.html
f_0104.html
f_0105.html
f_0106.html
f_0107.html
f_0108.html
f_0109.html
f_0110.html
f_0111.html
f_0112.html
f_0113.html
f_0114.html
f_0115.html
f_0116.html
f_0117.html
f_0118.html
f_0119.html
f_0120.html
f_0121.html
f_0122.html
f_0123.html
f_0124.html
f_0125.html