How to use Arduino to control a brushless motor for camera gimbal

above is the link to an example of Camera Brushless Gimbal using BLDC like a servo, i think this proj has to use BLDC because a servo doesn't fast enough to react with movement of the camera

If you view the video at the youtube site, there appear to be info links under the video box.

tylernt:
This video shows the construction of a servo:

- YouTube

There are some very tiny BLDCs available, less than 20mm in diameter. It should be possible to find one that fits inside a servo.

Is it possible to replace a brushed motor by BLDC? I tried to find some information about these two and i found that we can't use a same technique to control them.

That design looks very far from optimal. Just use servos. They can certainly react fast enough. You can buy servos with all different kinds of specifications. You can even find ones that use brushless motors, but they're quite expensive and overkill for your application.

takeshi3491:
Is it possible to replace a brushed motor by BLDC? I tried to find some information about these two and i found that we can't use a same technique to control them.

Correct, you will need to use a commercial ESC (Electronic Speed Controller) controlled by an Arduino, or make your own ESC with your Arduino. Either way, you can still use the potentiometer for position feedback.

Those brushless gimbals usually come with a dedicated Controller that works on it's own. It has it's own IMU and all the arduino does is to send a tilt angle that the gimbal Controller has to keep steady.

The question how a BLDC Motor works as a servo, kept me awake for a while, some time ago.
I came to the conclusion, that all three phases must get different positive or negative PWM signals to make them tow against each other. The winding resistance must be very high to keep the current low.
With a 8 bit pwm signal on each phase the Motor can do very small and smooth steps. Much better than a servo with their inbuild deadband.

o_lampe:
I came to the conclusion, that all three phases must get different positive or negative PWM signals to make them tow against each other. The winding resistance must be very high to keep the current low.
With a 8 bit pwm signal on each phase the Motor can do very small and smooth steps. Much better than a servo with their inbuild deadband.

Ah, that's a good idea. Unfortunately most BLDCs I see have very low winding resistance (milliOhms in some cases) so this would likely require a purpose-built BLDC. But I can see how that might work very well without gear reduction (though a quadrature encoder or pot would probably still be needed for feedback).

I tried to take a look on brushless servo, wow it's very simple to solve my problem with brushless servo, but the new problem appear, brushless servo is too expensive. So anyone who has any idea about how to create a brushless servo from brushed servo or drive a BLDC like a servo by Arduino can help me?

i think this proj has to use BLDC because a servo doesn't fast enough to react with movement of the camera

Is that stated in the project? What is the rotational speed you require? There are a lot of types of servos available now that might need your specifications.

Are they "ordinary" brushless motors ? I find it hard to see how they can be driven in that way. Maybe it is actually some obscure kind of brushless stepper motor.

A stepper motor is always brushless :wink:
Think of it as a 3 phase stepper instead of 2 or 4 phase steppers.

@tylernt
If you'd like to tinker a bit with the idea, just slaughter some PC cooling fans ( eg. from old PSU )
They usually have a high winding resistance. A 12V fan would probably work directly with the 5V arduino pins, but don't take my word for it!

I don't think you'd need an encoder or anything. Just let the IMU do all the work.

Just found out which driver circuit the open-source BLDC gimbal "AlexMOS" guys are using:

Includes freewheeling diodes and current sensing.
Available in 20 pin DIP :smiley: hint

o_lampe:
Just found out which driver circuit the open-source BLDC gimbal "AlexMOS" guys are using:
L6234 Datasheet(PDF) - STMicroelectronics
Includes freewheeling diodes and current sensing.
Available in 20 pin DIP :smiley: hint

So you knew how to solve the problem with BLDC? :slight_smile: Can you take a tutorial for me?

takeshi3491:

o_lampe:
Just found out which driver circuit the open-source BLDC gimbal "AlexMOS" guys are using:
L6234 Datasheet(PDF) - STMicroelectronics
Includes freewheeling diodes and current sensing.
Available in 20 pin DIP :smiley: hint

So you knew how to solve the problem with BLDC? :slight_smile: Can you take a tutorial for me?

Sorry my friend,
I have no hands on experience with that stuff. I just gave my 2 Cents. Try out a small fan Motor from a CPU cooler, their winding resistance might be high enough to drive them directly with a arduino. Start with two phases at first. See what happens when you change PWM ratio for one phase. Use a potmeter on an analog Input to change pwm ratio on the fly.

A full test setup would have three potmeters for three phases. Find out a pattern to rotate the fan slowly.

Good luck
O_Lampe
PS: It might be necessary to switch polarity for the phases too. Then ofcourse you'have to recalculate your pwm, since the duty cycle would change too.

Brushless DC motors have stationary electromagnets, so it might be possible to rewind some with more turns of finer wire. No worries about balance, then, other than getting the same number of windings.

If you have some kind of optical encoder on the shaft, you'd have rotational feedback for the Arduino to calculate what voltage/current/PWM each phase requires.

The optical encoder attached to a device intended to turn, is unlikely to have the resolution to point a camera accurately.

Presumably this is geared down.

Has no one on here ever heard of a brushless gimbal motor? the reason for using a brushless motor on a gimbal is that they are much faster and smoother than any servo, they are available from most good radio control model shops, here are a couple of cheep ones from hobby king :-

there is no encoder except for a 3 axial accelerometer and the brushless motor controller, the motors are used on a one to one ratio no gearing is used, these type of brushless motors are of a different type of motor as they have been wound with many coils of fine wire not as normal ones which have few coils of heavy wire.

I hope this may help people who have not come across these type of motors before.

regards Poppy Ann.

.

gimbal motor 1.jpg

gimbal motor 2.jpg

PoppyAnn:
Has no one on here ever heard of a brushless gimbal motor?

No, but we have now!

I see one of the BGM controllers sold by HK uses an ATmega328, so rolling your own with an Arduino should be very possible.

you can buy a complete gimbal with motors and controller for around £36 from banggood :- 2 Axis Brushless Action Camera Gimbal with Controller Support Remote Control for Sale - Banggood USA sold out-arrival notice-arrival notice

I have a couple but not used them yet hopefully i will get to use one soon.
regards Poppy Ann