robotics research laboratory louisiana state university
TRANSCRIPT
CSC-2700 – (3) Introduction to Robotics
Robotics Research LaboratoryLouisiana State University
Pulse-width Modulation◦ What for◦ How it works◦ Applications ◦ How to make it
Servo Motor Control◦ What is servo motor◦ How it works◦ Set position of servo head
Simple Hexabot◦ Walking◦ Turning◦ Control hexbot
What we learned in last class
How to make it?◦ Digital Out (PINx)◦ Special Function I/O Regiser (SFR/SFIOR)
◦ Using a main program ns_spin( int delay_time ) ; TOGGLE_PIN(PINxx)
◦ Using interrupts Timers PORTB – PINB5 (OCA1), PINB6 (OC1B), PINB7 (OC2) PORTE – PINE3 (OC3C), PINE4 (OC3B), PINE5 (OC3A)
Pulse-width Modulation
What is it?◦ Robotic Arms, RC-Airplane, etc.◦ Mechanical position change
How does it work?◦ Position Reader (Potentiometer)◦ DC-Motor◦ PWM DC-Motor Controller◦ Body Frame◦ Gears◦ Servo Head
Servo Motor Control
How to set position of a servo head◦ /home/csc2700/csc2700/10-PWM-Servo-01
Servo Motor Control
int count = 0;while (1){ switch (count++ % 4){ case(0): OCR3A = 1000; break; // OCR3A is PINE3 , 1000 is 1ms == left (0 degree) case(1): OCR3A = 3000; break; // OCR3A is PINE3 , 3000 is 3ms == middle (90 degree) case(2): OCR3A = 5000; break; // OCR3A is PINE3 , 5000 is 5ms == right (180 degree) case(3): OCR3A = 3000; break; // OCR3A is PINE3 } ms_spin(1000);}
DC Motor Controller (TB6612FNG)
MOSFET-based H-bridges
MOSFET-based H-bridges Recommended motor voltage (VMOT): 4.5 – 13.5
V Logic voltage (VCC): 2.7 – 5.5 V Output current maximum: 3 A per channel Output current continuous: 1 A per channel (can
be paralleled to deliver 2 A continuous) Maximum PWM frequency: 100 kHz Built-in thermal shutdown circuit Filtering capacitors on both supply lines Reverse-power protection on the motor supply
TB6612FNG Specifications
The metal–oxide–semiconductor field-effect transistor
MOSFET-based H-bridges
An H bridge is an electronic circuit that enables a voltage to be applied across a load in either direction
H- Bridge
H- Bridge
Let’s make a simple DC-motor control programint main(void){ InitHardware(); initPWM(); MC_HI(STANBY); MC_LO(LEFT0); MC_LO(LEFT1); MC_LO(RIGHT0); MC_LO(RIGHT1); int speed = 1000; int delay = 100; while (1){ MC_LO(LEFT0);MC_HI(LEFT1); SetPWM( PWM_PINE3, speed); SetPWM( PWM_PINE4, speed); ms_spin(delay); MC_LO(RIGHT0);MC_HI(RIGHT1); SetPWM( PWM_PINE3, speed); SetPWM( PWM_PINE4, speed); ms_spin(delay); speed += 1000; if (speed > 40000){ speed = 1000; } }}
Create a DC motor speed control program, which
has a clockwise button, an anti-clockwise button,
and a stop button
◦ The clockwise button is for increasing speed of Motor
controller toward clockwise (speed down for anti-
clockwise)
◦ The anti-clockwise button is for increasing speed of Motor
controller toward anti-clockwise (speed down for
clockwise)
◦ The stop button is for stop DC motor
Homework- 6