Module Overview:This module introduces students to the world of robotics using the Lego Mindstorm NXT Education kit. Students will construct and program several robots, while developing a basic understanding of some of the fundamental principles of robotics and design.
Suggested Grade Level: 10
Timeframe: 10-15 x 60 minute classes
Suggested Group Size: Groups of two (three max)
Prerequisite Skills: Ability to perform basic computer skills, Ability to organize and be responsible for robotics kits. Tactile skill working with small pieces.
Meets the Following BBTE Grade 9 – 10 Curriculum Outcomes:
1. Apply the knowledge and skills necessary for safe and responsible operation of equipment and resources
• independently apply safety skills in the lab
• understand the principals of health and safety in the workplace
4. Investigate, design, produce and evaluate technological solutions.
• independently apply a design process model which should include, a design brief, investigate/research, generate options, select best option, design and produce (develop solution), evaluate and articulate.
This Module Will Enable Students to:
- Become familiar with the “Lego Mindstorm NXT” software.
- Understand programming concepts of looping, input/output, feedback etc..
- Build several robots from specific detailed instructions
- Construct and program their own robots
- Solve problems they face in both construction and programming
Suggested Teaching Strategies:
- The first section of the student module should be teacher-guided. Students will be introduced to the kits, the organizational and clean up procedures to be used in each class, as well as the storage method for the kits.
- The Teacher will start by having students build the Basic Taskbot from page 8 of the Mindstorms Education Book. Once this basic robot is built the teacher will give several programming lessons and have the students complete several programming tasks.
- After students complete the first series of tasks they will be introduced by the teacher to sensors. Various sensors will be added to the Taskbot and several programming activities which utilize the sensors will be completed.
- The second part of this module will be very student directed. They will complete one of the Robotics projects in the Carnegie Mellon Software (Automated Mining to start). The software will walk them though the construction and programming of the robot. Students will also complete question sheets connected with their project.
- Students who finish this project early can continue to develop the project through the continue section in the Carnegie software.
- Finally if time permits a robot challenge can take place. This challenge would take between 1-2 weeks and would e composed of a task (I.e. navigating a maze). This would be completely student directed with the teacher acting as a resource.
Suggested Assessment Strategies:
- Being part of and contributing to a team effort throughout the module.
- Time management
- Meeting deadlines
- Tutorial questions
- Taskbot – square, circle, figure 8
- Taskbot Sound – direction, speed, on/off
- Taskbot Ultrasonic – Distance stop, distance turn, distance sound
- Automated Mining robot
- Challenge Robot
Required Resources and Materials:
- Lego Mindstorms NXT Education Kit
- Lego Mindstorms Software
- Carnegie Mellon Robotics and Engineering II
Robots to Build:
- Taskbot – Page 8 Mindstorms Education Book
- Taskbot with Sound Sensor – Page 24 Mindstorms Education Book
- Taskbot with Ultrasonic Sensor – Page 28 Mindstorms Education Book
- Automated Mining Robot – Carnegie Mellon Robotics Engineering Volume II
Module Time Outline:
Introduction – terms/demos programming and construction
Start Building Taskbot
Programming – Making the Robot Move forward , Square, Circle, Figure 8
Learn how the programming works – Blocks
Learn move block, motor block, Loop block, random block
Sound Sensor – Have students build Sound sensor attachment
Sound direction, speed, on/off
Learn Sensor block (sound), Wait Block, Switch block
Ultrasonic Sensor – Have students build ultra sonic sensor attachment
Distance stop, distance turn, distance sound
Learn sensor block (ultrasonic) sound block, wait block, switch block, loop block
Multi Tasking – Ultrasonic sensor & Touch Sensor – distance bumper stop/Backup
Day 6 -10
Your project! You decide where you go next. What do you want to make? If you want premade files or suggestions come see me and I’ll give you a few suggestions.
Terms and Concepts Students should understand:
Block (programming): A block is the basic unit of programming in the NXT programming software. Generally, one block represents one command given to the robot, although some blocks (such as the Loop block) are used instead to organize and control the execution of other blocks. Blocks perform their operations in order along the Sequence Beam (see Sequence Beam).
Code: General term for any command or group of commands in a program. In the NXT Programming Software, this is one or more blocks.
Compiler: The compiler is a part of the NXT Programming Software that takes the blocks in a program and converts them into machine language that the NXT brick can understand and run. The compiled code is not exactly the same as the code written in blocks on your computer; this is why you cannot load the program back onto the computer once it is compiled and downloaded to the NXT.
Data: Factual information, like the weight of a robot or the value of a sensor. Note that the word data is plural. A single piece of factual information is a datum.
Data Flow: The process of moving data inside of a program, so that information coming out of one block as data can be input into another block as a control.
Data Hub: See Data Plug and Data Wire. A feature of most programming blocks which can be accessed by clicking on the lower left edge of the block. Note that sometimes two clicks are required to extend the Data Hub completely. Data Hubs allow programming blocks to input (receive) or output (send) data through Data Wires.
Data Plug: See Data Wire and Data Hub. Each Data Hub consists of a number of Data Plugs, which carry a specific type of data, including number data, logic data and text data.
Data Wire: See Data Hub and Data Plugs. Wires that connect output plugs from one block’s data hub to input plugs on another block’s. To create a data wire, click on a data plug, drag the wire that appears to another Plug, and click again to wire the two Plugs together.
Design:Both the process of originating and developing a plan for a new object, like a project prototype, and the plan itself.
Engineering: The study and application of science, mathematics, and technology to find solutions to real-world problems.
Feedback: See Input. Input, such as what a sensor gives to the NXT. For example, a robot uses Light Sensor feedback to follow a line. By extension, feedback can also mean human response, both positive and negative. Efficiently gathering and making use of available human feedback, both internal and external, will tend to help the success of any project.
Input: See Sensor. Something which is sent to the NXT which is used in its program. An input is typically a sensor value sent by a sensor. An input may also refer to the sensor itself.
Interactive Servo Motor: The primary source of physical motion in the Mindstorms NXT system. The Interactive Servo Motors include both an electric motor (which allows them to spin the orange barrel portion of the motor on command) and a built-in rotation sensor. The rotation sensor allows the NXT to monitor the amount the motor has turned, and control the motors accordingly. Interactive Servo Motors can be pluggedinto ports A, B, and C on the NXT. For two-wheeled robots, the defaultsetup is to plug the left motor into Motor Port C, and the right motor into Motor Port B.
Light Sensor: An NXT sensor that detects the presence of certain wavelengths of light and reports the intensity of light back to the NXT. The Light Sensor has two modes: Reflected Light and Ambient Light. In Reflected Light mode, the Light Sensor will shine a red light and look for the amount of that light that bounces back to it off objects in the environment. In Ambient Light mode, the sensor will not shine the light, instead looking for light that reaches it from other sources.
Logic: A data type that the NXT can understand. Logic data has only two possible values, which can be represented in multiple ways. The value True is often also represented by a 1 or a checkmark, and False is also represented by a 0 or an X.
Logic Block: In the NXT programming software, a programming block that performs a logical operation on its inputs and sends out the true/false answer by a data wire.
Loop Block: In the NXT programming software, a programming block that repeats sequences of code. Its default behavior is to repeat the blocks it contains forever, but it can be configured to repeat them for given numbers of times, or under certain conditions.
NXT Brick: The electronic component that controls the operation of the robot by following instructions contained in a stored program. Based on these instructions and the data received from any connected sensors, the NXT can direct the actions of the robot to perform a large range of tasks.
Output: Something which NXT sends. An output is typically power sent to a motor. An output may also refer to the motor itself, or to sensor values that are displayed or collected in a file.
Robot: A machine that is able to interact with and respond to its environment in an autonomous fashion. A robot is characterized by three central capabilties: the ability to Sense, the ability to Plan, and the ability to Act. See Sense, Plan, Act.
Rotation Sensor: A device that measures the amount of rotation of a certain piece or object. The NXT Interactive Servo Motors have rotation sensors built into them that measure the amount of rotation of the orange motor barrel, in either degrees or full rotations.
Sensor: A device that detects some important physical quality or quantity about the surrounding environment, and conveys the information to the robot in electronic form. A Sound Sensor, for example, will detect vibrations in the air, and send an electrical signal to the NXT indicating how strong those vibrations were.
Sound Sensor: An NXT sensor that detects sound waves and reports the amount of sound back to the NXT.
Stimulus: Anything that may have an impact on a system; an input to the system. A program may wait for a given stimulus (like the Touch Sensor being pressed) to execute a specific behavior (like stopping).
Stimulus-Response: Action made in response to a stimulus. The stimulus-response cycle enables robots to interact effectively with their environment.
Switch Block: In the NXT programming software, a Switch block chooses between two sequences of code. For example, when configured with a Touch Sensor, the Switch block might run one series of blocks when the sensor is pressed and another when it is not pressed.
Task: A discrete unit of work. A task may refer to a human activity like designing a drivetrain, or a robotic one, like mapping a coal mine. Effectively breaking down tasks is a key to success both for a human project and for a robotic program
Threshold: A “cutoff” or dividing line between two regions. One common use for thresholds is to divide the hundreds of possible sensor readings from a sensor (a Light Sensor can give a value anywhere from 0-100, for example) into two manageable categories. For the Light Sensor, this would mean setting a threshold value somewhere between 0 and 100, then declaring that all values above the threshold are now “light” while all values below the threshold are now “dark.” A light sensor reading can then be easily categorized and handled appropriately. The threshold value can be chosen in any way desired, but it is conventional to choose a value exactly halfway between two known extremes (e.g. halfway between a very dark surface and a very light one).
Touch Sensor: An NXT sensor that detects physical contact (touch) and reports back to the NXT whether its contact area is being pushed in or not
Ultrasonic Sensor: An NXT sensor that measures distance by emitting ultrasonic sound waves, then measuring how long it takes them to echo back off of objects or surfaces in the environment. The Ultrasonic Sensor then reports the calculated distance back to the NXT.