# yssickjgd/robowalker_train architecture

> Architecture diagram of the GitHub repository yssickjgd/robowalker_train, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/yssickjgd/robowalker_train
- Repository: https://github.com/yssickjgd/robowalker_train

## Overview

This repository is an embedded-controls teaching resource, not a single application: its principal learner workflow moves from MCU peripherals toward motor and robot-control topics, combining theory with practical work. The supplied tree exposes a GPIO CubeMX project and CMSIS material, while the README documents broader tutorial branches whose source paths are not present here; those branches are shown as documented capabilities, not inferred implementations. The GPIO runtime nodes reflect filenames only; source excerpts do not establish their call wiring.

Main entry points: [`01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/main.c`](https://github.com/yssickjgd/robowalker_train/blob/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/main.c) (GPIO Example App), [`01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio`](https://github.com/yssickjgd/robowalker_train/tree/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio) (GPIO Output)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_intro["Electrical Foundations"]
  node_electrical_intro["Electrical Intro"]
  node_dev_tools["Development Tools"]
end

subgraph group_embedded["MCU Practice"]
  node_gpio_lesson["GPIO Output"]
  node_exti_lesson["External Interrupts"]
  node_tim_lesson["Timer Interrupts"]
  node_uart_lesson["UART Communication"]
  node_pwm_adc["PWM and ADC"]
end

subgraph group_robot["Robot Control"]
  node_motor_control["Motor Control"]
  node_chassis["Chassis Control"]
  node_gimbal_booster["Gimbal and Booster"]
  node_referee["Referee System"]
end

subgraph group_advanced["Advanced Topics"]
  node_advanced_control["Observers and Control"]
  node_imu_navigation["IMU and Navigation"]
end

subgraph group_runtime["Sample Runtime"]
  node_gpio_app["GPIO Example App<br/>[main.c]"]
  node_gpio_setup["GPIO Setup<br/>[gpio.c]"]
end

node_learner(("Learner"))
node_mcu_pins{{"MCU GPIO Pins"}}

node_learner -->|"starts with"| node_electrical_intro
node_learner -->|"learns tools"| node_dev_tools
node_learner -->|"practices"| node_gpio_lesson
node_learner -->|"studies"| node_exti_lesson
node_learner -->|"studies"| node_tim_lesson
node_learner -->|"studies"| node_uart_lesson
node_learner -->|"studies"| node_pwm_adc
node_learner -->|"progresses to"| node_motor_control
node_learner -->|"studies"| node_chassis
node_learner -->|"studies"| node_gimbal_booster
node_learner -->|"studies"| node_referee
node_learner -->|"continues to"| node_advanced_control
node_learner -->|"studies"| node_imu_navigation
node_gpio_app -->|"controls"| node_mcu_pins

click node_gpio_lesson "https://github.com/yssickjgd/robowalker_train/tree/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio"
click node_gpio_app "https://github.com/yssickjgd/robowalker_train/blob/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/main.c"
click node_gpio_setup "https://github.com/yssickjgd/robowalker_train/blob/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/gpio.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_electrical_intro,node_dev_tools toneBlue
class node_gpio_lesson,node_exti_lesson,node_tim_lesson,node_uart_lesson,node_pwm_adc toneAmber
class node_motor_control,node_chassis,node_gimbal_booster,node_referee toneMint
class node_advanced_control,node_imu_navigation toneRose
class node_gpio_app,node_gpio_setup,node_learner,node_mcu_pins toneIndigo
```

## Components

### Electrical Foundations

- **Electrical Intro**
- **Development Tools**

### MCU Practice

- [GPIO Output](https://github.com/yssickjgd/robowalker_train/tree/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio): `01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio`
- **External Interrupts**
- **Timer Interrupts**
- **UART Communication**
- **PWM and ADC**

### Robot Control

- **Motor Control**
- **Chassis Control**
- **Gimbal and Booster**
- **Referee System**

### Advanced Topics

- **Observers and Control**
- **IMU and Navigation**

### Sample Runtime

- [GPIO Example App](https://github.com/yssickjgd/robowalker_train/blob/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/main.c): `01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/main.c`
- [GPIO Setup](https://github.com/yssickjgd/robowalker_train/blob/main/01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/gpio.c): `01_electrical/02_stm32cubemx_basic/02_test_gpio/test_gpio/Core/Src/gpio.c`

### Other components

- **Learner**
- **MCU GPIO Pins**

## Connections

- Learner → Electrical Intro: starts with
- Learner → Development Tools: learns tools
- Learner → GPIO Output: practices
- Learner → External Interrupts: studies
- Learner → Timer Interrupts: studies
- Learner → UART Communication: studies
- Learner → PWM and ADC: studies
- Learner → Motor Control: progresses to
- Learner → Chassis Control: studies
- Learner → Gimbal and Booster: studies
- Learner → Referee System: studies
- Learner → Observers and Control: continues to
- Learner → IMU and Navigation: studies
- GPIO Example App → MCU GPIO Pins: controls
