Upload
peta
View
15
Download
0
Embed Size (px)
DESCRIPTION
Teaching. To Students. Steven Bell Team 1519 Mechanical Mayhem www.team1519.org Atlanta FIRST Conference 2005. 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 - PowerPoint PPT Presentation
Citation preview
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?