You are previewing Lego Mindstorms™ NXT 2.0 for Teens.
O'Reilly logo
Lego Mindstorms™ NXT 2.0 for Teens

Book Description

Lego Mindstorms NXT 2.0 for Teens is a step-by-step guide to beginning programming and robotic development using Lego Mindstorms NXT. Instead of using computers to create and execute programs that run on the computer screen, Lego Mindstorms NXT lets programmers and robotic enthusiasts create programs on their computers and transfer them to mechanical Lego creations. With Lego Mindstorms NXT 2.0 for Teens, first-time programmers will learn to create programs that bring Lego creations to life!

Table of Contents

  1. Copyright
    1. Dedication
  2. Acknowledgments
  3. About the Author
  4. Introduction
    1. Why Lego Mindstorms NXT 2.0?
    2. Who Should Read this Book?
    3. What You Need to Begin
    4. Conventions Used in This Book
    5. CD-ROM Downloads
  5. 1. Lego Mindstorms NXT 2.0 Overview
    1. Lego Mindstorms Origins
    2. Getting to Know Lego Mindstorms NXT 2.0
      1. The Lego Mindstorms NXT 2.0 Kit’s Brick, Motors, Sensors, and Lego Bricks
      2. The Lego Mindstorms NXT Software
      3. The NXT-G Programming Language
    3. Installing the Mindstorms NXT 2.0 Software
      1. Installing Mindstorms NXT 2.0 Software on Microsoft Windows
      2. Installing Mindstorms NXT 2.0 on Mac OS X
    4. The Three Steps in Building Robots
      1. Building Robots
      2. Developing NXT-G Programs
        1. Writing NXT-G Programs
          1. Sidebar
        2. Downloading Program Code
      3. Activating Your Robots
    5. Joining the Lego Mindstorms Community
    6. Summary
  6. 2. Getting Started
    1. Navigating the Mindstorms NXT 2.0 GUI
      1. Examining the NXT 2.0 GUI
      2. Accessing NXT 2.0 Functionality via Keyboard Shortcuts
      3. The Menu Bar
      4. Toolbar
      5. Programming Palette
      6. Configuration Panel
      7. NXT Controller
      8. My Portal
      9. Robo Center
      10. Little Help Window
      11. The Work Area Map
      12. Work Area
    2. Other NXT 2.0 GUI Windows
      1. Calibrate Sensors
        1. Calibrating the Light Sensor
        2. Calibrating the Sound Sensor
      2. Update NXT Firmware
      3. Create Pack and Go
      4. Block Import and Export Wizard
      5. Image Editor
      6. Remote Control
      7. Sound Editor
    3. Managing NXT Brick Communication and Memory
      1. Managing Connections to NXT Bricks
      2. Managing NXT Brick Memory
        1. Restoring System Files by Reinstalling the Firmware
        2. Backing Up and Restoring Files
    4. Creating Your First NXT Program
    5. Connecting Your NXT to Your Computer
    6. Downloading Your NXT-G Program
    7. Running Your Program
    8. Summary
  7. 3. Working with Electronic Components
    1. The NXT Brick
      1. Technical Specifications
      2. Primary Features
        1. Output/USB Ports
        2. Input Ports
        3. Speaker
        4. NXT Button Controls
        5. LCD Display Window
    2. The NXT Brick’s File System
      1. My Files
      2. NXT Program
      3. NXT Datalog
      4. View
      5. Bluetooth
      6. Settings
      7. Try Me
    3. The Sensors
      1. Color Sensor
      2. Touch Sensors
      3. Ultrasonic Sensor
      4. Using NXT Brick Buttons as Sensors
    4. Servo Motors
    5. Cables
    6. Summary
  8. 4. Adding Blocks and Gears
    1. Identifying Different Pieces and Parts
    2. Building a Foundation with Beams
      1. Straight Beams
      2. Angular Beams
      3. The T-Beam
    3. Connectors
      1. Axles
      2. Bushings
      3. Pegs
      4. Angle Connectors
      5. Steering Link
      6. Cross Blocks
      7. Peg Blocks
      8. Other Connectors
    4. Gears
      1. Creating Gear Trains
      2. Managing Gear Train Performance
    5. Tracks, Rims, and Tires for Mobile Robots
    6. Other Parts
    7. Summary
  9. 5. Getting to Know the NXT-G Development Environment
    1. Computer Program Development and Execution
      1. Drafting Program Logic Using Pseudocode
      2. Laying Out Program Logic Using Flowcharts
      3. Turning Outlines into a Functioning NXT-G Program
    2. Beginning a Program Development Session
      1. Understanding Developer Profiles
        1. Selecting a Developer Profile
        2. Creating a New Developer Profile
      2. Giving Yourself More Room to Work
    3. Accessing Programming Blocks
      1. Common Palette Programming Blocks
      2. Complete Palette Programming Blocks
        1. Common Programming Blocks
        2. Action Programming Blocks
        3. Sensor Programming Blocks
        4. Flow Programming Blocks
        5. Data Programming Blocks
        6. Advanced Programming Blocks
      3. Custom Palette Programming Blocks
    4. Summary
  10. 6. Basic NXT-G Programming Concepts
    1. Dissecting Programming Blocks
    2. Beginning at the Starting Point
    3. Understanding the Sequence Beam
    4. Multitasking Using Parallel Sequence Beams
    5. Moving Programming Blocks Around Your NXT-G Programs
    6. Getting Control of the Work Area
    7. Improving NXT-G Programs Using Comments
      1. Adding Comments to Your NXT-G Programs
    8. Summary
  11. 7. Working with the Common Programming Blocks
    1. A Detailed Review of the Common Blocks
    2. The Move Block
      1. The Port Attribute
      2. The Direction Attribute
      3. The Steering Attribute
      4. The Power Attribute
      5. The Duration Attribute
      6. The Next Action Attribute
    3. The Record/Play Block
      1. The Action Attribute
      2. The Name Attribute
      3. The Recording Attribute
      4. The Time Attribute
      5. The File Attribute
    4. The Sound Block
      1. The Action Attribute
      2. The Control Attribute
      3. The Volume Attribute
      4. The Function Attribute
      5. The File Attribute
      6. The Wait Attribute
      7. The Note Attribute
    5. The Display Block
      1. The Action Attribute
      2. The Display Attribute
      3. The File Attribute
      4. The Text Attribute
      5. The Type Attribute
      6. The Position Attribute
    6. The Wait Block
      1. Configuring the Wait Block to Pause Execution
        1. The Control Attribute
        2. The Until Attribute
      2. Configuring the Wait Block to Conditionally Pause an Execution Based on Sensor Data
        1. The Control Attribute
        2. The Sensor Attribute
        3. The Port Attribute
        4. The Action Attribute
    7. The Loop Block
      1. The Control Attribute
      2. The Sensor Attribute
      3. The Show Attribute
      4. The Port Attribute
      5. The Action Attribute
      6. A Quick Loop Demonstration
    8. The Switch Block
      1. The Control Attribute
      2. The Sensor Attribute
      3. The Display Attribute
      4. The Port Attribute
      5. The Action Attribute
    9. Summary
  12. 8. Advanced Programming Techniques
    1. Passing Data Between Blocks Using Data Wires
      1. Interacting with Data Hubs
      2. Connecting Programming Blocks with Data Wires
      3. Determining Data Plug Type and Compatibility
      4. Identifying Broken Data Wires
      5. Extending a Data Wire’s Path
    2. Programming Blocks That Use Data Wires
      1. Actions Programming Blocks
        1. The Motor Block
          1. Port
          2. Direction
          3. Action
        2. Power
          1. Control
          2. Duration
          3. Wait
          4. Next Action
        3. The Send Message Block
        4. The Color Lamp Block
          1. Port
          2. Action
          3. Color
      2. Sensor Programming Blocks
        1. Port
        2. Action
      3. Flow Programming Blocks
      4. Data Programming Blocks
        1. The Logic Block
        2. The Math Block
        3. The Compare Block
        4. The Range Block
        5. The Random Block
        6. The Variable Block
          1. List
          2. Action
          3. Value
        7. The Constant Block
          1. Action
          2. Data Type
          3. Value
          4. Name
      5. Advanced Programming Blocks
        1. The Number to Text Block
        2. The Text Block
        3. The Keep Alive Block
        4. The File Access Block
          1. Action
          2. Name
          3. File
          4. Type
          5. Text
        5. The Calibrate Block
          1. Port
          2. Sensor
          3. Action
          4. Value
        6. The Reset Motor Block
        7. The Bluetooth Connection Block
    3. Creating Custom Functions by Creating My Blocks
      1. Creating and Managing My Blocks
        1. Creating a My Block
        2. Modifying a My Block
        3. Sharing Your My Blocks
        4. Deleting a My Block
      2. Downloading and Installing Web Blocks
    4. Debugging Your NXT-G Programs
    5. Summary
  13. 9. Go Bot
    1. Robotic Development Methodology
    2. Introducing Go Bot
    3. Building Go Bot
      1. Preparing the NXT Brick
      2. Assembling the Left Motor Drive
      3. Assembling the Right Motor Drive
      4. Assembling the Rear Wheel Chassis
      5. Assembling Go Bot
      6. Programming Go Bot
        1. Stage 1—Moving the Robot
        2. Stage 2—Getting the Robot to Speak and Display Text
        3. Stage 3—Document the NXT-G Program
    4. Remote Controlling Go Bot
    5. Summary
  14. 10. Tracker Bot
    1. Introducing Tracker Bot
    2. Building Tracker Bot
      1. Preparing the Color Sensor for Connection
      2. Assembling Support Beams
      3. Completing the Sensor Assembly
      4. Connecting the Sensor Assembly to the Robot
      5. Programming Tracker Bot
        1. Stage 1—Moving the Robot
        2. Stage 2—Adding Sound Effects
        3. Stage 3—Documenting the NXT-G Program
    3. Summary
  15. 11. Detector Bot
    1. Introducing Detector Bot
    2. Building Detector Bot
      1. Preparing the Touch Sensor for Connection
      2. Connecting Screens to the Assembly
      3. Adding Support Beams to the Assembly
      4. Extending Touch Sensor Reach
      5. Connecting the Touch Sensor Assembly
      6. Programming Detector Bot
        1. Stage 1—Creating a NXT-G Program for Detector Bot
        2. Stage 2—Incorporating and Analyzing Touch Sensor Data
        3. Stage 3—Enhancing Program Termination
        4. Stage 4—Documenting Your NXT_G Program
    3. Summary
  16. 12. Alarm Bot
    1. Introducing Alarm Bot
    2. Building Alarm Bot
      1. Assembling a Framework Base
      2. Adding a Platform to the NXT Brick to Support the Servo Motor
      3. Adding Support Struts to Support the Servo Motor
      4. Connecting the Servo Motor
      5. Preparing the Ultrasonic Sensor
      6. Preparing the Color Sensor
      7. Completing Alarm Bot’s Assembly
      8. Programming Alarm Bot
        1. Stage 1—Programming the Operation of the Ultrasonic Sensor
        2. Stage 2—Programming the Operation of the Ultrasonic Sensor
        3. Stage 3—Documenting Your NXT_G Program
    3. Summary
  17. A. What’s on the Companion Web Site?
    1. Downloading the Book’s Source Code
  18. B. What’s Next?
    1. Locating Lego Mindstorms Resources Online
      1. The Lego Mindstorms Web Site
      2. The Open Directory Project’s Mindstorms Page
      3. The NXT Step—Lego Mindstorms NXT Blog
      4. The nxtprograms.com Web Site
      5. The Wikipedia Lego Mindstorms NXT 2.0 Page
      6. The nxtasy.org Site
    2. Buy New Lego Mindstorms NXT Parts
    3. Lego Resources
      1. The Lego Web Site
      2. Lego Club
      3. The Lego Page at Wikipedia
    4. Developing Instructions for Your Robotic Creations
      1. Wikipedia’s LDraw Page
      2. LDraw.org
      3. LEGO Digital Designer
    5. The Author’s Web Site
  19. Glossary