Summary: Imagine if you could access all of the resources of a smartphone with a simple serial connection to your microcontroller. I need your help so that we can create an open-source app to make this possible.
Currently all sorts of electronics are getting cheaper and more powerful all the time and this is true for microcontroller-connected electronics as well. We can buy separate LCD screens, GPS, GSM, sensors, communications, data storage etc that can interface with microcontrollers. Unfortunately, the breakout boards, serial interfaces and lower volume/ specialist applications of these add on boards mean that they still cost a lot more than they could (in $ and time) and we need to learn a new interface and commands with each new add-on module. Just the breakout boards can cost more than the functional modules themselves and add bulk and complexity to a project.
I think that we should, instead, use cellphones and smartphones as integrated, compact, commodity priced, high power peripherals for our microcontrollers.
What I'd want is for a microcontroller to be able to use the resources that modern smartphones currently have. I'd want the micro to be able to receive sensor data (like GPS, accelerometers, compass, physical and on-screen buttons, digital camera, microphone, voice recognition, tilt sensor, proximity sensor, ambient light sensor etc), use the various communications capabilities built into phones (GSM voice & data, SMS, caller ID, wifi, bluetooth, NFC), able to use the computing and storage of the phone (eg flash memory, ram, floating point calculations, MP3/ video/ photo playback, signal/data processing) and the phones output devices (High resolution colour LCD screen, speaker, vibrating motor, white LED) and power supply (rechargeable battery, charging circuit). Taken all together, lower cost new smartphones are great value for money (less than $100 brand new, off contract here in New Zealand, probably even cheaper elsewhere). That's great value considering all of the things you get with it and as costs go down, and with older or damaged phones already in the second hand market, the costs can become even lower or free. A smartphone with a broken screen or other single fault can still be recycled to perform most other tasks.
Apps already exist that allow some of these functions. You can output NMEA GPS data via Bluetooth (several apps), use terminal apps to display things on the screen (eg Slick USB 2 Serial Terminal), access/see all sensor raw data on your screen (Data Monitor), use the headphone jack as a serial output (Audio Serial out), input data from micros and then graph, display or log them (BluePicaxe), output commands to your micro manually or using sensors (Arduino Commander). These efforts need to be united and expanded (or replicated and superseded). Basically I want interactive control over all parts of the phone via a simple serial (or similar) connection. It seems to me that all of this is possible - we need an app developed that can send and receive simple serial commands and data (via bluetooth or USB OTG) and access the phone's resources and act on the commands sent by the microcontroller.
I read the post on using App Inventor to control an Arduino (http://hackaday.com/2013/02/15/beginners-androidarduino-example-shows-the-power-of-app-inventor/) and was amazed at how accessible this was. I don't know how to program Android apps but I might be able to do this.
So I'd like to get some support here please - do you think this is a good idea? Can you help with development of this? Can you program android apps or components of them or gather up open source software components? How do I even start to develop a community-driven open source project like this (I've never done this before)?
Let's get this off the ground!
Benjamin Franzmayr
Palmerston North, New Zealand
