Class Guider

Nikhil Kela, Kyle Kizirian, and Samantak Ray

Class Guider is a system in which the user can input a Georgia Tech class schedule and the system will guide the user to their upcoming class. The Class Guider uses a GPS and an IMU to draw a compass that points the user to their next class, tells the user how much time until their next class starts, tells the user the distance to their next class, and estimates the amount of time it will take the user to get to their next class. Class Guider is comprised of the Adafruit ESP8266 HUZZAH Wi-Fi chip, Adafruit Ultimate GPS breakout board, LSM9DS1 IMU, Sparkfun's 5-Way Tactile Navigation Switch, Sparkfun MicroSD Breakout Board, the uLCD-144-G2 Smart Color LCD, an external power supply, a 9V battery, and a 5V voltage regulator. Due to the limited number of serial ports on the mbed the system works in two stages, in the first stage the user inputs their schedule and in the second phase the system guides the user to their class.

Hardware

First Phase

Phase 1 Hardware

In the first phase the user inputs their class schedule over Wi-Fi. The components needed for the first phase are the Adafruit ESP8266 HUZZAH Wi-Fi chip, 5-Way Tactile Navigation Switch, Sparkfun MicroSD Breakout Board, uLCD-144-G2 Smart Color LCD, and the external power supply.

Second Phase

Phase 2 Hardware

In the second phase the system guides the user to their next class using the IMU and the GPS module. The only difference between the first and second phase is that the second phase swaps the Wi-Fi chip for the GPS module, the IMU is added, and the external power supply is swapped for a 9V battery and a 5V regulator.

Components

Adafruit ESP8266 HUZZAH Wi-Fi chip (First Phase Only)

Huzzah

mbed LPC1768HuzzahExternal 5V power supply
p27TX
p28RXI
gndgndgnd
V+5V

The Adafruit ESP8266 HUZZAH is used to implement the webform for the user to input their class schedule.

Adafruit Ultimate GPS breakout board (Second Phase Only)

GPS

mbed LPC1768GPS
p27TX
p28RX
VuVin
gndgnd

The Adafruit Ultimate GPS breakout board is used to get the current time and the user's latitude and longitude in order to point them to their next class.

LSM9DS1 IMU

IMU

mbed LPC1768GPS
p9SDA
p10SCL
VoutVDD
gndgnd

The IMU is used to obtain the user's heading in order to draw the compass on the screen. The IMU is used to determine which direction the user is facing so that the system can determine where to point to the next class relative to the user's heading.

Sparkfun's 5-Way Tactile Navigation Switch

Nav Switch

mbed LPC1768Nav Switch
p18R
p19C
p20L
gnd-
not connected+

The navigation switch is used to navigate to various screens on the LCD display. In the first phase, the center button is used to reset the user's class schedule. In the second phase, left and right are used to navigate between screens and the center button is used to ignore warnings about when it is time to walk to class.

Sparkfun MicroSD Breakout Board

SD Card

mbed LPC1768SD Card
p5DI
p6DO
p7SCK
p8CS
VoutVCC
gndgnd

The SD card stores the user's class schedule so that it is maintained when the mbed is powered off. In the first phase the user's schedule is written to the SD card when classes are added and in the second phase the SD card is read to obtain the user's schedule.

uLCD-144-G2 Smart Color LCD

LCD

mbed LPC1768uLCD
p13RX
p14TX
p15RES
Vu5V
gndgnd

The LCD is used to display the user's class schedule, a compass pointing to the user's next class, the distance to the user's next class, the estimated time to walk to the user's next class, and alerts when the user should start walking to class.

Software

There are two separate programs for the first and second phase of the system. Additionally, the team created a library named Course that handles all of the data associated with individual classes, such as their time and GPS coordinates. The first software phase is named course_input and the second phase is named class_finder. To add more classes edit the course library with the building names and locations you would like to add!

First Phase

Import programcourse_input

To input courses and save to SD card

Modify the ssid and pwd fields to your own network's information. After roughly thirty seconds the uLCD will display an IP address to navigate to to input your class schedule.

/media/uploads/kkizirian/webform.png

Webpage to input class schedule

Second Phase

Import programclass_finder

Guides the user to their classes

Course Library

Import libraryCourse

Class that holds Course information

Demo


Please log in to post comments.