Pages: [1] 2   Go Down
Author Topic: How to use Arduino to control a brushless motor for camera gimbal  (Read 3644 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello everyone, i'm trying to create a camera brushless gimbal using brushless motor.

I did searching for a way to drive my BLDC but every document i founded are mentioned about how to control BLDC speed. I want to learn how to control BLDC direction: forward, backward; How to drive BLDC to different positions like a servo, for ex: 90 degree, 70 degree, 220 degree,...
Can anyone help me? Thanks
Logged

Berlin, Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

To reverse a brushless motor, just reverse the current at each part of the driving process.

I don't know why you would want to drive a brushless motor to fixed fractions of a rotation. For typical motors, this can't be done except very coarsely and there is so little torque available that it would appear useless.  In a servo, the output of a motor is geared down tremendously so moving a fraction of a rotation at the output of the servo corresponds to many full rotations of the internal motor. Precise positioning is handled using feedback from a position sensor, usually a potentiometer. If you want this kind of functionality, it's far easier to buy an appropriate servo rather than trying to design something similar yourself (unless you want to tinker of course). You could also buy a stepper motor. Those are designed to be turned in small steps.
Logged

Offline Offline
Edison Member
*
Karma: 28
Posts: 2036
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You can't really use a brushless motor  to do the function of a servo or a stepper motor.
Logged

Idaho, US
Offline Offline
God Member
*****
Karma: 19
Posts: 859
Special User
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Brushless motors are good at running 10,000RPM or more.

Most brushless motors these days are sensorless so the ESC (Electronic Speed Controller) uses back-EMF to detect what phase needs to be energized when. At slow RPM, there is little to no back-EMF so the ESC has to "guess" and use a "canned routine" until the motor gets up to speed (several hundred RPM).

Turning a stopped brushless motor a few degrees and then stopping again might be possible if you added a quadrature encoder to the shaft, but it would be very difficult to get any accuracy (it will tend to "cog" as the magnets and coils line up) and the motor will tend to freewheel so you'll actively have to power the motor to maintain position.

To make a BLDC motor act like a servo, use an actual servo and remove the brushed DC motor and install a BLDC in it's place. Then you can use the existing gear reduction and potentiometer feedback system. Of course you'll also need to delete the servo controller IC since you will be implementing your own ESC to replace it.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

To make a BLDC motor act like a servo, use an actual servo and remove the brushed DC motor and install a BLDC in it's place. Then you can use the existing gear reduction and potentiometer feedback system. Of course you'll also need to delete the servo controller IC since you will be implementing your own ESC to replace it.
Can you explain clearly please, how do you remove the brushed DC motor and install a BLDC inside it?
Logged

Idaho, US
Offline Offline
God Member
*****
Karma: 19
Posts: 859
Special User
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This video shows the construction of a servo:



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

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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
Logged

0
Offline Offline
Tesla Member
***
Karma: 114
Posts: 8919
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.
« Last Edit: October 09, 2013, 01:13:47 am by zoomkat » Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

This video shows the construction of a servo:



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.
Logged

Berlin, Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Idaho, US
Offline Offline
God Member
*****
Karma: 19
Posts: 859
Special User
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 213
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

It's not my fault when my Posts are full of Errors. This stupid autocorrection from my browser is set up for german grammar.

Idaho, US
Offline Offline
God Member
*****
Karma: 19
Posts: 859
Special User
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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).
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

0
Offline Offline
Tesla Member
***
Karma: 114
Posts: 8919
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.
Logged

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   smiley-cool

Pages: [1] 2   Go Up
Jump to: