From 0a459dd35315eff9f8d32937811fc39f45d8d89a Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Tue, 7 Apr 2026 10:25:44 +0300 Subject: [PATCH 1/9] Added index.md file. Signed-off-by: Andrei Rusanescu --- .../project/2026/andrei.rusanescu/index.md | 77 +++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md new file mode 100644 index 00000000000..02d0c8740b3 --- /dev/null +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -0,0 +1,77 @@ +# CargoBot +Autonomous cargo robot with Bluetooth telemetry + +:::info + +**Author**: Andrei Rusanescu \ +**GitHub Project Link**: link_to_github + +::: + + + +## Description + +CargoBot is an autonomous 4 wheeled robot that carries cargo and navigates surfaces with imperfections (bumps, ramps, carpet). It uses an STM32 Nucleo-U545RE-Q microcontroller programmed in Rust with Embassy-rs and sends real-time telemetry data to a PC dashboard via Bluetooth, while simultaneously displaying information on an onboard OLED. + +The central idea of the project is measuring and visualizing the impact of cargo load on motor performance: when the robot carries something heavy, the PID controller automatically increases the PWM duty cycle to maintain a constant speed. This compensation is observable live on the robot's OLED, on the PC dashboard, and through 3 LEDs (green/yellow/red) that visually indicate the effort level. + +## Motivation +I am particularly interested in cars and networking. This project combines multiple peripherals studied in the lab (PWM, GPIO, I2C, UART, Bluetooth) into a functional system. It clearly demonstrates a measurable technical behavior, which is the difference in motor effort with and without cargo. The wireless telemetry component aligns with my personal interests in networking and systems. The software runs on Rust with Embassy-rs. + +## Architecture + +Add here the schematics with the architecture of your project. Make sure to include: + - what are the main components (architecture components, not hardware components) + - how they connect with each other + +## Log + + + +### Week 5 - 11 May + +### Week 12 - 18 May + +### Week 19 - 25 May + +## Hardware + +Detail in a few words the hardware used. + +### Schematics + +Place your KiCAD or similar schematics here in SVG format. + +### Bill of Materials + + + +| Device | Usage | Price | +|--------|--------|-------| +| [Raspberry Pi Pico W](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html) | The microcontroller | [35 RON](https://www.optimusdigital.ro/en/raspberry-pi-boards/12394-raspberry-pi-pico-w.html) | + + +## Software + +| Library | Description | Usage | +|---------|-------------|-------| +| [st7789](https://github.com/almindor/st7789) | Display driver for ST7789 | Used for the display for the Pico Explorer Base | +| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display | + +## Links + + + +1. [link](https://example.com) +2. [link](https://example3.com) +... + From 471a95a53bfe3b47695d772ad8927400ee2215ba Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Mon, 27 Apr 2026 20:15:49 +0300 Subject: [PATCH 2/9] Added documentation Signed-off-by: Andrei Rusanescu --- .../project/2026/andrei.rusanescu/index.md | 198 +++++++++++++++--- 1 file changed, 166 insertions(+), 32 deletions(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md index 02d0c8740b3..5bc9330a139 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -1,10 +1,10 @@ # CargoBot -Autonomous cargo robot with Bluetooth telemetry +Remote-controlled cargo robot with Bluetooth telemetry :::info **Author**: Andrei Rusanescu \ -**GitHub Project Link**: link_to_github +**GitHub Project Link**: [link_to_github](https://github.com/UPB-PMRust-Students/acs-project-2026-andreirusanescu) ::: @@ -12,66 +12,200 @@ Autonomous cargo robot with Bluetooth telemetry ## Description -CargoBot is an autonomous 4 wheeled robot that carries cargo and navigates surfaces with imperfections (bumps, ramps, carpet). It uses an STM32 Nucleo-U545RE-Q microcontroller programmed in Rust with Embassy-rs and sends real-time telemetry data to a PC dashboard via Bluetooth, while simultaneously displaying information on an onboard OLED. +CargoBot is a remote-controlled four-wheeled robot that carries cargo and navigates surfaces with imperfections (bumps, ramps, carpet). It is controlled from a laptop keyboard via Bluetooth and uses an STM32 Nucleo-U545RE-Q microcontroller programmed in Rust with Embassy-rs. It sends real-time telemetry data to a PC dashboard via Bluetooth, while simultaneously displaying information on an onboard OLED. The central idea of the project is measuring and visualizing the impact of cargo load on motor performance: when the robot carries something heavy, the PID controller automatically increases the PWM duty cycle to maintain a constant speed. This compensation is observable live on the robot's OLED, on the PC dashboard, and through 3 LEDs (green/yellow/red) that visually indicate the effort level. ## Motivation -I am particularly interested in cars and networking. This project combines multiple peripherals studied in the lab (PWM, GPIO, I2C, UART, Bluetooth) into a functional system. It clearly demonstrates a measurable technical behavior, which is the difference in motor effort with and without cargo. The wireless telemetry component aligns with my personal interests in networking and systems. The software runs on Rust with Embassy-rs. -## Architecture +I am particularly interested in cars and networking. This project combines multiple peripherals studied in the lab (PWM, GPIO, I2C, UART, Bluetooth) into a functional system. It clearly demonstrates a measurable technical behavior - the difference in motor effort with and without cargo. The wireless telemetry component aligns with my personal interests in networking and systems. The software runs on Rust with Embassy-rs, a modern async embedded framework with cooperative concurrency. -Add here the schematics with the architecture of your project. Make sure to include: - - what are the main components (architecture components, not hardware components) - - how they connect with each other +## Architecture + +``` + ┌─────────────────────────┐ + │ Laptop │ + │ Dashboard + Keyboard │ + └────────────┬────────────┘ + │ Bluetooth SPP + ┌────────────▼────────────┐ + │ HC-06 │ + │ Bluetooth Module │ + └────────────┬────────────┘ + │ UART (TX/RX) + ┌───────────────────────┐ ┌───────────▼─────────────────────────────────┐ + │ 18650 2S Battery │ │ │ + │ 7.4V / 6800mAh │ │ STM32 Nucleo-U545RE-Q │ + └───────────┬───────────┘ │ ARM Cortex-M33 @ 160MHz │ + │ 7.4V │ │ + ┌───────────▼────────────┐ 5V reg │ ┌────────────────────────────────────────┐ │ + │ L298N ├───────► │ Embassy-rs Async Tasks: │ │ + │ Dual H-Bridge │ │ │ sensor_task (20 Hz) │ │ + └──────┬──────┬──────────┘ │ │ motor_task (50 Hz) │ │ + │ │◄──────────────────┤ │ navigation_task (10 Hz) │ │ + PWM │ │ PWM + GPIO │ │ telemetry_task (5 Hz) │ │ + (L/R) │ │ (IN1–IN4, speed) │ │ display_task (4 Hz) │ │ + │ │ │ └────────────────────────────────────────┘ │ + ┌──────┴──────┴───────┐ │ │ + │ DC Motors │ │ ┌────────────────────────────────────────┐ │ + │ Left ×2│ Right ×2 │ │ │ Interfaces: │ │ + │ 3–6V, skid steer. │ │ │ PWM -> L298N (motor speed 0–100%) │ │ + └─────────────────────┘ │ │ Passive Buzzer (horn/melody) │ │ + │ │ I2C -> MPU-6500 (0x68) │ │ + │ │ SSD1306 OLED (0x3C) │ │ + │ │ UART -> HC-06 (cmds in, JSON out) │ │ + │ │ GPIO -> HC-SR04 ×2 (trigger+echo) │ │ + │ │ LM393 ×2 (interrupt pulses) │ │ + │ │ L298N IN1–IN4 (direction) │ │ + │ │ LEDs R/Y/G (effort level) │ │ + │ └────────────────────────────────────────┘ │ + │ │ + └────┬──────────────┬──────────────┬──────────┘ + │ │ │ + I2C (shared) GPIO GPIO interrupt + │ (trig/echo) (pulses) + ┌──────┴──────┐ │ │ + ┌──▼───────┐ │ ┌────▼──────┐ ┌───▼───────────┐ + │ MPU-6500 │ │ │ HC-SR04 │ │ LM393 │ + │ IMU │ │ │ Front │ │ Encoders │ + │ (0x68) │ │ ├───────────┤ │ Left + Right │ + │accel+gyro│ │ │ HC-SR04 │ └───────────────┘ + └──────────┘ │ │ Rear │ + ┌────────────────▼─┐└───────────┘ + │ SSD1306 │ + │ OLED 128×64 │ ┌───────────────────────────┐ + │ (0x3C) │ │ LEDs R/Y/G (GPIO) │ + └──────────────────┘ │ Green PWM < 35% │ + │ Yellow PWM 35–65% │ + │ Red PWM > 65% │ + ├───────────────────────────┤ + │ Passive Buzzer (PWM) │ + │ Horn + audio feedback │ + └───────────────────────────┘ +``` + +The system is organized around five main subsystems: + +**1. MCU (STM32 Nucleo-U545RE-Q)** +The central unit running all Embassy-rs async tasks. Coordinates all subsystems and shared state protected by Mutex. + +**2. Motor Subsystem** +The L298N dual H-bridge receives PWM signals from the STM32 and drives 4 DC motors (2 per channel, left/right side in parallel - skid steering). The two IR LM393 optical sensors read encoder disc pulses on GPIO interrupts and compute RPM per side. + +**3. Sensing Subsystem** +- MPU-6500 (I2C, address 0x68): reads accelerometer + gyroscope data, combined via complementary filter to get a stable tilt angle +- 2x HC-SR04 (GPIO trigger/echo): front and rear obstacle detection +- 2x IR LM393 encoders: RPM feedback for PID + +**4. Communication Subsystem** +HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends movement commands (forward/backward/left/right + speed), robot sends back JSON telemetry at 5Hz. + +**5. Display & Indicators Subsystem** +- OLED SSD1306 128x64 (I2C, address 0x3C, shared bus with IMU): displays RPM, tilt angle, obstacle distance, state, load level +- 3x LEDs (green/yellow/red) on GPIO: visual indicator of motor effort based on PWM duty cycle +- Passive buzzer on PWM: horn and audio feedback + +**Embassy-rs Async Tasks:** + +| Task | Frequency | Responsibility | +|------|-----------|----------------| +| sensor_task | 20 Hz | Read IMU (I2C) + ultrasonic sensors | +| motor_task | 50 Hz | Apply PWM to L298N, read encoders | +| navigation_task | 10 Hz | State machine: FORWARD / COMPENSATE / AVOID / STOP | +| telemetry_task | 5 Hz | Serialize JSON and send over UART to HC-06 | +| display_task | 4 Hz | Update OLED + LED indicators | + +**Navigation State Machine:** + +| State | Entry Condition | Action | +|-------|----------------|--------| +| FORWARD | No obstacle, pitch < 5° | Move at target speed, PID active | +| COMPENSATE | Pitch > 5° (ramp) | Increase PWM proportional to tilt angle | +| AVOID | Obstacle < 30cm | Stop, rotate, resume forward | +| STOP | Manual command / error | Motors off, telemetry continues | + +**Peripheral Usage:** + +| Peripheral | Component | Usage | +|-----------|-----------|-------| +| PWM | STM32 -> L298N | Motor speed control (0–100% duty cycle) | +| PWM | STM32 -> Buzzer | Horn and melody generation | +| GPIO Output | STM32 -> HC-SR04 trigger | 10μs pulse to trigger ultrasonic | +| GPIO Input Interrupt | HC-SR04 echo -> STM32 | Measure echo duration -> distance | +| GPIO Input Interrupt | LM393 encoders -> STM32 | Count pulses -> compute RPM | +| GPIO Output | STM32 -> LEDs R/Y/G | Load indicator: green (<35%), yellow (35–65%), red (>65%) | +| GPIO Output | STM32 -> L298N IN1-IN4 | Motor direction control | +| I2C (shared bus) | STM32 -> MPU-6500 (0x68) | Accelerometer + gyroscope for tilt angle | +| I2C (shared bus) | STM32 -> SSD1306 (0x3C) | OLED telemetry display | +| UART | STM32 -> HC-06 | Bidirectional Bluetooth: commands in, telemetry out | ## Log -### Week 5 - 11 May +### Week 6 - 12 Apr +Ordered all of the components needed. -### Week 12 - 18 May +### Week 13 - 19 Apr +Assembled the mechanical parts (wheels, motors, car platform). -### Week 19 - 25 May +### Week 20 - 26 Apr +Working on the Schematic in KiCad. -## Hardware +### Week 27 Apr - 3 May -Detail in a few words the hardware used. +### Week 4 - 10 May -### Schematics +### Week 11 - 17 May -Place your KiCAD or similar schematics here in SVG format. +## Hardware -### Bill of Materials +The robot is built on a 4WD chassis with 4 DC motors (3–6V) driven through an L298N dual H-bridge using skid steering (left/right side in parallel). Speed and direction are controlled via PWM from the STM32. Two IR optical sensors read encoder discs on the motors to compute RPM. An MPU-6500 IMU over I2C measures tilt angle using a complementary filter. Two HC-SR04 ultrasonic sensors handle obstacle detection front and rear. An SSD1306 OLED displays live telemetry. An HC-06 Bluetooth module provides bidirectional communication with the laptop. Three LEDs and a passive buzzer provide visual and audio feedback. - +### Bill of Materials | Device | Usage | Price | |--------|--------|-------| -| [Raspberry Pi Pico W](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html) | The microcontroller | [35 RON](https://www.optimusdigital.ro/en/raspberry-pi-boards/12394-raspberry-pi-pico-w.html) | - +| [STM32 Nucleo-U545RE-Q](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html) | Main microcontroller (Cortex-M33), runs all Embassy-rs tasks | 0 RON (provided by university) | +| [4x DC motors (3-6V), encoder discs, wheels](https://www.bitmi.ro/set-motor-dc-3v-6v-cu-reductor-si-roata-11227.html) | Wheels and motors for the CargoBot | [40 RON](https://www.bitmi.ro/set-motor-dc-3v-6v-cu-reductor-si-roata-11227.html) +| [2x IR Speed Sensor LM393](https://sigmanortec.ro/Senzor-viteza-IR-LM393-p125686023) x2 | Optical encoder reading, counts pulses from encoder discs to compute RPM | [16.22 RON](https://sigmanortec.ro/Senzor-viteza-IR-LM393-p125686023) | +| [L298N Dual H-Bridge](https://sigmanortec.ro/Punte-H-Dubla-L298N-p125423236) | Motor driver, controls speed (PWM) and direction of both motor sides | [8.96 RON](https://sigmanortec.ro/Punte-H-Dubla-L298N-p125423236) | +| [MPU-6500 Accelerometer & Gyroscope](https://sigmanortec.ro/Modul-Accelerometru-Giroscop-I2C-MPU-6500-6-axe-p136248782) | 6-axis IMU, measures tilt angle via complementary filter (I2C, 0x68) | [9.92 RON](https://sigmanortec.ro/Modul-Accelerometru-Giroscop-I2C-MPU-6500-6-axe-p136248782) | +| [HC-06 Bluetooth Module](https://sigmanortec.ro/Modul-bluetooth-HC-06-p125923853) | Bidirectional wireless UART, receives keyboard commands, sends telemetry JSON | [25.13 RON](https://sigmanortec.ro/Modul-bluetooth-HC-06-p125923853) | +| [OLED SSD1306 0.96" I2C](https://sigmanortec.ro/display-oled-096-i2c-iic-alb) | On-board display, shows RPM, tilt, obstacle distance, state, load level (I2C, 0x3C) | [14.01 RON](https://sigmanortec.ro/display-oled-096-i2c-iic-alb) | +| [2x HC-SR04 Ultrasonic Sensor](https://sigmanortec.ro/Senzor-ultrasunete-HC-SR04-p125423514) x2 | Obstacle detection, front and rear, GPIO trigger/echo | [18.80 RON](https://sigmanortec.ro/Senzor-ultrasunete-HC-SR04-p125423514) | +| [18650 Battery Holder 2S](https://sigmanortec.ro/suport-acumulatori-18650-2s) | Holds 2x 18650 cells in series, 7.4V output for L298N and STM32 | [5.74 RON](https://sigmanortec.ro/suport-acumulatori-18650-2s) | +| Passive Buzzer | Horn and audio feedback via PWM, from Plusivo kit | 0 RON (owned) | +| 3x LED (red/yellow/green) + resistors | Visual motor effort indicator | 0 RON (owned) | +| Breadboard + jumper wires | For connections | 0 RON (owned) | ## Software | Library | Description | Usage | |---------|-------------|-------| -| [st7789](https://github.com/almindor/st7789) | Display driver for ST7789 | Used for the display for the Pico Explorer Base | -| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display | +| [embassy-stm32](https://github.com/embassy-rs/embassy) | Async HAL for STM32U5 | PWM, I2C, UART, GPIO, Timer drivers | +| [embassy-executor](https://github.com/embassy-rs/embassy) | Async task executor | Spawning and running concurrent tasks | +| [embassy-time](https://github.com/embassy-rs/embassy) | Async timers and delays | Task scheduling at fixed frequencies | +| [embassy-sync](https://github.com/embassy-rs/embassy) | Synchronization primitives | Mutex and Channel for inter-task shared state | +| [ssd1306](https://github.com/rust-embedded-community/ssd1306) | OLED SSD1306 driver | I2C display rendering | +| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Drawing text and shapes on OLED | +| [heapless](https://github.com/rust-embedded/heapless) | No-alloc data structures | String/Vec without heap allocation | +| [defmt](https://github.com/knurling-rs/defmt) + defmt-rtt | Logging framework | Debug output via probe | +| [libm](https://github.com/rust-lang/libm) | Math functions (no_std) | atan2, sqrt for complementary filter | +| Python pyserial | Serial communication | PC-side script to receive telemetry and send commands over Bluetooth | +| Python matplotlib / Flask | Data visualization | Live dashboard with RPM, PWM, tilt, distance graphs | ## Links - - -1. [link](https://example.com) -2. [link](https://example3.com) -... - +1. [Embassy-rs documentation](https://embassy.dev) +2. [STM32 Nucleo-U545RE-Q user manual](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html) +3. [MPU-6500 datasheet](https://invensense.tdk.com/products/motion-tracking/6-axis/mpu-6500/) +4. [SSD1306 OLED driver crate](https://github.com/rust-embedded-community/ssd1306) +5. [L298N datasheet](https://www.st.com/resource/en/datasheet/l298.pdf) +6. [HC-SR04 ultrasonic sensor guide](https://cdn.sparkfun.com/datasheets/Sensors/Proximity/HCSR04.pdf) From 6aee107b1331c28e96c647158626c74233670cf6 Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Tue, 28 Apr 2026 10:49:33 +0300 Subject: [PATCH 3/9] Added architectural diagram Signed-off-by: Andrei Rusanescu --- .../project/2026/andrei.rusanescu/index.md | 80 +++---------------- .../2026/andrei.rusanescu/schema_bloc.svg | 3 + 2 files changed, 13 insertions(+), 70 deletions(-) create mode 100755 website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md index 5bc9330a139..1f058a2b9ba 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -12,7 +12,7 @@ Remote-controlled cargo robot with Bluetooth telemetry ## Description -CargoBot is a remote-controlled four-wheeled robot that carries cargo and navigates surfaces with imperfections (bumps, ramps, carpet). It is controlled from a laptop keyboard via Bluetooth and uses an STM32 Nucleo-U545RE-Q microcontroller programmed in Rust with Embassy-rs. It sends real-time telemetry data to a PC dashboard via Bluetooth, while simultaneously displaying information on an onboard OLED. +CargoBot is a remote-controlled four-wheeled robot that carries cargo and navigates surfaces with imperfections. It is controlled from a laptop keyboard via Bluetooth and uses an STM32 Nucleo-U545RE-Q microcontroller programmed in Rust with Embassy-rs. It sends real-time telemetry data to a PC dashboard via Bluetooth, while simultaneously displaying information on an onboard OLED. The central idea of the project is measuring and visualizing the impact of cargo load on motor performance: when the robot carries something heavy, the PID controller automatically increases the PWM duty cycle to maintain a constant speed. This compensation is observable live on the robot's OLED, on the PC dashboard, and through 3 LEDs (green/yellow/red) that visually indicate the effort level. @@ -22,67 +22,7 @@ I am particularly interested in cars and networking. This project combines multi ## Architecture -``` - ┌─────────────────────────┐ - │ Laptop │ - │ Dashboard + Keyboard │ - └────────────┬────────────┘ - │ Bluetooth SPP - ┌────────────▼────────────┐ - │ HC-06 │ - │ Bluetooth Module │ - └────────────┬────────────┘ - │ UART (TX/RX) - ┌───────────────────────┐ ┌───────────▼─────────────────────────────────┐ - │ 18650 2S Battery │ │ │ - │ 7.4V / 6800mAh │ │ STM32 Nucleo-U545RE-Q │ - └───────────┬───────────┘ │ ARM Cortex-M33 @ 160MHz │ - │ 7.4V │ │ - ┌───────────▼────────────┐ 5V reg │ ┌────────────────────────────────────────┐ │ - │ L298N ├───────► │ Embassy-rs Async Tasks: │ │ - │ Dual H-Bridge │ │ │ sensor_task (20 Hz) │ │ - └──────┬──────┬──────────┘ │ │ motor_task (50 Hz) │ │ - │ │◄──────────────────┤ │ navigation_task (10 Hz) │ │ - PWM │ │ PWM + GPIO │ │ telemetry_task (5 Hz) │ │ - (L/R) │ │ (IN1–IN4, speed) │ │ display_task (4 Hz) │ │ - │ │ │ └────────────────────────────────────────┘ │ - ┌──────┴──────┴───────┐ │ │ - │ DC Motors │ │ ┌────────────────────────────────────────┐ │ - │ Left ×2│ Right ×2 │ │ │ Interfaces: │ │ - │ 3–6V, skid steer. │ │ │ PWM -> L298N (motor speed 0–100%) │ │ - └─────────────────────┘ │ │ Passive Buzzer (horn/melody) │ │ - │ │ I2C -> MPU-6500 (0x68) │ │ - │ │ SSD1306 OLED (0x3C) │ │ - │ │ UART -> HC-06 (cmds in, JSON out) │ │ - │ │ GPIO -> HC-SR04 ×2 (trigger+echo) │ │ - │ │ LM393 ×2 (interrupt pulses) │ │ - │ │ L298N IN1–IN4 (direction) │ │ - │ │ LEDs R/Y/G (effort level) │ │ - │ └────────────────────────────────────────┘ │ - │ │ - └────┬──────────────┬──────────────┬──────────┘ - │ │ │ - I2C (shared) GPIO GPIO interrupt - │ (trig/echo) (pulses) - ┌──────┴──────┐ │ │ - ┌──▼───────┐ │ ┌────▼──────┐ ┌───▼───────────┐ - │ MPU-6500 │ │ │ HC-SR04 │ │ LM393 │ - │ IMU │ │ │ Front │ │ Encoders │ - │ (0x68) │ │ ├───────────┤ │ Left + Right │ - │accel+gyro│ │ │ HC-SR04 │ └───────────────┘ - └──────────┘ │ │ Rear │ - ┌────────────────▼─┐└───────────┘ - │ SSD1306 │ - │ OLED 128×64 │ ┌───────────────────────────┐ - │ (0x3C) │ │ LEDs R/Y/G (GPIO) │ - └──────────────────┘ │ Green PWM < 35% │ - │ Yellow PWM 35–65% │ - │ Red PWM > 65% │ - ├───────────────────────────┤ - │ Passive Buzzer (PWM) │ - │ Horn + audio feedback │ - └───────────────────────────┘ -``` +![Architecture](schema_bloc.svg) The system is organized around five main subsystems: @@ -113,14 +53,14 @@ HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends | motor_task | 50 Hz | Apply PWM to L298N, read encoders | | navigation_task | 10 Hz | State machine: FORWARD / COMPENSATE / AVOID / STOP | | telemetry_task | 5 Hz | Serialize JSON and send over UART to HC-06 | -| display_task | 4 Hz | Update OLED + LED indicators | +| display_task | 4 Hz | Update OLED | **Navigation State Machine:** | State | Entry Condition | Action | |-------|----------------|--------| -| FORWARD | No obstacle, pitch < 5° | Move at target speed, PID active | -| COMPENSATE | Pitch > 5° (ramp) | Increase PWM proportional to tilt angle | +| FORWARD | No obstacle | Move at target speed, PID active | +| COMPENSATE | Pitch > 5 deg (ramp) | Increase PWM proportional to tilt angle | | AVOID | Obstacle < 30cm | Stop, rotate, resume forward | | STOP | Manual command / error | Motors off, telemetry continues | @@ -129,11 +69,11 @@ HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends | Peripheral | Component | Usage | |-----------|-----------|-------| | PWM | STM32 -> L298N | Motor speed control (0–100% duty cycle) | -| PWM | STM32 -> Buzzer | Horn and melody generation | -| GPIO Output | STM32 -> HC-SR04 trigger | 10μs pulse to trigger ultrasonic | +| PWM | STM32 -> Buzzer | Horn | +| GPIO Output | STM32 -> HC-SR04 trigger | 10 micro-s pulse to trigger ultrasonic | | GPIO Input Interrupt | HC-SR04 echo -> STM32 | Measure echo duration -> distance | | GPIO Input Interrupt | LM393 encoders -> STM32 | Count pulses -> compute RPM | -| GPIO Output | STM32 -> LEDs R/Y/G | Load indicator: green (<35%), yellow (35–65%), red (>65%) | +| GPIO Output | STM32 -> LEDs R/Y/G | Load indicator: green (<35%), yellow (35–65%), red (>65%) | | GPIO Output | STM32 -> L298N IN1-IN4 | Motor direction control | | I2C (shared bus) | STM32 -> MPU-6500 (0x68) | Accelerometer + gyroscope for tilt angle | | I2C (shared bus) | STM32 -> SSD1306 (0x3C) | OLED telemetry display | @@ -160,7 +100,7 @@ Working on the Schematic in KiCad. ## Hardware -The robot is built on a 4WD chassis with 4 DC motors (3–6V) driven through an L298N dual H-bridge using skid steering (left/right side in parallel). Speed and direction are controlled via PWM from the STM32. Two IR optical sensors read encoder discs on the motors to compute RPM. An MPU-6500 IMU over I2C measures tilt angle using a complementary filter. Two HC-SR04 ultrasonic sensors handle obstacle detection front and rear. An SSD1306 OLED displays live telemetry. An HC-06 Bluetooth module provides bidirectional communication with the laptop. Three LEDs and a passive buzzer provide visual and audio feedback. +The robot is built on a 4WD chassis with 4 DC motors (3–6V) driven through an L298N dual H-bridge using skid steering (left/right side in parallel). Speed and direction are controlled via PWM from the STM32. Two IR optical sensors read encoder discs on the motors to compute RPM. An MPU-6500 IMU over I2C measures tilt angle using a complementary filter. Two HC-SR04 ultrasonic sensors handle obstacle detection front and rear. An SSD1306 OLED displays live telemetry. An HC-06 Bluetooth module provides bidirectional communication with the laptop. ### Schematics @@ -181,7 +121,7 @@ Place your KiCAD schematics here in SVG format. | [OLED SSD1306 0.96" I2C](https://sigmanortec.ro/display-oled-096-i2c-iic-alb) | On-board display, shows RPM, tilt, obstacle distance, state, load level (I2C, 0x3C) | [14.01 RON](https://sigmanortec.ro/display-oled-096-i2c-iic-alb) | | [2x HC-SR04 Ultrasonic Sensor](https://sigmanortec.ro/Senzor-ultrasunete-HC-SR04-p125423514) x2 | Obstacle detection, front and rear, GPIO trigger/echo | [18.80 RON](https://sigmanortec.ro/Senzor-ultrasunete-HC-SR04-p125423514) | | [18650 Battery Holder 2S](https://sigmanortec.ro/suport-acumulatori-18650-2s) | Holds 2x 18650 cells in series, 7.4V output for L298N and STM32 | [5.74 RON](https://sigmanortec.ro/suport-acumulatori-18650-2s) | -| Passive Buzzer | Horn and audio feedback via PWM, from Plusivo kit | 0 RON (owned) | +| Passive Buzzer | Horn and audio feedback via PWM | 0 RON (owned) | | 3x LED (red/yellow/green) + resistors | Visual motor effort indicator | 0 RON (owned) | | Breadboard + jumper wires | For connections | 0 RON (owned) | diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg new file mode 100755 index 00000000000..8a289b2fbb5 --- /dev/null +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg @@ -0,0 +1,3 @@ + + +
Baterie 18650 (2S  7.4V)
Driver motoare L298N
Alimentare
7.4V
Putere
Motoare
Motoare DC stanga/dreapta
Motoare DC stanga/dreapta
Putere
Motoare
STM32U545 RE-Q
PWM (viteza) + GPIO (directie)
Label
Alimentare 5V
UART TX/RX
Modul Bluetooth HC-06
Alimentare
5V
GPIO
TRIG/ECHO
Senzori ultrasonici HC-SR04 (x2)
Alim 5V
Encoder LM393 (x2)
GPIO EXTI/PULSE
Alim 3.3V
IMU
MPU-6500
I2C (SDA/SCL)
Display OLED SSD1306
I2C (SDA/SCL)
3.3V
3.3V
\ No newline at end of file From 76b8a0caccc3671dfda2c77424ab815e91b48f3d Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Sun, 3 May 2026 08:47:50 +0300 Subject: [PATCH 4/9] Fixed: removed embedded base64 images from SVG --- .../version-acs_cc/project/2026/andrei.rusanescu/index.md | 2 +- .../project/2026/andrei.rusanescu/schema_bloc.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md index 1f058a2b9ba..44901a3be56 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -18,7 +18,7 @@ The central idea of the project is measuring and visualizing the impact of cargo ## Motivation -I am particularly interested in cars and networking. This project combines multiple peripherals studied in the lab (PWM, GPIO, I2C, UART, Bluetooth) into a functional system. It clearly demonstrates a measurable technical behavior - the difference in motor effort with and without cargo. The wireless telemetry component aligns with my personal interests in networking and systems. The software runs on Rust with Embassy-rs, a modern async embedded framework with cooperative concurrency. +I am particularly interested in cars and networking. This project combines multiple peripherals studied in the lab (PWM, GPIO, I2C, UART, Bluetooth) into a functional system. It is a challenge that clearly demonstrates technical effort - the difference in motor effort with and without cargo, and how to compensate for the load. ## Architecture diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg index 8a289b2fbb5..da1a62b7b4d 100755 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/schema_bloc.svg @@ -1,3 +1,3 @@ -
Baterie 18650 (2S  7.4V)
Driver motoare L298N
Alimentare
7.4V
Putere
Motoare
Motoare DC stanga/dreapta
Motoare DC stanga/dreapta
Putere
Motoare
STM32U545 RE-Q
PWM (viteza) + GPIO (directie)
Label
Alimentare 5V
UART TX/RX
Modul Bluetooth HC-06
Alimentare
5V
GPIO
TRIG/ECHO
Senzori ultrasonici HC-SR04 (x2)
Alim 5V
Encoder LM393 (x2)
GPIO EXTI/PULSE
Alim 3.3V
IMU
MPU-6500
I2C (SDA/SCL)
Display OLED SSD1306
I2C (SDA/SCL)
3.3V
3.3V
\ No newline at end of file +
Baterie 18650 (2S  7.4V)
Baterie 18650...
Driver motoare L298N
Driver motoar...
Alimentare
7.4V
Alimentare...
Putere
Motoare
Putere...
Motoare DC stanga/dreapta
Motoare DC...
Motoare DC stanga/dreapta
Motoare DC...
Putere
Motoare
Putere...
STM32U545 RE-Q
STM32U545 RE...
PWM (viteza) + GPIO (directie)
PWM (viteza) +...
Label
Label
Alimentare 5V
Alimentare 5V
UART TX/RX
UART TX/RX
Modul Bluetooth HC-06
Modul Blue...
Alimentare
5V
Alimentare...
GPIO
TRIG/ECHO
GPIO...
Senzori ultrasonici HC-SR04 (x2)
Senzori ultra...
Alim 5V
Alim 5V
Encoder LM393 (x2)
Encoder LM3...
GPIO EXTI/PULSE
GPIO EXTI/...
Alim 3.3V
Alim 3.3V
IMU
MPU-6500
IMU...
I2C (SDA/SCL)
I2C (SDA/S...
Display OLED SSD1306
Display OL...
I2C (SDA/SCL)
I2C (SDA/S...
3.3V
3.3V
3.3V
3.3V
\ No newline at end of file From dcd73b18205ab80794283a4941b325d93a0fea60 Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Tue, 12 May 2026 08:44:37 +0300 Subject: [PATCH 5/9] Updated log and added schematic. Signed-off-by: Andrei Rusanescu --- .../2026/andrei.rusanescu/PM_PROJECT.svg | 41032 ++++++++++++++++ .../project/2026/andrei.rusanescu/index.md | 21 +- 2 files changed, 41049 insertions(+), 4 deletions(-) create mode 100755 website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg new file mode 100755 index 00000000000..d0458defb80 --- /dev/null +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg @@ -0,0 +1,41032 @@ + + + +SVG Image created as PM_PROJECT.svg date 2026-05-12T08:15:45 + Image generated by Eeschema-SVG + + + + + + + + + + + +1 +1 + + + + + +2 +2 + + + + + + + + + + +3 +3 + + + + + + + + + + + + + +4 +4 + + + +5 +5 + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + +2 +2 + + + + + + + + + + +3 +3 + + + + + + + + + + + + + +4 +4 + + + +5 +5 + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + +A +A + + + +B +B + + + + + + + + + + + + + + + + + + +C +C + + + + + + + + + + + + + + + +D +D + + + + + + + + + + + + + + + +A +A + + + +B +B + + + + + + + + + + + + + + + + + + +C +C + + + + + + + + + + + + + + + +D +D + + + + + + + + + + + + +Date: 2026-05-04 +Date: 2026-05-04 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +KiCad E.D.A. 10.0.1 +KiCad E.D.A. 10.0.1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rev: +Rev: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Size: A4 +Size: A4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Id: 1/1 +Id: 1/1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Title: Schematic Proiect PM +Title: Schematic Proiect PM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +File: PM_PROJECT.kicad_sch +File: PM_PROJECT.kicad_sch + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Sheet: / +Sheet: / + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Rusanescu Andrei-Marian +Rusanescu Andrei-Marian + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + + + +1 + +1 + + + + + + + + + + + +- + +- + + + + +2 + +2 + + + + + + + + + + + + +M2 +M2 + + + + + + + + + + + + + + +Motor_DC +Motor_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +J5 +J5 + + + + + + + + + + + + + + + + + + + + +Encoder_LM393 +Encoder_LM393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +J3 +J3 + + + + + + + + + + + + + + + + + + +HC-SR04 +HC-SR04 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + + + +1 + +1 + + + + + + + + + + + +- + +- + + + + +2 + +2 + + + + + + + + + + + + +M4 +M4 + + + + + + + +Motor_DC +Motor_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + + + +1 + +1 + + + + + + + + + + + +- + +- + + + + +2 + +2 + + + + + + + + + + + + +M3 +M3 + + + + + + + + + + + + + + + + + +Motor_DC +Motor_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + + + + +5 +5 + + + + + + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +7 +7 + + + + + + + +8 +8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 +9 + + + + + + + + + + + + + + + + + + + + + + + + + + +10 +10 + + + + + + + + + + + + + + + + + + + + + + + + + + + +J2 +J2 + + + + + + + + + + + + + + + +MPU_6500 +MPU_6500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +BT1 +BT1 + + + + + + + + + + + + + + + + + + + + + + + + + +Battery +Battery + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND + +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + +1 + + + + + + + + + + + +VCC + +VCC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 + +2 + + + + + + + + + + + + + + + + +SCL +SCL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +SDA +SDA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +U2 +U2 + + + + + + + + + + + + + + + + + + + +ER_OLEDM0.91_1x-I2C +ER_OLEDM0.91_1x-I2C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++5V ++5V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SENSE_A + +SENSE_A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + +1 + + + + + + + + + + +OUT1 +OUT1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +OUT2 +OUT2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + + +Vs + +Vs + + + + + + + + + + + + + + + + + + + + +4 + +4 + + + + + + + + +IN1 +IN1 + + + + + + + + + + + +5 +5 + + + + + + + + + + + + + + + + + + + + +EnA +EnA + + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +IN2 +IN2 + + + + + + + + + + + + + + + + +7 +7 + + + + + + + + +GND + +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +8 + +8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Vss + +Vss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 + +9 + + + + + + + + + + + + + + + + + + + + + + + + + + +IN3 +IN3 + + + + + + + + + + + + + + + + + + + +10 +10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EnB +EnB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +11 +11 + + + + + + + + + + + + + + + +IN4 +IN4 + + + + + + + + + +12 +12 + + + + + + + + + + + + + + + + + + + + +OUT3 +OUT3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +13 +13 + + + + + + + + + + + + + + + + + + + + + + + +OUT4 +OUT4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +14 +14 + + + + + + + + + + + + + + +SENSE_B + +SENSE_B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +15 + +15 + + + + + + + + + + + + + + + + + + + + + + +U3 +U3 + + + + + + + + + + + + + + + + + + + + + + +L298N +L298N + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + + + +1 + +1 + + + + + + + + + + + +- + +- + + + + +2 + +2 + + + + + + + + + + + + +M1 +M1 + + + + + + + + + +Motor_DC +Motor_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +J1 +J1 + + + + + + + + + + +HC-06 Bluetooth +HC-06 Bluetooth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R3 +R3 + + + + + + + + + + + + + + + + + + + + + + + + +220 +220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R2 +R2 + + + + + + + + + + + + + + + + + + + + + +220 +220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R1 +R1 + + + + + + + + + + + + + + + + +220 +220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++5V ++5V + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++5V ++5V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +J4 +J4 + + + + + + + + +HC-SR04 +HC-SR04 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +D3 +D3 + + + + + + + + + + + + + + + + + + + + + + + + + +LED +LED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +D2 +D2 + + + + + + + + + + + + + + + + + + + + + + +LED +LED + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +D1 +D1 + + + + + + + + + + + + + + + + + +LED +LED + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VBAT + +VBAT + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + +1 + + + + + + + + + + +PC13 +PC13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +PC14 +PC14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +PC15 +PC15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4 +4 + + + + + + + + +PH0 +PH0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +5 +5 + + + + + + + + + + + + + + + + + + + + +PH1 +PH1 + + + + + + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +NRST +NRST + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +7 +7 + + + + + + + +PC0 +PC0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +8 +8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PC1 +PC1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 +9 + + + + + + + + + + + + + + + + + + + + + + + + + + +PC2 +PC2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +10 +10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PC3 +PC3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +11 +11 + + + + + + + + + + + + + + + + +VSSA + +VSSA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +12 + +12 + + + + + + + + + + + + + + + + + + + + + +VDDA + +VDDA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +13 + +13 + + + + + + + + + + + + + + + + + + + + + + + +PA0 +PA0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +14 +14 + + + + + + + + + + + + + +PA1 +PA1 + + + + + + + + + + + + + + + + + + + + +15 +15 + + + + + + + + + + + + + + + + + + + + + + + + + +PA2 +PA2 + + + + + + + + + + + + + + + + + + + + + + + + + +16 +16 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PA3 +PA3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +17 +17 + + + + + + + + + + + + + +VSS + +VSS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +18 + +18 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VDD + +VDD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +19 + +19 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PA4 +PA4 + + + + + + + + + + + + + + + + + + +20 +20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PA5 +PA5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +21 +21 + + + + + + + + + + + + + + + + + + + + +PA6 +PA6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +22 +22 + + + + + + + + + + + + + + + + + + + + + + + + + +PA7 +PA7 + + + + + + + + + + + + + + + + + +23 +23 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB0 +PB0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +24 +24 + + + + + + + + + + + + + + + + + + +PB1 +PB1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +25 +25 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB2 +PB2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +26 +26 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB10 +PB10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +27 +27 + + + + + + + + + + + + + + + + + +VLXSMPS +VLXSMPS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +28 +28 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VDDSMPS + +VDDSMPS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +29 + +29 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VSSSMPS + +VSSSMPS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +30 + +30 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VDD11 + +VDD11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +31 + +31 + + + + + + + + + + + + + + + + + + + + + + + + +VDD + +VDD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +33 + +33 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB13 +PB13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +34 +34 + + + + + + + + + + + + + + + + + + + + + +PB14 +PB14 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +35 +35 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB15 +PB15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +36 +36 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PC6 +PC6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +37 +37 + + + + + + + + + + + + + + + + + + + + +PC7 +PC7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +38 +38 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PC8 +PC8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +39 +39 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PC9 +PC9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +40 +40 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PA8 +PA8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +41 +41 + + + + + + + + + + + + + +PA9 +PA9 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +42 +42 + + + + + + + + + + + + + + + + + + +PA10 +PA10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +43 +43 + + + + + + + + + + + + + + + + + + + + + +PA11 +PA11 + + + + + + + + + + + + + + + + + + + + + + + + + +44 +44 + + + + + + + + + + + +PA12 +PA12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +45 +45 + + + + + + + + + + + + + + + + + + + + + + + +PA13 +PA13 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +46 +46 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VDDUSB + +VDDUSB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +48 + +48 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PA14 +PA14 + + + + + + + + + + + + + + + + + + + + + + + +49 +49 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PA15 +PA15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +50 +50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PC10 +PC10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +51 +51 + + + + + + + + + + + + + + + + + + + + + + + + + +PC11 +PC11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +52 +52 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PC12 +PC12 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +53 +53 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PD2 +PD2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +54 +54 + + + + + + + + + + + + + + + + + + + + + + + +PB3 +PB3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +55 +55 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB4 +PB4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +56 +56 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB5 +PB5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +57 +57 + + + + + + + + + + + + + + + + + + + + + + +PB6 +PB6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +58 +58 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB7 +PB7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +59 +59 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PH3 +PH3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + +60 +60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +PB8 +PB8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +61 +61 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VDD11 + +VDD11 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +62 + +62 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VDD + +VDD + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +64 + +64 + + + + + + + + + + + + + + + + + + + + + + + + + + +U4 +U4 + + + + + + + + + + + + +STM32U545RETxQ +STM32U545RETxQ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +J6 +J6 + + + + + + + + + + + + + + + + + + + + + + + + + + +Encoder_LM393 +Encoder_LM393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SDA +SDA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SCL +SCL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +RX +RX + + + + + + + + + + + + + + + +TX +TX + + + + + + +RX +RX + + + + + + + + + + + + + + + +TX +TX + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +M4 +M4 + + + + + + + +Motor_DC +Motor_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + + + +1 + +1 + + + + + + + + + + + +- + +- + + + + +2 + +2 + + + + + + + + + + + + +M3 +M3 + + + + + + + + + + + + + + + + + +Motor_DC +Motor_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + + + +1 + +1 + + + + + + + + + + + +- + +- + + + + +2 + +2 + + + + + + + + + + + + +U3 +U3 + + + + + + + + + + + + + + + + + + + + + + +L298N +L298N + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SENSE_A + +SENSE_A + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + +1 + + + + + + + + + + +OUT1 +OUT1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +OUT2 +OUT2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + + +Vs + +Vs + + + + + + + + + + + + + + + + + + + + +4 + +4 + + + + + + + + +IN1 +IN1 + + + + + + + + + + + +5 +5 + + + + + + + + + + + + + + + + + + + + +EnA +EnA + + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +IN2 +IN2 + + + + + + + + + + + + + + + + +7 +7 + + + + + + + + +GND + +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +8 + +8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Vss + +Vss + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 + +9 + + + + + + + + + + + + + + + + + + + + + + + + + + +IN3 +IN3 + + + + + + + + + + + + + + + + + + + +10 +10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EnB +EnB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +11 +11 + + + + + + + + + + + + + + + +IN4 +IN4 + + + + + + + + + +12 +12 + + + + + + + + + + + + + + + + + + + + +OUT3 +OUT3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +13 +13 + + + + + + + + + + + + + + + + + + + + + + + +OUT4 +OUT4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +14 +14 + + + + + + + + + + + + + + +SENSE_B + +SENSE_B + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +15 + +15 + + + + + + + + + + + + + + + + + + + + + + +M2 +M2 + + + + + + + + + + + + + + +Motor_DC +Motor_DC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++ + ++ + + + + + +1 + +1 + + + + + + + + + + + +- + +- + + + + +2 + +2 + + + + + + + + + + + + +J2 +J2 + + + + + + + + + + + + + + + +MPU_6500 +MPU_6500 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + + + + +5 +5 + + + + + + + + + + + + + + + + + + + + +6 +6 + + + + + + + + + + + + + + + + + + + + + + + + + + +7 +7 + + + + + + + +8 +8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +9 +9 + + + + + + + + + + + + + + + + + + + + + + + + + + +10 +10 + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +U2 +U2 + + + + + + + + + + + + + + + + + + + +ER_OLEDM0.91_1x-I2C +ER_OLEDM0.91_1x-I2C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND + +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 + +1 + + + + + + + + + + + +VCC + +VCC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +2 + +2 + + + + + + + + + + + + + + + + +SCL +SCL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +SDA +SDA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J3 +J3 + + + + + + + + + + + + + + + + + + +HC-SR04 +HC-SR04 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ++5V ++5V + + + + + + + + + + + + + + + + + + + + + + + + +J1 +J1 + + + + + + + + + + +HC-06 Bluetooth +HC-06 Bluetooth + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +R3 +R3 + + + + + + + + + + + + + + + + + + + + + + + + +220 +220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R2 +R2 + + + + + + + + + + + + + + + + + + + + + +220 +220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +R1 +R1 + + + + + + + + + + + + + + + + +220 +220 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +D3 +D3 + + + + + + + + + + + + + + + + + + + + + + + + + +LED +LED + + + + + + + + + + + + + + + + + + + + + + + + +D2 +D2 + + + + + + + + + + + + + + + + + + + + + + +LED +LED + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +D1 +D1 + + + + + + + + + + + + + + + + + +LED +LED + + + + + + + + + + + + + + + + + + + + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J6 +J6 + + + + + + + + + + + + + + + + + + + + + + + + + + +Encoder_LM393 +Encoder_LM393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + +GND +GND + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +J5 +J5 + + + + + + + + + + + + + + + + + + + + +Encoder_LM393 +Encoder_LM393 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +1 +1 + + + + + + + + + + +2 +2 + + + + + + + + + + + + + + + +3 +3 + + + + + + + + + + + + + + + + + + +4 +4 + + + + + ++3.3V ++3.3V + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md index 44901a3be56..82786584b5e 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -84,27 +84,37 @@ HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends ### Week 6 - 12 Apr -Ordered all of the components needed. +Ordered most of the components needed. ### Week 13 - 19 Apr Assembled the mechanical parts (wheels, motors, car platform). ### Week 20 - 26 Apr Working on the Schematic in KiCad. +Tested individual components: bluetooth module, display, motors, distance sensors, LM393 speed sensors. ### Week 27 Apr - 3 May +Ordered Li-Ion Samsung 18650 3.6V 3450mAh 8A batteries, a charger for the batteries, +more male-female and female-female jumpers and a smaller breadboard (400 points). ### Week 4 - 10 May +Soldered IMU and OLED display in the lab. +Assembled final product. +Started to write the software for the cargobot and tested it carrying another car. +The HC-SR04 sensors are not so precise as the car sometimes crashes into walls if driven into. ### Week 11 - 17 May + ## Hardware The robot is built on a 4WD chassis with 4 DC motors (3–6V) driven through an L298N dual H-bridge using skid steering (left/right side in parallel). Speed and direction are controlled via PWM from the STM32. Two IR optical sensors read encoder discs on the motors to compute RPM. An MPU-6500 IMU over I2C measures tilt angle using a complementary filter. Two HC-SR04 ultrasonic sensors handle obstacle detection front and rear. An SSD1306 OLED displays live telemetry. An HC-06 Bluetooth module provides bidirectional communication with the laptop. ### Schematics -Place your KiCAD schematics here in SVG format. + +KiCad Schematic: +![KiCad Schematic](PM_PROJECT.svg) @@ -121,9 +131,12 @@ Place your KiCAD schematics here in SVG format. | [OLED SSD1306 0.96" I2C](https://sigmanortec.ro/display-oled-096-i2c-iic-alb) | On-board display, shows RPM, tilt, obstacle distance, state, load level (I2C, 0x3C) | [14.01 RON](https://sigmanortec.ro/display-oled-096-i2c-iic-alb) | | [2x HC-SR04 Ultrasonic Sensor](https://sigmanortec.ro/Senzor-ultrasunete-HC-SR04-p125423514) x2 | Obstacle detection, front and rear, GPIO trigger/echo | [18.80 RON](https://sigmanortec.ro/Senzor-ultrasunete-HC-SR04-p125423514) | | [18650 Battery Holder 2S](https://sigmanortec.ro/suport-acumulatori-18650-2s) | Holds 2x 18650 cells in series, 7.4V output for L298N and STM32 | [5.74 RON](https://sigmanortec.ro/suport-acumulatori-18650-2s) | -| Passive Buzzer | Horn and audio feedback via PWM | 0 RON (owned) | +| [2x Li-Ion Samsung 18650 3.6V 3450mAh 8A](https://www.emag.ro/acumulator-li-ion-samsung-18650-3-6v-3450mah-8a-cu-borne-joase-si-fara-bms-model-inr18650-35e-3450ma-lincr18650-35e/pd/DWVV74MBM/) | Batteries to provide voltage for the motors and for the board | [63 RON](https://www.emag.ro/acumulator-li-ion-samsung-18650-3-6v-3450mah-8a-cu-borne-joase-si-fara-bms-model-inr18650-35e-3450ma-lincr18650-35e/pd/DWVV74MBM/) | +| [Battery charger](https://www.emag.ro/incarcator-dublu-pentru-acumulator-baterie-reincarcabila-4-2v-1000ma-li-ion-ultrafire-18650-10440-14500-16340-17335-17500-17670-18500-0201/pd/DMG7FVBBM/) | Charges the Li-ion batteries | [35 RON](https://www.emag.ro/incarcator-dublu-pentru-acumulator-baterie-reincarcabila-4-2v-1000ma-li-ion-ultrafire-18650-10440-14500-16340-17335-17500-17670-18500-0201/pd/DMG7FVBBM/) | | 3x LED (red/yellow/green) + resistors | Visual motor effort indicator | 0 RON (owned) | -| Breadboard + jumper wires | For connections | 0 RON (owned) | +| [Female-Female jumper wires](https://sigmanortec.ro/40-fire-Dupont-10cm-Mama-Mama-p129872525) | Wires for connections | [7.73 RON](https://sigmanortec.ro/40-fire-Dupont-10cm-Mama-Mama-p129872525) | +| [Male-Female jumper wires](https://sigmanortec.ro/40-fire-Dupont-10cm-Tata-Mama-p210855157) | Wires for connections | [7.73 RON](https://sigmanortec.ro/40-fire-Dupont-10cm-Tata-Mama-p210855157) | +| Male-Male jumper wires | Wires for connections | 0 RON (owned) | ## Software From 8fc5f378a4718388fe729bc1de6c73f8c9045871 Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Wed, 13 May 2026 06:35:23 +0300 Subject: [PATCH 6/9] Compressed schematic Signed-off-by: Andrei Rusanescu --- .../2026/andrei.rusanescu/PM_PROJECT.svg | 41033 +--------------- 1 file changed, 1 insertion(+), 41032 deletions(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg index d0458defb80..cbb50736c94 100755 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/PM_PROJECT.svg @@ -1,41032 +1 @@ - - - -SVG Image created as PM_PROJECT.svg date 2026-05-12T08:15:45 - Image generated by Eeschema-SVG - - - - - - - - - - - -1 -1 - - - - - -2 -2 - - - - - - - - - - -3 -3 - - - - - - - - - - - - - -4 -4 - - - -5 -5 - - - - - - - - - - - - - - - -6 -6 - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - -2 -2 - - - - - - - - - - -3 -3 - - - - - - - - - - - - - -4 -4 - - - -5 -5 - - - - - - - - - - - - - - - -6 -6 - - - - - - - - - - - - - - - - - - - - - - - - -A -A - - - -B -B - - - - - - - - - - - - - - - - - - -C -C - - - - - - - - - - - - - - - -D -D - - - - - - - - - - - - - - - -A -A - - - -B -B - - - - - - - - - - - - - - - - - - -C -C - - - - - - - - - - - - - - - -D -D - - - - - - - - - - - - -Date: 2026-05-04 -Date: 2026-05-04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -KiCad E.D.A. 10.0.1 -KiCad E.D.A. 10.0.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Rev: -Rev: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Size: A4 -Size: A4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Id: 1/1 -Id: 1/1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Title: Schematic Proiect PM -Title: Schematic Proiect PM - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -File: PM_PROJECT.kicad_sch -File: PM_PROJECT.kicad_sch - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Sheet: / -Sheet: / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Rusanescu Andrei-Marian -Rusanescu Andrei-Marian - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - -+ - - - - - -1 - -1 - - - - - - - - - - - -- - -- - - - - -2 - -2 - - - - - - - - - - - - -M2 -M2 - - - - - - - - - - - - - - -Motor_DC -Motor_DC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -J5 -J5 - - - - - - - - - - - - - - - - - - - - -Encoder_LM393 -Encoder_LM393 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -J3 -J3 - - - - - - - - - - - - - - - - - - -HC-SR04 -HC-SR04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - -+ - - - - - -1 - -1 - - - - - - - - - - - -- - -- - - - - -2 - -2 - - - - - - - - - - - - -M4 -M4 - - - - - - - -Motor_DC -Motor_DC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - -+ - - - - - -1 - -1 - - - - - - - - - - - -- - -- - - - - -2 - -2 - - - - - - - - - - - - -M3 -M3 - - - - - - - - - - - - - - - - - -Motor_DC -Motor_DC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - - - - -5 -5 - - - - - - - - - - - - - - - - - - - - -6 -6 - - - - - - - - - - - - - - - - - - - - - - - - - - -7 -7 - - - - - - - -8 -8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -9 -9 - - - - - - - - - - - - - - - - - - - - - - - - - - -10 -10 - - - - - - - - - - - - - - - - - - - - - - - - - - - -J2 -J2 - - - - - - - - - - - - - - - -MPU_6500 -MPU_6500 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BT1 -BT1 - - - - - - - - - - - - - - - - - - - - - - - - - -Battery -Battery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND - -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 - -1 - - - - - - - - - - - -VCC - -VCC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2 - -2 - - - - - - - - - - - - - - - - -SCL -SCL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -SDA -SDA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -U2 -U2 - - - - - - - - - - - - - - - - - - - -ER_OLEDM0.91_1x-I2C -ER_OLEDM0.91_1x-I2C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+5V -+5V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SENSE_A - -SENSE_A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 - -1 - - - - - - - - - - -OUT1 -OUT1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -OUT2 -OUT2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - - -Vs - -Vs - - - - - - - - - - - - - - - - - - - - -4 - -4 - - - - - - - - -IN1 -IN1 - - - - - - - - - - - -5 -5 - - - - - - - - - - - - - - - - - - - - -EnA -EnA - - - - - - - - - - - - - - - - -6 -6 - - - - - - - - - - - - - - - - - - - - - - - - - - -IN2 -IN2 - - - - - - - - - - - - - - - - -7 -7 - - - - - - - - -GND - -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -8 - -8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vss - -Vss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -9 - -9 - - - - - - - - - - - - - - - - - - - - - - - - - - -IN3 -IN3 - - - - - - - - - - - - - - - - - - - -10 -10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EnB -EnB - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -11 -11 - - - - - - - - - - - - - - - -IN4 -IN4 - - - - - - - - - -12 -12 - - - - - - - - - - - - - - - - - - - - -OUT3 -OUT3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13 -13 - - - - - - - - - - - - - - - - - - - - - - - -OUT4 -OUT4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -14 -14 - - - - - - - - - - - - - - -SENSE_B - -SENSE_B - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -15 - -15 - - - - - - - - - - - - - - - - - - - - - - -U3 -U3 - - - - - - - - - - - - - - - - - - - - - - -L298N -L298N - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - -+ - - - - - -1 - -1 - - - - - - - - - - - -- - -- - - - - -2 - -2 - - - - - - - - - - - - -M1 -M1 - - - - - - - - - -Motor_DC -Motor_DC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -J1 -J1 - - - - - - - - - - -HC-06 Bluetooth -HC-06 Bluetooth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -R3 -R3 - - - - - - - - - - - - - - - - - - - - - - - - -220 -220 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -R2 -R2 - - - - - - - - - - - - - - - - - - - - - -220 -220 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -R1 -R1 - - - - - - - - - - - - - - - - -220 -220 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+5V -+5V - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+5V -+5V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -J4 -J4 - - - - - - - - -HC-SR04 -HC-SR04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -D3 -D3 - - - - - - - - - - - - - - - - - - - - - - - - - -LED -LED - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -D2 -D2 - - - - - - - - - - - - - - - - - - - - - - -LED -LED - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -D1 -D1 - - - - - - - - - - - - - - - - - -LED -LED - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VBAT - -VBAT - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 - -1 - - - - - - - - - - -PC13 -PC13 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -PC14 -PC14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -PC15 -PC15 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4 -4 - - - - - - - - -PH0 -PH0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -5 -5 - - - - - - - - - - - - - - - - - - - - -PH1 -PH1 - - - - - - - - - - - - - - - - - - - - -6 -6 - - - - - - - - - - - - - - - - - - - - - - - - - - -NRST -NRST - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -7 -7 - - - - - - - -PC0 -PC0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -8 -8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PC1 -PC1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -9 -9 - - - - - - - - - - - - - - - - - - - - - - - - - - -PC2 -PC2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -10 -10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PC3 -PC3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -11 -11 - - - - - - - - - - - - - - - - -VSSA - -VSSA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -12 - -12 - - - - - - - - - - - - - - - - - - - - - -VDDA - -VDDA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13 - -13 - - - - - - - - - - - - - - - - - - - - - - - -PA0 -PA0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -14 -14 - - - - - - - - - - - - - -PA1 -PA1 - - - - - - - - - - - - - - - - - - - - -15 -15 - - - - - - - - - - - - - - - - - - - - - - - - - -PA2 -PA2 - - - - - - - - - - - - - - - - - - - - - - - - - -16 -16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PA3 -PA3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -17 -17 - - - - - - - - - - - - - -VSS - -VSS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -18 - -18 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VDD - -VDD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -19 - -19 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PA4 -PA4 - - - - - - - - - - - - - - - - - - -20 -20 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PA5 -PA5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -21 -21 - - - - - - - - - - - - - - - - - - - - -PA6 -PA6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -22 -22 - - - - - - - - - - - - - - - - - - - - - - - - - -PA7 -PA7 - - - - - - - - - - - - - - - - - -23 -23 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB0 -PB0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -24 -24 - - - - - - - - - - - - - - - - - - -PB1 -PB1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -25 -25 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB2 -PB2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -26 -26 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB10 -PB10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -27 -27 - - - - - - - - - - - - - - - - - -VLXSMPS -VLXSMPS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -28 -28 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VDDSMPS - -VDDSMPS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -29 - -29 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VSSSMPS - -VSSSMPS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -30 - -30 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VDD11 - -VDD11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -31 - -31 - - - - - - - - - - - - - - - - - - - - - - - - -VDD - -VDD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -33 - -33 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB13 -PB13 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -34 -34 - - - - - - - - - - - - - - - - - - - - - -PB14 -PB14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -35 -35 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB15 -PB15 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -36 -36 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PC6 -PC6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -37 -37 - - - - - - - - - - - - - - - - - - - - -PC7 -PC7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -38 -38 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PC8 -PC8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -39 -39 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PC9 -PC9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -40 -40 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PA8 -PA8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -41 -41 - - - - - - - - - - - - - -PA9 -PA9 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -42 -42 - - - - - - - - - - - - - - - - - - -PA10 -PA10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -43 -43 - - - - - - - - - - - - - - - - - - - - - -PA11 -PA11 - - - - - - - - - - - - - - - - - - - - - - - - - -44 -44 - - - - - - - - - - - -PA12 -PA12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -45 -45 - - - - - - - - - - - - - - - - - - - - - - - -PA13 -PA13 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -46 -46 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VDDUSB - -VDDUSB - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -48 - -48 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PA14 -PA14 - - - - - - - - - - - - - - - - - - - - - - - -49 -49 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PA15 -PA15 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -50 -50 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PC10 -PC10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -51 -51 - - - - - - - - - - - - - - - - - - - - - - - - - -PC11 -PC11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -52 -52 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PC12 -PC12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -53 -53 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PD2 -PD2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -54 -54 - - - - - - - - - - - - - - - - - - - - - - - -PB3 -PB3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -55 -55 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB4 -PB4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -56 -56 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB5 -PB5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -57 -57 - - - - - - - - - - - - - - - - - - - - - - -PB6 -PB6 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -58 -58 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB7 -PB7 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -59 -59 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PH3 -PH3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -60 -60 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PB8 -PB8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -61 -61 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VDD11 - -VDD11 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -62 - -62 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VDD - -VDD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -64 - -64 - - - - - - - - - - - - - - - - - - - - - - - - - - -U4 -U4 - - - - - - - - - - - - -STM32U545RETxQ -STM32U545RETxQ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -J6 -J6 - - - - - - - - - - - - - - - - - - - - - - - - - - -Encoder_LM393 -Encoder_LM393 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SDA -SDA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SCL -SCL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RX -RX - - - - - - - - - - - - - - - -TX -TX - - - - - - -RX -RX - - - - - - - - - - - - - - - -TX -TX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -M4 -M4 - - - - - - - -Motor_DC -Motor_DC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - -+ - - - - - -1 - -1 - - - - - - - - - - - -- - -- - - - - -2 - -2 - - - - - - - - - - - - -M3 -M3 - - - - - - - - - - - - - - - - - -Motor_DC -Motor_DC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - -+ - - - - - -1 - -1 - - - - - - - - - - - -- - -- - - - - -2 - -2 - - - - - - - - - - - - -U3 -U3 - - - - - - - - - - - - - - - - - - - - - - -L298N -L298N - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -SENSE_A - -SENSE_A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 - -1 - - - - - - - - - - -OUT1 -OUT1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -OUT2 -OUT2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - - -Vs - -Vs - - - - - - - - - - - - - - - - - - - - -4 - -4 - - - - - - - - -IN1 -IN1 - - - - - - - - - - - -5 -5 - - - - - - - - - - - - - - - - - - - - -EnA -EnA - - - - - - - - - - - - - - - - -6 -6 - - - - - - - - - - - - - - - - - - - - - - - - - - -IN2 -IN2 - - - - - - - - - - - - - - - - -7 -7 - - - - - - - - -GND - -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -8 - -8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vss - -Vss - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -9 - -9 - - - - - - - - - - - - - - - - - - - - - - - - - - -IN3 -IN3 - - - - - - - - - - - - - - - - - - - -10 -10 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EnB -EnB - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -11 -11 - - - - - - - - - - - - - - - -IN4 -IN4 - - - - - - - - - -12 -12 - - - - - - - - - - - - - - - - - - - - -OUT3 -OUT3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -13 -13 - - - - - - - - - - - - - - - - - - - - - - - -OUT4 -OUT4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -14 -14 - - - - - - - - - - - - - - -SENSE_B - -SENSE_B - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -15 - -15 - - - - - - - - - - - - - - - - - - - - - - -M2 -M2 - - - - - - - - - - - - - - -Motor_DC -Motor_DC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ - -+ - - - - - -1 - -1 - - - - - - - - - - - -- - -- - - - - -2 - -2 - - - - - - - - - - - - -J2 -J2 - - - - - - - - - - - - - - - -MPU_6500 -MPU_6500 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - - - - -5 -5 - - - - - - - - - - - - - - - - - - - - -6 -6 - - - - - - - - - - - - - - - - - - - - - - - - - - -7 -7 - - - - - - - -8 -8 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -9 -9 - - - - - - - - - - - - - - - - - - - - - - - - - - -10 -10 - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -U2 -U2 - - - - - - - - - - - - - - - - - - - -ER_OLEDM0.91_1x-I2C -ER_OLEDM0.91_1x-I2C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND - -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 - -1 - - - - - - - - - - - -VCC - -VCC - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -2 - -2 - - - - - - - - - - - - - - - - -SCL -SCL - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -SDA -SDA - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -J3 -J3 - - - - - - - - - - - - - - - - - - -HC-SR04 -HC-SR04 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+5V -+5V - - - - - - - - - - - - - - - - - - - - - - - - -J1 -J1 - - - - - - - - - - -HC-06 Bluetooth -HC-06 Bluetooth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -R3 -R3 - - - - - - - - - - - - - - - - - - - - - - - - -220 -220 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -R2 -R2 - - - - - - - - - - - - - - - - - - - - - -220 -220 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -R1 -R1 - - - - - - - - - - - - - - - - -220 -220 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -D3 -D3 - - - - - - - - - - - - - - - - - - - - - - - - - -LED -LED - - - - - - - - - - - - - - - - - - - - - - - - -D2 -D2 - - - - - - - - - - - - - - - - - - - - - - -LED -LED - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -D1 -D1 - - - - - - - - - - - - - - - - - -LED -LED - - - - - - - - - - - - - - - - - - - - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -J6 -J6 - - - - - - - - - - - - - - - - - - - - - - - - - - -Encoder_LM393 -Encoder_LM393 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -GND -GND - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -J5 -J5 - - - - - - - - - - - - - - - - - - - - -Encoder_LM393 -Encoder_LM393 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1 -1 - - - - - - - - - - -2 -2 - - - - - - - - - - - - - - - -3 -3 - - - - - - - - - - - - - - - - - - -4 -4 - - - - - -+3.3V -+3.3V - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +SVG Image created as PM_PROJECT.svg date 2026-05-13T06:31:21 Image generated by Eeschema-SVG123456123456ABCDABCDDate: 2026-05-04KiCad E.D.A. 10.0.1Rev:Size: A4Id: 1/1Title: Schematic Proiect PMFile: PM_PROJECT.kicad_schSheet: /Rusanescu Andrei-Marian+1-2M2Motor_DCGND+3.3VGND+1-2M4Motor_DC+1-2M3Motor_DCGND1VCC2SCL3SDA4U2ER_OLEDM0.91_1x-I2C+3.3VR3220BT1Battery1234J1HC-06 BluetoothGND12345678910J2MPU_6500R22201234J3HC-SR04SENSE_A1OUT12OUT23Vs4IN15EnA6IN27GND8Vss9IN310EnB11IN412OUT313OUT414SENSE_B15U3L298NGNDGNDGNDR12201234J4HC-SR04+5VVBAT1PC132PC143PC154PH05PH16NRST7PC08PC19PC210PC311VSSA12VDDA13PA014PA115PA216PA317VSS18VDD19PA420PA521PA622PA723PB024PB125PB226PB1027VLXSMPS28VDDSMPS29VSSSMPS30VDD1131VDD33PB1334PB1435PB1536PC637PC738PC839PC940PA841PA942PA1043PA1144PA1245PA1346VDDUSB48PA1449PA1550PC1051PC1152PC1253PD254PB355PB456PB557PB658PB759PH360PB861VDD1162VDD64U4STM32U545RETxQGND+3.3V+5V+5VGND1234J6Encoder_LM3931234J5Encoder_LM393+3.3VD1LEDD2LED+1-2M1Motor_DCGNDGNDD3LEDTXRXRXTXSDASCLM4Motor_DC+1-2M3Motor_DC+1-2U3L298NSENSE_A1OUT12OUT23Vs4IN15EnA6IN27GND8Vss9IN310EnB11IN412OUT313OUT414SENSE_B15J5Encoder_LM3931234M2Motor_DC+1-2GND+3.3VR3220J1HC-06 Bluetooth1234R2220R1220GNDGNDGNDGNDD3LEDD2LEDD1LED+3.3VJ6Encoder_LM3931234GND+5VGNDGNDJ3HC-SR041234J2MPU_650012345678910GND+3.3VU2ER_OLEDM0.91_1x-I2CGND1VCC2SCL3SDA4+3.3V \ No newline at end of file From 7855a2ab2d040d2879e17427e707b3567246a43f Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Wed, 13 May 2026 14:41:34 +0300 Subject: [PATCH 7/9] Added hardware images Signed-off-by: Andrei Rusanescu --- .../project/2026/andrei.rusanescu/IMG_3536.webp | Bin 0 -> 48952 bytes .../project/2026/andrei.rusanescu/IMG_3541.webp | Bin 0 -> 92666 bytes .../project/2026/andrei.rusanescu/index.md | 3 +++ 3 files changed, 3 insertions(+) create mode 100755 website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/IMG_3536.webp create mode 100755 website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/IMG_3541.webp diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/IMG_3536.webp b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/IMG_3536.webp new file mode 100755 index 0000000000000000000000000000000000000000..76095cd087eb3aa12d06c4a6adad536abb89fd54 GIT binary patch literal 48952 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 literal 0 HcmV?d00001 diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md index 82786584b5e..fbeabfecf3a 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -110,6 +110,9 @@ The HC-SR04 sensors are not so precise as the car sometimes crashes into walls i The robot is built on a 4WD chassis with 4 DC motors (3–6V) driven through an L298N dual H-bridge using skid steering (left/right side in parallel). Speed and direction are controlled via PWM from the STM32. Two IR optical sensors read encoder discs on the motors to compute RPM. An MPU-6500 IMU over I2C measures tilt angle using a complementary filter. Two HC-SR04 ultrasonic sensors handle obstacle detection front and rear. An SSD1306 OLED displays live telemetry. An HC-06 Bluetooth module provides bidirectional communication with the laptop. +![Car from above](IMG_3541.webp) +![Car from a side](IMG_3536.webp) + ### Schematics From f9cee9c351b2526f2d55ffc316db202c357366dd Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Tue, 19 May 2026 22:21:32 +0300 Subject: [PATCH 8/9] Added software log Signed-off-by: Andrei Rusanescu --- .../2026/andrei.rusanescu/cargobot_night.webp | Bin 0 -> 75790 bytes .../project/2026/andrei.rusanescu/index.md | 70 ++++++++++++------ 2 files changed, 46 insertions(+), 24 deletions(-) create mode 100755 website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/cargobot_night.webp diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/cargobot_night.webp b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/cargobot_night.webp new file mode 100755 index 0000000000000000000000000000000000000000..133ed7abb8d80be2b44f53a593116ac8e15a555a GIT binary patch literal 75790 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 literal 0 HcmV?d00001 diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md index fbeabfecf3a..2e775ca23e3 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -14,11 +14,11 @@ Remote-controlled cargo robot with Bluetooth telemetry CargoBot is a remote-controlled four-wheeled robot that carries cargo and navigates surfaces with imperfections. It is controlled from a laptop keyboard via Bluetooth and uses an STM32 Nucleo-U545RE-Q microcontroller programmed in Rust with Embassy-rs. It sends real-time telemetry data to a PC dashboard via Bluetooth, while simultaneously displaying information on an onboard OLED. -The central idea of the project is measuring and visualizing the impact of cargo load on motor performance: when the robot carries something heavy, the PID controller automatically increases the PWM duty cycle to maintain a constant speed. This compensation is observable live on the robot's OLED, on the PC dashboard, and through 3 LEDs (green/yellow/red) that visually indicate the effort level. +The central idea of the project is measuring and visualizing the impact of cargo load on motor performance: when the robot carries something heavy, the PID controller automatically increases the PWM duty cycle to maintain a constant speed. This compensation is observable live on the robot's OLED, on the PC dashboard, and through 3 LEDs (green/blue/red) that visually indicate the effort level. ## Motivation -I am particularly interested in cars and networking. This project combines multiple peripherals studied in the lab (PWM, GPIO, I2C, UART, Bluetooth) into a functional system. It is a challenge that clearly demonstrates technical effort - the difference in motor effort with and without cargo, and how to compensate for the load. +I am particularly interested in cars and networking. This project combines multiple peripherals studied in the lab (PWM, GPIO, I2C, UART (Bluetooth)) into a functional system. It is a challenge that clearly demonstrates technical effort - the difference in motor effort with and without cargo, and how to compensate for the load. It really excites me because I get to apply what I've learnt in electronics, microprocessor programming in Rust and really build a hardware product. ## Architecture @@ -38,42 +38,41 @@ The L298N dual H-bridge receives PWM signals from the STM32 and drives 4 DC moto - 2x IR LM393 encoders: RPM feedback for PID **4. Communication Subsystem** -HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends movement commands (forward/backward/left/right + speed), robot sends back JSON telemetry at 5Hz. +HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends raw keyboard characters (w, a, s, d, x, p), and the robot streams back high-efficiency text-based CSV telemetry (T,Load,Comp,Ax,Ay,Gz) at 10Hz to reduce microcontroller overhead. **5. Display & Indicators Subsystem** -- OLED SSD1306 128x64 (I2C, address 0x3C, shared bus with IMU): displays RPM, tilt angle, obstacle distance, state, load level -- 3x LEDs (green/yellow/red) on GPIO: visual indicator of motor effort based on PWM duty cycle -- Passive buzzer on PWM: horn and audio feedback +- OLED SSD1306 128x64 (I2C, address 0x3C, shared bus with IMU): displays active metrics like distance, encoder ticks, load %, and current power mode. +- 3x LEDs (green/blue/red) on GPIO: visual indicator of motor effort based on PWM duty cycle +- PC Dashboard: Tkinter window with embedded real-time Matplotlib animation canvas displaying streaming physics graphs. **Embassy-rs Async Tasks:** | Task | Frequency | Responsibility | |------|-----------|----------------| -| sensor_task | 20 Hz | Read IMU (I2C) + ultrasonic sensors | -| motor_task | 50 Hz | Apply PWM to L298N, read encoders | -| navigation_task | 10 Hz | State machine: FORWARD / COMPENSATE / AVOID / STOP | -| telemetry_task | 5 Hz | Serialize JSON and send over UART to HC-06 | -| display_task | 4 Hz | Update OLED | +| encoder_left_task / right | Interrupt-driven | Counts wheel encoder slot edges using GPIO EXTI triggers. | +| distance_task | 16 Hz | Triggers and measures echo responses from front/rear HC-SR04 sensors. | +| imu_task | 50 Hz | Reads raw Accel/Gyro data from MPU-6500 over I2C and stores scaled values. | +| pid_task | 5 Hz | Performs Low-Pass filtering, fast auto-calibration, and runs the PI speed compensation loop. | +| telemetry_task | 10 Hz | Formats data into a CSV string and transmits it wirelessly over UART. | +| display_task | 2 Hz | Refreshes the on-board OLED graphics. | +| bluetooth_task | Async Rx | Listens for incoming control characters from the PC. | -**Navigation State Machine:** +**Navigation & PI Compensation Logic:** +Instead of basic tilt-triggering, CargoBot uses an intelligent sensor-fusion approach: +1. **Auto-Calibration**: On first throttle, it calibrates the ideal steady-state wheel RPM. +2. **Load Tracking**: A Low-Pass filter smooths out encoder noise. If the filtered RPM drops below the reference value due to cargo weight or friction, the robot calculates the exact `Load %`. +3. **PI Regulation**: A Proporțional-Integral loop dynamically scales up the PWM duty cycle to maintain constant cruise speed, bypassing inertia during start-up via a dedicated blind window. -| State | Entry Condition | Action | -|-------|----------------|--------| -| FORWARD | No obstacle | Move at target speed, PID active | -| COMPENSATE | Pitch > 5 deg (ramp) | Increase PWM proportional to tilt angle | -| AVOID | Obstacle < 30cm | Stop, rotate, resume forward | -| STOP | Manual command / error | Motors off, telemetry continues | **Peripheral Usage:** | Peripheral | Component | Usage | |-----------|-----------|-------| | PWM | STM32 -> L298N | Motor speed control (0–100% duty cycle) | -| PWM | STM32 -> Buzzer | Horn | -| GPIO Output | STM32 -> HC-SR04 trigger | 10 micro-s pulse to trigger ultrasonic | +| GPIO Output | STM32 -> HC-SR04 trigger | pulse to trigger ultrasonic | | GPIO Input Interrupt | HC-SR04 echo -> STM32 | Measure echo duration -> distance | | GPIO Input Interrupt | LM393 encoders -> STM32 | Count pulses -> compute RPM | -| GPIO Output | STM32 -> LEDs R/Y/G | Load indicator: green (<35%), yellow (35–65%), red (>65%) | +| GPIO Output | STM32 -> LEDs R/G/B | Load indicator: green (ECO mode), blue (DRIVE mode), red (SPEED mode) | | GPIO Output | STM32 -> L298N IN1-IN4 | Motor direction control | | I2C (shared bus) | STM32 -> MPU-6500 (0x68) | Accelerometer + gyroscope for tilt angle | | I2C (shared bus) | STM32 -> SSD1306 (0x3C) | OLED telemetry display | @@ -101,15 +100,38 @@ more male-female and female-female jumpers and a smaller breadboard (400 points) Soldered IMU and OLED display in the lab. Assembled final product. Started to write the software for the cargobot and tested it carrying another car. -The HC-SR04 sensors are not so precise as the car sometimes crashes into walls if driven into. +The car automatically stops when it detects an object at less than 15cm distance. ### Week 11 - 17 May +Wrote even more software. Noticed that with adding more components, the responsiveness of the +bluetooth commands degraded, so I had to debug a lot with the frequencies, which led me to +activate the 16MHz crystal of the board to raise the frequency on i2c (for the display). + +I had problems with the HC-SR04 distance sensors as well. They are placed back-to-back, +which initially caused significant acoustic interference (cross-talk) because they were +attempting to fire and update simultaneously at the same frequency. This ultrasonic overlap +caused one of the sensors to constantly freeze or report false timeouts, as it would accidentally +catch the stray echo generated by the opposite sensor. + +To solve this limitation, I refactored the software into a single, synchronized Embassy async +task (`distance_task`). Instead of running concurrently, the sensors are now triggered sequentially: +the system measures the front distance, waits for a deliberate 30ms gap to let any residual acoustic +noise dissipate, and only then triggers the rear sensor. This simple interleaving completely eliminated +the sensor locking issue. + +### Week 18 - 24 May +Finalized the closed-loop motor control by deploying a tuned PI velocity regulator ($K_P=35, K_I=15$) and locking the noisy derivative term ($K_D$) to zero. +Implemented a $7/8$ exponential moving average Low-Pass filter to smooth out encoder slot jitter, a rapid auto-calibration routine to sample target cruise speeds, and a 1.6-second startup "blind window" to stop the controller from confusing physical takeoff inertia with cargo load. +Built the custom companion PC interface using Python Tkinter and Matplotlib to handle low-latency key debouncing and animate the 10Hz text-based CSV telemetry streams in real time. ## Hardware -The robot is built on a 4WD chassis with 4 DC motors (3–6V) driven through an L298N dual H-bridge using skid steering (left/right side in parallel). Speed and direction are controlled via PWM from the STM32. Two IR optical sensors read encoder discs on the motors to compute RPM. An MPU-6500 IMU over I2C measures tilt angle using a complementary filter. Two HC-SR04 ultrasonic sensors handle obstacle detection front and rear. An SSD1306 OLED displays live telemetry. An HC-06 Bluetooth module provides bidirectional communication with the laptop. +The robot is built on a 4WD chassis powered by four DC motors (3–6V) wired in parallel per side (skid steering) and driven by an L298N dual H-bridge. Speed is dynamically regulated via 1kHz PWM signals from the STM32, while directional control is managed through discrete GPIO pins. Two LM393 IR optical sensors read wheel encoder discs to provide real-time RPM feedback, which serves as the primary metric for the PI load-compensation algorithm. + +For environmental and physics telemetry, an MPU-6500 IMU communicates over a shared I2C bus to track linear accelerations ($A_x$, $A_y$, $A_z$) and yaw rate ($G_z$). Spatial awareness is handled by two HC-SR04 ultrasonic sensors placed at the front and rear, utilizing timed GPIO echo interrupts for obstacle detection. Visual feedback is split between an onboard SSD1306 OLED display for standalone diagnostics and an HC-06 Bluetooth module that streams raw, high-frequency CSV telemetry packets to a custom Python dashboard on a PC. +![Car at night](cargobot_night.webp) ![Car from above](IMG_3541.webp) ![Car from a side](IMG_3536.webp) @@ -155,7 +177,7 @@ KiCad Schematic: | [defmt](https://github.com/knurling-rs/defmt) + defmt-rtt | Logging framework | Debug output via probe | | [libm](https://github.com/rust-lang/libm) | Math functions (no_std) | atan2, sqrt for complementary filter | | Python pyserial | Serial communication | PC-side script to receive telemetry and send commands over Bluetooth | -| Python matplotlib / Flask | Data visualization | Live dashboard with RPM, PWM, tilt, distance graphs | +| Python matplotlib + tkinter | Desktop GUI & Plotting | Live dashboard with telemetry and PID | ## Links From 8f22cd066c4e13de8971422396a06a114be17c3a Mon Sep 17 00:00:00 2001 From: Andrei Rusanescu Date: Thu, 21 May 2026 21:17:08 +0300 Subject: [PATCH 9/9] Added software design and diagram Signed-off-by: Andrei Rusanescu --- .../project/2026/andrei.rusanescu/index.md | 97 +++++++++++++++++-- .../software_diagram_colored.svg | 3 + 2 files changed, 94 insertions(+), 6 deletions(-) create mode 100755 website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/software_diagram_colored.svg diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md index 2e775ca23e3..e1d161a5639 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/index.md @@ -22,7 +22,9 @@ I am particularly interested in cars and networking. This project combines multi ## Architecture -![Architecture](schema_bloc.svg) +![Hardware diagram](schema_bloc.svg) + +Both the hardware and software diagrams are drawn in `draw.io`. The system is organized around five main subsystems: @@ -38,10 +40,10 @@ The L298N dual H-bridge receives PWM signals from the STM32 and drives 4 DC moto - 2x IR LM393 encoders: RPM feedback for PID **4. Communication Subsystem** -HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends raw keyboard characters (w, a, s, d, x, p), and the robot streams back high-efficiency text-based CSV telemetry (T,Load,Comp,Ax,Ay,Gz) at 10Hz to reduce microcontroller overhead. +HC-06 Bluetooth module connected to STM32 via UART. Bidirectional: laptop sends raw keyboard characters (w, a, s, d, x, p), and the robot streams back high-efficiency text-based CSV telemetry (T,Load,Comp,Ax,Ay,Gz,Slope) at 10Hz to reduce microcontroller overhead. **5. Display & Indicators Subsystem** -- OLED SSD1306 128x64 (I2C, address 0x3C, shared bus with IMU): displays active metrics like distance, encoder ticks, load %, and current power mode. +- OLED SSD1306 128x64 (I2C, address 0x3C, shared bus with IMU): displays active metrics like distance, encoder ticks, load %, slope, and current power mode. - 3x LEDs (green/blue/red) on GPIO: visual indicator of motor effort based on PWM duty cycle - PC Dashboard: Tkinter window with embedded real-time Matplotlib animation canvas displaying streaming physics graphs. @@ -121,11 +123,32 @@ the sensor locking issue. ### Week 18 - 24 May Finalized the closed-loop motor control by deploying a tuned PI velocity regulator ($K_P=35, K_I=15$) and locking the noisy derivative term ($K_D$) to zero. -Implemented a $7/8$ exponential moving average Low-Pass filter to smooth out encoder slot jitter, a rapid auto-calibration routine to sample target cruise speeds, and a 1.6-second startup "blind window" to stop the controller from confusing physical takeoff inertia with cargo load. -Built the custom companion PC interface using Python Tkinter and Matplotlib to handle low-latency key debouncing and animate the 10Hz text-based CSV telemetry streams in real time. +Implemented a $7/8$ exponential moving average Low-Pass filter to smooth out encoder slot jitter, a rapid auto-calibration routine that samples the target cruise RPM during the first seconds of movement and a 1.6-second startup blind window to stop the controller from confusing physical takeoff inertia with cargo load. + +Added another 2 compensation channels: +1. Yaw-rate correction (lateral drift): The gyroscope $G_z$ axis is sampled +at every PI loop tick (5 Hz). When the robot is commanded straight +(`w` / `s`) and a non-zero yaw rate is detected, caused by an +asymmetrically placed load or a difference in motor friction, the +controller applies an asymmetric PWM correction. The yaw mixer is disabled +during deliberate turns (`a` / `d`) via the `IS_TURNING` flag so that it +does not fight the intentional rotation. +It takes a few tries to get the right values. + +2. Slope detection and pre-emptive compensation: The accelerometer $A_y$ +axis (aligned with the driving direction after the IMU mounting orientation +was taken into account) is read each PI tick. The slope compensation is +clamped to +/- 30 % PWM. The result is published to `SLOPE_COMP` and added +**symmetrically** to both wheels in the motor loop, acting as a +feed-forward term that pre-emptively increases the +duty cycle before the PI loop has had time to react to the RPM drop. +Built the custom companion PC interface using Python Tkinter and Matplotlib +to handle low-latency key debouncing and animate the 10Hz text-based CSV +telemetry streams (`T,Load,Comp,Ax,Ay,Gz,Slope`) in real time. -## Hardware + +## Hardware design The robot is built on a 4WD chassis powered by four DC motors (3–6V) wired in parallel per side (skid steering) and driven by an L298N dual H-bridge. Speed is dynamically regulated via 1kHz PWM signals from the STM32, while directional control is managed through discrete GPIO pins. Two LM393 IR optical sensors read wheel encoder discs to provide real-time RPM feedback, which serves as the primary metric for the PI load-compensation algorithm. @@ -142,6 +165,68 @@ KiCad Schematic: ![KiCad Schematic](PM_PROJECT.svg) +## Software design +The entire program is `#![no_std]` and `#![no_main]`; +there is no heap, no operating system, and no RTOS scheduler, thus +all concurrency is cooperative and driven by `async`/`await`. + +### Concurrency Model + +Embassy runs a single-threaded cooperative executor. Every task is a Rust +`async fn` marked with `#[embassy_executor::task]`. Because only one task +runs at a time and tasks yield at every `.await` point, shared state can be +safely exchanged through **lock-free atomics** (`AtomicU32`, `AtomicI32`, +`AtomicBool`) for single-value reads/writes, and through an +`embassy_sync::channel::Channel` for the command queue. The I2C bus, which +is shared between the IMU and the OLED, is protected by an +`embassy_sync::mutex::Mutex` stored in a +`StaticCell` so that its `'static` lifetime can be passed to multiple tasks. + +I chose lock-free atomics because they are fast they can be used with ease +in more then 2 functions (if I used a channel instead of atomics it would have gotten +very complicated very fast). Atomics ar fast and simple. + + +### Global Shared State - Atomic Variables + +All inter-task communication goes through a flat set of `static` atomics. +The table below maps each atomic to the task that **writes** it and the tasks that **reads** it. + +| Atomic | Type | Writer | Readers | Meaning | +|--------|------|--------|---------|---------| +| `DIST_FRONT_CM` | `AtomicU32` | `distance_task` | `display_task`, `main` (motor) | Front HC-SR04 distance (cm) | +| `DIST_REAR_CM` | `AtomicU32` | `distance_task` | `display_task`, `main` (motor) | Rear HC-SR04 distance (cm) | +| `EMERGENCY_STOP_FRONT` | `AtomicBool` | `distance_task` | `main` (motor) | True when front obstacle < 15 cm | +| `EMERGENCY_STOP_REAR` | `AtomicBool` | `distance_task` | `main` (motor) | True when rear obstacle < 15 cm | +| `ENC_L_TICKS` | `AtomicU32` | `encoder_left_task` | `pid_task`, `display_task` | Cumulative left encoder ticks (20 per slot) | +| `ENC_R_TICKS` | `AtomicU32` | `encoder_right_task` | `pid_task`, `display_task` | Cumulative right encoder ticks | +| `IMU_AX` | `AtomicI32` | `imu_task` | `pid_task`, `telemetry_task` | Accel X x100 (% of 1 g) | +| `IMU_AY` | `AtomicI32` | `imu_task` | `pid_task`, `telemetry_task` | Accel Y x100, LPF-filtered | +| `IMU_AZ` | `AtomicI32` | `imu_task` | `telemetry_task` | Accel Z x100 | +| `IMU_GZ` | `AtomicI32` | `imu_task` | `pid_task`, `telemetry_task` | Yaw rate x100 (deg/s), LPF-filtered | +| `LOAD_PERCENT` | `AtomicU32` | `pid_task` | `display_task`, `telemetry_task` | Load % (0 = no load, 100 = motor blocked) | +| `PID_COMPENSATION` | `AtomicI32` | `pid_task` | `display_task`, `telemetry_task` | Symmetric PI output (% PWM delta) | +| `PID_COMP_LEFT` | `AtomicI32` | `pid_task` | `main` (motor) | Left wheel comp after yaw mixer | +| `PID_COMP_RIGHT` | `AtomicI32` | `pid_task` | `main` (motor) | Right wheel comp after yaw mixer | +| `SLOPE_COMP` | `AtomicI32` | `pid_task` | `main` (motor), `display_task`, `telemetry_task` | Feed-forward slope compensation (% PWM) | +| `PWM_LEFT_ACTUAL` | `AtomicU8` | `main` (motor) | `pid_task` | Actual left PWM duty sent to L298N | +| `PWM_RIGHT_ACTUAL` | `AtomicU8` | `main` (motor) | `pid_task` | Actual right PWM duty sent to L298N | +| `POWER_MODE` | `AtomicU8` | `main` (motor) | `display_task`, `telemetry_task` | 0=ECO, 1=DRIVE, 2=SPORT | +| `PID_CALIBRATED` | `AtomicBool` | `pid_task` | `display_task`, `telemetry_task`, `pid_task` | True once reference RPM is locked | +| `REFERENCE_RPM_X100` | `AtomicU32` | `pid_task` | `pid_task` | Calibrated cruise RPM x100 | +| `IS_TURNING` | `AtomicBool` | `main` (motor) | `pid_task` | True during `a`/`d` commands | + +The single channel: +| Channel | Type | Sender | Receiver | Meaning | +|---------|------|--------|----------|---------| +| `CMD_CHANNEL` | `Channel<_, u8, 4>` | `bluetooth_task` | `main` (motor) | Raw command bytes: `w s a d x p` | + + +### Software diagram + +![software_diagram](software_diagram_colored.svg) + + ### Bill of Materials diff --git a/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/software_diagram_colored.svg b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/software_diagram_colored.svg new file mode 100755 index 00000000000..27a2026cb55 --- /dev/null +++ b/website/versioned_docs/version-acs_cc/project/2026/andrei.rusanescu/software_diagram_colored.svg @@ -0,0 +1,3 @@ + + +
enocder_left
encoder_right
enocder_left...
pid_task (5Hz)

1. LPF encoder -> filtered_rpm
2. Slope feed-forward(Ay)
3. Auto-calibration
4. PI control -> PID comp
5. Yaw mixer (Gz):
  • PID_COMP_LEFT
  • PID_COMP_RIGHT
6. Publishes SLOPE_COMP_LOAD_PERCENT
pid_task (5Hz)...
EXTI edges
EXTI edges
ENC_L/R_TICKS
ENC_L/R_TICKS
imu_task (50Hz)
imu_task (50Hz)
IMU_AX/AY/AZ 
IMU_GZ, IS_TURNING
IMU_AX/AY/AZ...
display_task (2Hz)

SSD1306 OLED
128x64px
display_task (2Hz)...
I2C (shared)  Bus Mutex
I2C (shared)...
DIST_FRONT/REAR_CM
DIST_FRONT/REAR_CM
ENC_L/R_TICKS
LOAD_PERCENT
ENC_L/R_TICKS...
PID_COMP
SLOPE_COMP
POWER_MODE
PID_COMP...
main - motor loop (50Hz)

CMD_CHANNEL <- BT
ESTOP override
base_speed + comp_L/R + slope

main - motor loop (50Hz)...
PID_COMP_L/R
SLOPE_COMP
PID_COMP_L/R...
L298N
H-Bridge
L298N...
TIM15 PWM GPIO direction
TIM15 PWM GPIO d...
4x DC motors
4x DC moto...
IN1-IN4 GPIO
IN1-IN4 GP...
distance_task (8Hz)

front sensor
30ms gap
rear sensor
distance_task (8Hz)...
DIST_FRONT_CM
ESTOP_FRONT
DIST_FRONT_CM...
DIST_REAR_CM
ESTOP_REAR
DIST_REAR_CM...
bluetooth_task
(async RX)
bluetooth_task...
CMD_CHANNEL
CMD_CHANNEL
IMU_AY | IMU_GZ
IMU_AY | IMU_GZ
telemetry_task (10Hz TX)
CSV over BT
telemetry_task (10Hz...
LOAD_PERCENT
PID_COMPENSATION
IMU_AX/AY/GZ
SLOPE_COMP
LOAD_PERCENT...
\ No newline at end of file