|
| 1 | +# Quadraped Robot |
| 2 | +A bluetooth-controlled spider robot that can move around via 8 servos. |
| 3 | + |
| 4 | +:::info |
| 5 | + |
| 6 | +**Author**: Alexandru-Bogdan Gherghiceanu \ |
| 7 | +**GitHub Project Link**: https://github.com/UPB-PMRust-Students/acs-project-2026-alexgherghiceanu |
| 8 | + |
| 9 | +::: |
| 10 | + |
| 11 | +<!-- do not delete the \ after your name --> |
| 12 | + |
| 13 | +## Description |
| 14 | + |
| 15 | +This project is a bluetooth controlled spider robot that you can sync up to your phone/tablet. From your device you can control it's speed,direction of travel and issue it extra gestures and commands, such as a wave. |
| 16 | + |
| 17 | +## Motivation |
| 18 | + |
| 19 | +From a young age, I have been interested in robots and the process of building them. Futhermore, I have been following the |
| 20 | +progress of boston dynamics projects for a long time, so I knew that I wanted to build a quadraped robot myself. When I recently |
| 21 | +watched the movie Project Hail Mary, I decided that a spider is the best shape for my project to take. |
| 22 | + |
| 23 | +## Architecture |
| 24 | +```mermaid |
| 25 | +flowchart TD |
| 26 | + subgraph ext ["External Inputs"] |
| 27 | + U["Android/iOS Device"] |
| 28 | + BT_Mod["HM-10 Bluetooth Module"] |
| 29 | + end |
| 30 | +
|
| 31 | + subgraph stm ["STM32 Microcontroller (Rust Code)"] |
| 32 | + BTH["Bluetooth Handler Module"] |
| 33 | + MP["Motion Planner Module"] |
| 34 | + KE["Kinematics Engine (IK) Module"] |
| 35 | + I2C["I2C Controller Module"] |
| 36 | + end |
| 37 | +
|
| 38 | + subgraph periph ["Logic Peripherals"] |
| 39 | + ServoD["PCA9685 Servo Driver Module"] |
| 40 | + Motors["Servomotors (x8)"] |
| 41 | + end |
| 42 | +
|
| 43 | + U -- "Bluetooth (BLE) Commands" --> BT_Mod |
| 44 | + BT_Mod -- "Serial Data (UART)" --> BTH |
| 45 | + BTH -- "Parsed Command (e.g., 'F', 'L', 'W')" --> MP |
| 46 | + MP -- "Pose/Leg Positions (X,Y,Z)" --> KE |
| 47 | + KE -- "Servo Angles" --> I2C |
| 48 | + I2C -- "I2C Commands" --> ServoD |
| 49 | + ServoD -- "PWM Signals" --> Motors |
| 50 | +``` |
| 51 | +## Log |
| 52 | + |
| 53 | +<!-- write your progress here every week --> |
| 54 | +### Week 16 - 22 March |
| 55 | + |
| 56 | +Decided on the project idea |
| 57 | + |
| 58 | + |
| 59 | +### Week 13 - 19 April |
| 60 | + |
| 61 | +Ordered the necessary hardware components. |
| 62 | + |
| 63 | +### Week 20 - 26 April |
| 64 | + |
| 65 | +All hardware components arrived. |
| 66 | + |
| 67 | +## Week 27 April - 3 May |
| 68 | + |
| 69 | +Started writing the documentation and modifying the source chasis to fit my components. |
| 70 | + |
| 71 | +### Week 5 - 11 May |
| 72 | + |
| 73 | +### Week 12 - 18 May |
| 74 | + |
| 75 | +### Week 19 - 25 May |
| 76 | + |
| 77 | +## Hardware |
| 78 | + |
| 79 | +The main brain of the project is the STM32 Nucleo-U545RE-Q microcontroller provided by the PM team. This takes the input from the HM-10 Bluetooth module and processes it into a signal the i2c controller can then give to the PCA9685 Servo Driver. From there, the signal is passed on to the 8 servomotors that power our robot spider, 2 in each leg. The system is powered by a 1000mAh 7.4v LiPo 2 cell batery and will be built on a modified version of the chasis of the Sesame spider-robot linked in the link section. |
| 80 | + |
| 81 | +### Schematics |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | +### Bill of Materials |
| 86 | + |
| 87 | +<!-- Fill out this table with all the hardware components that you might need. |
| 88 | +
|
| 89 | +The format is |
| 90 | +``` |
| 91 | +| [Device](link://to/device) | This is used ... | [price](link://to/store) | |
| 92 | +
|
| 93 | +``` |
| 94 | +
|
| 95 | +--> |
| 96 | + |
| 97 | +| Device | Usage | Price | |
| 98 | +|--------|--------|-------| |
| 99 | +| [STM32 Nucleo-U545RE-Q](https://www.st.com/en/evaluation-tools/nucleo-u545re-q.html) | The microcontroller | [~120 RON]() | |
| 100 | +| [Servomotor MG90S, angrenaje Aluminiu](https://sigmanortec.ro/servomotor-mg90s-angrenaje-aluminiu) | The servomotors, we will use 8 | [19,34 RON]() | |
| 101 | +| [Modul PCA9685, interfata I2C, 16 CH, servo motor](https://sigmanortec.ro/Modul-PCA9685-interfata-I2C-16-CH-servo-motor-p126016016) | Used to interface the microcontroller and the servomotors | [27.27 RON]() | |
| 102 | +| [Modul coborator tensiune XL4015, 8-36VDC, 5A, 75W](https://sigmanortec.ro/Modul-coborator-tensiune-XL4015-8-36VDC-5A-75W-p158483017) | Used to interface the microcontroller and the servomotors | [9,96 RON]() | |
| 103 | +| [Intrerupator KCD-1, SPST, On/Off, 23mm](https://sigmanortec.ro/Modul-coborator-tensiune-XL4015-8-36VDC-5A-75W-p158483017) | Used to turn the robot on or off | [1,85 RON]() | |
| 104 | +| [4.0 Bluetooth Module (3.3 V and 5 V Compatible)](https://www.optimusdigital.ro/en/wireless-bluetooth/862-modul-bluetooth-40-cu-adaptor-compatibil-33v-si-5v.html?search_query=4.0+Bluetooth+Module+%283.3+V+and+5+V+Compatible%29&results=21) | Used to connect from the phone to the robot | [29,99 RON]() | |
| 105 | +| [Electrolytic Capacitor 1000 uF, 50 V](https://www.optimusdigital.ro/en/capacitors/3006-electrolytic-condensator-from-1000-uf-to-50-v.html?search_query=0104210000027129&results=1) | Used to store excess voltage | [1,49 RON]() | |
| 106 | +| [0.25 W 1K Ω Resistor](https://www.optimusdigital.ro/en/resistors/848-025w-22k-resistor.html?search_query=0.25+W+1K+%CE%A9+Resistor&results=32) | Used to provide resistance in the circuit | [0,10 RON]() | |
| 107 | +| [Undervoltage Battery Alarm Module](https://www.optimusdigital.ro/en/others/2237-alarma-scadere-tensiune-acumulatori.html?search_query=Undervoltage+Battery+Alarm+Module&results=1) | Used to signal when the battery is low | [7,99 RON]() | |
| 108 | +| [Incarcator B3 20W 1.6A pentru Acumulatori 2S si 3S cu Echilibrare Celule](https://www.emag.ro/incarcator-b3-20w-1-6a-pentru-acumulatori-2s-si-3s-cu-echilibrare-celule-b3-20w-1600-2s3s/pd/DGCKNZ3BM/?ref=history-shopping_484971926_47538_1) | Used to charge the batery | [29,90 RON]() | |
| 109 | +| [Baterie Gens Ace G-Tech Soaring 1000mAh 7.4V 30C 2S1P XT60](https://www.emag.ro/baterie-gens-ace-g-tech-soaring-1000mah-7-4v-30c-2s1p-xt60-kxg0060208/pd/D5RNQWMBM/?ref=history-shopping_484971926_36153_1) | Used to power the robot | [58,20 RON]() | |
| 110 | +| [Set conectori electrici Amass XT60, 1 mama si 1 tata si 2 carcase](https://www.emag.ro/set-conectori-electrici-amass-xt60-1-mama-si-1-tata-si-2-carcase-amxt60/pd/DN37BB3BM/?ref=history-shopping_484971926_3410_1) | Used to connect the battery | [8,82 RON]() | |
| 111 | +| [10 x Fire Dupont mama-mama 20cm](https://www.emag.ro/10-x-fire-dupont-mama-mama-20cm-ai307-s465/pd/D1J66JBBM/?ref=history-shopping_484971926_38837_1) | Used to connect different parts of the project | [2,67 RON]() | |
| 112 | +| [40 x Fire Dupont mama-tata 20cm](https://www.emag.ro/40-x-fire-dupont-mama-tata-20cm-zcbozh-fdp-fm-40x20/pd/DRQD522BM/?ref=history-shopping_484971926_156063_1) | Used to connect different parts of the project | [19,72 RON]() | |
| 113 | + |
| 114 | + |
| 115 | + |
| 116 | + |
| 117 | + |
| 118 | +## Software |
| 119 | + |
| 120 | +| Library | Description | Usage | |
| 121 | +|---------|-------------|-------| |
| 122 | +| [st7789](https://github.com/almindor/st7789) | Display driver for ST7789 | Used for the display for the Pico Explorer Base | |
| 123 | + |
| 124 | +## Links |
| 125 | + |
| 126 | +<!-- Add a few links that inspired you and that you think you will use for your project --> |
| 127 | + |
| 128 | +1. [Laboratoarele PM](https://embedded-rust-101.wyliodrin.com/docs/acs_cc/category/lab) |
| 129 | +2. [Proiectul de inspiratie](https://www.doriantodd.com/sesame) |
| 130 | +3. [Repository-ul Proiectului Sesame](https://github.com/dorianborian/sesame-robot/tree/main) |
| 131 | +... |
0 commit comments