Programming Techniques Workshop for Mindstorms EV3. Opening doors to the worlds of science and technology for Oregon s youth

Similar documents
EV3 Programming Workshop for FLL Coaches

Robotics II. Module 5: Creating Custom Made Blocks (My Blocks)

LME Software Block Quick Reference 1. Common Palette

Robotics Study Material School Level 1 Semester 2

Part A: Monitoring the Rotational Sensors of the Motor

Tutorial: Making Legobot Move Steering Command Brighton H.S Engineering By: Matthew Jourden

Technical Learning. To Get Started. 1. Follow the directions in the Constructopedia to build Robo 1.

Lab1: Introductory and Setup Activities

Robolab. Table of Contents. St. Mary s School, Panama. Robotics. Ch. 5: Robolab, by: Ernesto E. Angulo J.

EXCEL + POWERPOINT. Analyzing, Visualizing, and Presenting Data-Rich Insights to Any Audience KNACK TRAINING

What Is a Program? Pre-Quiz

ROBOLAB Tutorial MAE 1170, Fall 2009

Robotics 2c. The Programming Interface

RCX Tutorial. Commands Sensor Watchers Stack Controllers My Commands

Programming with the NXT using the touch and ultrasonic sensors. To be used with the activity of the How do Human Sensors Work?

contents in detail introduction...xxi 1 LEGO and robots: a great combination the EV3 programming environment... 5

SOLIDWORKS: Lesson 1 - Basics and Modeling. Introduction to Robotics

Robotics II. Module 1: Introduction to Data & Advanced Programming Blocks

ideas with idea packet Mathbotics: Learning Math Through Robotics IMPACT Sponsored by:

LEGO Mindstorm EV3 Robots

RIS version 2.0 Software Training Lab

Unit 03 Tutorial 3: Sensors: Touch Sensor Brighton H.S Engineering By: Matthew Jourden

INTERMEDIATE PROGRAMMING LESSON

PowerPoint 2016: Part 1

Autonomous Parking. LEGOeducation.com/MINDSTORMS. Duration Minutes. Learning Objectives Students will: Di culty Beginner

Robotics II. Module 2: Application of Data Programming Blocks

Winning LEGO MINDSTORMS programming

Grade: 7 Lesson name: Creating a School News Letter Microsoft Word 2007

CSCI 1100L: Topics in Computing Lab Lab 11: Programming with Scratch

Excel Basics Rice Digital Media Commons Guide Written for Microsoft Excel 2010 Windows Edition by Eric Miller

This is the Arduino Uno: This is the Arduino motor shield: Digital pins (0-13) Ground Rail

How to Create a Simple Animation Using MAYA

FACULTY AND STAFF COMPUTER FOOTHILL-DE ANZA. Office Graphics

NXT Programming for Beginners Project 9: Automatic Sensor Calibration

Part A: Monitoring the Touch Sensor and Ultrasonic Sensor

INTERMEDIATE PROGRAMMING LESSON

Start by launching Mozilla To start making a web page, go to File -> New -> Composer Page

ROBOCUP RESCUE LEGO MINDSTORMS NXT-G TURN ON GREEN G. Tardiani NXTG Programming Guide 2008

SOLIDWORKS: Lesson III Patterns & Mirrors. UCF Engineering

Coding Workshop. Learning to Program with an Arduino. Lecture Notes. Programming Introduction Values Assignment Arithmetic.

Lesson 8: Presentation Enhancements Microsoft PowerPoint 2016

Title and Modify Page Properties

FRC LabVIEW Sub vi Example

B.Sc. VI SEM (CS+BIO)

WORD PROCESSING FOR SALE. By Shel Silverstein

Figure 1: My Blocks are blue in color, and they appear in the Custom palette in NXT-G.

Small rectangles (and sometimes squares like this

In groups take a Mindstorms kit and decide on what sort of chassis will work best.

Introduction to Programming with JES

Learning to use the drawing tools

INTERMEDIATE PROGRAMMING LESSON

Branching Error (a.k.a. the VM Program Instruction Break Error) By Sanjay and Arvind Seshan DEBUGGING LESSON

Title and Modify Page Properties

Meet the Cast. The Cosmic Defenders: Gobo, Fabu, and Pele The Cosmic Defenders are transdimensional

The first thing we ll need is some numbers. I m going to use the set of times and drug concentration levels in a patient s bloodstream given below.

Human-Computer Interaction: An Overview. CS2190 Spring 2010

Itty Bitty City Code Companion Scratch Microduino Inc. - All Rights Reserved 1

Introduction: What is NXT-G?

SSP ROBOT DESIGN A. DEAN 11/29/05 LAB: ROBOT OBJECTS IN LEJOS

Sphero Lightning Lab Cheat Sheet

HTML/CSS Lesson Plans

Krita Advanced Coloring Tutorial!

Microsoft PowerPoint. Now you can easily create presentations using Microsoft PowerPoint.

Flash offers a way to simplify your work, using symbols. A symbol can be

Loops and Switches Pre-Quiz

Make a Halloween Card with CorelDRAW

HYPERSTUDIO TOOLS. THE GRAPHIC TOOL Use this tool to select graphics to edit. SPRAY PAINT CAN Scatter lots of tiny dots with this tool.

Procedures: Algorithms and Abstraction

Welcome. Microsoft PowerPoint 2010 Fundamentals Workshop. Faculty and Staff Development Program

PARTS OF A WORKSHEET. Rows Run horizontally across a worksheet and are labeled with numbers.

Creating Simple Links

APCS-AB: Java. Recursion in Java December 12, week14 1

LEGO MINDSTORMS NXT Lab 4

The Elements Theme English manual: v1

Welcome to Introduction to Microsoft Excel 2010

DIRECTV Message Board

How to...create a Video VBOX Gauge in Inkscape. So you want to create your own gauge? How about a transparent background for those text elements?

Chapter 19 Assembly Modeling with the TETRIX by Pitsco Building System Autodesk Inventor

WORD PROCESSING ASSIGNMENT # 1 ~ FILENAME: FONTS

Keep Track of Your Passwords Easily

Locate it inside of your Class/DreamWeaver folders and open it up.

Create Reflections with Images

Guidelines for doing the short exercises

ADOBE PHOTOSHOP Using Masks for Illustration Effects

ACCUFAST. LPX Printer Printing Guide

Loops and Switches Pre-Quiz

Using Microsoft Excel

Welcome to the advanced customization tutorial for the student template.

Media Guide: PowerPoint 2010

Making Tables and Graphs with Excel. The Basics

PROFILE DESIGN TUTORIAL KIT

How to approach a computational problem

ADD AND NAME WORKSHEETS

What you can do: Use Transparency #10

All Blocks of Scratch

Assignment #4: Creating New Layouts & Slides

Photoshop tutorial: Final Product in Photoshop:

Tech Tips. BeeBots. WeDo

The NetBeans IDE is a big file --- a minimum of around 30 MB. After you have downloaded the file, simply execute the file to install the software.

On the Web sun.com/aboutsun/comm_invest STAROFFICE 8 DRAW

Transcription:

Oregon Robotics Tournament and Outreach Program Programming Techniques Workshop for Mindstorms EV3 2018 Opening doors to the worlds of science and technology for Oregon s youth 1

Instructor Contacts Terry Alexander taalexand@gmail.com (503) 628-8029 Ken Cone kencone@gmail.com (503) 415-1465 Don Nelson don-nelson@ortop.org (503) 550-8028 Jim Ryan james.r.ryan@intel.com (971) 215-6087 Roger Swanson swanson@hevanet.com (503) 297-1824 2

ORTOP Program Manager Loridee Wetzel loridee_wetzel@ortop.org 503-486-7622 3

Workshop Goals The earlier Workshops have introduced very basic programming to get you started with your robots In this Workshop we delve more deeply into just the programming Introduce techniques that we think you are likely to use sometime in your coaching careers Discuss the Why as well as the How 4

Agenda Tour the EV3 software to review all the available EV3 blocks Distinguish those with higher utility from those with lower utility Hands on exercises to try out the new, higher utility blocks 5

Caveat about this Workshop Don t expect to go right back to your teams and teach them all this new stuff you have learned. Look for opportunities when the youngsters are ready to pick up a new fundamental technique Our goal is to prepare you better so you are ready when a new teaching opportunity arises And remember: The kids do the work! 6

Review EV3 Blocks You ve Used Action Blocks Move Steering Has multiple modes Available parameters vary with mode Match ports to robot Flow Control Blocks Wait Blocks One for each sensor Compare and Change options Program flow of control stays on block until condition of block is met Match ports to robot 7

Move Steering Blocks Which motors are controlled Mode Steering Speed/Power Number of Rotations Brake or Coast 8

Wait Blocks Wait For Reflected Light Sensor Light Sensor Port Compare Value - Comparison Operator - Comparison Value Change Value - Change Direction - Change Amount 9

EV3 Block Review Review the EV3 Software to look at all programming blocks that are available 10

EV3 Block Summary High Utility Blocks Motor and Move Wait Loop Switch Sensor Blocks Data Blocks (variables) My Blocks Low Utility Blocks Brick Status Light Loop Interrupt Array Round Text Random Advanced Useful for Debugging Sound Display You should know already Will cover tonight 11

Let s Start with Variables How would you write a program to move a certain number of inches straight ahead? 12

Convert Inches to Revolutions I = inches you want to move D = diameter of wheels (these small wheels are about 2 1/4 ) C = circumference of wheels = pi * D = 3.14 * D R = revolutions = I / C How do we get these calculations into a program? 13

Variables A variable is a container to hold a value Each variable has a name Each variable has a type Numeric Logic Text Each variable can be Written put a value into the variable Read retrieve the value from the variable 14

Variable Blocks Add the variable name here Write Numeric Read Numeric Write Logic Read Logic Write Text Read Text Note the different kind of parameter boxes for each variable block above 15

Variable Blocks Add the variable name here Write Numeric Read Numeric Write Logic Read Logic Write Text Read Text Numeric Logic Text Inputs Outputs 16

Variable to Control Motor Speed Let s write a program together to use a variable to control the motor speed in a Move Steering block 17

Use Variable to Control Speed Set the initial value of the Speed variable Use a Data Wire to Connect the Speed variable to the speed parameter of the Move Steering block. Note: Output of Speed variable connects to input of Move block, and the numeric types match. 18

You Try It Write a program to go straight ahead a number of inches that you save in a variable in your program 19

An Answer Is in the Slides Throughout this workshop an answer is given in the slide set so you have something to review when you get home. Don t look ahead until you have tried the exercise yourself. 20

Move Forward a Distance in Inches 21

Let s Try Something New What if I wanted the robot to stop if the touch sensor is pressed OR if the light sensor has detected a black line? 22

Steps to Develop a Program Understand what is to be accomplished Write down a list of tasks describing how you would solve the problem Break the tasks up into simpler subtasks Program the subtasks, try them, and debug them Put the subtasks together for the final program 23

How Would You Approach This? Write down a list of steps you would take to get your robot to stop when the touch sensor is pressed OR the light sensor detects a black line. Do this thought process without thinking about the programming ramifications. 24

One List of Steps Start the motors to get the robot moving. Check if the touch sensor has been pressed. If it has, stop the robot. If not, check if a black line has been detected. If so, stop the robot. Otherwise go back and repeat the above steps 25

Loop Blocks Name of loop This output value provides the count of iterations of the loop 26

Switch Blocks If and Case Statements 27

Stop on Touch or Light Sensor You try it. Write a program so that your robot will stop if the light sensor detects a black line OR if the touch sensor is pressed. 28

One Answer Note that the robot will stop if either the touch sensor is pressed or a black line is detected, but did you notice that the loop is still executing? What might we do to exit the loop so that we can continue with something else after the robot stops? 29

Use a Logic Variable to Control the Loop Note the Sound block after the loop to show that the program does indeed exit the loop. Sound blocks are good debugging aids. Define a logic variable StopLoop and initialize it to False. Use StopLoop to control the loop. When either event happens, set StopLoop to true, and control will exit the loop 30

Sound Block Play a file from a list of files provided by the EV3 software Play a tone as specified by the frequency Play a note as specified by the note of the scale Volume Duration Mode 0 Play the sound once, and the program waits until the sound is finished 1 Play the sound once, and the program continues immediately 2 Repeat the sound until another Sound Block is executed, and the program continues immediately 31

Homework Exercise Use the Loop Interrupt block to do the same thing as the last exercise 32

Loop Interrupt Solution 33

Touch or Black Line Part 2 Use math on the logic outputs of the Sensor Blocks to produce an OR result that controls the loop. 34

Display Blocks A Display Block is another useful debugging aid Two modes to display a text value Pixel mode 178 pixels left and right 128 pixels up and down Grid mode easier for text 22 columns of 8 pixels each 12 rows of 10 pixels each Small characters are 1 row and 1 column Large characters are 2 rows and 2 columns 35

Display Blocks Grid Mode Text to be displayed Click on field to choose wired Text supplied on a wire Erase screen before display Column to start display Row to start display Black or white text Text size 0 small font 1 small bold font 2 large font Pixel mode is very similar 36

Display a Number Write a program to display a number Helpful if you want to know what number your program is using at a particular point 37

Program to Display a Number Wired option 38

Subroutines or My Blocks What if you find that you are using the same sequence of blocks in many places in your program? Examples: 90 degree spin turn Go forward to stop on a black line Define that sequence as a My Block and save the effort of duplicating blocks and save memory at the same time 39

Building a My Block Select the blocks from the program Choose My Block Builder from the Tools Menu Give the My Block a name, fill in the description, and choose an icon (optional) 40

Move in a Square A primitive way to move in a square How big is this program? Download the program Use Memory Browser in the Tools Menu Size is 832B Demonstrate memory management in the software 41

Move in a Square with My Blocks Same program with My Blocks is 610B Note that if I double click on a My Block, it opens the code for inspection or editing. 42

Managing My Blocks All the My Blocks in a project are available in the My Blocks area of the Programming Palette They can also be found in the Project Properties section of the EV3 software 43

Parameters in My Blocks My Blocks can be defined to have both input and output parameters Before you hit the Finish button in the My Block builder, click the + button to add a parameter and click the Parameter Setup tab Type in a Parameter Name Choose Input or Output Choose Number, Text, or Logic Give it a Default Value (optional) Choose the Parameter Style 44

You Build a My Block Use the program to display a number to build a My Block that has one input parameter and will display the value of the input on the EV3 display screen. 45

Display Number My Block 46

Debugging Example Go back to your most simple Stop on Black Program Use your display number My Block to display the light value when the robot stops. Add a Move Block to move ahead a small amount (20 degrees) Now use your display number My Block to display the light value. What did you notice? 47

But First, Sensor Blocks The last new block we ll cover in the workshop. We have used Wait Blocks associated with sensors (the Orange blocks) There are other sensor blocks that let you read what a sensor is doing at a particular place in your program (the Yellow blocks) 48

Reflected Light Sensor Block Measure Reflected Light Compare Reflected Light Value of light measured Logic value of comparison 49

Display Reflected Light Now use your My Block to display the reflected light seen by your robot as described on the Debugging Example slide 50

Using the Display Number My Block Light Sensor block to provide the value the light sensor is reading My Block to display the number returned by the Light Sensor block Note that two blocks have been added at each point where we want to see the light sensor value 51

What Did You Notice in this Last Exercise? The light sensor value when the robot first stops will meet the trigger value constraint. The value 20 degrees further, however, can be quite different. If the light sensor senses right on the border between black and white, the value will be less than white but greater than black it might look like green. 52

Other Debugging Ideas If you don t know where the robot is in the program, use a Sound Block to just play a tone to see if the robot has gotten to a particular point. What value does my variable have? Print the value to the EV3 screen to see the value. Take a subtask out of a more complex larger program and debug it separately rather than trying to debug it in the full more complex environment. 53

Class Exercises Summary 1 Drive a specified number of inches Variables Define a variable Write a value into a variable Read a value from a variable Do math on variables Use data wires to connect the output of a variable or other programming block to the input of another programming block or variable 54

Class Exercises Summary 2 Stop if the touch sensor is touched OR if the light sensor detects a dark area Loop blocks Switch block Logic controlled loop block Loop interrupt block Debugging aids Sound block Display block 55

Class Exercises Summary 3 Display a number on the EV3 screen My Block with parameter Display the reflected light value when sensor first encounters a darker area and again after moving 20 degrees further Sensor block Use of the display a number My Block 56

More Exercises for the High Achievers or To Do at Home Write a program that will stop only on a green line using reflected light sensor. (An example is attached at the end of the slide set.) Convert the first exercise to a My Block with a parameter giving the distance to drive in inches Use distance sensor in CanDo challenge Use color sensor to do the stop on green only exercise 57

Program to Stop on Green We did the following light sensor exercises in Workshop 1. Stop on black or green Stop only on black Obvious follow-up is to stop only on green What is the list of tasks that you would use? 58

Program to Stop on Green One possible list of tasks Go forward and stop on green or black (We did this program in Workshop 1. No need to reinvent the wheel.) Decide if robot has stopped on green or black If green, stop the program If black, continue the program to the next green or black block 59

Stop on Green One Answer Note this addition, which was not in our steps. I discovered the need for it in the debugging process. 60