You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Zhengyu Peng 1ee0f6b1c2 Update hexapod.py 3 years ago
.github/workflows Update build_pc_client_windows.yml 3 years ago
imgs Update screenshot_connect.png 3 years ago
mechanism update battery box stl 3 years ago
software Update hexapod.py 3 years ago
.gitignore Update .gitignore 3 years ago
LICENSE Initial commit 6 years ago
README.md Update README.md 3 years ago

README.md

logo Hexapod

A Hexapod Robot using Raspberry Pi Zero W

banner

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

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 body_top 1
body_bottom body_bottom 1
body_side_wall body_side_wall 2
body_back_wall body_back_wall 1
battery_box battery_box 1
battery_holder battery_holder 2
Leg x 6
Filename Thumbnail Required
thigh_top thigh_top 1 (x6)
thigh_bottom thigh_bottom 1 (x6)
joint_cross joint_cross 1 (x6)
joint_top joint_top 2 (x6)
joint_bottom joint_bottom 2 (x6)
leg_top leg_top 1 (x6)
let_bottom leg_bottom 1 (x6)
foot_top foot_top 1 (x6)
foot_bottom foot_bottom 1 (x6)
foot_ground foot_ground 1 (x6)
foot_tip foot_tip 1 (x6)
servo_horn_j1j2 servo_horn_j1j2 2 (x6)
servo_horn_j3 servo_horn_j3 1 (x6)

Others

Name Spec Thumbnail Required Note
Screw M2 6mm 6mm 54 Servo Arm: 1 x 18
Joint: 4 x 6
Thigh: 2 x 6
Screw M2 10mm 10mm 24 Thigh: 1 x 6
Pin lock: 1 x 18
Screw M2 30mm 30mm 36 Servo: 2 x 18
Nuts M2 6mm 36 Servo: 2 x 18
Pin (304) M4 6mm pin 18 Servo: 1 x 18

Leg Assemble

Assembly video

Exploded view

LegAssemble

Detailed steps

  • Step 1 - Combine thigh_top, MG92B and thigh_bottom, use M2x30mm screw and nut to secure them together.
LegAssemble1
  • Step 2 - Grab one joint_cross, joint_top and joint_bottom and combine them
LegAssemble2
  • Step 3 - First put 2 x MG92B, leg_top and leg_bottom together with M2x30mm screw and nut. Then attach joint_top and joint_bottom altogether
LegAssemble3
  • Step 4 - Grab foot_top, foot_bottom and foot_ground (and foot_top) and assemble them.
LegAssemble4
  • Finish - Great, you got 1 leg done, 5 more to go :)
LegAssemble5

Electronics

Bill of Materials (BOM)

Name Thumbnail Required
Raspberry Pi Zero W or W 2 raspberry pi 1
PCA9685 motor driver PCA9685 2
XL4005 DC-DC step down XL4005 2
Mini 360 DC-DC step down mini360 1
Toggle switch toggle_switch 1

Connection Diagram

diagram

Software

Raspberry Pi

Requirements

Raspberry Pi is running Raspberry Pi OS.

  • Enable I2C through raspi-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.

pc_interface
  • 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

screenshot_connect screenshot_control