Could I Use a Stepper Motor?

DC Motors with a feedback line (so called PID Controller; would be the best way to do it. You need the motor as an actor and some sensors that sense the direction of the axis's of the gimbal. The PID controller should be very fast for smooth operation. (Perhaps an ESP32 is a better MCU for this purpose).The PID controller uses a motion sensors. It's good to have strong motors that do not react "nervous" on on voltage changes. You probably will have to use motors with gears. Even fast PID controller won't be able to keep your camera from turning cartwheels if a 10.000 cycles per minute racing motor gets full voltage applied.I searched the internet for videos of such a setup but the only thing I found, are the commercial (?) gimbal "alexmos" "how to" videos. I'm with you that it is hard to build such a gimbal without much knowledge of how PIDs work. I'm also not sure if there is an arduino that's fast enough to realize a PID that gets its feedback from motion sensors and drives dc motors with this information, then get's feedbach of the motor movements (from the motion sensors) and so on. And probably a better/stronger servo and and very fast PID setup might eventually smooth the gimbals movements.Here is a link that might help you as a start point for PID (if you are not discouraged yet): even professional setups can make problems: (It's a matter of the PID parameters)

• Related Questions

Difference between Servo Motor, Stepper Motor and Switched Reluctance Motor

I've never heared of a Switched Reluctance Motor, but the first line of its wiki is clear: "The switched reluctance motor (SRM) is a type of stepper motor". So those two have a subset relation.A servo motor is not a motor but module that contains a motor, a position sensor, and a feedback (correction) circuit. I've never seen a servo that contained a stepper motor, but in theory it could. Or it could be any other type of motor.

SoA servo contains some kind of motor. I wouldn't know why it has to be a winding-free-rotor-motor. I think most (hobby) servo's I have lying aound in my lab a simple low-cost DC motors with static magnet, a wound rotor, and a commutator.The SRM wiki shows a winding-free rotor. I think the steppers I have seen all had a winding-free rotor for practical reasons, but I don't think it is a must.

A servo has positional feedback built in, so it is a bit weird to say that it needs it to run. Do I require a brain to live? And a servo doesn't run the same way other motors can do: it can only go to a position, often from a limited set of degrees, it can't rotate continuously.An SRM, being a stepper, can run quite happily without any feedback. In fact, this is the main point of a stepper: if it steps, it will step to a very defined position, so often no feedback is needed nor used.As said, an SRM is a kind of stepper, so it would be weird if they have a distinctive feature. And a servo contains some (unspecified) type of motor.


Stepper Motor Accel/Decel Ramp for Fixed Frequency Input

Accelerating and decelerating stepper motors consistently can be a very challenging adventure.Accelerate too fast and the motor can stall and just sit there screaming at you. If you are counting steps it can also lag back far enough to skip back a full cycle leaving you out of position. Accelerate too slowly with a light inertial load and the motor can actually turn around on you during the first few steps. This of course makes it that much harder for the motor to keep up with the ramping step rate.All this can be further aggravated if the load itself is variable, either short term or long and let us not forget the variability of the motors and drivers.

Because of all that, finding the right acceleration and deceleration profiles that work consistently can be a frustrating effort.In order to do so it is normal to back off the acceleration and deceleration torques to give the motor some lee-way to correct itself. That is, if you try to accelerate at what you have calculated to be the best torque of the motor, and the motor falls behind, there will be no torque left for the motor to go faster than the demand and catch up.

Ultimately, for best control of a stepper motor it is best to attach a shaft encoder to it that has the same, or a multiple, number of pulses as the motor has steps and closing the control loop. Basically turning your stepper motor into a high pole count BLDC. Properly controlled, such an arrangement lets you extract the most torque, and acceleration/deceleration, out of the motor even under highly variable loads.


Can i make a stepper motor stop at 120 increments?

You are limited by the resolution of the motor (and driver, if the latter is a micro stepping type).For example if you have a 1.8 degree motor and a driver that does not micro step then you would want to move 66.67 steps to have it rotate 120 angular degrees. Since that's not possible, one approach would be to step 67, then 66, then 67. That way there would be a slight error in the positions but it would not accumulate- 300 increments would result in exactly 100 rotations of the motor shaft. The same issues will arise with a micro-stepping drive, but with smaller errors. You have a choice with the hold- if you keep the motor energized you'll have high holding torque, but it will consume more power than if you de-energize the motor.Edit: Note that the motor itself will have some accuracy, with no load and as you approach the holding torque the error will increase to something like half a step. So perhaps /-10%30% of one step. If you're using a 7.5 degree motor and it's unloaded the error might be /-0.

8 degree. If you are off by 1/3 of a 1.

8 degree step and it's unloaded the error might similar (a bit less). At heavy loading the the finer steps will be considerably more accurate. Here is a more detailed datasheet of a typical motor. Note: I more-or-less ignored your statement of 'exactly' but nothing is really exact in engineering. If you want close to the best accuracy achievable you could use a servo with a good encoder (Renishaw or whatever) and you could get to maybe /- 1 arc second using feedback from the encoder, but it would cost about as much as an automobile


Is it possible to determine load on a stepper motor when stopped

I am not that interested in the precise value of the torque, I am more interested in checking that there is no significant torque.Since you don't need the precise value of the torque, perhaps stall detection or torque limiting or both will be adequate for your application.The maximum torque that a stepper motor can produce is proportional to the current through the motor coils.Many stepper drivers make it easy to set a limit on the maximum current through the motor coils.Perhaps in your application, it would be sufficient to simply dial down that limit so the motor never applies "significant torque".Many stepper motor drivers such as the

Trinamic TMC249A, Trinamic TMC246, TI DRV8711, ST L6470, ST L6482, ST L9942, ON AMIS-30623, Allegro A4979, etc.

have "sensorless stall detection".As Dave Tweed already stated, the back-EMF is proportional to the speed of the motor.

My understanding is that these "sensorless" techniques rely on directly or indirectly measuring the back-EMF while rapidly stepping the motor.

So these techniques don't detect anything while the stepper driver is holding the stepper motor in one position (or trying to drive it at a slow speed).As you suggested, "jogging the stepper backwards and forwards a step and watching the current may be plausible."

While the stepper driver is rapidly stepping the motor forwards and backwards a few steps,

then the stall detection circuit can work:

If the back-EMF is zero (or below some threshold), then the motor has stopped (or the speed of the motor is below some threshold);

if the back-EMF is above the threshold, then the motor is moving at least some threshold speed.


Stepper motor based clock movement with DS3231

It is unclear, why you need the high accuracy, and you didn't include your code. So my explanations will be as broad as your question."millisecond resolution" is a broad term. Generally you have to consider 2 different errors.

You can eliminate the second point quite easily using the RTC with the Time library. It uses the RTC as a reference, so that you don't have the clock drifting this much. Though, you would have to use the libraries functions for all time related things, since it does not change the value of millis() or it's siblings.

Also, for low differences in the range of a few milliseconds, you should better use micros() instead of millis() (if you are not using the RTCs functions).How would you then translate that output to pulses sent to the stepper motor driver board?It is unclear, why exactly you need "millisecond resolution", and you didn't show us your code. But there are multiple Stepper libraries on the web, for example the standard Stepper library or the AccelStepper library (Accelstepper is more capable, don't know, if you need it). With the AccelStepper libraries you can set a certain speed and target position and then you simply call then run() method (haven't looked up the name, but there is definitely a function like that) until the desired position is reached. The method itself will only pulse the stepper, if it is time to do so. So you are freed from doing all the stuff with millis(), since the library is doing that for you.

Though the libraries are using the Arduinos internal time: millis() and siblings. To change that, you would have to change the library


Why do i need an endstop sensor with stepper motor?

Not stupid in the least!You count the steps from some point where the system initializes to, but how do you know where that starting point is unless you measure it? You know it pretty well if you are using some sort of ABSOLUTE ENCODER that measures the position from some real reference point, but a stepper motor system may not have any encoder, or it may just have a RELATIVE ENCODER, that tracks changes only from some initial point that could be anywhere. When such a system turns on, the count is ZERO, regardless of the initial condition, and only changes from that (possibly arbitrary) zero point can be tracked.Many systems use a control strategy where the motor will move slowly in one direction until it hits some switch, at which point you know for certain that the motor is at the switch! You then tell the system to return to its operating range, and track the motion from there.

There's also safety. If overtravel will cause damage to the system or possibly hurt someone, you don't depend on the system to control it correctly in every case, but you put switches in to detect if an overtravel is occurring, and stop the system dead. You call these switches interlocks, and whether you use them or not depends on how expensive your components are, how difficult they are to replace, whether downtime is critical, or how likely someone is to get hurt.I don't know what the optical gyroscope is, but maybe its a form of absolute encoder. Servo systems might have all the same inherent issues, depending on whether they use absolute or relative position encoders

Motor related articles
Tips to Help You Design the Perfect Solar Battery for That Party
Functional Features and Application Introduction of TG452 Series Intelligent Street Lamp Gateway
What Is the Best the Best Solar Street Light for You? - the Best Solar Street Light Reviews
IGBT of Fuji Motor Electronic Equipment Technology
Is a Metal Roof Right for You | Billy

Copyright © 2020  Shandong Abusair Agricultural Machinery Co,. Ltd- |  Sitemap

Multifunctional farm Abusair machinery  |  Tea Professional Cultivator farm machinery