You are on page 1of 13

SURF-IT Symposium

Luke Heidbrink
Mentor: Mark Bachman
August 26, 2011
Project Overview
Develop a platform that connects Android applications
to hardware devices:
Applications
Applications
Motivation
Communicating with hardware is complicated and
time-consuming. Future projects can use this
platform for rapid development.
The Android operating system is becoming
ubiquitous; our platform targets a large user base
with many potential applications.
People who want to develop Android applications
with custom hardware don't always have the
technical skill to do so.
Motivation
As of May 2011, 38% of U.S. phones owned are
smartphones. Of smartphones, a plurality of 38%
run the Android operating system
1
.
1
In US, Smartphones Now Majority of New Cellphone Purchases The Nielsen Company,
http://blog.nielsen.com/nielsenwire/online_mobile/in-us-smartphones-now-majority-of-new-cellphone-purchases/
Motivation
Communicating with hardware requires specific,
thorough knowledge of programming and
electronics:
Goals
Create an Android service that handles the minutia
of communicating with the hardware
Create a development board with easy-to-use
input/output channels and a pre-programmed
microcontroller
Integrate our Android code with popular
development software so novice developers can
use high-level environments
Support many hardware options and provide a
variety of useful functions
Approach: General
Accessible
Novice users should be able to begin development
quickly
Advanced users should easily understand our set-up
and use it to their advantage
Robust
Our middleware should support the largest possible
number of ideas
Our middleware should not become outdated by
future releases of Android or our target development
environments
Approach: Android Service
The Android service handles the USB connection
with the development board.
The end user sees simple functions like read, write,
schedule, connect, and disconnect.
The service performs handshaking, processes
hardware malfunctions, stores received data in a
buffer, and more.
The service is written as a Android (Java) class,
which can be used as a library in several high-level
development environments.

Results
An Android class handles a connection to a
development board via USB.
Connects and reconnects automatically
Sends and receives digital or analog data
Transmission via USB is very fast
A program written in
the popular scripting-
language Processing
uses the class to make
an LED blink regularly.
Next Steps
Test and support additional development
environments, like 3D game engines
Test and support different communication protocols
beyond analog and digital
Add support for wireless communication, probably
via Bluetooth
Give the platform to novice developers, see what
they create, and improve our design based on their
feedback
Acknowledgements
and Questions
The Android Team:
Prof. Mark Bachman
Nizan Friedman
Jordan Linford
Sean Burke
SURF-IT Staff and Fellows
Calit2 Staff and MIDAS Members
Questions?

You might also like