Basic NXT-G Programming
Sequence Beams Blocks NXT-G Structures (special blocks) Wires (connect ports on blocks & structures)
Forward 2, Back 2, Talk 01-Basic Program.rbt
Forward 2, Back 2, Talk
02 Simple Structure - Loop.rbt Loop 36 times
Loop 36 times
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.rbt
Branch on a Variable & Use Wires
Branch on a Sensor & Use Wires 03.1-Sensor And Branch.rbt
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
Hold one wheel still Precise Turns Left Face! 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
04-Left Face.rbt Precise Turns Left Face!
Precise Turns Left Face!
Video What 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
Video What 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
Sensors When 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
Sensors When should I stop?
Sensors When should I stop?
Sensors When 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
Sensors When should I stop?
Sensors When should I stop?
Medium Techniques
MyBlocks Good 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
MyBlocks Good things come in small packages
MyBlocks Good things come in small packages
MyBlocks Good things come in small packages
MyBlocks Good things come in small packages
MyBlocks Good things come in small packages
Multi-Threaded Programming walking 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 Programming walking and chewing gum at the same time
Multi-Threaded Programming walking 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 Programming walking and chewing gum at the same time
Happy Birthday 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 Calibration Is 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 Calibration Is it night or just cloudy?
Sensor Calibration Is it night or just cloudy?
Position Registration Our Favorite, X marks the spot How should I register my position? 1.Register using touch 2.Register using light 3.Register using odometry What should I register my position against? 1.The strategic object you are manipulating 2.The mat 3.Field walls
Back to Wall Position Registration Our Favorite, X marks the spot
Position Registration Our Favorite, X marks the spot
Back to Wall Back to Line Position Registration Our Favorite, X marks the spot
Position Registration Our Favorite, X marks the spot
Back to Wall Back to Line Advance to Line Position Registration Our Favorite, X marks the spot
Position Registration Our Favorite, X marks the spot
Back to Wall Back to Line Advance to Line Position Registration Our Favorite, X marks the spot We've posted Cougar Advance To Line.rbt on our website CougarRobot.com.
Dependent Threads & Synchronization throwing 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 & Synchronization throwing the newspaper while riding your bike
Dependent Threads & Synchronization throwing 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 & Synchronization throwing the newspaper while riding your bike
Master Programs/Menus/Scripting Your 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/Scripting Your wish is my command
Master Programs/Menus/Scripting Your 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/Scripting Your 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/Scripting Your 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/Scripting Your wish is my command
Master Programs/Menus/Scripting Your wish is my command Now Check out a Full Featured Sequencer...
Master Programs/Menus/Scripting Your wish is my command
Master Programs/Menus/Scripting Your 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/Scripting Your wish is my command
Master Programs/Menus/Scripting Your wish is my command
Timers When will this match be over? Here's how we used a timer in our master program during Climate Connections
Timers When will this match be over?
Timers When 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=c3d cfabe-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...