Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Physical Output

Physical OutputMake things move by controlling motors with ArduinoServo-motorsRotary actuator that allows for precise control of angular positionDC-motorsConverts direct current electrical power into mechanical powerStepper-motorsDivides a full rotation into a number of equal steps
IMPLEMENTING IOEAssist. Prof. Rassim Suliyev - SDU 2017Week 8 Physical OutputMake things move by controlling motors with ArduinoServo-motorsRotary actuator that allows Brushed DC MotorsSimple devices with two leads connected to brushes (contacts)Control the Brushless MotorsMore powerful and efficient for a given sizeThree phases of driving DC Motor ParametersDirect-drive vs. gearhead – built-in gears or notVoltage – what DC Motor CharacteristicsWhen the first start up, they draw a lot more Driving DC MotorTo drive them, apply a voltageThe higher the voltage, the Switching Motors with TransistorsTransistors switch big signals with little signalsSince motors can Driving a Brushed Motorconst int motorPin = 3;const int switchPin = 2; Controlling Speed of DC-Motorconst int motorPin = 3;const int potPin = A0; Servo-MotorsAllow accurately control physical movementMove to a position instead of continuously rotatingRotate Servo-Motors Servo-MotorsRespond to changes in the duration of a pulseShort pulse of 1 Servo-MotorsCome in all sizesfrom super-tinyto drive-your-carAll have same 3-wire interfaceServos are spec’d Servo ControlPWM freq is 50 Hz (i.e. every 20 millisecs)Pulse width ranges Servo and Arduinoconst int servoPin = 7;const int potPin = A0;const int Use the Servo libraryservo.attach(pin[, min][, max]) – attach the servopin- the pin Servo sweeper#include Servo myservo; // create servo object to control a servoint Controlling angle with pot#include Servo myservo; // create servo object to control Stepper MotorsRotate a specific number of degrees in response to control pulsesNumber Stepper MotorsUnipolar drivers always energize the phases in the same waySingle Stepper MotorsAll of the common coil wires are tied together internally and Driving a Unipolar Stepper Motorconst int stepperPins[4] = {2, 3, 4, 5};int Driving a Bipolar Stepper Motorconst int stepperPins[4] = {2, 3, 4, 5};int Arduino Stepper LibraryAllows to control unipolar or bipolar stepper motorsstepper(steps, pin1, pin2, Arduino Stepper Library#include const int stepsPerRevolution = 200; // change this to
Слайды презентации

Слайд 2 Physical Output
Make things move by controlling motors with

Physical OutputMake things move by controlling motors with ArduinoServo-motorsRotary actuator that

Arduino
Servo-motors
Rotary actuator that allows for precise control of angular

position
DC-motors
Converts direct current electrical power into mechanical power
Stepper-motors
Divides a full rotation into a number of equal steps

Слайд 3 Brushed DC Motors
Simple devices with two leads connected

Brushed DC MotorsSimple devices with two leads connected to brushes (contacts)Control

to brushes (contacts)
Control the magnetic field of the coils
Drives

a metallic core (armature)
Direction of rotation can be reversed by reversing the polarity
Require a transistor to provide adequate current
Primary characteristic in selecting a motor is torque
How much work the motor can do

Слайд 4 Brushless Motors
More powerful and efficient for a given

Brushless MotorsMore powerful and efficient for a given sizeThree phases of

size
Three phases of driving coils
Require more complicated electronic control
Electronics

speed controllers


Слайд 5 DC Motor Parameters
Direct-drive vs. gearhead – built-in gears

DC Motor ParametersDirect-drive vs. gearhead – built-in gears or notVoltage –

or not
Voltage – what voltage it best operates at
Current

(efficiency) – how much current it needs to spin
Speed – how fast it spins
Torque – how strong it spins
Size, shaft diameter, shaft length

Слайд 6 DC Motor Characteristics
When the first start up, they

DC Motor CharacteristicsWhen the first start up, they draw a lot

draw a lot more current, up to 10x more
If

you “stall” them (make it so they can’t turn), they also draw a lot of current
They can operate in either direction, by switching voltage polarity
Usually spin very fast: >1000 RPM
To get slower spinning, need gearing

Слайд 7 Driving DC Motor
To drive them, apply a voltage
The

Driving DC MotorTo drive them, apply a voltageThe higher the voltage,

higher the voltage, the faster the spinning
Polarity determines which

way it rotates



Can be used as voltage generators

Слайд 8 Switching Motors with Transistors
Transistors switch big signals with

Switching Motors with TransistorsTransistors switch big signals with little signalsSince motors

little signals
Since motors can act like generators,
Need to prevent

them from generating “kickback” into the circuit
Can control speed of motor with analogWrite()

Слайд 9 Driving a Brushed Motor
const int motorPin = 3;
const

Driving a Brushed Motorconst int motorPin = 3;const int switchPin =

int switchPin = 2;
void setup() {
pinMode(switchPin, INPUT);

pinMode(motorPin, OUTPUT);
}
void loop() {
digitalWrite(motorPin, digitalRead(switchPin));
}

Слайд 10 Controlling Speed of DC-Motor
const int motorPin = 3;
const

Controlling Speed of DC-Motorconst int motorPin = 3;const int potPin =

int potPin = A0;
void setup() {
}
void loop() {

int spd = analogRead(potPin);
spd = map(spd, 0, 1023, 0, 255);
analogWrite(motorPin, spd);
}

Слайд 11 Servo-Motors
Allow accurately control physical movement
Move to a position

Servo-MotorsAllow accurately control physical movementMove to a position instead of continuously

instead of continuously rotating
Rotate over a range of 0

to 180 degrees
Motor driver is built into the servo
Small motor connected through gears
Output shaft drives a servo arm
Connected to a potentiometer to provide position feedback
Continuous rotation servos
Positional feedback disconnected
Rotate continuously clockwise and counter clockwise with some control over the speed

Слайд 12 Servo-Motors

Servo-Motors

Слайд 13 Servo-Motors
Respond to changes in the duration of a

Servo-MotorsRespond to changes in the duration of a pulseShort pulse of

pulse
Short pulse of 1 ms will cause to rotate

to one extreme
Pulse of 2 ms will rotate the servo to the other extreme

Servos require pulses different from the PWM output from analogWrite


Слайд 14 Servo-Motors
Come in all sizes
from super-tiny
to drive-your-car
All have same

Servo-MotorsCome in all sizesfrom super-tinyto drive-your-carAll have same 3-wire interfaceServos are

3-wire interface
Servos are spec’d by:
weight: 9g
speed: .12s/60deg @ 6V
torque:

22oz/1.5kg @ 6V
voltage: 4.6~6V
size: 21x11x28 mm

Слайд 15 Servo Control
PWM freq is 50 Hz (i.e. every

Servo ControlPWM freq is 50 Hz (i.e. every 20 millisecs)Pulse width

20 millisecs)
Pulse width ranges from 1 to 2 millisecs
In

practice, pulse range can range from 500 to 2500 microsecs

Слайд 16 Servo and Arduino
const int servoPin = 7;
const int

Servo and Arduinoconst int servoPin = 7;const int potPin = A0;const

potPin = A0;
const int pulsePeriod = 20000; //us
void setup()

{
pinMode(servoPin, OUTPUT);
}
void loop() {
int hiTime = map(analogRead(potPin), 0, 1023, 600, 2500);
int loTime = pulsePeriod - hiTime;
digitalWrite(servoPin, HIGH); delayMicroseconds(hiTime);
digitalWrite(servoPin, LOW); delayMicroseconds(loTime);
}

Слайд 17 Use the Servo library
servo.attach(pin[, min][, max]) – attach

Use the Servo libraryservo.attach(pin[, min][, max]) – attach the servopin- the

the servo
pin- the pin number that the servo is

attached to
min (optional) - the pulse width, in microseconds, corresponding to the minimum (0-degree) angle on the servo (defaults to 544)
max (optional) - the pulse width, in microseconds, corresponding to the maximum (180-degree) angle on the servo (defaults to 2,400)
servo.write(angle) – turn the servo arm
angle – the degree value to write to the servo (from 0 to 180)

Слайд 18 Servo sweeper
#include
Servo myservo; // create servo object

Servo sweeper#include Servo myservo; // create servo object to control a

to control a servo
int angle = 0; // variable

to store the servo position
void setup(){
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop(){
for(angle = 0; angle < 180; angle += 1){ // goes from 0 degrees to 180
myservo.write(angle); //tell servo to go to position in variable 'angle'
delay(20); // waits 20ms between servo commands
}
for(angle = 180; angle >= 1; angle -= 1){ // goes from 180 degrees to 0
myservo.write(angle);
delay(20);
}
}

Слайд 19 Controlling angle with pot
#include
Servo myservo; // create

Controlling angle with pot#include Servo myservo; // create servo object to

servo object to control a servo
int potpin = 0;

// analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin
void setup(){
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop(){
val = analogRead(potpin); // reads the value of the potentiometer
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo
myservo.write(val); // sets position
delay(15);
}

Слайд 20 Stepper Motors
Rotate a specific number of degrees in

Stepper MotorsRotate a specific number of degrees in response to control

response to control pulses
Number of degrees for a step

is motor-dependent
Ranging from one or two degrees per step to 30 degrees or more
Two types of steppers
Bipolar - typically with four leads attached to two coils
Unipolar - five or six leads attached to two coils
Additional wires in a unipolar stepper are internally connected to the center of the coils

Слайд 21 Stepper Motors
Unipolar drivers always energize the phases in

Stepper MotorsUnipolar drivers always energize the phases in the same waySingle

the same way
Single "common" lead, will always be negative.


The other lead will always be positive
Disadvantage - less available torque, because only half of the coils can be energized at a time
Bipolar drivers work by alternating the polarity to phases
All the coils can be put to work


Слайд 22 Stepper Motors
All of the common coil wires are

Stepper MotorsAll of the common coil wires are tied together internally

tied together internally and brought out as a 5th

wire. This motor can only be driven as a unipolar motor.

This motor only joins the common wires of 2 paired phases. These two wires can be joined to create a 5-wire unipolar motor. Or you just can ignore them and treat it like a bipolar motor!

It can be driven in several ways:
4-phase unipolar - All the common wires are connected together - just like a 5-wire motor.
2-phase series bipolar - The phases are connected in series - just like a 6-wire motor.
2-phase parallel bipolar - The phases are connected in parallel. This results in half the resistance and inductance - but requires twice the current to drive. The advantage of this wiring is higher torque and top speed.


Слайд 23 Driving a Unipolar Stepper Motor
const int stepperPins[4] =

Driving a Unipolar Stepper Motorconst int stepperPins[4] = {2, 3, 4,

{2, 3, 4, 5};
int delayTime = 5;
void setup() {

for(int i=0; i<4; i++)
pinMode(stepperPins[i], OUTPUT);
}

void loop() {
digitalWrite(stepperPins[0], HIGH);
digitalWrite(stepperPins[1], LOW);
digitalWrite(stepperPins[2], LOW);
digitalWrite(stepperPins[3], LOW);
delay(delayTime);
digitalWrite(stepperPins[0], LOW);
digitalWrite(stepperPins[1], HIGH);
digitalWrite(stepperPins[2], LOW);
digitalWrite(stepperPins[3], LOW);
delay(delayTime);
digitalWrite(stepperPins[0], LOW);
digitalWrite(stepperPins[1], LOW);
digitalWrite(stepperPins[2], HIGH);
digitalWrite(stepperPins[3], LOW);
delay(delayTime);
digitalWrite(stepperPins[0], LOW);
digitalWrite(stepperPins[1], LOW);
digitalWrite(stepperPins[2], LOW);
digitalWrite(stepperPins[3], HIGH);
delay(delayTime);
}


Слайд 24 Driving a Bipolar Stepper Motor
const int stepperPins[4] =

Driving a Bipolar Stepper Motorconst int stepperPins[4] = {2, 3, 4,

{2, 3, 4, 5};
int delayTime = 5;
void setup() {

for(int i=0; i<4; i++)
pinMode(stepperPins[i], OUTPUT);
}
void loop() {
digitalWrite(stepperPins[0], LOW);
digitalWrite(stepperPins[1], HIGH);
digitalWrite(stepperPins[2], HIGH);
digitalWrite(stepperPins[3], LOW);
delay(delayTime);
digitalWrite(stepperPins[0], LOW);
digitalWrite(stepperPins[1], HIGH);
digitalWrite(stepperPins[2], LOW);
digitalWrite(stepperPins[3], HIGH);
delay(delayTime);
digitalWrite(stepperPins[0], HIGH);
digitalWrite(stepperPins[1], LOW);
digitalWrite(stepperPins[2], LOW);
digitalWrite(stepperPins[3], HIGH);
delay(delayTime);
digitalWrite(stepperPins[0], HIGH);
digitalWrite(stepperPins[1], LOW);
digitalWrite(stepperPins[2], HIGH);
digitalWrite(stepperPins[3], LOW);
delay(delayTime);
}

Слайд 25 Arduino Stepper Library
Allows to control unipolar or bipolar

Arduino Stepper LibraryAllows to control unipolar or bipolar stepper motorsstepper(steps, pin1,

stepper motors
stepper(steps, pin1, pin2, pin3, pin4) – attach and

initialize stepper
steps: number of steps in one revolution of motor
pin1, pin2, pin3, pin4: 4 pins attached to the motor
setSpeed(rpms) - Sets the motor speed in rotations per minute (RPMs)
step(steps) - Turns the motor a specific number of steps, positive to turn one direction, negative to turn the other
This function is blocking
wait until the motor has finished moving before passing control to the next line in sketch

  • Имя файла: physical-output.pptx
  • Количество просмотров: 149
  • Количество скачиваний: 0