Skip to content

CSULB-EATS/GM_MM_Code_Example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 

Repository files navigation

🐭 Micromouse Software Implementation

Overview

This repository contains the software side of the CSULB-EATS Micromouse project.
It includes firmware, examples, and implementation guides for building and testing a HAL-based embedded control system using the NUCLEO-TOF400 (or similar STM32 board).

The project is written in C/C++ using the STM32 HAL library, structured for modularity and ease of testing.


🧩 Repository Structure

Micromouse-Firmware/
β”‚
β”œβ”€β”€ /Core/                  # STM32 HAL core files (system init, startup) This should be within the STM32CubeMX/IDE built-in
β”œβ”€β”€ /Drivers/               # STM32 HAL drivers (GPIO, TIM, ADC, UART, etc.) This one as well *
|
β”œβ”€β”€ /Examples/              # Example projects for hardware testing
β”‚   β”œβ”€β”€ IR_Test/
β”‚   β”œβ”€β”€ Motor_Test/
β”‚   β”œβ”€β”€ Encoder_Test/
β”‚   β”œβ”€β”€ IMU_Test/
β”‚   └── UART_Debug/
β”‚
└── README.md

βš™οΈ Setup & Requirements

Hardware

  • Board: STM32 Board Specific

Software

  • IDE: STM32CubeIDE (or VS Code)
  • Libraries: STM32 HAL, CMSIS
  • Debugging Tools: ST-Link V2, logic analyzer (optional)
  • Version Control: Git / GitHub

πŸš€ Getting Started

1. Open in STM32CubeIDE

File β†’ Import β†’ Existing Projects into Workspace

2. Build & Flash

Connect your board via USB and click Run β†’ Debug.
Verify your ST-Link configuration matches the NUCLEO-TOF400 target.


🧠 Key Features

  • Modular HAL Design: Each subsystem (motors, sensors, encoders) isolated in its own BSP layer
  • PID Control: Tunable motor control with adjustable gain parameters
  • Sensor Fusion: Combines IMU and encoder data for precise movement
  • Serial Debug: UART logging for live telemetry and diagnostics
  • Examples Provided: Quick validation for hardware bring-up and driver testing

🧭 Contributing

All modules follow the HAL-based modular architecture and should include:

  • Header (.h) and source (.c) files
  • Initialization, configuration, and runtime functions
  • Clear documentation in /Docs for setup and testing

Please follow existing naming conventions and formatting.


πŸ“„ License

This project is open-source for educational and research purposes.
Β© 2025 CSULB Embedded Application Technology Society (EATS)

About

All of the code & example for the Micromouse Software Team.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages