Skip to content

Commit 3e24385

Browse files
Project/teodora.bosie (#1384)
* Finalizare pagina documentatie si adaugare schema * fix image path * Reparare format imagine * Schimbare nume imagine in lower case * Trig pipeline update * Updated the image format and added week 10 * Added Kicad scheme * Fixed schematic image size to meet PR requirements * I added the kicad schematic in svg format, I can't make it smaller due to the large number of components * Dimension of the svg modified * Dimension of the svg modified finally right * final touches to the website * Comprimat SVG KiCAD sub limita de 380KB --------- Co-authored-by: Lisman Victor-Alexandru <62936850+victorlisman@users.noreply.github.com>
1 parent 82c9ede commit 3e24385

2 files changed

Lines changed: 46 additions & 10 deletions

File tree

website/versioned_docs/version-fils_en/project/2026/teodora.bosie/images/solar_final.svg

Lines changed: 1 addition & 0 deletions
Loading

website/versioned_docs/version-fils_en/project/2026/teodora.bosie/index.md

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,19 @@ I ordered the components and started to figure out how I wanted the 3D chassis t
3131
My components arrived and I started to look into the photoresistors functionality and sensitivity to the light intesity of the sun. I also struggled with using a soldering iron for the first time.
3232
# Week 10
3333
I started my rover design and decided to have some floors inside the internal structure in order to have a better organization of the jumpers. The first level will be for the battery and breadboard whereas the second one will be for the STM32 microprocessor and the L98N module with a 5.5 cm distance between them. Also, I want to update my hardware complexity for which I have ordered a OLED I2C(SSD1306), giving more personality to my robot.
34+
# Week 11
35+
I started printing, and while the 3D matches my vision overall, I quickly realized I had forgotten a few technical details regarding the mounting tolerances. It took some adjustments and tweaking, but I eventually managed to put together a fully functional design. On the software side, I finally started diving into the code. I began testing the sensors by running some basic scripts at first, just to verify that they were communicating properly and actually sending data.
36+
# Week 12
37+
I continued with the sensor testing and bumped into a frustrating issue with the L298N motor driver. I assumed it was dead and bought a replacement. To my surprise, I discovered that the real issue was that I wasn't powering it correctly; being a budget module, the L298N requires a significantly higher current than I was providing. To make testing easier, I also wired in a physical switch to turn the motors on and off. This allowed me to safely run an analysis on the sensors and calibrate some accurate peak and low threshold values without the robot trying to drive off my desk.
38+
# Week 14
39+
I mounted all the components onto the robot, but immediately ran into problems with the ultrasonic sensor, which refused to return any readings, so I swapped it out. Power distribution also became a major headache. I had to give up on powering the STM32 from the Li-ion battery because the setup was faulty and inconsistent. Ultimately, to guarantee everything works smoothly for the presentation day, I made the practical decision to just use an external power bank to reliably power both MCUs.
3440

3541
## Hardware
3642
The hardware platform of the project is centered around the STM32 Nucleo-U545RE-Q development board, which acts as the main MCU of the rover. Two 3V-6V DC gear motors are used for the differential drive propulsion, paired with a ball caster for stability, and are interfaced with the MCU via an L298N Dual H-Bridge motor driver. An array of four LDR photoresistors is utilized for 360-degree directional light tracking, alongside a GUVA-S12SD UV sensor for detecting high-intensity radiation and an HC-SR04 ultrasonic sensor for obstacle avoidance. Wireless connectivity for remote telemetry is provided by an ESP32 WiFi module.Energy harvesting and power management are handled by a 5V photovoltaic panel that trickle-charges an onboard 18650 Li-Ion battery via a TP4056 charger and an MT3608 step-up regulator. The mechanical structure of the rover itself is manufactured using a custom 3D-printed modular frame, featuring a two-tier chassis that houses the electronics and powertrain on the lower deck and a conical universal pot holder on the upper deck.
3743

3844
### Schematics
3945

40-
![KICAD Scheme](images/solar_kicad.svg)
46+
![KICAD Scheme](images/solar_final.svg)
4147

4248
### Bill of Materials
4349

@@ -53,26 +59,55 @@ The hardware platform of the project is centered around the STM32 Nucleo-U545RE-
5359
| [LDR (Photoresistors)](https://electronicmarket.ro/ldr-rezistent-sensibil-la-lumina-fotorezistor-5mm?search=ldr) | Quad-array (360 °) for directional light tracking | ~1,12RON |
5460
| [GUVA-S12SD UV Sensor](https://electronicmarket.ro/senzor-de-intensitate-uv-soare-240nm-370nm-guva-s12sd?search=guva) | Safety for high-intensity radiation | ~24,93 RON |
5561
| [HC-SR04 Ultrasonic Sensor](https://ardushop.ro/en/electronics/2289-ultrasonic-sensor-module-hc-sr04-6427854030726.html) | Obstacle avoidance during navigation | ~5,65 RON |
56-
| [5V Photovoltaic Panel]() | Energy harvesting for battery trickle-charging | ~not purchased yet |
62+
| [5V Photovoltaic Panel](https://sigmanortec.ro/Panou-solar-5V-1W-p130575921) | Energy harvesting for battery trickle-charging | ~25,45 RON |
5763
| [TP4056 Li-Ion Charger](https://electronicmarket.ro/tp4056-tip-c-protejat-modul-de-incarcare-baterie-litiu-litiu?search=tp%204056) | Li-Ion battery charging module | ~4,60 RON |
5864
| [MT3608 Step-up Module](https://electronicmarket.ro/modul-mt3608-2a-dc-dc-step-up-convertor-tensiune-arduino?search=MT3608) | 5V voltage regulation/boost | ~5,01 RON |
5965
| [18650 Li-Ion Battery] | Onboard power storage | ~borrowed |
6066
| [18650 Battery Holder](https://ardushop.ro/en/electronics/31-1x-18650-battery-holder-6427854027979.html) | Physical casing/contacts for the battery | ~2,18 RON |
6167
| [ESP32 ESP-WROOM-32](https://www.espressif.com/en/products/socs/esp32) | WiFi telemetry for remote monitoring | ~borrowed |
6268
| [3D Printed Frame] | Custom-designed modular mechanical structure | ~3D printer owned |
69+
| [OLED Display 0.96" I2C IIC](https://sigmanortec.ro/Display-OLED-0-96-I2C-IIC-Albastru-p135055705) | Used for showing the rover spefic mode through a facial expression | ~18.97 |
70+
6371

6472
## Software
6573

6674
| Library | Description | Usage |
6775

68-
| [embassy-stm32](https://crates.io/crates/embassy-stm32) | Hardware abstraction layer for STM32 microcontrollers | Provides the HAL for ADC (sensors), PWM (motors), and UART (WiFi) |
69-
| [embassy-executor](https://crates.io/crates/embassy-executor) | Async task executor for embedded systems | The async runtime allowing simultaneous navigation and sensor polling |
70-
| [embassy-time](https://crates.io/crates/embassy-time) | Time management utilities | For high-precision timing required by the ultrasonic sensor |
71-
| [defmt](https://crates.io/crates/defmt) | Lightweight embedded logging framework | Modern logging for real-time debugging |
72-
| [defmt-rtt](https://crates.io/crates/defmt-rtt) | RTT transport for defmt logs | Transmits the real-time debugging logs via RTT |
73-
| [static_cell](https://crates.io/crates/static_cell) | Static memory allocation utility | Ensures safe, static memory allocation for hardware peripherals |
74-
| [embedded-hal](https://crates.io/crates/embedded-hal) | Hardware abstraction layer traits | Provides standard traits for sensor driver interoperability |
75-
| [panic-probe](https://crates.io/crates/panic-probe) | Panic handler for embedded debugging | Safety crate for immediate error reporting and system halt |
76+
| embassy-stm32 | Hardware abstraction layer for STM32 microcontrollers | Provides the HAL for ADC (sensors), PWM (motors), I2C (OLED), UART (telemetry), EXTI (ultrasonic), and DMA/interrupt bindings |
77+
78+
| embassy-executor | Async task executor for embedded systems | The async runtime allowing simultaneous navigation, motor control, display updates, and sensor polling |
79+
80+
| embassy-time | Time management utilities | High-precision timing for ultrasonic echo measurement, periodic sensor loops, and motor self-test delays |
81+
82+
| embassy-sync | Async synchronization primitives | Shared rover state (Mutex) and motor command passing (Channel) between tasks |
83+
84+
| cortex-m | Cortex-M low-level support | Core/peripheral access and critical-section support for bare-metal firmware |
85+
86+
| cortex-m-rt | Cortex-M runtime | Startup and interrupt runtime for the STM32 firmware |
87+
88+
| defmt | Lightweight embedded logging framework | Structured real-time debugging logs (navigation state, motor commands, telemetry) |
89+
90+
| defmt-rtt | RTT transport for defmt logs | Transmits debugging logs over the ST-Link debug probe |
91+
92+
| panic-probe | Panic handler for embedded debugging | Safety crate for immediate error reporting and system halt |
93+
94+
| heapless | Heapless data structures | Fixed-capacity String for UART JSON telemetry payloads (no heap allocation) |
95+
96+
| embedded-hal | Hardware abstraction layer traits | Standard PWM traits used by the motor driver layer |
97+
98+
| embedded-graphics | Embedded drawing library | Draws status icons/shapes on the OLED display |
99+
100+
| ssd1306 | SSD1306 OLED display driver | Controls the 128×64 OLED over I2C |
101+
102+
| esp-idf-hal | ESP-IDF hardware abstraction layer | ESP32 peripheral access and integration with the ESP-IDF runtime |
103+
104+
| esp-idf-svc | ESP-IDF services layer | Higher-level ESP-IDF services (e.g. Wi-Fi/networking and event handling) |
105+
106+
| anyhow | Flexible error handling | Propagates setup/runtime errors on the ESP32 side |
107+
108+
| log | Logging facade | Logging interface for the ESP32 firmware (backed by ESP-IDF logger) |
109+
110+
| embuild | ESP-IDF build integration (build dependency) | Build-time glue for compiling/linking against ESP-IDF |
76111

77112
## Links
78113

0 commit comments

Comments
 (0)