Giter Club home page Giter Club logo

spotmicroesp32's Introduction

SpotMicroESP32

My take on a SpotMicro with an optimized design for supportfree 3D-printing and integration of an ESP32-DevKitC. This is still a Work-in-Progress!

You can find the 3D-printing parts on Thingiverse as well: https://www.thingiverse.com/thing:4559827/files

  • Join the Discord-Channel for this remix: https://discord.gg/s8F6xHGk9Y (#spotmicro-esp32)
  • Join the Slack-Channel for this remix - discuss any topics regarding this design: spotmicroai.slack.com (#spotmicro-esp32) Due to no active subscription there is no possibility to browse through older posts. This is why a lot of people moved to the discord channel.

This Project currently lacks the whole programming/software part. Luckily Maarten Weyn already made the inverse kinematics work and wrote also an Smartphone App for simple Control of this Robot via BLE. I advice to take a look into his Repository as well, as this currently my preferred codebase: https://github.com/maartenweyn/SpotMicro_ESP32

An walking gait implementation and voice-commanding was achieved by Guna R. from the slacks #spotmicro-esp32 channel, whis is build upon Maartens software (see Repo above). You definitly have to take a look there as well - but it seems the repo is incomplete and missing the app: https://github.com/cholan2100/ceasar

Look also at the GitLab pages for the general SpomicroAI community, where you can find different models and resources: https://gitlab.com/custom_robots/spotmicroai

SpotMicroESP32

Note of thanks

I want to thank Deok-yeon Kim (KDY0523) for his beautyful and well thought out design of the SpotMicro, without whom my derivate would not have been possible. You can find his original Design here on Thingiverse: https://www.thingiverse.com/thing:3445283

Him sharing the files with an open licence, made it possible to let it grow a community around it. This is why i want to reference to them as well - the SpotMicroAI Community: https://spotmicroai.readthedocs.io/en/latest/

Preface

This is a work-in-progress, with rather loose milestones.

For 2020 there are two goals:

  • to redesign the original parts, so that they could be printed without any support (done)
  • to make a circuitry for all sensors and parts, that possibly would fit and be considered necessary (done)

For 2021 there are two main goals and one optional goal:

  • to write my own firmware with the ESP-IDF, that integrates/utilizes all sensors and modules except the ESP-CAM which needs its own firmware (in progress)
  • to write a smartphone App in Flutter, that connects to the firmware and reads from/writes to the robot (in progress)
  • to implement the inverse kinematics (optional goal)

This repository is currently just my hobby and as such, it will have its own pace. This being said, i am still happy about any questions, collaborations, suggestions, ideas, forks and what else comes to your mind. I want you to participate, because i think there are a lot of things, that you could dig into.

Sections

Bill of Material

The following Section will describe in detail the different parts needed for your own SpotMicroESP32 build, with at least some rough estimate of the price.

3D-Printing

To build your own SpotMicroESP32 you will need to print a lot parts. For an overview of the 3D printed parts needed, please visit the 3D-printed Partlist. It might be necessary to remix some of the templates to suit your needs, when chosing other electronic components than those listet here.

Electronics

The SpotMicroESP32 ist still a Work-in-Progress and as such the BOM might change as well - check the "deprecated" section for changes. There are still some parts missing and some others are not tested yet - those status will be marked as such. I will give a rough price estimate, which may or may not work for you and might be out of date at some point.

part or module number short description status estimated price
ESP32-DevKitC 1x the core MCU for the build with WIFI + BLE capabilities. tested 7€
ESP32-CAM 1x Tested with the ESP32-Module with OV2640 Camera (version 2). There are also cameras with a version 1 OV2640, where the sensor is in landscape orientation and not in portrait. Also the flexcable seems to be some millimeters shorter than the one from Version 2. You can distinguish them by the imprint on the flexcable, stating TY-OV2640-V2.0. Both OV2640 Cameras should work in theory, as the part is designed to fit both models. Definetly dont go with the one with an fisheye-lens or other variations - the field of view would be hindered and most likely the lens would not fit through the hole anyway. tested 10€
FT232RL USB-TTL-Adapter 1x USB-to-Serial Adapter for ESP32-CAM flashing tested 2€
(MG996R Servo) 12x The bare minimum... but with flaws like jittering and much play... 10Kg servos with metal gears and ball bearings. With these the robot is capable to stand up/change his pose but they are most likely too weak for smooth and reliable walking. (Update 2020-11-19: It can be affirmed, that walking is possible not great, but also not horrible) Go with these only if you can accept these limitations and if more expensive servos would mean not to try this project in the first place. tested 5€ each
better go with DS3218MG Servo up to 12x 20Kg servos with metal gears and ball bearings. Much less play and in my tests no jittering, but also very strong. With these your robot should be able to walk significantly better. Maybe only 4 of these are enough, when used in the lower legs - the most stressed parts. Maybe you would need also 4 additional ones for the upper legs - but maybe MG996R are enough here. The shoulders should be comfortable with MG996R, as these dont do much heavy work. partially tested 15€-20€ each
FSH6S Servohorn 12x servohorn used for this build (should be already shipped with your servos) otherwie use model from 3D parts tested n.n.
Rubber Dampeners for your Servos 48x servo rubber dampeners, so you could use M3 screws (should be already shipped with your servos) tested n.n.
Servocable Extension 4x extending the servocables of the lower legs about 10cm to 15cm tested 10€
625ZZ Ball Bearing 8x miniature ball bearing without a flange tested 1€ each
WS2812b 12 LED Ring (50mm outer diameter) 1x Neopixel-Clone-Ring with an outer diameter of 50mm used to signal status/mood tested 6€
0.96" OLED I2C Display 1x small OLED screen with SSD1306 IC for status informations tested 4€
HC-SR04 Ultrasonic Sensor 2x ultrasonic sensor module for distance measuring tested 3€ each
GY-521 Gyroscope and Accelerometer 1x a module to measure accelaration and spatial orientation, which can be extented with magnetometers tested 3€
PCA9685 16Channel 12Bit PWM Board 1x PWM driver board used for your servos and LEDs, which can power your parts from an external source tested 5€
HW-482 / KY-019 5V 10A Relais 1x relais module to cut the power to your servos completely tested 3€
19mm Push Button with LED 1x illuminated latching pushbutton tested 10€
Micro-USB to DIP Adapter 2x USB-Ports used for extending the USB-Ports of the ESP32 DevKitC and ESP32-CAM (TTL-Adapter) tested 2€
XL4016 DC-DC 9A Stepdown Converter 1x big step-down converter to lower your LiPo 2S voltage to 6,5V (minimum for MG996R) tested 8€
or SZBK07 DC-DC 20A Stepdown Converter 1x even bigger step-down converter to lower your LiPo 2S voltage to 6,5V (minimum for DS3218) tested 12€
LM2596 DC-DC or similar Stepdown Module 1x small step-down converter to lower your LiPo 2S voltage 5V for ESP32's VIN and Modules tested 2€ each
ACS712 30A current sensor module 1x current sensor module capable of max. 30A for e.g. emergency shutdown tested 2€
25V voltage sensor module 1x simple voltage divider module for up to 25V used as a voltage sensor to determin battery charge tested 2€
5200mAh - 6200mAh LiPo 30C+ 2S Tamiya/XH 1x beefy LiPo as your main power source (this is actually your individual choice) tested 40€

Depecrated

The Camera-Unit in the head will be replaced by an ESP32-CAM, because its reasonably cheap (~10€) and opens up a lot of new possibilities like object-recognition, because of additional processing-power.

part or module number short description status estimated price
OV7670 VGA-Camera Module w/o FIFO 1x VGA-Camera without framebuffer IC, used with lower resolution due to memory restrictions (replaced by ESP32-CAM) tested 3€
5mm ~3V LEDs (White) 6x LEDs used as your camera-lights (replaced by ESP32-CAM internal flashlight) tested 1€
5mm ~3V RGB-LEDs 2x RGB-LEDs used as an underglow, might signal status or mood (replaced by Neopixel-Generica) tested 1€
1,77" TFT with ST7735 w/o SD 1x small TFT screen with ST7735 IC for status informations (replaced by 1.8" TFT with SD-Card) tested 7€
optional WS2812B Pixelboard 4x Neopixel-Clones (SMD LED's on small round PCB) used as an underglow, might signal status or mood (removed, as the result is underwealming tested 1€
1,8" TFT with ST7735 with SD 1x small TFT screen with ST7735 IC for status informations (replaced by 0.96" OLED I2C Display) tested 7€

Miscellaneous

part or module number short description status estimated price
M2x8 cylinderhead screws + M2 nuts 84x each screws + nuts to mount your servohorns (you could glue the servohorns in place instead and save yourself 72x M2x8 screws and nuts, but i have not tested it), also used to mount the 1,77" TFT and the pins for the ball bearings tested 8€
M3x8 cylinderhead screws + M3 nuts 80x each screws + nuts for the whole assembly (i hope i have not forgotten some, better buy in bulk as these are usefull for other projects as well) tested 8€
M3x20 cylinderhead screws + M3 nuts 64x each screws + nuts to mount your servos and assemble the upper legs tested 12€
lots of cables and connectors and stuff it's up to you which cables or wires and connectors you want to use, or if you would like to solder everything into place, and if you use heat shrinks, fabric hoses up to you 20€
PLA + TPU (?) you will need about 1Kg of PLA + some grams of TPU (eg. my Black/White design: 500g for the covers + upper legs, 500g for the chassis + lower legs + shoulder joints, some small grams for the grey sensorplate in the head) + some grams of TPU for the foottips tested 30€+

spotmicroesp32's People

Contributors

augustdg avatar maartenweyn avatar michaelkubina avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spotmicroesp32's Issues

Revising nutholes in lower and upper leg

While assembling lower and upper leg, the nuts have to much play, which leads to misalignments and causes problems during asembly. Changing the size/depth of the pockets or adding thin walls might be a solution

Larger holes/ deeper channels for sheathed servo wires in upper leg

I sheathed my servo cables using a braided nylon sheath however I was unable to snake them through the servo cable hole in the upper leg. I ended up having to use a router to enlarge the hole and snake them through. The next issue then became the channel, particularly the area right there the servo sides, is super tight and causes some binding.

May I use TD8320MG?

Thanks for your share. I have downed all your git .
I have made a robot dog which parts printed from https://www.thingiverse.com/thing:3445283 and mg995 as option.
I hope to change the servo motor as TD8320 as it's 333HZ and mg995 is 50HZ.
The parts need to be edited.The freecad is used to see and edit. I found I could not edit the stl file then google here.
I'm a newbee at freecad. Your design is more professional and freecad files are shared 。
May I use your design to assemble TD8320 and MG995?Or which parts should be edited?
Your assemble is great. Could I have a print parts list file, eg. leg.stl 4 mean 4 legs need to be printed?

O1CN01XABdsc1OVDl5cZeJY_!!361121710

O1CN011WfT3B1OVDl7crQYL_!!361121710

Route the cable from lower leg not through the upper leg shells

Due to Channel-Request:

It was good idea to run the wire for the wrist servo through the upper leg.

Problem: The servo that is likely to get burnt(pwm control board) due to stall torque is ones on the wrists. This would require dismantling almost the entire leg, loosing calibration for all the servos on the leg in the process.

Wish: the wiring channel was accessible from outside without having to take apart the shells of the limb.

Covers orientation for printing

Quick question:
Printing the covers, do you print them standing upwards (as they are when you open the file) or do you print them lying down (a big surface makes contact with the printing bed)?

CAM with TTL

Hi Michael, with the current circuit layout, how have you overcomed the programming and usage of the cam. Currently I'm unable to, without a jumper wire from GPIO 0 to GND, program the board. Then I need to take it out to use it.
Any help is welcomed

Short circuit

Hey Michael,

I've been having issues with short circuits with the current schematic. Have you had them? Could you share current wiring in photo? I'm seeing it pop up whenever the rele activates in cycles. (I've had a couple of smoky incidents too. Appreciate your or anyone's insight

Servocables rubbing/grinding when routet into the body

The way the servocables are routed into the body causes them to rub/grind between the edges of the shoulder joint and shoulder top block.

Either or both parts should be modified to prevent damage to the servocables.

Frontal sensor and camera support not mountable

The model does not allow the camera mount to fit into the ultrasonic mount, the camera mount is too thick. Also the Camera support does not fit correctly as it is limited/blocked by the pins, needs extra 2mm clearance.
IMG_7593
IMG_7592
IMG_7591
IMG_7600

PWM Servo calibration

Hey,

been trying to do the servo calibration with no results. Is there anyway you can share your numbers for ds3218mg and possibly the code used? (Seen and used the one mentioned on the guide but it doesn't do anything. Any help would be greatly appreciated.

Thanks in advance Michael!

Elephant foot leads to tight top shoulder holes - fixed.

Hey, maybe look at this one some time. I fitted only one in the end but it was quite tricky due to there being not much leeway to ease its way (I'm still trying to fit the others but almost 30min in it's getting tedious). Maybe making it slightly wider would help with assembly speed. The bottom shoulder is fine btw. They're both quite the upgrade from previous model.
Captura de pantalla 2020-12-31 a las 9 26 26g

Short & Long version

Hey Michael,
first I want to say thank you for this great remix of the original MicroSpot. It's actually the first bigger project I want to replicate.

Looking through the parts folder I saw that there is a short and long version for "Limb_Ball_Bearing_Mount" and "Limb_Servohorn_Mount". Which one is the correct one / which one should I use?

Besides that is there anything I can help you with in regards to this project?

ESP32 Vs Raspberry Pi Zero

Hello! I've been following your project pretty closely and I wanted to start off and say thank you/you've done an amazing job! I've got the entire chassis printed and assembled and have just the electronic plate left.

I noticed that you recently posted a preliminary outline of how you plan to place your electronics. I was wondering if I could make a small request and ask if you can also provide a model where a raspberry pi zero is used instead?

Maybe this deserves another post but I was wondering why the ESP32 over Rpi Zero W? I get that overall, it's microcontroller vs full blown OS but it seems to me that RPI would provide a path for more advance features later down the road?

Is there anything else that you might need assistance on? I'm a software engineer and have a 3D printer on hand to help development and test if needed.

Full assembly file pls

Hi,
Appreciate your hard work! As you have not finish the assembly guide, can I have the full assembly cad file so that I can continue to work on it?

why not have right leg stl file??

I don't have the right leg of the spot micro with esp 32 added and stl files of limb top shell and limb bottom shell thumbnails. No matter how much I look for, please add the file to github.

Question on hardware components

Could you explain what this circular circuit is on the first image? What's it used for?

Also, what is this 3 pins on the 2nd picture?

Screen Shot 2022-02-27 at 12 28 26 AM

Screen Shot 2022-02-27 at 12 30 31 AM

ST7735 Unable to Source

Hello!

I have on hand a display board:

https://www.amazon.com/Display-Module-ST7735-128x160-STM32/dp/B07BFV69DZ/ref=sxts_sxwds-bia-wc-drs-ajax1_0?cv_ct_cx=ST7735&dchild=1&keywords=ST7735&pd_rd_i=B07BFV69DZ&pd_rd_r=e7229f0a-0145-469d-8454-08fab6d008c2&pd_rd_w=pQd8K&pd_rd_wg=sxD3J&pf_rd_p=037ca9fd-790e-4a16-836b-14da89aed20e&pf_rd_r=76G8X3R0ADY1FK8SD96Q&psc=1&qid=1600975421&refinements=p_85%3A2470955011&rnid=2470954011&sr=1-1-25b07e09-600a-4f0d-816e-b06387f8bcf1

I was unable to find one with out an SD card and unfortunately this doesn't drop into the existing slot on the chassis shell tail. It's about 2-3mm too short. Is the side facing center or the side closest to the push button was extended about 2-3mm (including mounting holes, this would be able to fit in.

Alternatively, could you specify a link on where to find a ST7735 that's exactly 1.77 and without SD card? Or even better, the one that you have?

I should also add I'm located in the US.

Thanks!

Rename parts in Assembly instructions with their file names

Hope the title is pretty self explanatory, but going through the assembly is a bit confusing when comparing the names of the parts to the files.

For now I cross-reference them with the parts list, but I do believe it could be improved!

I'll probably have a pull request later in the day with the beginning of the modifications!

Dual sided cable battery support and motherboard enhancements

Hello, may I suggest a dual channel for the 2 cables (power+balancing) for separate cabled batteries. This will utilize the same board but would use the opening. Also, make it so the top of the internal supporting channel is not closed for easy cable passthrough. Thanks!

Imagen
IMG_7599
IMG_7594

(New circuitboard needed) New power supply too big for holes also mounting places for CV and CC measurement units needed

I suppose they are part of the pending update. For the measurement units I suggest either belly (though it would be too tight) or in the rear as the removal of the TF screen leaves plenty of space. And maybe swap the small DC unit for the big one in terms of placements for better cable management as the new power supply has a big footprint or at least as close to the side as possible.
Imagen 2
Imagen
Imagen 3

Rubber Dampeners Question

Hello all!

I'm a student at Dawson College (in Montreal) and I am creating this robot for one of my courses (super excited to do so too 😄) and I had a question about the utility of the rubber dampeners? I have some that came with the servo motors:

image

And I imagine they are some sort of adapters to use with M3 screws (since they don't seem to be able to directly screw into the screwhorn), but I'm not sure what exactly they are and how I would use them? I tried to look it up, but nothing came up on Google...

Any help would be very appreciated!

Otherwise, thank you very much for all the instructions: they are surprisingly clear to read :)

Servo Motor Voltage

Hi,
the servo motor is powered by 6.5V voltage with PCA9685 board, but the max V+ voltage for PCA9685 board is 6V. Will this be a problem?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.