Steven Bell Team 1519 Mechanical Mayhem Atlanta FIRST Conference 2005 Teaching To Students.

30
Steven Bell Team 1519 Mechanical Mayhem www.team1519.org Atlanta FIRST Conference 2005 Teaching To Students
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of Steven Bell Team 1519 Mechanical Mayhem Atlanta FIRST Conference 2005 Teaching To Students.

Steven BellTeam 1519 Mechanical Mayhem

www.team1519.orgAtlanta FIRST Conference 2005

Teaching

To Students

Welcome

● Who Am I?– Four years experience with Robolab in FLL– Taught Advanced Robolab workshop in NH– Mentor of four NH FLL teams in 2004– Programmer for FRC Team #1519, Mechanical Mayhem

Overview

● Introduction● What do students need to know?● A pattern for teaching● Student pitfalls

Why teach Robolab?

● One of two approved languages for FLL

– More powerful than RIS (Robotics Invention System)

● Easier to learn than a text language

● Helps expand thinking skills

● Good for exploring and learning

● Fun and interesting!

Robolab vs. RISRobolab

● More control of variables

● Allows lower-level functions

● Can be extended to other real-world projects– Additional sensors– Data logging– G code– Complex image processing

RIS● Slightly easier to learn ● Comes free with

commercial Mindstorms kits

● Puzzle piece syntax reduces errors

The Goal

● The goal is not to get students to understand a bunch of commands.

● The goal is to help students learn and discover!

● Robolab is very flexible. Help this to be an opportunity, not a fear factor!

Teaching students to use Robolab

Background of Robolab

● Created by Tufts University School of Engineering

● Based on National Instruments' LABView– It is a graphical programming language– Facilitates hierarchal design– Includes data logging and analysis functions– Widely used in industry

● Designed for use in the classroom– Pilot and Inventor– Level system

What do students need to know?

● How to operate Robolab– Create a program– Save it– Download it

● The syntax of programming with Robolab● How to use sensors● Good programming practices● Debugging● How to learn more

How to operate Robolab

● Starting Robolab– Administrator– Programmer– Investigator

● Using the program vault– Levels– Starting a new program– Files and Folders

● Downloading programs– Hazards

Where do I start?

● Don't start with Pilot!– Pilot is even more limited than RIS and has little connection to

Inventor● Inventor 1 and 2 are very limited as well● Inventor 4 is the best place to start for middle and

high school students● Inventor 1 or 2 can be a better place to start for

younger students until they learn the syntax and operation of Robolab.

The syntax of Robolab

● Begin and End● Commands and VI's● Wiring

– Finding the right port– How the wires connect

● Modifiers● SubVI's and looking inside commands

Sensors

● Why sensors are important● How to use sensors with the RCX● When to use sensors● The syntax of sensor wait fors and structures

Good Programming Practices

● Keeping the program straight

● Using lots of comments

● Using SubVI's

● Save early, save often!

Debugging

● Error list

● Beeps

● Set display

● Interrogate RCX

How to learn more

● Context help

● 'More help'

● Double-clicking on commands

● Looking inside commands

Good Teaching Practices

● Don't tell students the answers, let them discover it on their own

● Encourage using “help”

● Introduce just a little at a time

● Practice new techniques and commands with an exercise

When students get stuck

● Don't tell the answers!● Ask questions

– How can you find out?– What does this command do?– What does this code do?– What do you want it to do?– What is it doing?

● Have the student explain the code to someone else● Play computer

– Pretend to be the robot– Student gives the “robot” commands– “Robot” follows commands exactly: no more, no less

A pattern for teaching

● Intro to Robolab– Using the RCX– Operating Robolab

● Basic command palette– Motor commands– Wait for time– Basic Modifiers– Go-Stop exercise

● Sensors– Use of sensors– Sensor wait fors– Variations on the Go-Stop exercise

A pattern for teaching (cont.)● Structures

– Jumps● Shape driving exercise

– Forks● Line following exercise

– Loops● Terminating shape driving and line following exercises

● Subroutines and SubVIs– Subroutines

● Shape driving– SubVIs

● Taking parameters● Making various subVIs● Looking inside commands

A pattern for teaching (cont.)

● Containers– Line counting– Calculator

● Multitasking

● Advanced features– Direct Functions– RCX communication– Investigator

Student pitfalls

● Initial fear of menus, large command palettes, etc.

● Miswiring

● Confusion about commands

Getting past the initial fear

● Look at groups of commands

● Explain the organization of the commands

● Start with a tutorial exercise– Start up Robolab– Start a new program– Make a Go-Stop program– Download it

Output A

Output B

Output C

Genericoutput

Forward

ReverseLamp

Stop

Getting past the initial fear (cont.)Explain the organization of the commands

Functions

Wait for Structures Modifiers MusicReset Containers

Loops Jumps Forks

Equal Forks

Event Modifiers

Miswiring● Common mistakes

– Type mismatch– Connecting in and out together

● Proper technique– Move the string cursor over the command– Note the type of wire coming out of it

● Command● Modifier● Integer● Floating-point number● Container

– Connect it to a modifier or command with the same type of wire as an output

– If all else fails, right-click and select: create > constant

Data types in Robolab

Pink: CommandOrange: Floating-PointBlue: Integer

Green: Sensor PortMaroon: Container

Common miswirings

Missing a command

Mixing up inputs and outputs

Connecting one output to two inputs(without a fork or task split)

An innocent looking piece of code whichcould any of the following bugs lurking

Multitasking

Incorrect Correct

Confusion about commands● Common mistakes

– 'Wait for dark' and 'Wait for darker'– 'X' and 'Value of X' modifier

● How to avoid confusion– Look in context help!– Look inside the command and see what it does

'X'Modifiers

Value of 'X'Modifiers

IntegerModifiers

What if I don't know Robolab?

First:● Learn the basics so you can teach them

or● Find someone who can teach the basics

Then:● Learn advanced features with the students!● Encourage students to learn and explore on their

own

Technical resources

Online:● www.lego.com/dacta● www.ceeo.tufts.edu● www.firstlegoleague.org● www.fll-freak.com● www.team1519.orgBooks:● Teachers guides

Questions?