This article is about an interesting way to establish a connection between an arduino and an android device. This is a little hack that allows very low bandwidth communications in one direction for practically no cost.
The prerequisites for this project are:
1. An android phone or device which features a magnetometer (electric compass)
2. An Arduino or other microcontroller
3. About 1 meter of magnetic wire or enameled copper wire
4. A 120 ohm resistor
5. A diode
6. The Android ‘Tricorder’ application.
Tricorder is an open source application that turns your Android phone into a magnetometer using the phone’s inbuilt sensors to detect magnetic fields, gravity, display acceleration, an analysis of the local acoustic environment, etc. This application runs on Android 1.6 and above.
The magnetic wire is folded into a coil of approximately 30 turns per one meter. This is accomplished by wrapping the wire around a cylindrical core and then setting it free for an air core. The coil is connected to the 13th digital pin on the arduino via a 120 ohm resistor. This limits the current draw to 40mA. A processing sketch is loaded on the arduino which can be downloaded from the source.
Now, the coil is located over the device such that the magnetometer shows maximum amplitude in the square wave. On detecting this position we have a way to signal the android. A connection between the two devices is now established. The Android limits the sampling rate of its magnetometer to 40Hz.