Basic NXT-G Programming

Preview:

DESCRIPTION

Basic NXT-G Programming. NXT-G. Sequence Beams Blocks Structures (special blocks) Wires (connect ports on blocks & structures). Forward 2, Back 2, Talk. 01-Basic Program.rbt. Save this program!. Forward 2, Back 2, Talk. Save this program!. Loop 36 times. - PowerPoint PPT Presentation

Citation preview

Basic NXT-G Programming

NXT-G

•Sequence Beams•Blocks•Structures (special blocks)

•Wires (connect ports on blocks & structures)

Forward 2, Back 2, Talk

01-Basic Program.rbt

Save this program!

Forward 2, Back 2, Talk

Save this program!

Loop 36 times

02 Simple Structure - Loop.rbt

Save this program!

Loop 36 times

Save this program!

Branch on a Variable & Use Wires

• What's a “Variable”?– It's a box to put something in, like text, a

number, or a true/false value.• Why might we use a “Variable”?

– To reference it later in the program.• What is a “Compare” block?

– A “Compare” block tests the value of a numeric variable against a another number.

• When might we use a “Compare” block?– To test the value of a sensor...

Branch on a Variable & Use Wires

03 Variables.rbt03-Variables.rbt

Branch on a Variable & Use Wires

Branch on a Sensor & Use Wires

03.1-Sensor And Branch.rbt

Extra Credit!

Branch on a Sensor & Use Wires

Design Principles & Strategies

Design Principles & Strategies

•KISS•Tool Design First – Then Program•Leapfrog Development•Competitive Development•Test Repeatedly•Change 1 Small Thing at a Time•Test Repeatedly

Design Principles & Strategies

•KISS•Quick Attachment Switching•Specialized Tools•Test Repeatedly•Stiff & Stable is Repeatable and Reliable•Leverage•Change 1 Small Thing At A Time•Repetitive Testing•Slow Motion Video

Tactical Techniques

•Standard Starting Location•Standard Starting Configuration•Straight Lines using Move Blocks•Pivot Turns (some folks call these Swing Turns)

Basic Techniques

Incremental Development with Bluetooth

Where to go from here?

Incremental Development with Bluetooth

•Now we will write a program together using Bluetooth incremental development

– Move Forward– Lower Arm Trapping 3 Pylons and Blue Ring– Backup to Base– Raise Arm Back to Starting Position

Incremental Development with Bluetooth

Mission 1 - Basic

Incremental Development with Bluetooth

Precise TurnsLeft Face!

•Hold one wheel still•Drive with the other wheel•Make your drive in two parts, slow then fast•You’re not done until you have strung it together with the moves before and after the turn

Precise TurnsLeft Face!

04-Left Face.rbt

Precise TurnsLeft Face!

VideoWhat’s really going on here?

•Once we looked at a slow motion video of our robot we found out we hadn’t really been seeing what our robot was doing…

VideoWhat’s really going on here?

•We're going to show you:– Video at full speed– Video in slow motion– Video in frame by frame– Watch: 1 House & Core Rig Slow Mo video.MP4

SensorsWhen should I stop?

•Go Forward until you see dark–Use a move and a wait block–Then add a stop block–Check your light levels

SensorsWhen should I stop?

SensorsWhen should I stop?

SensorsWhen should I stop?

•Go Forward until you see dark–Use a move and a wait block–Then add a stop block–Check your light levels–The wait until sensor block is one way to stop on a line... Our way is better when you need both power and accuracy.–Now we'll build an improved loop checking sensor every 6 degrees–Then try changing the number of degrees

SensorsWhen should I stop?

SensorsWhen should I stop?

Medium Techniques

MyBlocksGood things come in small packages

•Take our “Go to Dark” loop program and make it a MyBlock•Combine a move with our “Go to Dark” MyBlock

MyBlocksGood things come in small packages

MyBlocksGood things come in small packages

MyBlocksGood things come in small packages

MyBlocksGood things come in small packages

MyBlocksGood things come in small packages

Multi-Threaded Programmingwalking and chewing gum at the same time

•Advance on the blue ring while lowering the arm to just above the blue ring.•Continue to move forward slowly while lowering the arm the rest of the way.•Return to base.

Multi-Threaded Programmingwalking and chewing gum at the same time

Multi-Threaded Programmingwalking and chewing gum at the same time

More Tactical Techniques

•Standard Starting Location•Standard Starting Configuration•Straight Lines using Move Blocks•Pivot Turns•1-Count Loops to Synchronize Threads•“Crowbars” to pry open loops and switches•Use your own loops to check sensors and control movement for best accuracy•CONTROL your own destiny by writing your own code

Multi-Threaded Programmingwalking and chewing gum at the same time

HappyBirthday

Kate

Advanced Techniques

MyBlocks with Parameters“Siri, take me here!”

• Parameters make MyBlocks reusable in more situations

• MyBlocks become adaptable• You only program 1 MyBlock that is

applicable in different scenarios

MyBlocks with Parameters“Siri, take me here!”

• Take our two part turn and add direction math

• Determine desired direction• Add a variable for input• Cut the wire and make a MyBlock!

MyBlocks with Parameters

Sensor CalibrationIs it night or just cloudy?

•First we'd like to explain the Calibrate Block•Then we'll show you how we use it in our Calibrate program•We've posted “Cougar Calibrate.rbc”, our calibrate program, on CougarRobot.com•Why is Cougar Calibrate better?

Sensor CalibrationIs it night or just cloudy?

Sensor CalibrationIs it night or just cloudy?

Position RegistrationOur Favorite, X marks the spot

How should I register my position?1.Register using touch2.Register using light3.Register using odometry

What should I register my position against?1.The strategic object you are manipulating2.The mat3.Field walls

Position RegistrationOur Favorite, X marks the spot

•Back to Wall

Position RegistrationOur Favorite, X marks the spot

Position RegistrationOur Favorite, X marks the spot

•Back to Wall•Back to Line

Position RegistrationOur Favorite, X marks the spot

Position RegistrationOur Favorite, X marks the spot

•Back to Wall•Back to Line•Advance to Line

Position RegistrationOur Favorite, X marks the spot

Position RegistrationOur Favorite, X marks the spot

•Back to Wall•Back to Line•Advance to Line•We've posted “Cougar Advance To Line.rbt” on our website CougarRobot.com.

Dependent Threads & Synchronizationthrowing the newspaper while riding your bike

•Let's take a look at our Final Mission, CA Black 5-8 Timmy and Friends!•The turn in front of the dynamometer is now jam-proof!•2 Slow Motion Video How it's supposed to work.MP4•3 Slow Motion Video How it sometimes failed.MP4•4 Slow Motion Video How we fixed it.MP4

Dependent Threads & Synchronizationthrowing the newspaper while riding your bike

Dependent Threads & Synchronizationthrowing the newspaper while riding your bike

•Our Grey Balls mission from Climate Connection really showed smoothness of dependent threads.•5 Philip & Jacob 400 point run - FLL First Lego League 2009 Climate Connections Robot Run.mp4

Dependent Threads & Synchronizationthrowing the newspaper while riding your bike

Master Programs/Menus/ScriptingYour wish is my command

•We use a Master Program– We have a plan and a script– FIRST changed the rules because of the

Cougars's mission checklist!

Master Programs/Menus/ScriptingYour wish is my command

Master Programs/Menus/ScriptingYour wish is my command

•We use a Master Program– We have a plan and a script– FIRST changed the rules because of the

Cougars's mission checklist!– Our Master Program helps us follow our plan

and do it quickly

Master Programs/Menus/ScriptingYour wish is my command

•Let's build a simple sequencer.– Make 01-Basic into a MyBlock– Make 02-Loop 36 times into a MyBlock– Make 5.4 Go To Dark into a MyBlock

Master Programs/Menus/ScriptingYour wish is my command

•Let's build a simple sequencer.– Start a new program– Drop the 3 MyBlocks onto a sequence beam– Add wait blocks– Add a sound at the start

Master Programs/Menus/ScriptingYour wish is my command

Master Programs/Menus/ScriptingYour wish is my command

•Now Check out a Full Featured Sequencer...

Master Programs/Menus/ScriptingYour wish is my command

Master Programs/Menus/ScriptingYour wish is my command

•For the Smart Move challenge we improved our Master Program by altering “LB or EB” program.•LB (left button) is repeat last mission•EB (enter button) is run next mission.•We added RB (right button) which jumps ahead one mission in the sequence•Our new program is “LB or EB or RB”

Master Programs/Menus/ScriptingYour wish is my command

Master Programs/Menus/ScriptingYour wish is my command

TimersWhen will this match be over?

•Here's how we used a timer in our master program during Climate Connections

TimersWhen will this match be over?

TimersWhen will this match be over?

Miscellaneous

TIME is your most valuable resource

Make choices that put you in CONTROL

Miscellaneous

60ish blocks per program

At roughly 60 blocks per program the NXT-G editor will start to get really flakey

Miscellaneous

Know how many degrees or

rotations per inch

You should be able to predict the numbers to feed to a move block by using a tape measure.

You should also be able to predict the numbers to make the robot turn 90 degrees.

Miscellaneous

Innovate Early

Consolidate Late

Miscellaneous

Version control(can use “Pack and Go”)

Backup solution (can use 7-Zip)

Resources• http://www.cougarrobot.com• http://nxtasy.org• http://www.teamhassenplug.org/• http://www.teamhassenplug.org/NXT/NXTGTips/• http://www.teamhassenplug.org/NXT/NXT-GCodeIndex.html• http://mindstorms.lego.com/nxtlog/ProjectDisplay.aspx?

id=c3dcfabe-9802-444d-8b76-c7e23d41f9b8• http://www.nxtasy.org/repository/nxt-g-blocks/•Brian Davis Ph.D., Adjunct Assistant Professor at Indiana University South Bend, & LEGO MDP

Put It All Together!

Our Thanks to...

Recommended