Description coming soon.Full featured 21 DOF 3D Printed Humanoid Robot based on ATmega328P chip
The project has been featured here:
Some images done during the development process:
Click on the image to enlarge.
The total cost is about $60-$100. Depending on where you buy the pieces.
Amount | Part |
---|---|
1 | Arduino Pro Micro (Atmega328p) |
1 | HC-05 (Bluetooth) |
2 | 74HC4017 (5-stage Johnson decade counter) |
1 | MPU-6050 (Gyroscope + Accellerometer UNUSED) |
21 | MG90S 9G (Servo motors) |
2 | 5A DC-DC (Voltage step-down Used to power the servos) |
1 | Ad-hoc board (See wiring section) |
Screws are used to join pieces together.
The total cost is about $15.
Amount | Size |
---|---|
37 | M2 x 4mm |
32 | M2 x 14mm |
19 | M2 x 20mm |
You need to print it in ABS, since servos becomes hot after a while and can melt the plastic.
The printing cost is about $20-$30.
SX_* models needs to be mirrored on the correct axis before the printing process.
Part | Amount | Download |
---|---|---|
38 | SP_Cover_1_foro | |
1 | MID_Scapole | |
1 | MID_Torace | |
1 | MID_Anca_TOP | |
2 | MID_Anca_BTM | |
1 | DX_Spalla_A | |
1 | DX_Spalla_B | |
1 | DX_Avambraccio_A | |
1 | DX_Avambraccio_B | |
1 | DX_Gomito_A | |
1 | DX_Gomito_B | |
1 | DX_Braccio | |
1 | DX_Anca_A | |
1 | DX_Anca_B | |
1 | DX_Inguine_A | |
1 | DX_Inguine_B | |
1 | DX_Ginocchio_A | |
1 | DX_Ginocchio_B | |
1 | DX_Gamba_A | |
1 | DX_Gamba_B | |
1 | DX_Caviglia_A | |
1 | DX_Caviglia_B | |
1 | DX_Piede_A | |
1 | DX_Piede_B | |
1 | SX_Spalla_A | |
1 | SX_Spalla_B | |
1 | SX_Avambraccio_A | |
1 | SX_Avambraccio_B | |
1 | SX_Gomito_A | |
1 | SX_Gomito_B | |
1 | SX_Braccio | |
1 | SX_Anca_A | |
1 | SX_Anca_B | |
1 | SX_Inguine_A | |
1 | SX_Inguine_B | |
1 | SX_Ginocchio_A | |
1 | SX_Ginocchio_B | |
1 | SX_Gamba_A | |
1 | SX_Gamba_B | |
1 | SX_Caviglia_A | |
1 | SX_Caviglia_B | |
1 | SX_Piede_A | |
1 | SX_Piede_B |
Schematics are contained in the schematics
folder.
The firmware is contained in the firmware
folder and can be compiled and uploaded to the board thanks to the Arduino IDE.
The firmware allows you to fully control the robot through bluetooth in order to make complex things. Those are the commands implemented that can be sended through the serial protocol.
Name | Syntax | Parameters | Description |
---|---|---|---|
S0 | S0 Ri or S0 Li |
i = index[0-9] (optional) | Move a servo to its default position. If no index is passed all servos will be reset. |
S1 | S1 Ri Ad or S1 Li Ad |
i = index[0-9] d = angle[0-1800] |
Move a servo to a specific angle. The value 0 corresponds to 0° and the value 1800 corresponds to 180°. |
S2 | S1 Ri Ad Tm or S1 Li Ad Tm |
i = index[0-9] d = angle[0-1800] m = duration[ms] |
Move a servo to a specific angle gradually by sweeping it for a specific amount of time. |
S3 | S3 An Ds Tm |
n = anim idx[0-10] s = space[cm] m = duration[ms] |
Apply a specific animation.space and duration are unused at the moment but are supposed to be used as parameters for certain animations. See animations section for the list of animations available. |
Q0 | Q0 Ri Ad or Q0 Ri Ad |
i = index[0-9] d = angle[0-1800] |
Similar to S1 , but the movement is added to the movements queue. If the angle value is 0 a pause will be planned instead. (A pause will make the next planned movement, on the same motor index, hang until the pause is not ended) This is used in order to plan complex synchronized movements. (E.g. Animations) |
C0 | Ri Wp or Li Wp |
i = index[0-9] p = pulse width[us] |
Sets a specific pulse width to a specific motor for calibration purposes. |
The firmware contains some basic animations hardcoded inside it:
Id | Name | Status |
---|---|---|
0 | Forward walk. | WIP |
1 | Backward walk. | NO |
2 | Side walk to right. | NO |
3 | Side walk to left. | NO |
4 | Clockwise standstill rotation. | NO |
5 | Counterclockwise standstill rotation. | NO |
6 | Clockwise curved walk. | NO |
7 | Counterclockwise curved walk. | NO |
8 | Sit down. | DONE |
9 | Hello. | DONE |
10 | Fuck off. | DONE |
This document was written for my high-school exam in order to give to the professors some basic knowledge to make them understand how the project works.
Unfortunately it's written in Italian 🇮🇹
The document is available here
- Simone Primarosa - simonepri
See also the list of contributors who participated in this project.
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.