Introduction In this lesson, we'll look at what a servo motor is and how it works. First, let's define what a servo motor is and look at some of the unique characteristics of the different types of servo motors and their applications. You will also learn how to control Servo Motors with an Arduino and a Raspberry Pi in this blog. Introduction Ⅰ What is a Servo Motor? Ⅱ Servo Motor Related Video: Ⅲ Types of Servo Motors 3.1 AC or DC 3.2 Brushed or Brushless 3.3 Synchronous or Asynchronous Ⅳ Servo Motor Working Principle Ⅴ Applications of Servo Motors Ⅵ Difference Between Stepper Motor and Servo Motor Ⅶ Servo Motors Control with an Arduino 7.1 Experiment 1 Ⅷ Control with Raspberry Pi 8.1 PWM (Pulse Width Modulation) 8.2 Components Required 8.3 Circuit Diagram 8.4 Working and Programming Explanation 8.5 Code Ⅸ FAQ Ⅰ What is a Servo Motor? A servo motor is a self-contained electrical device that rotates machine parts with high efficiency and precision. This motor's output shaft can be moved to a specific angle, position, and velocity that a standard motor cannot. The Servo Motor combines a standard motor with a sensor to provide positional feedback. The most important component of the Servo Motor designed and used specifically for this purpose is the controller . Figure1:Servo Motor Ⅱ Servo Motor Related Video: How servo motor works Servo Motor Video Description: This movie gives an overview of how RC servo motor works and how it's made. Ⅲ Types of Servo Motors Servo motors are classified into two types based on their application: AC servo motors and DC servo motors. There are three major factors to consider when evaluating servo motors. The first type of consideration is the current type – AC or DC – and the second type of consideration is the type of commutation used, whether the motor uses brushes. The third type of consideration is the motor's rotating field, the rotor, and whether the rotation is synchronous or asynchronous. 3.1 AC or DC Let's start with the first servo consideration. The most fundamental classification of a motor is based on the type of current it will use. When it comes to performance, the primary distinction between AC and DC motor s is their inherent ability to control speed. Figure2:DC or AC Servo Motor With a constant load, the speed of a DC motor is directly proportional to the supply voltage. The frequency of the applied voltage and the number of magnetic poles determine the speed of an alternating current motor. Figure3:DC or AC Servo Motor While both AC and DC motor s are used in servo systems, AC motors can handle more current and are more commonly used in servo applications such as robots, in-line manufacturing, and other industrial applications requiring high repetitions and precision. 3.2 Brushed or Brushless The next step is to decide whether to use a brushed or brushless finish. A DC Servo Motor can be commutated mechanically with brushes, electronically without brushes, or mechanically with a commutator. Brushed motors are less expensive and easier to operate in general, whereas brushless designs are more reliable, have higher efficiency, and are quieter. Figure4:brushed or brushless Servo Motor A commutator is a rotary electrical switch that reverses the current direction between the rotor and the drive circuit on a regular basis. It is made up of a cylinder made up of multiple metal contact segments on the rotor. Two or more electrical contacts known as "brushes" made of a soft conductive material such as carbon press against the commutator, making sliding contact with commutator segments as it rotates. Figure5:brushed or brushless Servo Motor While the majority of servo motors are AC brushless designs, brushed permanent magnet motors are occasionally used as servo motors due to their simplicity and low cost. The permanent magnet DC motor is the most common type of brushed DC motor used in servo applications. Figure6:brushed or brushless Servo Motor Brushless DC motors replace the physical brushes and commutator with an electronic commutation method, typically using Hall effect sensors or an encoder. Figure7:brushed or brushless Servo Motor AC motors are generally brushless, though some designs do have brushes and are mechanically commutated, such as the universal motor, which can run on either AC or DC power. Figure8:brushed or brushless Servo Motor 3.3 Synchronous or Asynchronous While DC motor s are generally classified as brushed or brushless, AC motors are often distinguished by the rotational speed of their synchronous or asynchronous field. If we recall from the AC-DC discussion, the frequency of the supply voltage and the number of magnetic poles determine the speed of an AC motor. This speed is known as the synchronous speed. As a result, in a synchronous motor, the rotor rotates at the same rate as the rotating magnetic field of the stator. Figure9:synchronous or asynchronous Servo Motor In an asynchronous motor, also known as an induction motor, the rotor rotates at a slower rate than the stator's rotating magnetic field. However, the speed of an asynchronous motor can be varied using a variety of control methods, including changing the number of poles and changing the frequency, to name a few. Figure10:synchronous or asynchronous Servo Motor Ⅳ Servo Motor Working Principle A servo is made up of a motor (either DC or AC), a potentiometer, a gear assembly, and a control circuit. First and foremost, we use gear assembly to reduce RPM and increase motor torque. Assume that at the initial position of the servo motor shaft, the position of the potentiometer knob is such that no electrical signal is generated at the potentiometer's output port. An electrical signal is now applied to the error detector amplifier's other input terminal. The difference between these two signals, one from the potentiometer and one from other sources, will now be processed in a feedback mechanism and output will be provided in the form of an error signal. This error signal serves as the motor's input, and the motor begins to rotate. The motor shaft is now connected to the potentiometer, and as the motor rotates, so does the potentiometer, generating a signal. As a result, as the potentiometer's angular position changes, so does its output feedback signal. After a while, the position of the potentiometer reaches a point where the output of the potentiometer is the same as the external signal provided. There will be no output signal from the amplifier to the motor input because there is no difference between the externally applied signal and the signal generated at the potentiometer in this condition, and the motor will stop rotating. Figure11:synchronous or asynchronous Servo Motor Ⅴ Applications of Servo Motors Servo Motors are used in a variety of applications, some of which are listed below:In robotics, the servo motor is used to activate movements, giving the arm its precise angle.The servo motor is used to start, move, and stop conveyor belts that transport the product through multiple stages. As an example, consider product labeling, bottling, and packaging.The servo motor is built into the camera to correct a lens and improve out-of-focus images.In a robotic vehicle, the servo motor is used to control the robot wheels, producing enough torque to move, start, and stop the vehicle as well as control its speed.In a solar tracking system, the servo motor is used to correct the angle of the panel so that each solar panel faces the sun.The servo motor is used in metal forming and cutting machines to provide milling machines with precise motion control.Textiles use servo motors to control spinning and weaving machines, knitting machines, and looms.The Servo motor is used in automatic door openers in public places such as supermarkets, hospitals, and theaters to control the door. Ⅵ Difference Between Stepper Motor and Servo Motor Comparison Chart Basis for ComparisonStepper MotorServo MotorBasicStepper motor operates in steps.It is continuous operating machine.System configurationOpen loopClosed loopPower requirementMoreComparatively lessDesignSimpleComplexAbility to responseHighComparatively lowCostInexpensiveExpensiveReliabilityMoreLessNoise and vibrationHighComparatively lessOperating speedSlowFastFeedback mechanismNot existExistHeat generationMoreComparatively lessNumber of polesGenerally 50 to 150Around 4 to 12Life spanMoreLessDamage due to overloadLess prone to get damaged.Comparatively more prone to get damaged.Torque producedHighLowEfficiencyLessMoreTolerance towards moment of inertiaHighLowApplicationsIn gaming, textile, welding machineries, medical and 3D printing equipments, etc.In robotics, antenna positioning systems, automatic doors, cameras, remote controlled equipments, etc. Ⅶ Servo Motors Control with an Arduino You can connect small servo motors directly to an Arduino to control the shaft position very precisely. Most servo motors have the following three connections: Black/Brown ground wire.Red power wire (around 5V).Yellow or White PWM wire. In this experiment, the power and ground pins will be connected directly to the Arduino 5V and GND pins. The PWM input will be connected to a digital output pin on the Arduino, 7.1 Experiment 1 Hardware Required1 x TowerPro SG90 servo motor1 x Arduino Mega25603 x jumper wires Wiring Diagram The best thing about servo motors is that they can be directly connected to an Arduino , Connect the motor to the Arduino in the manner shown in the table below: Servo red wire – 5V pin Arduino Servo brown wire – Ground pin Arduino Servo yellow wire – PWM(9) pin Arduino Caution: Do not try to rotate the servo motor by hand, as you may damage the motor. Figure12: Wiring Diagram Code When the program starts, the servo motor will slowly rotate from 0 to 180 degrees, one degree at a time. When the motor has rotated 180 degrees, it will start rotating in the opposite direction until it reaches the home position. #include //Servo library Servo servo_test; //initialize a servo object for the connected servo int angle = 0; void setup() { servo_test.attach(9); // attach the signal pin of servo to pin9 of arduino} void loop() { for(angle = 0; angle < 180; angle += 1) // command to move from 0 degrees to 180 degrees { servo_test.write(angle); //command to rotate the servo to the specified angle delay(15); } delay(1000); for(angle = 180; angle>=1; angle-=5) // command to move from 180 degrees to 0 degrees { servo_test.write(angle); //command to rotate the servo to the specified angle delay(5); } delay(1000);} Ⅷ Control with Raspberry Pi In this tutorial, we will use the Raspberry Pi to control a servo motor. Before we get to the servo, let's talk about PWM because it's the basis for controlling a servo motor. 8.1 PWM (Pulse Width Modulation) PWM is an abbreviation for 'Pulse Width Modulation.' PWM is a technique for obtaining variable voltage from a steady power supply. Consider the circuit below to better understand PWM. Figure13:PWM In the figure above, if the switch is closed continuously for a period of time, the LED will be 'ON' during that time. If the switch is closed for half a second and then opened for the next half a second, the LED will be turned on only for the first half a second. The percentage of time the LED is on over the total time is known as the Duty Cycle , and it can be calculated as follows: Duty Cycle =Turn ON time/ (Turn ON time + Turn OFF time) Duty Cycle = (0.5/ (0.5+0.5)) = 50% As a result, the average output voltage will be 50% of the battery voltage. When we increase the ON and OFF speed to a certain level, the LED will dim instead of being ON and OFF. This is because our eyes cannot clearly detect frequencies higher than 25Hz. Consider a 100ms cycle with an LED that is off for 30msec and on for 70msec. We will have 70% stable voltage at the output, so the LED will glow continuously at 70% intensity. The Duty Ratio ranges from 0 to 100. '0' denotes complete inactivity, while '100' denotes complete activation. This Duty Ratio is critical for Servo Motor, This Duty Ratio determines the position of the Servo Motor, 8.2 Components Required We're running Raspbian Jessie on a Raspberry Pi 2 Model B. All of the basic hardware and software requirements have already been discussed, and you can find them in the Raspberry Pi Introduction; however, we will need: Connecting pins 1000uF capacitor SG90 Servo Motor Breadboard 8.3 Circuit Diagram Figure14:Circuit Diagram If A1000F is not connected across the +5V power rail, the PI may shut down unexpectedly while controlling the servo. 8.4 Working and Programming Explanation Once everything is connected according to the circuit diagram, we can power on the PI and begin writing the program in PYHTON. We will go over a few commands that we will use in the PYHTON program. We will import a GPIO file from the library, and the function below will allow us to program the GPIO pins on the PI. We're also renaming "GPIO" to "IO," so in the program, whenever we refer to GPIO pins, we'll say "IO." import RPi.GPIO as IO When the GPIO pins that we are attempting to use are performing other functions. In that case, we'll get warnings while running the program. The following command instructs the PI to disregard the warnings and continue with the program. IO.setwarnings(False) We can refer to the GPIO pins of the PI by either their pin number on the board or their function number. On the board, for example, 'PIN 29' is 'GPIO5'. So we specify whether we want to represent the pin here by '29' or '5'. IO.setmode (IO.BCM) PIN39 or GPIO19 is selected as the output pin. This pin will provide PWM output. IO.setup(19,IO.OUT) After we have set the output pin, we must configure it as a PWM output pin. p equals IO. Power-Wave Modulation (PWM) (output channel, frequency of PWM signal) The above command is for configuring the channel as well as the frequency of the channel." 'p' is a variable that could be anything. We'll use GPIO19 as the PWM "Output channel," and the "Frequency of PWM signal" will be 50, because the SG90's working frequency is 50Hz. The command below is used to initiate PWM signal generation. 'DUTY CYCLE' is used to specify the 'Turn On' ratio, as previously explained. p.start(DUTYCYCLE) The following command is used to create a forever loop, which means that the statements inside the loop will be executed indefinitely. 8.5 Code import RPi.GPIO as IO # calling for header file for GPIO’s of PI import time # calling for time to provide delays in program IO.setwarnings(False) # do not show any warnings IO.setmode (IO.BCM) # programming the GPIO by BCM pin numbers. (like PIN29 as‘GPIO5’) IO.setup(19,IO.OUT) # initialize GPIO19 as an output p = IO.PWM (19,50) # GPIO19 as PWM output, with 50Hz frequency p.start(7.5) # generate PWM signal with 7.5% duty cycle while 1: # execute loop forever p.ChangeDutyCycle(7.5) # change duty cycle for getting the servo position to 90º time.sleep(1) # sleep for 1 second p.ChangeDutyCycle(12.5) # change duty cycle for getting the servo position to 180º time.sleep(1) # sleep for 1 second p.ChangeDutyCycle(2.5) # change duty cycle for getting the servo position to 0º time.sleep(1) # sleep for 1 second Ⅸ FAQ 1. Are servo motors AC or DC? AC servo motors depend on an AC power source whereas DC Servo motors depend on DC power source (like Batteries). AC servo motors performance is dependent upon voltage as well as frequency whereas DC servo motors performance mainly relies upon voltage alone. 2. Can servo motors rotate 360? The position of the servo motor is set by the length of a pulse. ... The end points of the servo can vary and many servos only turn through about 170 degrees. You can also buy 'continuous' servos that can rotate through the full 360 degrees. 3. Which motor is used in servo motor? While the majority of motors used in servo systems are AC brushless designs, brushed permanent magnet motors are sometimes employed as servo motors for their simplicity and low cost. The most common type of brushed DC motor used in servo applications is the permanent magnet DC motor.
kynix On 2022-01-08









