-
Notifications
You must be signed in to change notification settings - Fork 527
Project/valentin.ogrezeanu #1055
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
valeogre
wants to merge
5
commits into
UPB-PMRust:main
Choose a base branch
from
valeogre:project/valentin.ogrezeanu
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
11a2971
add project page for valentin.ogrezeanu
valeogre 2422328
added index.md and architecture image
valeogre 618137e
Update index.md
valeogre 8683d46
Merge branch 'UPB-PMRust:main' into project/valentin.ogrezeanu
valeogre e76cb0c
Merge branch 'main' into project/valentin.ogrezeanu
valeogre File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
99 changes: 99 additions & 0 deletions
99
.../version-acs_cc/project/2026/valentin.ogrezeanu/images/deskbot_architecture.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
58 changes: 58 additions & 0 deletions
58
website/versioned_docs/version-acs_cc/project/2026/valentin.ogrezeanu/index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| # DeskBot - Desktop Robot with Personality | ||
|
|
||
| A small autonomous desk robot with a mood engine, face animations, and wireless control. | ||
|
|
||
| :::info | ||
|
|
||
| **Author**: Ogrezeanu Valentin Alexandru \ | ||
| **GitHub Project Link**: https://github.com/UPB-PMRust-Students/acs-project-2026-valeogre | ||
|
|
||
| ::: | ||
|
|
||
| ## Description | ||
|
|
||
| DeskBot is a small 2WD desk robot with its own personality. An OLED display acts as its face, showing different animations based on an internal mood engine — curious, happy, alert or idle — which evolves over time based on interactions. It navigates autonomously, avoids obstacles, detects desk edges, and tracks sound sources. It can also be controlled manually via a wireless IMU-based handheld controller that receives live telemetry back from the robot. | ||
|
|
||
| ## Motivation | ||
|
|
||
| I chose this project after watching videos of small interactive robots and finding the concept genuinely interesting. The idea of a robot that feels alive through animations and behavioral states — rather than just moving around — made it stand out. Even in its first iteration, rougher and bigger than ideal, it has the potential to be a fun study buddy for a desk setup. It also covers a wide range of embedded concepts: state machines, PID control, wireless communication, sensor fusion and real-time display rendering, all in Rust. | ||
|
|
||
| ## Architecture | ||
|
|
||
| **Main components:** | ||
|
|
||
| - **STM32 Nucleo-U545RE-Q** - central microcontroller, runs all logic | ||
| - **State Machine** - core behavioral engine, manages transitions between IDLE, ROAMING, ALERT, HAPPY, CONTROLLED states | ||
| - **Mood Engine** - internal variables (energy, curiosity, sociability) that evolve based on interactions and environment | ||
| - **Navigation Module** - ultrasonic sweep on servo + IR edge detection + LDR + closed-loop PID on encoders | ||
| - **Sound Tracker** - two microphones, detects sound direction and orients the robot toward it | ||
| - **OLED Face** - renders animations and info dashboard based on current state | ||
| - **Wireless Link** - nRF24L01 bidirectional communication between robot and handheld | ||
| - **Handheld Controller** - MPU6050 IMU for tilt-based gesture control + OLED for live telemetry | ||
|
|
||
| **Connections:** | ||
| State machine owns the global robot state. All other modules communicate with it via Embassy channels and signals — no shared state directly between tasks. | ||
|
|
||
| ## Log | ||
|
|
||
| ### Week 5 - 11 May | ||
|
|
||
| ### Week 12 - 18 May | ||
|
|
||
| ### Week 19 - 25 May | ||
|
|
||
| ## Hardware | ||
|
|
||
|
|
||
| ### Schematics | ||
|
|
||
| *KiCAD schematics to be added* | ||
|
|
||
| ## Software | ||
|
|
||
|
|
||
|
|
||
| ## Links | ||
|
|
||
| 1. https://www.youtube.com/watch?v=ktWnwJ-e-_w | ||
| 2. https://www.youtube.com/watch?v=3hjvpyjxPsk |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This documentation is mostly empty, please update it.