You are browsing as a guest. Sign up (or log in) to start making projects!

4h 6m 10s logged

Devlog #1 - The Rise of S.U.P.

Hello everyone,

Welcome to the first ever Devlog of the Servo Utility Platform (aka. S.U.P.)

This is the project I decided to make for Stardance, and the first ever solely non-AI-dependent one :D

Overview

So what even is S.U.P.?

[Demo can be found at the Bottom if you don’t like reading explanations :D]

The Servo Utility Platform is, I won’t lie, nothing super wow.

The idea is that instead of making a random test circuit every time I wanna test a new servo, I can use S.U.P. to quickly test it, calibrate it, and see if something is wrong with it.

At least that’s the plan cuz right now it’s still a bunch of wires on a breadboard :D

Hardware Used

Currently, S.U.P. uses:

  • ESP-WROOM-32 x1
  • Small I2C OLED 128x64 Display x1
  • Joystick Module x1
  • MG90S Servo Module x1
  • 830-point Breadboard x1
  • A suspicious amount of jumper wires…

The Beginning

The first version was… really simple XD.

It was literally an ESP32 shooting electricity through a wire and nothing more.

[Check out the “Fancy This” picture at the bottom]

The goal wasn’t to make something impressive. It was just to make sure I can do the simplest thing imaginable:

“Can I make the servo move?”

The answer was yes (thankfully XD).

After that I added a Volume Knob (potentiometer).

[Check the Picture that features it (it’s really sad that I can’t put the pictures in-between text)]

This helped me control the servo angle, which made it more satisfying to play around with, but felt too weird.

It felt like giving a static position to the servo, not making it move.

The knob might work for a real 10$ servo tester but it’s just not my style.

MEET: The Joystick

So I replaced the potentiometer with his cooler Oklahoma bro: The Joystick.

[A video of me “casually” testing the hardware can be found down below]

And this is where it started feeling like the gadget of my dreams.

Instead of:

Pot position → Static Servo angle

I first changed it to:

Joystick Pot position → Static Servo angle

wow! amazing!

So I had to do a lil more work than changing one wire…

The redesigned system was way better:

Joystick x-axis position (still a pot just a fancy one) → offCenter from 0 (we actaully use the middle of the pot as 0 and the ends as -1 and 1) → Velocity → Servo Speed

Now moving the joystick slightly makes super small adjustments, while pushing it further makes the servo go wayy faster.

To make this feel better, I made my own acceleration function instead of just using a simple linear movement. The final result feels surprisingly nice.

Current Prototype

Right now S.U.P. has:

  • A working joystick-controlled servo system
  • Acceleration-based movement
  • Speed settings
  • Adjustable servo limits
  • Joystick deadzones
  • A debugging system because manually adding and removing Serial.println() gets old really quickly :I

[Now look at the Super Cinematic picture of that MG90S Servo]

Things I Learned

A few things I learned while making this:

  • Joysticks are basically just two pots and a button
  • The ESP32 ADC reads voltage, not “positions”
  • Tuning acceleration functions is really worth it for making the movement feel good

What’s Next?

The next steps are:

  • Add joystick calibration
  • Find servo minimum and maximum angles (if even possible idk)
  • Figure out how to detect 180° vs 360° servos
  • Start building the OLED menu system (tbh sounds like the most interesting and hard part at the same time 🙏)
0
11

Comments 0

No comments yet. Be the first!