c0f272f594 | 3 years ago | |
---|---|---|
.github/workflows | 3 years ago | |
imgs | 3 years ago | |
mechanism | 3 years ago | |
software | 3 years ago | |
.gitignore | 3 years ago | |
LICENSE | 6 years ago | |
README.md | 3 years ago |
README.md
Hexapod
A Hexapod Robot using Raspberry Pi Zero W
Introduction
This is a hexapod robot based on Smallp Tsai's hexapod-v2-7697 project. This project reused most of the mechanical design in the original project, but with a full redesign of the circuits and software. The table below shows the difference between this project and the original one.
Original hexapod-v2-7697 | This project | |
---|---|---|
Controller | Linkit 7697 | Raspberry Pi Zero W or Raspberry Pi Zero W 2 |
PWM control | Custom circuit board | 2 x PCA9685 motor driver boards |
DC-DC | 7 x mini360 modules | 2 x XL4005 5A Max DC-DC modules and 1 x mini360 |
Power | 2S Lipo battery | 2 x 18650 batteries |
Remote | BLE | WiFi |
Remote software | Android and iOS | PC, Android (WIP) |
https://user-images.githubusercontent.com/471808/148647807-02e3e901-6181-4473-8ac4-3b5998fa8d17.mp4
Mechanism
Bill of Materials (BOM)
Servos
18 TowerPro MG92B are required.
The dimension of 3d printed part is highly dependent on the servo's size. Modification is required if you want to use alternative servos.
3D-Printed Parts
Body x 1
Filename | Thumbnail | Required |
---|---|---|
body_top | 1 | |
body_bottom | 1 | |
body_side_wall | 2 | |
body_back_wall | 1 | |
battery_box | 1 | |
battery_holder | 2 |
Leg x 6
Filename | Thumbnail | Required |
---|---|---|
thigh_top | 1 (x6) | |
thigh_bottom | 1 (x6) | |
joint_cross | 1 (x6) | |
joint_top | 2 (x6) | |
joint_bottom | 2 (x6) | |
leg_top | 1 (x6) | |
let_bottom | 1 (x6) | |
foot_top | 1 (x6) | |
foot_bottom | 1 (x6) | |
foot_ground | 1 (x6) | |
foot_tip | 1 (x6) | |
servo_horn_j1j2 | 2 (x6) | |
servo_horn_j3 | 1 (x6) |
Others
Leg Assemble
Assembly video
Exploded view
Detailed steps
- Step 1 - Combine
thigh_top
,MG92B
andthigh_bottom
, use M2x30mm screw and nut to secure them together.
- Step 2 - Grab one
joint_cross
,joint_top
andjoint_bottom
and combine them
- Step 3 - First put 2 x
MG92B
,leg_top
andleg_bottom
together with M2x30mm screw and nut. Then attachjoint_top
andjoint_bottom
altogether
- Step 4 - Grab
foot_top
,foot_bottom
andfoot_ground
(andfoot_top
) and assemble them.
- Finish - Great, you got 1 leg done, 5 more to go :)
Electronics
Bill of Materials (BOM)
Name | Thumbnail | Required |
---|---|---|
Raspberry Pi Zero W or W 2 | 1 | |
PCA9685 motor driver | 2 | |
XL4005 DC-DC step down | 2 | |
Mini 360 DC-DC step down | 1 | |
Toggle switch | 1 |
Connection Diagram
Software
Raspberry Pi
Requirements
Raspberry Pi is running Raspberry Pi OS
.
- Enable
I2C
throughraspi-config
sudo raspi-config
- Install required packages
sudo apt-get install python3-numpy python3-pip
- Install required Python modules
pip3 install adafruit-circuitpython-servokit
Tips: It is convenient to debug code on Raspberry Pi through VSCode's remote feature.
Running
The hexapod program, located under ./software/raspberry pi/
, is written in Python. Use the following command to start it manually.
python3 hexapod.py
PC
PC program source files are located under ./software/pc/
. The compiled program can be downloaded under the release page.
- Find the correct IP address of the Raspberry Pi on the hexapod
- Connect to the hexapod using the IP address
- Use the buttons on the panel to control the hexapod
Android
Working in progress ...