Each harmonic gear has a reduction ratio of 63:1, making a total reduction of 3696:1! This is an ongoing project that will be optimized more and more as each prototype is tested.
I wanted to try something new that not a whole lot of people have done from scratch before. The harmonic drive was just cool enough and easy to design that i had to give it a shot. A harmonic has zero backlash because two opposite sides of the flex spline are ALWAYS meshed with the outer ring gear. When you rotate the elliptical input, whether its two bearings or a custom made elliptical ball bearing, it constantly meshes the next gears over. It works similar to wedges, so the output torque is pretty high as well.
How i did the math to follow earths rotation:
- A mean sidereal day is 23hr 56min 4.1sec, or 1436.0682min. I wanted to work in RPM so i took the inverse to find my needed output speed, which is 0.00069635 RPM.
- Since i now have my desired output speed i can multiply that by my gear reduction to find the needed input speed, which is 2.7638 RPM.
- I am using a 200 step motor, and in full-step mode i would need 9.213 steps/sec to achieve the desired RPM. However, stepper motors really dont do decimal steps, so i rounded to the nearest whole number of 9 steps/sec. This would give me a new input speed of 2.76 RPM. Since i want to reduce vibrations i decided to use 1/2 microstep because it gives me the same input RPM with much less vibration.
- Now i can divide that new input speed by my reduction ratio to find my new output RPM, which came out to 0.0006953 RPM. Fairly close to what i need with a % difference of 0.14%. (i did do the math for using microstepping, from 1/2 down to 1/32. Only full-step and 1/2-step got me close enough, 1/4 and 1/8 step gave me a difference of 0.4% and 1/16 and 1/32 gave me a difference of 0.27%)
- Next i needed to put this input RPM into something useful to control the motor. For this i am using a simple code with microsecond delays on the HIGH and LOW pins to reach my desired RPM. Ive tried using the AccelStepper library but i do not believe the library can keep up and the output is always slightly slower than desired (it gets more noticeable when you start using microsteps). After doing some quick math i found i need a delay of 27174 microseconds.
- That is all the math needed to code this sucker!
Luckily i had a V1 already printed and proven to work, so i set out to test it and got some good results! The first prototype was massive though, easily the size of two hands. Because of this i set out to shrink the design by at least 50% and that is where im at now. Prototype photos will be posted in a few days, each flexible gear and housing take a good 6hr to print each, plus some other misc spacers and the two bearing drives.