Barclays Mobile Robotics Hour 1 Overview Session.

Slides:



Advertisements
Similar presentations
Creative Computing. \\ aims By the end of the session you will be able to: 1.Move objects around 2.Write simple interactive programs 3.Use the mouse position.
Advertisements

Variables Conditionals Boolean Expressions Conditional Statements How a program produces different results based on varying circumstances if, else if,
Game with US Beginner Tutorial. Welcome!! Who I am What is Processing? Basic Coding Input Methods Images Classes Arrays.
Emerging Platform#5: Processing 2 B. Ramamurthy 6/13/2014B. Ramamurthy, CS6511.
Lab7: Introduction to Arduino
 Variables  What are they?  Declaring and initializing variables  Common uses for variables  Variables you get “for free” in Processing ▪ Aka: Built-in.
Bug Session One. Session description In this session, pupils are introduced to a programming sequence which will make a light pattern on their Bug. Objectives.
Processing Processing is a simple programming environment that was created to make it easier to develop visually oriented applications with an emphasis.
Autonomy using Encoders Intro to Robotics. Goal Our new task is to navigate a labyrinth. But this time we will NOT use motor commands in conjunction with.
What is iteration? I mean, what is iteration? Seriously, what is iteration?
Aim: Use the given examples to record examples and our own ideas in our journal 1.Write technical examples in journal and/or participate in full.
IAT 800 Lab 1: Loops, Animation, and Simple User Interaction.
ICM Week 2. Structure - statements and blocks of code Any single statement ends with semicolon ; When we want to bunch a few statements together we use.
Introduction to Arduino Prepared by R. Lamond.  “Arduino is an open-source electronics prototyping platform based on flexible, easy- to-use hardware.
Embedded Programming and Robotics
Working with Arduino: Lesson #1: Getting Acquainted with the Kit EGN1007.
Testbed: Exercises.
Bug Session One. Session description In this session, pupils are introduced to a programming sequence which will make a light pattern on their Bug. Objectives.
What is RobotC?!?! Team 2425 Hydra. Overview What is RobotC What is RobotC used for What you need to program a robot How a robot program works Framework.
Beech Hall School Computing Science Course. To learn how to design and create a software application – an App Learn the basics of App Design Learn the.
Review Blocks of code {.. A bunch of ‘statements’; } Structured programming Learning Processing: Slides by Don Smith 1.
Programming for Artists ART 315 Dr. J. R. Parker Art/Digital Media Lab Lec 10 Fall 2010.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class 2.
Coding for the FIRST Tech Challenge: RobotC
1 k Jarek Rossignac,  2008 Processing  Install Processing  Learn how to edit, run, save, export, post programs  Understand.
Continuous February 16, Test Review What expression represents the zip car eligibility rules of at least 18 years old and no incidents?
More switches, Comparison Day 7 Computer Programming through Robotics CPST 410 Summer 2009.
Keyboard and Events. What about the keyboard? Keyboard inputs can be used in many ways---not just for text The boolean variable keyPressed is true if.
PAGES:51-59 SECTION: CONTROL1 : DECISIONS Decisions.
______________________________________________________________________________________ SCHOOL OF INTERACTIVE ARTS + TECHNOLOGY [SIAT] |
Programming for Artists ART 315 Dr. J. R. Parker Art/Digital Media Lab Lec 10 Fall 2010.
Barclays Robot Challenge Learn how to Program Robots.
Introduction to Image processing using processing.
Introduction to Processing. 2 What is processing? A simple programming environment that was created to make it easier to develop visually oriented applications.
CIS 3.5 Lecture 2.2 More programming with "Processing"
Lesson Two: Everything You Need to Know
Variables Art &Technology, 3rd Semester Aalborg University Programming David Meredith
Lesson Two: Everything You Need to Know
Lawrence Snyder University of Washington, Seattle © Lawrence Snyder 2004 Drawing pictures … It’s not art, it’s fun.
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Microcontrollers, Microcomputers, and Microprocessors
Continuous. Flow of Control Programs can broadly be classified as being –Procedural Programs are executed once in the order specified by the code varied.
B. RAMAMURTHY Processing and Programming cse
Welcome to Processing Who does not have access to digital camera?
1 SIC / CoC / Georgia Tech MAGIC Lab Rossignac Processing  Install Processing  Learn how to edit, run, save, export,
Robot Project by Ahmad Shtaiyat Supervised by Dr. Salem Al-Agtash.
Review Random numbers mouseX, mouseY setup() & draw() frameRate(), loop(), noLoop() Mouse and Keyboard interaction Arcs, curves, bézier curves, custom.
Barclays Robot Challenge Learn how to Program Robots.
Variables. Something to mention… void setup(){ size(200, 200); background(255); smooth(); } void draw() { stroke(0); strokeWeight(abs(mouseX-pmouseX));
Functions. 2 Modularity What is a function? A named block of code Sometimes called a ‘module’, ‘method’ or a ‘procedure’ Some examples that you know are:
Python Programming Module 4 Sensors and Loops Python Programming, 2/e1.
11 Making Decisions in a Program Session 2.3. Session Overview  Introduce the idea of an algorithm  Show how a program can make logical decisions based.
How Do You Make a Program Wait?
PRESENTATION ON Line follower robot.
ROBOTICS.
VEX IQ Curriculum Smart Machines Lesson 09 Lesson Materials:
An Introduction to VEX IQ Programming with Modkit
Chapter 14, Translate & Rotate
UCD ElecSoc Robotics Club 2017/2018
Introduction to Arduino Microcontrollers
What is a Robot? A Electro-Mechanical system Plus Artificial intelligence Can do certain tasks that human like Robot Arm Honda Asimo Robot Fish Robot Vacuum.
Learning to program with Logo
Automation and Robotics
Working with Arduino: Lesson #1: Getting Acquainted with the Kit
An Introduction to VEX IQ Programming with Modkit
An Introduction to VEX IQ Programming with Modkit
Lecture 7: Introduction to Processing
Basic Processing … Drawing pictures … It’s not art, it’s fun
Continuous & Random September 21, 2009.
Getting started with LEGO EV3 Mindstorms software
Presentation transcript:

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 The sketch is the app void loop() Curly bracket {} Semicolon ; Functions – command Arguments to function Debug print void loop() { Serial.println(“In the loop"); forward(1000,255,255); halt(0); reverse(1000,255,255); halt(0); }

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

s The Screen Grid X Direction

The Screen Grid Y Direction

The Screen Grid Coordinate (X,Y) 5,4

? 3? 4? The Screen Grid Coordinate (X,Y) (6,3) ????

The Screen Grid Coordinate System of Screen could be 1280 x 1024 (X,Y) (600,700) ????

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!

// zoog size(200,200); background(255); smooth(); ellipseMode(CENTER); rectMode(CENTER); // Body stroke(0); fill(150); rect(100,100,20,100); // Eyes fill(0); ellipse(81,70,16,32); ellipse(119,70,16,32); // Legs stroke(0); line(90,150,80,160); line(110,150,120,160);

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); } // draw() loops continuously until you close the sketch window. 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); Type the first part into a new sketch Save it!

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

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; int circleY = 100; void setup() { size(200,200); smooth(); } void draw() { background(255); stroke(0); fill(175); // Use the variables to specify the location of an ellipse. ellipse(circleX,circleY,50,50); } Copy this code to a new sketch Change the 100 values and see what happens

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

Software – Lets Code float r = 150; float g = 0; float b = 0; void setup() { size(200,200); } void draw() { background(r,g,b); stroke(255); line(width/2,0,width/2,height); If (mouseX > width/2) { r = 255; } else { r = 0; } Type this in – what happens ???? Change things around

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!