Yr2 Summer Term Rover Project, files for the various modules that make up an autonomous rover, designed to be similar to the 3D printer Pronterface UI
Go to file
2022-06-27 17:13:47 +01:00
Command/main Added SPIFFS support so the html file does not need to be embedded in the main sketch. Makes it easier to update the webpage quickly as no longer need to recompile everything. Also added a favicon! 2021-05-31 23:57:23 +04:00
Control Minor fixes, outside of project 2021-06-17 10:56:44 +01:00
Drive Fix UI range 2021-06-15 12:57:28 +01:00
Energy Energy Data files 2021-06-15 17:50:01 +01:00
IMU Added I term to drive pid 2021-06-15 03:38:44 +01:00
Vision Add nonblock flag to UART FILE* 2021-06-10 00:19:35 +01:00
.gitattributes Initial commit 2021-05-18 11:41:35 +01:00
.gitignore Initial commit 2021-05-18 11:41:35 +01:00
README.md Update readme with project info 2022-06-27 17:13:47 +01:00

Electrical Engineering Y2: Mars Rover Project

The goal is to design + build an autonomous rover that could be used remotely without supervision. There is a processing using (ESP32) that can accept a queue of movement or other commands and return the current status data to the control interface when the rover has signal. The rover can also detect and avoid collisions while routing to reach the target location. A charging station, outside the scope of this project, would be used to recharge the rover as an alternative to the in-built solar charging. Base project files can be found here.

Submodules

Vision

Quartus project containing files to connect to the FPGA camera and stream video back to the Control module to be processed and passed to the Command Dashboard. Initial bound detection of colours and shapes is done on the FPGA fabric.

Control

PlatformIO project containing the Control logic to host the Command Dashboard, as well as forward commands to relevant modules and return information to the user dashboard.

Command

Dashboard for viewing the recorded map data and status of the Rover as well as sending new commands, hosted directly by the Control module ESP32 during testing.

Drive

Code for the drive module which accepts movement commands indicating distance or rotation, and returns the current status / position, calculated using existing commands if complete, or the estimated posiiton if incomplete. Uses a feedback loop to achieve the requested motion.

Energy

Code for the energy module which handles charging as well as battery health monitoring and maintenance.

IMU

An extra module used to provide more reliable direction data due to the drift of the direction recorded by the drive module.