Programming Concepts Part B Ping Hsu. Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set.

Slides:



Advertisements
Similar presentations
1 Signals, Circuits, and Computers John Athanasiou Part B Spring 2010.
Advertisements

MOTION CONTROL ECE 105 Industrial Electronics Engr. Jeffrey T. Dellosa College of Engineering and Information Technology Caraga State University Ampayon,
IR Control Materials taken from a variety of sources including IR Remote for the Boe-Bot by Andy Lindsay.
Sensors.
VEX and Robot C Chris Patterson Presented by Modified by J. Andazola.
Vex Robotics Introduction to Sensors. introduction to sensors Sensors assist robots in seeing and feeling the physical world through which they travel.
EML 2023 – Motor Control Lecture 4 – DAQ and Motor Controller.
Programing Concept Ken Youssefi/Ping HsuIntroduction to Engineering – E10 1 ENGR 10 Introduction to Engineering (Part A)
Available at: – Program Optical Quad Encoders in Autonomous Mode Program optical quad encoders in autonomous mode.
Blogics! It’s a logic circuit simulator aimed at beginners. It introduces simple concepts in the design of interactive physical computing systems such.
Programming Concepts (Part A) Ping Hsu. What is a program? WHITE CAKE RECIPE 1.Preheat oven to 350 degrees F (175 degrees C). 2.Grease and flour a 9x9.
Programming Concepts C: GOTO_Beacon ENGR 10 Introduction to Engineering 1.
Copier Jam Detector Design Problem
IR SENSORS AND ENCODERS. LCDs Timothy Friez Class # 2.
Introduction to Sensors
1 ©2006 INSciTE Lab Two Task: Make the program from Lab One (Move forward 5 rotations and turn right 90 degrees) into a MyBlock.
Reviewing Common Blocks for St. Agnes Elementary School Teachers by Jenny Chang Feb. 26th, 2007 USC & University Neighborhood Outreach Robotics STEM program.
Controller, Sensors and Motors Ding Ke Tutorial 1, UGB 230N.
Applied Control Systems Robotics & Robotic Control
Servo Motor Control Demonstration.
Program ultrasonic range sensor in autonomous mode
GIRLS Robotic Camp. Let’s Begin Meet and Greet – Camp leaders introduce themselves – Students introduce themselves.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class 2.
Programming Concepts (Part B) ENGR 10 Introduction to Engineering 1 Hsu/Youssefi.
Programing Concept Ken Youssefi/Ping HsuIntroduction to Engineering – E10 1 ENGR 10 Introduction to Engineering (Part A)
Servo Motor Control Demonstration. EML 2023 Department of Mechanical and Aerospace Engineering motor with gear reducer flex coupling incremental optical.
Introducing Cubelets What do they do?
10/10/ Controlling YOUR ROBOT. 10/10/2015 Basic Stamp  Basic Stamp Input - output pins Interpreter Chip Power supply: 5 Volts voltage Memory: EEPROM.
Forging new generations of engineers
7.2 V battery pack and charger Put the battery in the charger station at the end of the lab. period. Red light indicates charging. Ken Youssefi Introduction.
Robot sensors MVRT 2010 – 2011 season. Analog versus Digital Analog Goes from 0 to 254 Numerous values Similar to making waves because there are not sudden.
Programming Design ROBOTC Software Principles of Engineering
The George Washington University Department of ECE ECE Intro: Electrical & Computer Engineering Dr. S. Ahmadi Class 4/Lab3.
Mindstorm NXT-G Introduction Towson University Robotics.
VEX and Robot C Chris Patterson Frisco ISD CTE Center Presented by.
Vex Robotics Program Two: Using two motors. Program two: using the motors In the last section, you learned how to turn on one motor. Now, you will take.
Obstacle Detection. In the previous program the robot moves forward and then checks for something in the way. As we observed it only checks for things.
Casne.ncl.ac.uk Taking care of the CrumbleBot Please do NOT stress the robot's motors 1.Do NOT push the robot 2.Do NOT hold the.
Mechanical Components and Programming Ken Youssefi Introduction to Engineering – E10 1.
Actuators and Control, Part 4 Grant Agreement No LLP UK-LEONARDO-LMP Project acronym: CLEM Project title: Cloud services for E-Learning.
Forward Until Near Stop when near a wall.
ROBOTC for VEX Online Professional Development. Homework Questions Thoughts? Questions?
Introduction to VEX® components
Programming Design ROBOTC Software. Behavior-Based Programming A behavior is anything your robot does –Turning on a single motor or servo Three main types.
Basic Programming: Until Commands. The Problem with Wait States Motor Speed is affected by battery power. –If the battery is fully charged, the motors.
ROBOTC for CORTEX Teacher Training © 2011 Project Lead The Way, Inc. Automation and Robotics VEX.
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Project Overview Introduction & Product Analysis
- Usable range of 0 to 6 feet. - Find dark or bright areas.
Download the GOTO BEACON program from the E10 website, Robot lab section,
ROBOTC for VEX Online Professional Development
Sensors For Robotics Robotics Academy All Rights Reserved.
Robotics Programming Using Shaft Encoders
Introduction To Programming with LEGO NXT 0
ROBOTC for VEX Online Professional Development
IR Control Materials taken from a variety of sources including IR Remote for the Boe-Bot by Andy Lindsay.
Sensors For Robotics Robotics Academy All Rights Reserved.
Pulse Width Modulation (PWM) Motor Feedback - Shaft Encoder
Vex Ultrasonic Sensor (US) Interfacing and Programming
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
RobotC Sensors.
Download the GOTO BEACON program from the E10 website, Robot lab section,
TECH 1 BAMS Technology Education
Sensors and Logic Switches
Controlling YOUR ROBOT
Copier Jam Detector Design Problem
Input-Output-Process Demo
UNIT 7: INFRARED SENSORS
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
UNIT 7: INFRARED SENSORS
Presentation transcript:

Programming Concepts Part B Ping Hsu

Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set of instructions that has a specific purpose are efficiently represented in the main program. For example, the factorial routine can be represented by a single instruction (a function). result = factorial(8);

Functions Q) What is a function ? A function is just a name given to represent a set of instructions (routine). So whenever we want to use that routine, we just use the name instead of repeating the entire set of instructions. The following example shows how to write a function and how to call that function – MAX_Three  find the maximum of 3 numbers

Sequential execution of main program which calls the defined function

Introduction to Local Variable The MAX_Three function finds the greatest of the three numbers A, B and C. These variables were defined as global variables. Before this function is called, your program must have copied the values into these three variables. This operation can be done more efficiently by using local variables.

Program using Function with passing variables

What is a Local variable ? The value of a local variable is accessible only to the function within which it is defined. The main function passes the values into the function and these values are copied into the local variables of the function. The function doesn’t care what are the names of the variables defined in the main function. The function does what it should do and then returns the result to the main function. The values of these local variables are lost after the execution of the function is completed.

Global Variable Concept Main Function Defined Function Task of the function A B C Z

Local Variable Concept Main Function Defined Function Task of the function A B C Z x b h k

Review Question #1 A local variable is known only to the function in which it is defined: A. True B. False

Interfacing

Motor Movement of the Robot is possible by the use of “motors”. The robot has two motors, one controlling each side of the robot. This combination is enough to perform any of the basic movements. The motors can be rotated either clockwise or counter-clockwise depending on which the overall motion of the robot is determined.

This chart describes the combination of the motor movement required to perform each maneuver

How to move a motor? Motor can be set to move by the use of the following statement in the program SetMotor ( 2, 255 ); This number indicates that the motor is connected to motor port 2 of the total available 8 ports This number sets the direction and speed of the motion of the motor

Motor Speed & Direction ValueMotor Direction Clockwise high speed Clockwise low speed Stop Counter Clockwise low speed Counter Clockwise high speed

How to connect the motor to the Controller? On the VEX controller you have several ports available so that you can connect not only motors but also other devices and sensors to it. PORT: A port is a specific place on the board where we can connect other external devices, so that the two devices in connection can exchange information or data.

Program to move the robot forward Now let us write a program to make the robot move forward for 2 seconds and then stop. Assume: Left Motor – connected to motor port 3 Right Motor – connected to motor port 2

Program to make the motor move forward for 2 seconds and then stop

Review Question #2 What value of x will cause the motor to be stopped: SetMotor(2, x)? A. 255 B. 127 C. 0 D E. -255

Servos Servo units are similar to the motors except that they control the position rather than the speed. Servo units have limited range of motion (about 120 o ) A value between 0 and 255 sets the direction of the servo. 0 – Extreme clockwise direction 127 – No movement 255 – Extreme counter-clockwise direction

o0o 60 o - 60 o clockwise   Counter-clockwise Graphical representation of the direction of rotation of the Servo

Servo Similar to the motor the following statement is used to set the servo to turn to a direction. SetServo ( 5, 255 ); Indicates the motor port number to which the servo is connected. This value sets the direction of the servo

o0o o clockwise   Counter-clockwise SetServo (5, 64) 30 o 64

o0o 60 o - 60 o clockwise   Counter-clockwise SetServo (5, 191) -30 o 191

Program showing how to move the servo continuously

o0o 60 o - 60 o clockwise   Counter-clockwise Output of the above program -30 o o 64

Introduction to Logic Signals A logic signal can take on either 0v or 5v → 0v represents “Low state” or “Logic 0” → 5v represents “High state” or “Logic 1” A logic signal can also be called a “digital signal”

Bumper Switch A Bumper Switch is a digital sensor. It can distinguish between two states: whether it is pressed or not pressed. When the switch is not pressed, the robot interprets this value as a 1 (high state). When the switch is pressed the robot interprets the value as a 0 (low state).

Bumper Switch The state of the bumper switch can be read by the use of the following statement in the program. Bumper = GetDigitalInput ( 2 ); A variable into which the status of the bumper switch will be stored. This number indicates the port number to which the bumper switch is connected

stores the state of the bumper switch into the variable “bumper”. checks if there is a contact with an obstacle (switch will be pressed if there is a contact) sets the motor to move forward as long as there is no obstacle if the switch is pressed, these statements make the robot halt for 1 second Then the robot is turned left for 2 seconds Program to make the robot halt, turn and move forward when there is an obstacle

Digital Output The “Digital output” function can be used to control the state of a digital output. By using this function you can send digital signals (either 0 or 1) to the devices which can accept digital signals. For example, by using this function you can turn off or on an LED. 1 => 5v => light is on 0 => 0v => light is off

Digital Output The following statement is used in the program to control the devices i.e., send digital signals. SetDigitalOutput ( 6, 1 ); Indicates the port number (here port 6) to which the device to be controlled is connected The digital value to be sent (either 0 or 1)

Program to make an LED blink continuously

Review Question #3 What voltage level corresponds with logic level 1? A. 0 V B. 10 V C. 5 V D. 255 E. 127

Analog Signals For the VEX controller, an analog signal can take any value between 0v and 5v. → 0v is represented by a value 0 → 5v is represented by a value 1023 All other voltage levels between 0v and 5v are represented by the numbers between 0 and v 00v v

Analog Input An analog input function block can be used to receive analog signals (any value between 0v & 5v) from analog sensors. In our previous discussion, we saw that the range 0v-5v is represented by the range of numbers But in general the range used to represent 0v- 5v depends on the controller.

Light Sensor A light sensor is an example of a analog sensor. A light sensor reads the intensity of light of an area, translates the reading into a single numeric value, and sends that value to the robot. The range of values used by this sensor is The higher the value, the darker will be the area and vice versa.

Light sensor The following statement is used to read the analog signal from a light sensor. light = GetAnalogInput ( 1 ) ; A variable named “light” into which the reading (0-1023) from the light sensor is stored Indicates the port number (here port 1) to which the light sensor is connected to

Program to make the robot move towards the moving light source If light intensity is more on the left side, the robot turns toward the left side If light intensity is more on right side, the robot turns toward the right side If light intensity is the same on both sides, the robot moves forward

Ultrasonic Sensor The Ultrasonic Sensor is also an analog sensor. The Ultrasonic Sensor uses high-frequency sound waves to detect objects. It emits a sound wave, measures how long it takes the sound wave to bounce back, and then calculates how far away the object is. The measurement is translated into a numeric value from The lower the signal value, the closer will be the detected object and vice versa.

Ultrasonic Sensor Connections Ultrasonic Sensor VEX Controller Digital Output port Interrupt port Input Output

Ultrasonic Sensor The following statement starts an ultrasonic sensor i.e., the sensor starts sending and recording the sound signals. StartUltrasonic ( 1, 8 ) ; Sensor connected to interrupt port 1 of the total available 6 ports. Sensor connected to output port 8 through which it receives digital control signals from the controller.

Ultrasonic Sensor The following statement is used to read a value from the sensor Range = GetUltrasonic ( 1, 8 ); Variable into which the translated value is stored Interrupt port #1 to which the sensor is connected The sensor is connected to output port # 8 on the controller

Program to stop the forward moving robot when a nearing object is detected Setting the robot to move forward Start the ultrasonic detector connected to interrupt port # 8 and output port # 1 Store the translated signal into the variable Range Checking if the obstacle is near or far Making the robot to stop if an obstacle is nearby

Optical Shaft Encoder The optical shaft encoder is a digital sensor. It is used to measure rotational movement The encoder basically has a disc with 90 equally spaced slots on its outer edge. As the disc rotates, an infrared light sensor is used to count the number of slots passed. A count of 90 makes one revolution.

Optical Shaft Encoder

The following statement is used to start the encoder counting. StartEncoder ( 2 ) ; This number indicates that the encoder is connected to interrupt port # 2 on the VEX controller

Optical Shaft Encoder The following statement is used to get the present count value from the encoder. Count = GetEncoder ( 2 ) ; A variable named “count” into which the present count value will be stored Interrupt port # 2 to which the Encoder is connected

PresetEncoder ( 2, 25) ; This statement is used to make the encoder start counting from a given number (here 25) instead of from zero. Example Write a program to make the robot move for 1 meter and then stop. Assume 5 turns of the wheel = 1 meter

Program to make the robot move forward for 1 meter Presetting the encoder to 20. Count value starts from 20. if count reaches 470 the robot stops. 470 = 450 (count for 5 turns) + 20 (initial value)