IOIO Board for Android Control
Microcontroller can control device.Now Android Mobilephone can control also with IOIO Board.
The IOIO (yo-yo") is a board specially designed to work with your Android device (OS versions 1.5 and greater). The board provides robust connectivity to an Android device via a USB connection and is fully controllable from within an Android application using a simple and intuitive Java API - no embedded programming or external programmer will ever be needed!
So far, the devices proven to work are: G1, Nexus One, Nexus S, Motorola Droid X. If you get the IOIO working on your Android device, please let us know in the comments below, thanks!
The IOIO board contains a single MCU that acts as a USB host and interprets commands from an Android app. In addition, the IOIO can interact with peripheral devices in the same way as most MCUs. Digital Input/Output, PWM, Analog Input, I2C, SPI, and UART control can all be used with the IOIO. Code to control these interfaces is written in the same way as you write an Android app with the help of a simple to use app-level library. In other words, you can combine the awesome computing power, Internet/Bluetooth connectivity, touch screen, and a variety of sensors from your Android device with the ability to easily add peripheral devices to interact with the outside world. Also, using the IOIO does not require any hardware or software modifications to your Android device, thus preserving the warranty as well as making the functionality available to non-hackers.
If you are new to the IOIO or developing apps with Android, please use these resources to help get started:
Also featured is a Programmer function, which lets you upgrade the bootloader of your IOIO using another IOIO as a programmer! See the IOIO Manager wiki for more information.
Specification Summary
- Microcontroller PIC24FJ128DA106-I/PT (with USB OTG , USB Host Support)
- 48 total I/O pins - all of which can function as digital inputs and outputs.
- Up to 16 analog inputs (10-bit).
- Up to 9 PWM outputs.
- Up to 4 UART channels.
- Up to 3 SPI channels.
- Up to 3 TWI (I²C-compatible) channels.
- On-board switch-mode regulator providing up to 1.5A of 5V supply. Can charge the Android device as well as power a couple of small motors. (Power Supply via USB cable from PC or Device)
- Bootloader on the board pulls firmware off phone, enabling OTA firmware upgrades and application-specific firmware.
- Pulse-width measurement, capacitance sensing and more (will be pushed with first OTA firmware upgrade).
Update: The IOIO now has beta firmware available which supports Google's Open Accessory (ADK) protocol. The code base can be found here.
Documents:
Introduction
This is the beginners guide for the IOIO for Android board and is
intended for users that have never written an Android app. The goal of
this tutorial is to show how to write a simple app that communicates
with the IOIO board.
The programming language used to write an Android app is Java. If you
are not familiar with Java, this tutorial will only go over writing a
simple Java app using the IOIO library. This tutorial will
not
cover how to write Java code nor will it cover how to use the rich
features within your Android device, like GPS, accelerometer, touch
screen, etc. Once you get to the point where you want to use the vast
array of features on your Android, we suggest first looking at the
technical resource
section on developer.android.com. If you still can't find the examples
you are looking for, simply browsing the web will result in a ton of
information and examples that show you how to communicate with all of
the great pieces of hardware within your Andriod device.
In general, the holy grail for developing Android apps is
developer.android.com.
There, you will find most of the information on Android development.
For documentation/downloads specific to the IOIO and for more advanced
discussions about the IOIO, see these links:
Gathering Your Hardware
Here are the pieces of hardware you will need to complete this tutorial:
-
Android enabled device using OS 1.5 or greater.
-
IOIO for Android board
-
USB cable that is compatible with your Android device
-
5-15V power supply with at least 1A of current. You will need to power
the IOIO through the VIN and GND pins or there is an optional JST connector on the back of the board. It will need to be soldered into place and can be used with this adapter and wall wart power supply. More information at the end of the tutorial found here.
Installing the Development Environment
The Eclipse IDE (integrated development environment), the Android SDK
(software development kit), and the JDK (Java development kit) are the
primary pieces of software that you will need to install. The
page developer.android.com has written thorough instructions on what
exactly you will need to download. Please read the instructions
carefully, they are found in the link below:
ATTENTION: You must use
JDK v6 (not v5 or v7) for Android development.
If you have any problems, see the
Troubleshooting section from developer.android.com.
When you reach Step 4 in the Android SDK tutorial, you will at least
need to install the SDK components relevant to the Android device you
will be working with. For example, if you have an Android phone, goto
Settings > About Phone and scroll down to Android Version. You must install the SDK platform corresponding to the Android version of your device.
For Android Development
http://androidcontrol.blogspot.com/2011/10/android-development.html
Beginning Android Application Development Ebook