From b62f3da9915a71ae297d9d5fd9beb7d36245f684 Mon Sep 17 00:00:00 2001 From: Roberto Lotan Date: Wed, 29 Apr 2026 14:50:27 +0300 Subject: [PATCH 1/9] project --- .../project/2026/roberto.lotan/index.md | 84 + .../project/2026/roberto.lotan/schematic.svg | 2112 +++++++++++++++++ 2 files changed, 2196 insertions(+) create mode 100644 website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md create mode 100644 website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md new file mode 100644 index 00000000000..0c42590f9a5 --- /dev/null +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md @@ -0,0 +1,84 @@ +# Shot Maker +A smart system that automatically prepares drink shots based on user selection. + +:::info + +**Author**: Lotan Roberto-Gabriel +**GitHub Project Link**: https://github.com/UPB-PMRust-Students/acs-project-2026-Adamura1 + +::: + +## Description + +Shot Maker is an automated system that prepares drink shots based on user input. The user selects a drink type from a display interface. Based on this selection, the system calculates the required quantity for each ingredient. + +Liquids are dispensed into a glass using pumps or valves. A weight sensor continuously measures the amount poured, and the system stops dispensing when the target weight is reached. For multi-ingredient drinks, each component is added proportionally. + +## Motivation + +The project aims to automate drink preparation while ensuring precision and repeatability. It explores embedded control systems applied to real-world tasks. + +## Architecture + +- **Input Layer**: touchscreen interface for selecting drink type +- **Processing Layer**: computes target weight and ingredient ratios +- **Actuation Layer**: controls pumps or valves +- **Measurement Layer**: load cell monitors real-time weight +- **Output Layer**: final drink in the glass + +### Flow Summary: +- User selects drink +- System computes ingredient weights +- Pumps dispense liquids +- Load cell measures continuously +- System stops at target weight + +## Log + +### Week 20-26 Apr +- Defined functionality +- Identified main components + +### Week 27-3 Apr +- [To be completed] + +### Week 4-10 Apr +- [To be completed] + +## Hardware + +- Microcontroller +- Load cell + HX711 +- Pumps / valves +- Tubing +- Display +- Power Source +- Load cell + +### Schematics +![alt text]() +### Photos + +### Bill of Materials + +| Device | Usage | Price | +|--------|--------|-------| +| [STM32 NUCLEO-U545RE-Q](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html) | Microcontroller (main control unit) | ~120 RON | +| [HX711 Load Cell Amplifier](https://www.optimusdigital.ro/ro/senzori-senzori-de-greutate/471-modul-hx711.html) | Converts load cell signal to digital | ~10 RON | +| [Load Cell 5kg](https://www.optimusdigital.ro/ro/senzori-senzori-de-greutate/468-celula-de-sarcina-5kg.html) | Measures weight of the liquid | ~15 RON | +| [Peristaltic Pump 12V](https://www.optimusdigital.ro/ro/cautare?controller=search&s=pompa+peristaltica) ×4 | Dispenses liquids | ~50 RON × 4 | +| [MOSFET Module IRF520](https://www.optimusdigital.ro/ro/cautare?controller=search&s=mosfet+irf520) ×4 | Controls pumps from microcontroller | ~5 RON × 4 | +| [LCD 16x2 I2C](https://www.optimusdigital.ro/ro/cautare?controller=search&s=lcd+1602+i2c) | User interface display | ~20 RON | +| [Power Supply 12V 3A](https://www.optimusdigital.ro/ro/cautare?controller=search&s=sursa+12v) | Powers pumps | ~40 RON | +| [Breadboard](https://www.optimusdigital.ro/ro/cautare?controller=search&s=breadboard) | Prototyping | ~15 RON | +| [Jumper Wires](https://www.optimusdigital.ro/ro/cautare?controller=search&s=fire+jumper) | Connections | ~10 RON | +| [Silicone Tubing](https://www.optimusdigital.ro/ro/cautare?controller=search&s=tub+silicon) | Liquid transport | ~15 RON | + +TOTAL: ~400–450 RON + +## Links + +* [Lab Materials](https://pmi.acs.pub.ro/) +* [About Rust](https://docs.rust-embedded.org/book/) +* [Youtube](https://youtu.be/Z7GkGeZrb2Y?is=evn5AIzjkZRhCvdm) +* [Youtube2](https://youtu.be/2DopvpNF7J4?is=vVKccLsi-WARQd98) \ No newline at end of file diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg new file mode 100644 index 00000000000..77606d52294 --- /dev/null +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg @@ -0,0 +1,2112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 440df534ad3cbfc29cc32e420bc40cc5830f6f1b Mon Sep 17 00:00:00 2001 From: Roberto Lotan Date: Wed, 13 May 2026 01:55:35 +0300 Subject: [PATCH 2/9] Proiect --- .../project/2026/roberto.lotan/index.md | 4 +- .../project/2026/roberto.lotan/schematic.svg | 2113 +---------------- 2 files changed, 4 insertions(+), 2113 deletions(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md index 0c42590f9a5..00814b7e3c2 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md @@ -65,7 +65,7 @@ The project aims to automate drink preparation while ensuring precision and repe |--------|--------|-------| | [STM32 NUCLEO-U545RE-Q](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html) | Microcontroller (main control unit) | ~120 RON | | [HX711 Load Cell Amplifier](https://www.optimusdigital.ro/ro/senzori-senzori-de-greutate/471-modul-hx711.html) | Converts load cell signal to digital | ~10 RON | -| [Load Cell 5kg](https://www.optimusdigital.ro/ro/senzori-senzori-de-greutate/468-celula-de-sarcina-5kg.html) | Measures weight of the liquid | ~15 RON | +| [Load Cell 1kg](https://www.optimusdigital.ro/ro/senzori-senzori-de-greutate/468-celula-de-sarcina-1kg.html) | Measures weight of the liquid | ~35 RON | | [Peristaltic Pump 12V](https://www.optimusdigital.ro/ro/cautare?controller=search&s=pompa+peristaltica) ×4 | Dispenses liquids | ~50 RON × 4 | | [MOSFET Module IRF520](https://www.optimusdigital.ro/ro/cautare?controller=search&s=mosfet+irf520) ×4 | Controls pumps from microcontroller | ~5 RON × 4 | | [LCD 16x2 I2C](https://www.optimusdigital.ro/ro/cautare?controller=search&s=lcd+1602+i2c) | User interface display | ~20 RON | @@ -74,7 +74,7 @@ The project aims to automate drink preparation while ensuring precision and repe | [Jumper Wires](https://www.optimusdigital.ro/ro/cautare?controller=search&s=fire+jumper) | Connections | ~10 RON | | [Silicone Tubing](https://www.optimusdigital.ro/ro/cautare?controller=search&s=tub+silicon) | Liquid transport | ~15 RON | -TOTAL: ~400–450 RON +TOTAL: ~450 RON ## Links diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg index 77606d52294..7e2f7a0c087 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg @@ -1,2112 +1,3 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
Alimentare
Alimentare
Regulator(12V->5V)
Regulator(12V->5V)
display si butoane
display si butoane
STM32
STM32
pompe
pompe
senzor de greutate
senzor de greutate
mosfet
mosfet
\ No newline at end of file From c95cf82d74ac2d8864d5fef61c86f0bf03fe21a6 Mon Sep 17 00:00:00 2001 From: "radu.georgescu2211" Date: Thu, 14 May 2026 03:26:13 +0300 Subject: [PATCH 3/9] Cu_schematic --- .../project/2026/roberto.lotan/schematic.svg | 4 +- .../version-fils_en/project/index.md | 182 ------------------ 2 files changed, 1 insertion(+), 185 deletions(-) delete mode 100644 website/versioned_docs/version-fils_en/project/index.md diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg index 7e2f7a0c087..eb82791e2f5 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg @@ -1,3 +1 @@ - - -
Alimentare
Alimentare
Regulator(12V->5V)
Regulator(12V->5V)
display si butoane
display si butoane
STM32
STM32
pompe
pompe
senzor de greutate
senzor de greutate
mosfet
mosfet
\ No newline at end of file + \ No newline at end of file diff --git a/website/versioned_docs/version-fils_en/project/index.md b/website/versioned_docs/version-fils_en/project/index.md deleted file mode 100644 index 9e0da7d110d..00000000000 --- a/website/versioned_docs/version-fils_en/project/index.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Description - -The goal of the project is to showcase the knowledge gained throughout the semester by creating functional hardware that runs software written in Rust. - -## Deliverables -The deliverables will be stored in two places: -- the project's *source code* will be stored on [Github](https://github.com/UPB-PMRust-Students) using the [project assignment](https://classroom.github.com/a/sVB0pKHF) -- the project's documentation page will be stored on the course's [Github](https://github.com/upb-pmrust/website) - -:::note -To start writing your project's source code, please accept the [project assignment](https://classroom.github.com/a/sVB0pKHF). This will create the project's source code repository for you. We will only review this repository/ -::: - -The **project's documentation page** should contain: -- the full documentation of the project, in the `index.md` file - - a description of the functionality - - the motivation for choosing the project - - the architecture - - a description of all components and how they interconnect - - a diagram drawn in [diagrams.net](https://app.diagrams.net/) or similar - - a weekly log of the project status - - hardware design - - a description of the hardware used - - a schematic drawn in [KiCad EDA](https://www.kicad.org/) or similar - - photos of the device - - software design - - detailed design - - functional diagram - - bill of materials (hardware and software) -- the photos and other files required by the index.md file - -:::warning - -You need to work in a fork of the [website's Github repository](https://github.com/upb-pmrust/website)'s repository and not in a blank one, in order to create a _pull request_, as described below. - -::: - -The **project's source code repository** should contain: -- a brief documentation - the repository's `README.md` file - - short description of the functionality - - requirements (hardware and software) - - brief hardware and software design, including diagrams -- software source code - -The repositories will be checked by the lab assistant during the lab reserved for the project. Uploading code on the last day of the software milestone is not allowed. **The assistant** will check that students have **submitted regular commits** to the repository. - -Students will have to build and showcase the hardware with the running software at PM Fair. On the presentation day, **students will upload the source code to the hardware** and the demo will be done live in front of the committee. - -## Website build pre-requisites - -:::danger Windows support -If you are using Windows, you will either need to install WSL2, for which you will find a detailed tutorial [here](https://learn.microsoft.com/en-us/windows/wsl/install), or use a VM with Ubuntu, Debian or another Linux based OS. -::: - -You will need to install `npm` and `node` and the simples way to do that can be found on [Node.js Official Website](https://nodejs.org/en/download/). - -:::note WSL2 -If you are using WSL2, you should follow the instructions for installing on Linux. -::: - -## How to create a page for your project? - -:::important Windows Users -These steps should be performed on inside your **VM**, or in **WSL2**, **not on your host machine**. -::: - -1. Please login using your account to [Github](https://github.com) -2. You will have to add an SSH Key to your Github account. This will allow you to push code without entering you username and password every time. For this, run the following command in the Windows/Linux/macOS's console: `ssh-keygen -t rsa -b 2048`. Press press ENTER until you exit the respective command prompts. - - If your command prompt `Overwrite (y/n)?` press `n` and run the above command again, changing the destination of the key. - - If the key was generated successfully, you will have the keys generated in the location indicated by the command `Enter file in which to save the key (/home/"NAME"/.ssh/id_rsa):` - - Read the content of the file `id_rsa.pub` or the name you gave to the file and transfer it to Github. - - Login to [Github](https://github.com/) and go to: [SSH Keys](https://github.com/settings/keys). - - Click on *Add new key* and insert into the *Key* textbox your key from `id_rsa.pub`. - - Be very careful about the expiration date of the ssh key, change the expiration date otherwise it is set to 30 days. - -3. [Download Git](https://git-scm.com) from the official website and access it in the command line using `git -v` to check if it was installed correctly. You might have to use *Git Bash*. -4. Navigate to the [website's Github repository](https://github.com/upb-pmrust/website) and create a public fork by clicking on the button in the top right corner. - -5. Clone the newly created repository by running `git clone git@github.com:/website.git`. - -6. Now you have your own clone. You need to create a new branch. For this, follow the steps: - - Navigate to your cloned repository - - Run the command: `git fetch` followed by the `git pull` command - - The branches have the following naming convention: `project/your_curs.upb.ro_username`. Example: `project/andrei_paul.zamfir` - - To create a new branch: - - `git checkout -b ` - - `git push --set-upstream origin project/your_curs.upb.ro_username` - -7. To start creating your page for the project, go to `website/versioned_docs/version-fils_en/project/2026` and create a new directory with your curs.upb.ro username. Example: `andrei_paul.zamfir`. - -8. In that directory you must create a file named `index.md` which will be your project page. This page must follow the project [template page](./2026/template.md) You can take a look at the [Markdown](https://www.markdownguide.org/cheat-sheet/) syntax. You can look at [last years' projects](https://github.com/UPB-PMRust/website/tree/main/website/versioned_docs/version-fils_en/project). - -9. To build and test the website, you can run the `./build_website.sh` in the project's root folder, then run `cd ./website/ && npm run serve`. - -:::note Development process -After running the script, you could run `npm run start` instead of `serve`. This would ensure that the changes you are making in your Markdown file reflect in the running build (without needing to rebuild the project over and over again). But make sure to re-run the build script when you are done, because some subtle bugs may not be caught by this method. -::: - -10. After finishing the project, make a _pull request_ to the [upstream repository](https://github.com/UPB-PMRust/website). Do not forget to change the Pull Request Description template to **project**. - -:::info Pull Request contents -The pull requests should contain only the Markdown page, and additional images in `svg` or `webp` format that must not exceed **1024x768** pixels. -::: - -## Hardware Rules - -1. Projects have to use a microcontroller (MCU) that is capable of running Rust code. Examples of MCUs are *nRF52*, *RP2040*, *ESP32* (RISC-V version). -2. Usage of a development board is encouraged, but not required, a custom PCB can be built. Example of development boards are: - - [Raspberry Pi Pico 2](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html) (RP2350) or [Raspberry Pi Pico 2W](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html) for WiFi (The version of Pico is not important, but we encourage the use of version 2.) - - [Adafruit Trinkey QT2040](https://www.adafruit.com/product/5056) (RP2040) - - [Arduino Nano RP2040 Connect](https://store.arduino.cc/products/arduino-nano-rp2040-connect) (RP2040) - ⚠️ [^arduino_nano_rp2040_connect] - - [micro:bit v2](https://microbit.org/) (nRF52833) - - [nRF52 DK](https://www.nordicsemi.com/Products/Development-hardware/nrf52-dk) (nRF52810) - - [STM32 NUCLEO-F401RE](https://ro.mouser.com/ProductDetail/STMicroelectronics/NUCLEO-F401RE?qs=sGAEpiMZZMuqBwn8WqcFUv%2FX0DKhApUpi46qP7WpjrffIid8Wo1rTg%3D%3D) - - [ESP32-C3-DevKit-RUST-1](https://www.espressif.com/en/dev-board/esp32-c3-devkit-rust-1-en) (ESP32-C3) - ⚠️ [^esp32_riscv] -3. The hardware part may be designed either using a breadboard and jumper wires, a prototype board (solder breadboard) or a PCB. If you want to use prototyping boards, ask the lab coordinator for help with soldering during lab hours. - -## Software Rules -It has to run software written in Rust. Students can use: -- [embassy-rs](https://embassy.dev/) -- [RTIC](https://rtic.rs/2/book/en/) -- [bare metal](https://docs.rs/cortex-m-rt/latest/cortex_m_rt) - the cortex-r-rt crate -- [Tock](https://www.tockos.org) -- any other software framework that is written in Rust - - -## Project Rules - -1. Copying schematics or source code from the Internet is not allowed. Any attempt to copy the project will be accompanied by the corresponding repercussions. -2. The project is individual, any attempt at collaborative work will be sanctioned, students can also carry out projects that interact, but the work must be separate. -3. Any problem or blockage you have will be discussed with the lab assistant during project work hours. -4. Students are strongly encouraged to ask the lab assistant questions about the project. -5. The presentation of all the milestones is mandatory. -6. The project topic must be established in week 5 and approved by the lab coordinator by week 6. After week 6, the topic cannot be changed. -7. The laboratory supervisor may modify the topic or propose another topic if it is not complex enough for this project. -8. We encourage you not to use prebuilt kits, you may get less points for the hardware part. - -## Requirements -1. *Complexity:* The project must reflect at least 40 hours of work and contain elements learned during the year. -2. *Documentation:* Complete documentation of the implementation for both hardware and software. -3. *Functionality:* The hardware device has to be fully functional. - -## Example Projects - -### Examples of projects from past years -1. [Projects from 2024](/docs/fils_en/category/projects-2025) -2. [Projects from 2024](/docs/fils_en/category/projects-2024) -3. https://ocw.cs.pub.ro/courses/pm/prj2022 -4. https://ocw.cs.pub.ro/courses/pm/prj2023 - -### Outstanding Projects -1. [POV - DAVIC picTronics](https://ocw.cs.pub.ro/courses/pm/prj2023/gpatru/376) -2. [Ryobo - Computer Vision & Object Following](https://ocw.cs.pub.ro/courses/pm/prj2023/gpatru/483) -3. [Plug & Play ChatGPT](https://ocw.cs.pub.ro/courses/pm/prj2023/ncaroi/plug) -4. [VENDING MACHINE](https://ocw.cs.pub.ro/courses/pm/prj2023/drtranca/vending.machine) - -## Grading - -| Part | Deadline | Points | -|--------|--------|--------| -| Documentation Milestone | Week 9 | 0.4p | -| Hardware Milestone | Week 11 | 0.8p | -| Software Milestone | Week 13 | 0.8p | -| PM Fair | Week 14 | 1p | -| **Total** | | **3p** | - -## F.A.Q -**Q:** Can I use another programming language, not Rust?\ -**A:** No, the main focus of the project is to learn to work with microcontrollers using Rust. - -**Q:** Can I use a different framework than [embassy-rs](https://github.com/embassy-rs/embassy)?\ -**A:** Yes, we suggest taking a look at [RTIC](https://rtic.rs/2/book/en/) or [Tock](https://github.com/tock/tock). - -**Q:** What if the PCB arrives after the hardware milestone?\ -**A:** You will only present the diagram for the hardware part and if there is a prototype using breadboard, but at the end of the project you must necessarily have the PCB printed and functional. - -[^arduino_nano_rp2040_connect]: Some function of this board, like WiFi, might not be supported in Rust. -[^esp32_riscv]: ESP32 provides its own Rust SDK described in the [The Rust on ESP Book](https://docs.esp-rs.org/book/introduction.html). From 9ba86b1cc94103a3913737c05aef5e58ab07201f Mon Sep 17 00:00:00 2001 From: "radu.georgescu2211" Date: Thu, 14 May 2026 23:14:24 +0300 Subject: [PATCH 4/9] Fixed faulty links --- .../project/2026/roberto.lotan/index.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md index 00814b7e3c2..8132bde5c72 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md @@ -63,16 +63,16 @@ The project aims to automate drink preparation while ensuring precision and repe | Device | Usage | Price | |--------|--------|-------| -| [STM32 NUCLEO-U545RE-Q](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html) | Microcontroller (main control unit) | ~120 RON | -| [HX711 Load Cell Amplifier](https://www.optimusdigital.ro/ro/senzori-senzori-de-greutate/471-modul-hx711.html) | Converts load cell signal to digital | ~10 RON | -| [Load Cell 1kg](https://www.optimusdigital.ro/ro/senzori-senzori-de-greutate/468-celula-de-sarcina-1kg.html) | Measures weight of the liquid | ~35 RON | -| [Peristaltic Pump 12V](https://www.optimusdigital.ro/ro/cautare?controller=search&s=pompa+peristaltica) ×4 | Dispenses liquids | ~50 RON × 4 | -| [MOSFET Module IRF520](https://www.optimusdigital.ro/ro/cautare?controller=search&s=mosfet+irf520) ×4 | Controls pumps from microcontroller | ~5 RON × 4 | -| [LCD 16x2 I2C](https://www.optimusdigital.ro/ro/cautare?controller=search&s=lcd+1602+i2c) | User interface display | ~20 RON | -| [Power Supply 12V 3A](https://www.optimusdigital.ro/ro/cautare?controller=search&s=sursa+12v) | Powers pumps | ~40 RON | -| [Breadboard](https://www.optimusdigital.ro/ro/cautare?controller=search&s=breadboard) | Prototyping | ~15 RON | -| [Jumper Wires](https://www.optimusdigital.ro/ro/cautare?controller=search&s=fire+jumper) | Connections | ~10 RON | -| [Silicone Tubing](https://www.optimusdigital.ro/ro/cautare?controller=search&s=tub+silicon) | Liquid transport | ~15 RON | +| [STM32 NUCLEO-U545RE-Q] | Microcontroller (main control unit) | ~120 RON | +| [HX711 Load Cell Amplifier] | Converts load cell signal to digital | ~10 RON | +| [Load Cell 1kg] | Measures weight of the liquid | ~35 RON | +| [Peristaltic Pump 12V] ×4 | Dispenses liquids | ~50 RON × 4 | +| [MOSFET Module IRF520] ×4 | Controls pumps from microcontroller | ~5 RON × 4 | +| [LCD 16x2 I2C] | User interface display | ~20 RON | +| [Power Supply 12V 3A] | Powers pumps | ~40 RON | +| [Breadboard] | Prototyping | ~15 RON | +| [Jumper Wires] | Connections | ~10 RON | +| [Silicone Tubing] | Liquid transport | ~15 RON | TOTAL: ~450 RON From 00df6d0bcd0c32db742c5aea460f5c6abbe5066a Mon Sep 17 00:00:00 2001 From: LotanRoberto <151750106+Adamura1@users.noreply.github.com> Date: Tue, 26 May 2026 19:37:00 +0300 Subject: [PATCH 5/9] Shot Maker project documentation --- .../project/2026/roberto.lotan/index.md | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md index 8132bde5c72..7623dbb14be 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md @@ -40,39 +40,42 @@ The project aims to automate drink preparation while ensuring precision and repe - Identified main components ### Week 27-3 Apr -- [To be completed] - +- Wired the STM32 Nucleo board +- Flashed the first Rust firmware via probe-rs + ### Week 4-10 Apr -- [To be completed] - +- Implemented HX711 driver and pump PWM +- Calibrated tare and pouring tolerance + ## Hardware -- Microcontroller -- Load cell + HX711 -- Pumps / valves -- Tubing -- Display -- Power Source -- Load cell +- STM32 Nucleo-U545RE-Q microcontroller +- SSD1306 OLED 128x64 (I2C) +- Load cell 1 kg + HX711 amplifier +- 3x 12V peristaltic pumps +- 3x N-channel logic-level MOSFETs + 1N4007 flyback diodes +- 2x momentary push buttons +- 12V / 5A power supply for the pumps +- 5V step-down regulator for logic ### Schematics -![alt text]() +![Schematic](schematic.svg) ### Photos ### Bill of Materials -| Device | Usage | Price | -|--------|--------|-------| -| [STM32 NUCLEO-U545RE-Q] | Microcontroller (main control unit) | ~120 RON | -| [HX711 Load Cell Amplifier] | Converts load cell signal to digital | ~10 RON | -| [Load Cell 1kg] | Measures weight of the liquid | ~35 RON | -| [Peristaltic Pump 12V] ×4 | Dispenses liquids | ~50 RON × 4 | -| [MOSFET Module IRF520] ×4 | Controls pumps from microcontroller | ~5 RON × 4 | -| [LCD 16x2 I2C] | User interface display | ~20 RON | -| [Power Supply 12V 3A] | Powers pumps | ~40 RON | -| [Breadboard] | Prototyping | ~15 RON | -| [Jumper Wires] | Connections | ~10 RON | -| [Silicone Tubing] | Liquid transport | ~15 RON | +| Device | Usage | Price | +|--------|-------|-------| +| STM32 NUCLEO-U545RE-Q | Microcontroller (main control unit) | ~120 RON | +| HX711 Load Cell Amplifier | Converts load cell signal to digital | ~10 RON | +| Load Cell 1kg | Measures weight of the liquid | ~35 RON | +| Peristaltic Pump 12V x3 | Dispenses liquids | ~50 RON x 3 | +| MOSFET IRLZ44N x3 | Controls pumps from microcontroller | ~5 RON x 3 | +| SSD1306 OLED 128x64 (I2C) | User interface display | ~25 RON | +| Power Supply 12V 5A | Powers pumps | ~50 RON | +| Breadboard | Prototyping | ~15 RON | +| Jumper Wires | Connections | ~10 RON | +| Silicone Tubing | Liquid transport | ~15 RON | TOTAL: ~450 RON @@ -80,5 +83,5 @@ TOTAL: ~450 RON * [Lab Materials](https://pmi.acs.pub.ro/) * [About Rust](https://docs.rust-embedded.org/book/) -* [Youtube](https://youtu.be/Z7GkGeZrb2Y?is=evn5AIzjkZRhCvdm) -* [Youtube2](https://youtu.be/2DopvpNF7J4?is=vVKccLsi-WARQd98) \ No newline at end of file +* [Youtube](https://youtu.be/Z7GkGeZrb2Y) +* [Youtube2](https://youtu.be/2DopvpNF7J4) From 58364089fe8906c33776db384f790b080400bcd6 Mon Sep 17 00:00:00 2001 From: LotanRoberto <151750106+Adamura1@users.noreply.github.com> Date: Tue, 26 May 2026 19:43:17 +0300 Subject: [PATCH 6/9] Resolved --- .../version-acs_cc/project/2026/roberto.lotan/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md index 7623dbb14be..fe4216eae92 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md @@ -3,7 +3,8 @@ A smart system that automatically prepares drink shots based on user selection. :::info -**Author**: Lotan Roberto-Gabriel +**Author**: Lotan Roberto-Gabriel \ + **GitHub Project Link**: https://github.com/UPB-PMRust-Students/acs-project-2026-Adamura1 ::: From ef64d286edf4f6612cb11c72b832084924c747c2 Mon Sep 17 00:00:00 2001 From: LotanRoberto <151750106+Adamura1@users.noreply.github.com> Date: Tue, 26 May 2026 20:12:06 +0300 Subject: [PATCH 7/9] Shot Maker No Links --- .../version-acs_cc/project/2026/roberto.lotan/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md index fe4216eae92..59cf73eb38d 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/index.md @@ -82,7 +82,6 @@ TOTAL: ~450 RON ## Links -* [Lab Materials](https://pmi.acs.pub.ro/) * [About Rust](https://docs.rust-embedded.org/book/) * [Youtube](https://youtu.be/Z7GkGeZrb2Y) * [Youtube2](https://youtu.be/2DopvpNF7J4) From a036709a02d4c6de74b9b3856e93d3e9bf74ae18 Mon Sep 17 00:00:00 2001 From: LotanRoberto <151750106+Adamura1@users.noreply.github.com> Date: Tue, 26 May 2026 20:35:45 +0300 Subject: [PATCH 8/9] Add files via upload --- .../project/2026/roberto.lotan/schematic.svg | 111 +++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg index eb82791e2f5..d59e47bbc20 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg @@ -1 +1,110 @@ - \ No newline at end of file + + + + + + + + + + Shot Maker + + + + STM32 Nucleo + U545RE-Q + + + + OLED 128×64 + + + + 2× Buttons + + + + Load Cell + + HX711 + + + + Pump 1 + MOSFET + PWM + + + + Pump 2 + MOSFET + PWM + + + + Pump 3 + MOSFET + PWM + + + + Power 12V / 5V + + + + Glass on Scale + + + + I2C + + GPIO + + DT/SCK + + + + PWM + + PWM + + PWM + + + + + + +12V + + + + + +5V + + + + + + tubing + + + + + MCU + + UI + + Sensing + + Pumps + + Power + + From c0c90b850cfb19ef4d90067c93164a251c170026 Mon Sep 17 00:00:00 2001 From: LotanRoberto <151750106+Adamura1@users.noreply.github.com> Date: Tue, 26 May 2026 20:38:02 +0300 Subject: [PATCH 9/9] Schematic bun Removed comments from schematic SVG for clarity. --- .../project/2026/roberto.lotan/schematic.svg | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg index d59e47bbc20..16ade00846c 100644 --- a/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg +++ b/website/versioned_docs/version-acs_cc/project/2026/roberto.lotan/schematic.svg @@ -20,48 +20,38 @@ Shot Maker - STM32 Nucleo U545RE-Q - OLED 128×64 - 2× Buttons - Load Cell + HX711 - Pump 1 MOSFET + PWM - Pump 2 MOSFET + PWM - Pump 3 MOSFET + PWM - Power 12V / 5V - Glass on Scale - I2C @@ -69,7 +59,6 @@ DT/SCK - PWM @@ -77,7 +66,6 @@ PWM - @@ -88,13 +76,11 @@ +5V - tubing - MCU