You are on page 1of 65

Barclays Mobile Robotics

Hour 1

Overview Session
What is a Robot ?
• From Wikipedia
• A robot is a mechanical or virtual artificial agent, usually an electro-
mechanical machine that is guided by a computer program or electronic
circuitry.
• Robots can be autonomous or semi-autonomous and range from
humanoids such as Honda's Advanced Step in Innovative Mobility (ASIMO)
and TOSY's TOSY Ping Pong Playing Robot (TOPIO) to industrial robots,
collectively programmed swarm robots, and even microscopic nano robots.
• By mimicking a lifelike appearance or automating movements, a robot may
convey a sense of intelligence or thought of its own.
What is a Robot ?
• From The Oxford English Dictionary
• A machine capable of carrying out a complex series of actions
automatically, especially one programmable by a computer:
What is a Robot
What is a Robot – The Future ?
• What do you think a robot is ?
• Could a robot replace your teacher ?
Using Robotics To Learn Programming
• At Barclays we have found that using small robots teaches
programming in a way that helps everyone understand the basics
• We will be using these robots from 4tronix
• 3 different challenges
• Programming at the end of the session - create your own robot zoog
on the screen
Icebreaker
• Ever wanted to be an app ? Now is your chance
Introducing the Robot
• How the Robot works
• How to upload code
• How to change code
Introducing the Robot – The IDE
• Where you write code
• Save your sketch – the
app
Introducing the Robot – The Sketch
void loop()
• The sketch is the app {

• void loop() Serial.println(“In the loop");


• Curly bracket {} forward(1000,255,255);
• Semicolon ; halt(0);

• Functions – command reverse(1000,255,255);


halt(0);
• Arguments to function
• Debug print
}
Introducing the Robot
• Plug the robot into the laptop with the USB Cable
• Load and run BRC_Move sketch
• Make some changes to see what happens
Barclays Mobile Robotics
Hour 2

Move Challenge 1
Barclays Mobile Robotics
Hour 3

Shape Challenge 2
Barclays Mobile Robotics
Hour 4

The Auto Challenge


The if instruction
• You can use the if instruction also called a statement to execute code if
something is true
• Each sketch for the advanced challenge contains a working if – for
example

If ( leftObstacleSensor() == true )
{
//Execute this block of code within the curly brackets
halt(0);
reverse(0,255);
}
Active Sensor - Ultrasonic
Passive Sensor - Motion
• Motion Sensors can detect movement – they look for IR / Heat
Passive Sensor – Light/IR
• Light Sensor can detect Light – Or Infra Red. Used a lot in Robotics for
position and distance calculation
Laser Range Finders
• Laser Range Finders send out a laser beam. The beam bounces off its
target and the light comes back and the sensors can measure the time
difference.
• This is a very accurate measurement. Expensive to buy
Barclays Mobile Robotics
Hour 5

The Line Follower


Quick Revise on the if instruction
• You can use the if instruction also called a statement to execute code if
something is true
• Each sketch for the advanced challenge contains a working if – for
example

If ( leftObstacleSensor() == true )
{
//Execute this block of code within the curly brackets
halt(0);
reverse(0,255);
}
Passive Sensor – Light/IR
• Light Sensor can detect Light – Or Infra Red. Used a lot in Robotics for
position and distance calculation
Barclays Mobile Robotics
Hour 6

Robots with Line Follower – Speed Challange


Line Follower Track
• Line follower track – robot uses
sensors to track line
• Your code to keep robot on the
line and get it from start to finish
Barclays Mobile Robotics
Hour 7

Programming With Processing


Software and programming
• First Programmable Computer
– 1944 – World War II helped
to break Codes
• Colossus
• Mainframes
• Desktop PC
• Smartphones
• Credit Cards
• Google Glass
• What Next ?
Software and programming
• Computing Power has doubled every 18 months since 1980
• A Cray XMP in 1990 cost 20 Million Dollars
• Same computer in 2014 costs $200 dollars and is still 10 times more
powerful
• If we had same comparisons with Aeroplanes – then you could by a
jumbo jet for the same cost as a pizza
• Computing power in 20 years will be astonishing
Software – Lets Code
The Screen Grid
• Pixel
The Screen Grid 0 1 2 3 4 5 6 7
s

• X Direction
The Screen Grid 0
1
• Y Direction
2
3
4
5
6
7
The Screen Grid 0 1 2 3 4 5
1
• Coordinate
• (X,Y)
2
• 5,4 3
4
The Screen Grid 0 1 2 3 4 5 6 7
1
• Coordinate
• (X,Y)
2 ?
• (6,3) 3 ?
• ????
4 ?
5
6
7
The Screen Grid 1280

• Coordinate System of
Screen could be 1280
x 1024
• (X,Y)
• (600,700)
1024
• ????
Software – Lets Code
• Open Processing on Laptop
• Get to first Screen
• This is an IDE
• This is where you will write code
• Called a Sketch
• Save the Sketch
• Open an Example
Software – Lets Code
• Example – Open the Bounce
Sketch and have a look and run
Software – Lets Code
• Have a look at the code – can you
see how to make the ball get
smaller or bigger ?
• Faster or slower ?
• Have a look and see what you
think – use the stop button and
restart when you have made a
change in the code
Software – Lets Code
• Software programs are procedural
• Real Life Demo! You are Sketch!
• See how programs are procedures – one instruction then another
• In a Loop
Software – Lets Code
• Lets look at writing a few lines of
code – create a new sketch and
type these lines
• size(500,500);
• ellipse(100,100,50,50);
• Now run
Software – Lets Code
• Syntax is important – this sets the size of the window

size(500,500);
Software – Lets Code
• Syntax is important – draw a circle

ellipse(100,100,50,50);
Software – Lets Code
• We can change colour and size of
lines.
• Colour can be set by the fill
command
• size(300,300);
• fill(0);
• ellipse(100,100,40,50);
• fill(255);
• ellipse(140,140,40,50);
Software – Lets Code
• Some commands can set the colour
• fill
• If you use single number 0 is black
and 255 is white
• If you use a triplet with RGB Red
Green Blue
• 255,0,0 is red
• fill(255,0,0);
• ellipse(100,100,20,20);
• Draws an circle that is red
Software – Lets Code
• We can change colour and size of
lines.
• Colour can be set by the fill
command
• size(300,300);
• fill(0,255,0);
• ellipse(100,100,40,50);
• fill(255,0,255,0);
• ellipse(140,140,40,50);
Software – Lets Code
• Different commands
• line(x1,y1,x2,y2);
• stroke(34); ( Line Colour)
• strokeWeight(3);
• rect(x1,y1,l,w);
• background(255);
• Use these to make something!
• http://processing.org/tutorials/
// zoog
// Eyes
size(200,200); fill(0);
background(255); ellipse(81,70,16,32);
smooth(); ellipse(119,70,16,32);
ellipseMode(CENTER);
rectMode(CENTER); // Legs
stroke(0);
// Body line(90,150,80,160);
stroke(0); line(110,150,120,160);
fill(150);
rect(100,100,20,100);
Software – Lets Code
• Lets look ad Sketch Structure so
we can build more advanced
sketches
void setup()
{
}
void draw()
{
}
Software – Lets Code
void setup() {
// Set the size of the window
size(200,200);
Type the first part into }

a new sketch // draw() loops continuously until you close the sketch
window.
Save it! void draw() {
// Draw a white background
background(255);

// Set CENTER mode


ellipseMode(CENTER);
rectMode(CENTER);

// Draw Zoog's body


stroke(0);
fill(150);
rect(100,100,20,100);
Software – Lets Code
// Draw Zoog's head
Don’t Forget the Curly stroke(0);
Bracket! fill(255);
ellipse(100,70,60,60);
Then Run it – don’t
// Draw Zoog's eyes
forget to save it you fill(0);
ellipse(81,70,16,32);
will need it ellipse(119,70,16,32);

// Draw Zoog's legs


stroke(0);
line(90,150,80,160);
line(110,150,120,160);
}
Software – Lets Code
void setup() {
size(200,200);
}

void draw() {
background(255);

stroke(0);
fill(175);
rectMode(CENTER);

rect(mouseX,mouseY,50,50);

}
Software – Lets Code
• Go back to zoog sketch and see if you
can use mouseX and mouseY to move
bits of zoog around
• Hint – you can write mouse+10 like
• ellipse(mouseX+10,mouseY,100,100);
Software – Lets Code
• Variables allow us to use names
rather than values.
• We can modify the values when the
sketch is running
• mouseX is a variable
Software – Lets Code
// Declare and initialize two integer variables at the top of the
code.
int circleX = 100;
Copy this code to a int circleY = 100;

new sketch void setup() {


size(200,200);
Change the 100 smooth();
values and see what }

happens void draw() {


background(255);
stroke(0);
fill(175);
// Use the variables to specify the location of an ellipse.
ellipse(circleX,circleY,50,50);
}
Software – Lets Code
• The if statement means you can test for a value and then only execute
the code you need
• Great for sensors on robots – if the sensor is on – then go forward

If ( test )
{
Execute this code(value);
}
Software – Lets Code
• The test can be greater than, less than, equal to AND OR and any
combination you like:

If ( mouseX > circleX )


{
fill(255);
ellipse(100,100,20,20);
}
Software – Lets Code
• These are the most popular if tests

If ( mouseX > circleX ) - Great than


If ( mouseX < circleX ) - Less than
If ( mouseX == circleX ) - Equals
If ( mouseX != circleX ) - Does NOT Equals
If ( mouseX == circleX && mouseY == circleY) - AND
If ( mouseX == circleX || mouseY == circleY) - OR
float r = 150;
float g = 0;

Software – Lets Code float b = 0;

void setup() {
size(200,200);
}

void draw() {
Type this in – what
background(r,g,b);
happens ???? stroke(255);
Change things around line(width/2,0,width/2,height);

If (mouseX > width/2) {


r = 255;
} else {
r = 0;
}
}
END OF BARCLAYS MOBILE
ROBOTICS COURSE
We hope you enjoyed it!
Resources
Resource Slides – see notes
1 - GOTO CENTRE OF ROOM

2 - MOVE FORWARD 2 STEPS

3 - TURN 90 DEGREES LEFT

4 - MOVE FORWARD 3 STEPS


5 - IF CLEAR AHEAD MOVE 1 STEP

6 - IF NOT CLEAR TURN 180 DEGREES

7 - MOVE FORWARD 2 STEPS

8 - GO BACK TO FIRST INSTRUCTION


Laptop Build
• 12 Laptops for 24 Pupils
• Xubuntu
• Arduino
• Basic Shape
• Basic Line Follower
• Basic Follow
• Basic Avoid
• Processing
Arduino
• 12 Arduino Boards – not all lessons required
• 12 Ultrasonic Sensors
• 12 Bread boards
• 24 LED / Resistors
• Ultrasonic Sketch provided to get distance and light LED
• Circuit Design and Build Instructions
Processing
• Installed software
• Prewritten Sketches
Final Challenges
• Shape follow – robots x 6 Cables and Wheels
• Laptops 6
• A3 / Flipcharts sheets for flow diagrams
• 2 x A0 sheets with line follower.
• 2 x Obstacles – could be TBC
• For follower use a pupil!

You might also like