GPS and Accelerometer Frisbee Tracker

The frisbee GPS tracker and accelerometer module is capable of tracking the movement of a frisbee using a combination of sensors including GPS accelerometers, gyrometers, and more. The physical design is composed of a GPS receiver, a combined accelerometer & gyrometer, an ESP32 microcontroller, a battery & charging circuit, as well as a peripheral switch and indicator LEDs. The device uses a standard USB interface for charging the battery on the device, and a separate USB interface for programming and communicating with the device through a serial interface. The device is fully functional without any exterior connections, and writes all recorded measurement data to a removable micro SD card for easy readability. Online tools make viewing the GPS data very simple, and a custom software program was designed to help parse the movement data from the combined accelerometer and gyrometer board for valuable insights such as rate of rotation and the device’s linear acceleration when thrown.

0 Lifts 

Artifacts

Name Description
Data Parser This code is designed to parse the output of the combined accelerometer and gyrometer module. It accepts a .txt file named motion.txt, and outputs a file called rpm.txt which it creates by parsing motion.txt, and scaling the measured values to get a unit of rotations per minute   Download
Arduino Code The ESP32 microprocessor is programmed in the Arduino IDE using the standard Arduino programming language. The purpose of this code is to control how and when data is communicated to the peripherals connected to the microprocessor. The code functions by first initializing all of the interfaces to the microcontroller, such as the SD card reader, the GPS, and the combined accelerometer & gyrometer. The code will also create new ‘gps#.txt’ and ‘movement#.txt’ files in the SD card numbering it sequentially in place of the ‘#’ shown in the file names above. Once all peripherals have been detected to function correctly, control signals are activated to turn on indicator LEDs. When connected to the Arduino IDE through the micro USB interface, the microprocessor will send serial data to the computer indicating the status of each of these peripherals using ASCII readable text. After the LED control signals and Serial communication data have finished sending, the code then alternates between recording data from the GPS module and the combined accelerometer & gyrometer module. Data is stored in the respective ‘.txt’ file. A watchdog was implemented to help overcome connectivity issues potentially caused by a jostled device, heavy overhead cover blocking GPS communication, and other potential issues which may arise with recreational use of the device. If the watchdog is triggered, the program will simply restart and continue recording data on a newly sequentially numbered ‘.txt’ file.   Download
KiCad PCB Layout Description of Hardware on PCB: The physical device is constructed of multiple commercially available sensor and control modules, consisting of a GPS receiver, a combined accelerometer & gyrometer, an ESP32 microcontroller, a battery & charging circuit, as well as a peripheral switch and indicator LEDs. The device uses a standard USB interface for charging the battery on the device, and a separate USB interface for programming and communicating with the device through a serial interface. The main board of the device is the ESP32 development board. This board offers many communication protocols (I2C, UART, Serial, SPI) and almost all of them are used. The code which controls the device’s operation is all run from the ESP32 development board. The dev board comes standard with a UART to Serial bridge which is used for both programming the ESP32, as well as communicating with a connected computer for debugging purposes. The GPS module being used is a “RY725AI receiver module with embedded GPS/Glonass antenna”, more commonly known as the Neo-7m by “u-blox”. This device offers a GPS and Glonass polling frequency of 10 Hz, which is relatively fast for a GPS module of its price point and size. A UART interface is used to receive data from the Neo-7m. The combined accelerometer & gyrometer is the MPU-6050 offers 6 axis of tracking including 3 axis of acceleration (x,y,z) as well as a 3 axis gyroscope. Three 16-bit analog to digital converters digitize the movement data, and the module communicates using the I2C communication standard to the ESP32 microcontroller. The battery used to power the device when not plugged into a computer is a standard 750 mAh LiPo battery purchased at a local electronics store. Any LiPo battery with a voltage output between 3.0 V and 3.7 V and a capacity greater than 100 mAh should meet the requirements of this design. A 5V usb interface LiPo battery charger was purchased at TekBots and was implemented into the design. The charger is functional and meets the requirements of this project. A Micro SD card slot was purchased to connect to a micro sd card. This module only provides a standard connection to the micro-sd card as well as conveniently space 1.27 mm through hole mounts for attaching the device’s PCB. A custom PCB was developed for this project using KiCad. The dimensions of this PCB are less than 2.5 x 3 inches.   Download
Frisbee Video Evidence All video files used in evidence recording for this design   Link
rmp output file Output file from Parser script. Comma delimited timestamp and rotations per minute   Download
Project Document Project Document includes evidence, block descriptions, implementation, additional artifacts, and more   Download
Feedback