You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 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>
Copy file name to clipboardExpand all lines: website/versioned_docs/version-fils_en/project/2026/teodora.bosie/index.md
+45-10Lines changed: 45 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,13 +31,19 @@ I ordered the components and started to figure out how I wanted the 3D chassis t
31
31
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.
32
32
# Week 10
33
33
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.
34
40
35
41
## Hardware
36
42
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.
37
43
38
44
### Schematics
39
45
40
-

46
+

41
47
42
48
### Bill of Materials
43
49
@@ -53,26 +59,55 @@ The hardware platform of the project is centered around the STM32 Nucleo-U545RE-
|[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 |
55
61
|[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|
57
63
|[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 |
58
64
|[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 |
59
65
|[18650 Li-Ion Battery]| Onboard power storage |~borrowed |
60
66
|[18650 Battery Holder](https://ardushop.ro/en/electronics/31-1x-18650-battery-holder-6427854027979.html)| Physical casing/contacts for the battery |~2,18 RON |
61
67
|[ESP32 ESP-WROOM-32](https://www.espressif.com/en/products/socs/esp32)| WiFi telemetry for remote monitoring |~borrowed |
|[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
+
63
71
64
72
## Software
65
73
66
74
| Library | Description | Usage |
67
75
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 |
|[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 |
0 commit comments