How to create linear motion from non-sinusoidal angular rotation?

Sorry, I coudln't think of an intelligent way of snap-shotting my question. Here's the deal, I have this lab test tube rocker, which oscillates the platform back and forth like a see-saw. It works just like a piston engine, with an electric motor that has something like a crank, and something like a connecting rod, such that it converts angular motion to linear. You probably know what I'm talking about, but I've attached a photo.

Because it oscillates on a sine wave the platform spends an equal amount of time at every phase of the wave. But I want it to spend more time at each end of the oscillation, the peak and the trough, more like a sigmoidal curve. What do you think would be the best (easiest) way to do this? Mechanical or electrical? Mechanical seems cumbersome. Have the pin on the crank "float" (so that it has a variable radius) and then have it follow an elliptical (or sigmoid) track? Or have the crank be toothed gear that turns a track that could be shaped over an elliptical or sigmoidal shape, and have the pin come off the track? That seems unnecessarily complex. The easier option (I think), would be to create a timer/switch so that every 180 degrees of rotation, at the ends of the oscillation, the timer turns the motor off for a second. But I have no idea how to do that.

Picture of How to create linear motion from non-sinusoidal angular rotation?
sort by: active | newest | oldest
bwrussell4 years ago
You could make your own with a servo hooked directly to the table. That way you don't have to convert angular motion to linear and back to angular again. With the servo run by a microcontroller you would set the total angle, speed, and delay.
marozie (author)  bwrussell4 years ago
Ah! Such a good idea! What kind of microcontroller could I use? And how do you program them? Maybe use Arduino?
I'm sure most microcontrollers could handle it but Arduino is the one I know. There is a specific library of servo functions for Arduino. You program Arduino through a free program they provide and USB. The language is similar to the various C languages and is pretty easy to pick up due to the large amounts of help data on their website, Arduino.cc.
marozie (author)  bwrussell4 years ago
I'm doing it. I've always wanted to do something with Arduino anyway.
Make a cam follower, and the cam have the profile you're after.

Basically, the arm needs a roller on the end, bearing on the spinning cam
My thought exactly.
marozie (author)  steveastrouk4 years ago
Hmm. I don't think that would work, if I'm understanding you correctly. If the crank had a cam on it, and the cam follower were stationary you would get a curve that looked like a bunch of bumps on a flat surface, for lack of a better description (basically, a curve that looked like the linear profile of the cam). Not really what I'm after. Or am I thinking of it the wrong way?
I think you're thinking about it wrong.
what kind of motor are you using? stepper? dc? is there a motor controller board or is it just hooked straight up to a power supply?
marozie (author)  amandaghassaei4 years ago
It's just hooked up straight to AC. No boards. I don't know that much about electric motors so I would have to do some digging to get you more details.
how many leads does the motor have? can you take any more pics of it and the things it's connected to?
marozie (author)  amandaghassaei4 years ago
Two leads. It looks like the motor itself is inside a little gear box. It's at work so I'll take some more photos tomorrow. obviously, there's nothing preventing me from using a different motor though.