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
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
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)
mbed LPC1768 | Huzzah | External 5V power supply |
---|---|---|
p27 | TX | |
p28 | RXI | |
gnd | gnd | gnd |
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)
mbed LPC1768 | GPS |
---|---|
p27 | TX |
p28 | RX |
Vu | Vin |
gnd | gnd |
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
mbed LPC1768 | GPS |
---|---|
p9 | SDA |
p10 | SCL |
Vout | VDD |
gnd | gnd |
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
mbed LPC1768 | Nav Switch |
---|---|
p18 | R |
p19 | C |
p20 | L |
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
mbed LPC1768 | SD Card |
---|---|
p5 | DI |
p6 | DO |
p7 | SCK |
p8 | CS |
Vout | VCC |
gnd | gnd |
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
mbed LPC1768 | uLCD |
---|---|
p13 | RX |
p14 | TX |
p15 | RES |
Vu | 5V |
gnd | gnd |
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.
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.