Summary: | With the rising trend of low energy IC components, LED (Light Emitting Diode) will soon take the dominance in indoor lighting. GPS (Global Positioning System) has its limitation on reaching indoor environment. Solutions to provide indoor position system had been the interest of researchers and engineers. This project was intended to provided an indoor positioning solution using VLC (Visible Light Communication) so that people can pinpoint any target globally, either indoor or outdoor. Indoor using VLC technology, outdoor uses GPS technology.
In this report, the solution for indoor positioning system is to assign each LED a key string, which is associated with geo location information. With the geo location information retrieved from a database, a target could be resolved on the map. Location-based service can then be added. Outdoor positioning relies on the GPS module, WiFi or 3G module on the mobile device which is already installed on most of the mobile device.
To implement the solution, a transmitter circuit was designed to regulate the LED for data transmission. A receiver circuit was designed to read the information transmitted by transmitter. In this project, FTDI 311D development board was firstly used as bridge between receiver circuit and mobile device, however, due to stability and reliability, USBDroid board were used instead. PIC12F508 microcontroller was used in the transmitter circuit, but latterly changed to Arduino development board. An Android application was developed to handle the information received by the receiver. The android application consists of a SQLite database to store the keys, a Google map for target locating and a USB accessory manager to process the received information. Corresponds to two prototypes, there are two methods in Android to communication with different development board, FTDI 311D and USBDroid. Testing on the two prototypes suggested that prototype using USBDroid gave a more stable and reliable data transmission with less error. In addition, using Arduino for is easier to control. Prototype one produced too much messy code and not stable through out the test.
|