Skip to content
Yeongeun Kwon edited this page May 28, 2020 · 4 revisions

Welcome to this wiki, the main source of documentation for Naviglass Android application.

Why the App was made

  • A Raspberry Pi was attached to the eye-glasses and programmed to display virtual reality on the user's view wearing Naviglass glasses. Pi did not have access to internet or GPS that were required to gather information it needed (e.g. user location, destination, route) to create the virtual reality. A phone was able to satisfy this gap because of its 4G Network and GPS. The app ran on an Android phone, retrieved information the Pi needed from GPS and 4G network, and sent them to Pi via Bluetooth.
  • To provide user interface and user-friendliness the Pi and the glasses could not. App provided a platform for the user to search for and select a destination, and a visual map that indicated the current location and route the user might find helpful while wearing the glasses. The Map was displayed within the app by Google Maps SDK for Android.

Communicating with Raspberry Pi

To determine the real-life view around user, the app periodically sent azimuth and current location coordinates of the phone to the Pi. The azimuth was used because the project assumed that the user was facing the same way the phone was.

When user finalized the destination on app,

  • the route from origin to destination was drawn on the map in red line, and
  • app retrieved directions (e.g. turn right), coordinates of all turning points within the route, and images of map containing the whole route, from Google Maps API. Using these information, on the view wearing glasses, the Pi displayed directions on a corner, and signals of when and where to change directions as user traveled.

App converted all information into bytes before transmitting it to Pi. Each type of data had to be sent separately so that the Pi would be aware of which data (e.g. directions, map image) was represented by the bytes it received. So, app split the data into chunks of 900 bytes, and sent one chunk at a time.

Extra Features

These features were written to the app for user-friendliness:

  • You could swipe down list of nearby Bluetooth devices to refresh the list, which would be useful if the Pi was not discovered by the phone in the first time.
  • You could select the destination in two ways, by clicking on the visual map, or searching its address on map toolbar.
  • app frequently checked if GPS/location and Bluetooth remained enabled on the phone and if it had permissions to access them, to avoid confusion if the app was to stop working because GPS or Bluetooth disconnected.
Clone this wiki locally