130 likes | 140 Views
Develop a platform that connects Android applications to hardware devices for rapid development. Supports various hardware options and provides easy-to-use functions.
E N D
Android-based Platform for Data Acquisition and Control SURF-IT Symposium Luke Heidbrink Mentor: Mark Bachman August 26, 2011
Project Overview Develop a platform that connects Android applications to hardware devices:
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 system1. 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?