Skip to content

Commit 87fb7fd

Browse files
authored
Project/delia maria.rizescu (#1203)
* Vending machine: add description, motivation and arhitecture * update arthitecture diagram * fix diagram path * Add links * add hardware * resize images
1 parent 82aa6dc commit 87fb7fd

6 files changed

Lines changed: 64 additions & 27 deletions

File tree

website/versioned_docs/version-acs_cc/project/2026/delia_maria.rizescu/images/arhitectura1.svg

Lines changed: 4 additions & 0 deletions
Loading
180 KB
Loading
137 KB
Loading
176 KB
Loading
140 KB
Loading

website/versioned_docs/version-acs_cc/project/2026/delia_maria.rizescu/index.md

Lines changed: 60 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,66 +21,99 @@ The project is divided into a few main parts that work together.
2121

2222
Main Architectural Components:
2323

24-
1. Payment Processing Unit (Input)
25-
Role: Handles credit validation
26-
Components: RFID RC522 (digital payment) and Limit Switch (physical coin detection)
24+
1. **Payment Processing Unit (Input)**
25+
* **Role:** Handles credit validation.
26+
* **Components:** RFID RC522 (digital payment) and Limit Switch (physical coin detection)
2727

28-
2. User Interface (I/O)
29-
Role: Responsible for user selections and provides feedback.
30-
Components: 4x Push Buttons, LCD, and Passive Buzzer.
28+
2. **User Interface (I/O)**
29+
* **Role:** Responsible for user selections and provides feedback.
30+
* **Components:** 4x Push Buttons, LCD and Passive Buzzer.
3131

32-
3. Dispensing and Change System (Output)
33-
Logic: Manages the mechanical release of products and the return of change.
34-
Components: 4x Stepper Motors and SG90 Servo (coin release).
32+
3. **Dispensing and Change System (Output)**
33+
* **Logic:** Manages the mechanical release of products and the return of change.
34+
* **Components:** 4x Stepper Motors and SG90 Servo (coin release).
3535

3636

37-
![Architecture Diagram](images/diagrama_arhitectura.svg)
37+
![Architecture Diagram](images/arhitectura1.svg)
3838

3939
## Log
4040

4141
<!-- write your progress here every week -->
4242

43-
### Week 5 - 11 May
43+
### Week 20 - 26 April
4444

45-
### Week 12 - 18 May
45+
* Researche suitable motors for the project, as well as how to implement the coin detection system and the change mechanism.
46+
* Order hardware components.
47+
48+
### Week 27 April - 3 May
49+
50+
* Designed and built the vending machine structure, featuring four product compartments, with two compartments on each row.
51+
52+
### Week 4 - 10 May
53+
54+
* Assembled the hardware components inside the vending machine structure and completed the breadboard wiring.
4655

47-
### Week 19 - 25 May
4856

4957
## Hardware
58+
The vending machine is controlled by an STM32U5 microcontroller that manages all system operations. It integrates an MFRC522 RFID reader and push buttons for inputs, while using an I2C LCD 1602 for the display. The physical dispensing is handled by four stepper motors and the coin-return mechanism is driven by a servo motor.
5059

51-
Detail in a few words the hardware used.
60+
* **STM32U545 Nucleo:** The central microcontroller that executes the Rust firmware to process the system logic and coordinate all other parts.
5261

53-
### Schematics
62+
* **MFRC522 RFID Reader:** An SPI-based card scanner used to authorize admin transactions.
5463

55-
Place your KiCAD or similar schematics here in SVG format.
64+
* **28BYJ-48 Stepper Motors & ULN2003 Drivers:** Used to rotate the dispensing spirals inside the compartments.
5665

57-
### Bill of Materials
66+
* **LCD 1602 Display with PCF8574 I2C Adapter:** Provides real-time instructions, credit status, and feedback using only two I2C wires.
5867

59-
<!-- Fill out this table with all the hardware components that you might need.
68+
* **SG90 Servo Motor:** A micro servo used to operate the physical change coin mechanism.
6069

61-
The format is
62-
```
63-
| [Device](link://to/device) | This is used ... | [price](link://to/store) |
70+
* **Push Buttons & Limit Switch:** Act as the physical user interface for product selection and mechanical coin detection.
6471

65-
```
72+
![circuit](images/circuit1.webp)
73+
![circuit](images/circuit2.webp)
74+
![circuit](images/circuit3.webp)
6675

67-
-->
76+
### Schematics
77+
78+
![Schematics](images/schematics.webp)
79+
80+
### Bill of Materials
6881

6982
| Device | Usage | Price |
7083
|--------|--------|-------|
71-
| [STM32](https://www.st.com/resource/en/datasheet/stm32f722ic.pdf) | The microcontroller | 110 RON |
84+
| [STM32](https://www.st.com/resource/en/datasheet/stm32f722ic.pdf) | The microcontroller | Provided by faculty |
85+
| [Endstop limit switch](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=166&bt_gsr_order_id=123878&source_url=account_page) | Used as a coin detector | 5.23 RON |
86+
| [Motor Stepper](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=482&bt_gsr_order_id=123878&source_url=account_page) | Used to rotate the dispensing spirals inside the vending machine | 4 X 10.29 RON |
87+
| [Driver motor stepper](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=151&bt_gsr_order_id=123878&source_url=account_page) | A stepper motor driver boosts STM32 signals to power the motor | 3 X 4.53 RON |
88+
| [RFID](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=267&bt_gsr_order_id=123878&source_url=account_page) | Used to scan admin cards to grant free product | 9.53 RON |
89+
| [Wires](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=8&bt_gsr_order_id=123878&source_url=account_page) | Used to create all electrical connections | 31.96 RON |
90+
| [I2C LCD Interface](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=397&bt_gsr_order_id=123878&source_url=account_page) | An I2C LCD interface changes a parallel connection into a 2-wire serial connection, saving STM32 pins| 5.11 RON |
91+
| [LCD 1602 Display](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=292&bt_gsr_order_id=123878&source_url=account_page) | Used to show user instructions, current credit, product selection | 11.18 RON |
92+
| [Breadoard 400](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=56&bt_gsr_order_id=123878&source_url=account_page) | Used to distribute power and connect components | 2 X 6.62 RON |
93+
| [Servomotor SG90](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=689&bt_gsr_order_id=123878&source_url=account_page) | Used for the change mechanism that dispenses coins back to the user | 9.49 RON |
94+
| [Push Buttons, 12x12x7.3mm](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=62&bt_gsr_order_id=123878&source_url=account_page) | Used as product selection buttons | 4 X 1.33 RON |
95+
| [Buzzer pasiv](https://sigmanortec.ro/product-reviews-add-from-email?bt_gsr_product_id=347&bt_gsr_order_id=123878&source_url=account_page) | Used to generate acoustic feedback | 5.03 RON |
96+
| Total | | 155.37 RON |
97+
98+
7299

73100

74101
## Software
75102

76103
| Library | Description | Usage |
77104
|---------|-------------|-------|
78-
| [st7789](https://github.com/almindor/st7789) | Display driver for ST7789 | Used for the display for the Pico Explorer Base |
79-
| [embedded-graphics](https://github.com/embedded-graphics/embedded-graphics) | 2D graphics library | Used for drawing to the display |
105+
| [embassy-stm32](https://github.com/embassy-rs/embassy/tree/main/embassy-stm32) | STM32 driver library | Configures GPIO, I2C, SPI, and PWM. |
106+
| [embassy-executor](https://github.com/embassy-rs/embassy) | Async executor | Used for running the async main loop. |
107+
| [embassy-time](https://github.com/embassy-rs/embassy) | Async time utilities | Used for non-blocking delays. |
108+
| [defmt](https://github.com/knurling-rs/defmt) | Embedded debugging tool | Used for debug and info. |
109+
| [defmt-rtt](https://github.com/knurling-rs/defmt) | RTT transport for defmt | Used to transmit defmt logs over the debug probe. |
110+
| [heapless](https://github.com/rust-embedded/heapless) | Static data structures | Allocates text buffers for the LCD display. |
111+
| [panic-probe](https://github.com/knurling-rs/probe-run) | Panic handler for debugging | Prints error info. |
112+
80113

81114
## Links
82115

83116
1. [Hardware Ideas and Design](https://www.youtube.com/watch?v=DO3AciBz_-A&t=5s)
84117
2. [Lab Support](https://embedded-rust-101.wyliodrin.com/docs/acs_cc/category/lab)
85118
3. [DIY Coin Dispenser](https://www.youtube.com/watch?v=V7L139xnTR0)
86-
4. [Vending Machine Mechanism](https://www.youtube.com/watch?v=-gdm71P1k9c&t=2s)
119+
4. [Vending Machine Mechanism](https://www.youtube.com/watch?v=-gdm71P1k9c&t=2s)

0 commit comments

Comments
 (0)