Teachers Introduction Course to LEGO® Mindstorms NXT & EV3
(version 4.6)
LEGO robotics workshops have a lot of features that make them extremely attractive from many points of view, and are a very good way to awaken from a very young age passion about science, technology, computer science and many other subjects that can be transversally related.
It is about presenting technology to youth in a playful manner, where they learn by playing, but in a conducted way. This fact takes advantage of personal motivation to undertake a much more efficient and high level learning. Children learn from their own mistakes, they learn team work and, more important, they share their own knowledge, putting into practice the values of the so called gracious professionalism, keeping a fair competition level.
Goal
The goal of the “Teachers Introduction Course to LEGO Mindstorms NXT & EV3” is to provide teachers an introduction course to LEGO Mindstorms technology from a basic to an advanced level, with simple examples and other more complex, so that every teacher can use it to create his/her own course by adding or removing the wished parts.
The course also includes theoretical parts that give a more conceptual support to the exercises and allow students to implement these concepts, to better understand their utility.
Even if the course offers specific exercises conducted in a very specific way, to better convey the knowledge progression, the teacher can adapt the exercises or just use them as a guide to allow each student or group of students to acquire the same knowledge, but from their own projects. Finally, the course provides very useful and difficult to obtain knowledge about LEGO Mindstorms NXT-G and EV3 software and technology that allow going very far with a relatively little effort.
Introduction
Before starting the course it is advisable that the teacher reads the software introduction of the user’s manual. Specifically, the software part about how to make the first program shows how to do that and it is useful to get familiar with the basic components of the robot’s programing software. It is also useful to read the software user interface part, that shows all the application components, the programing palette, that shows and explains the different blocks used to program the robot and its menu structure, the configuration panel, used to configure each block’s different attributes, and finally the controller that allows to compile, manage memory and save programs into the robot to be executed later.
The course will use a robot basic model (one for NXT and another one for EV3), a vehicle equipped with sensors, that will allow doing the exercises of all learning units, to which other parts will be added and/or modified according to the needs. Thus, before starting the exercises, this first robot should be built following the building instructions.
The course is organized with 9 learning units and contains different exercises with increasing levels of difficulty and an incremental exercise that will be used through the whole course and that will be solved in different ways, according to the concepts studied in each learning unit. The course is progressively expanded with other learning units focussing in more specific aspects and also contains an annex. This shows the big power of programing and robotics that allow solving the same challenge in many different ways, achieving a solution with more or less precision and robustness, in function of the programing strategy as well as an adequate use of sensors.
In addition to the exercises and the software explanations, the learning units include sections with theoretical concepts to explain to students (over a blue color background), specific suggestions about the software and programing strategies or tips to avoid problems (over a yellow color background) and sections with a summary of the acquired knowledge (over a green color background).
Course learning units index and calendar
UNIT 1. Course introduction: robots and technology, LEGO Technic pieces, motors, sensors and software introduction (1-2 sessions)
Themes: software, programing logic and robot parts relation introduction.
UNIT 2. Motors, movements and turns: precise control of the distance moved (2 sessions)
Themes: motors, calculation of rotations in function of the wheel diameter.
not yet translated
UNIT 3. Sensors, conditions and loops: decision-making (2-3 sessions)
Themes: different types of sensors and calibration, switch, loop, run parallel processes.
not yet translated
UNIT 4. Exploring thresholds: “experiment” with a wait block and a switch associated to a sensor (1 session)
Themes: deepening the concept of threshold between several measures and use of wait and switch blocks, testing criteria and measurements with an experiment in Mindstorms.
UNIT 5. Advanced switches and loops: movement logic and decision-making in function of a combination of sensors (2-3 sessions)
Themes: combination of sensors with a switch and a loop, logic block (nested loops or logic loop), cascade of logic elements.
not yet translated
UNIT 6. Inside a two-step simple line follower: data logging and “experiments” (3-4 sessions)
Themes: file access, upload and download, data logging, sensors reading in real and differed time, curves and graphs in function of time, the concept of experiments in Mindstorms, debugging strategies.
UNIT 7. Variables, ranges, multiple switches, user blocks and numerical calculation: the control of a program flow (2-3 sessions)
Themes: logic and mathematics blocks, arguments and variables, transformation of values, data hub, interrelation of loops and switches, multiple case switch, user blocks or subprograms with arguments and variables out.
not yet translated
UNIT 8. How to optimize a simple line follower of one light sensor: from the 2 step simple line follower to the proportional line follower (2-3 sessions)
Themes: mathematics blocks, data wires, data hub, interrelation of loops and nested switches, user blocks or subprograms with arguments.
not yet translated
UNIT 9. From sequential programing to the states machine: the case of the 4 steps simple line follower of two light or color sensors (4-5 sessions)
Themes: logic and mathematics blocks, arguments and variables, transformation of values, data hub, interrelation of loops and switches, multiple case switch or case structure, data flow diagrams, state machine, user blocks or subprograms with arguments and variables out.
UNIT 10. To light or not to light: how to use the legacy lamp in EV3 (1 session)
Themes: logical loops and timed loops, arguments and variables, time synchronization and minimum common multiple, advanced block modulo operation, unregulated motor block, user blocks or subprograms with arguments and variables out, Master/Slave design pattern application architecture.
UNIT 11. How to wait for one or more sensor conditions (1 session)
Themes: wait block, logical loops, unlimited loops and loops associated to a sensor as control flow programming structures, parallel program sequences and the stop program block.
UNIT 12. Program flow strategies to control an actuator with sensors: a Motor and a Touch sensor (2 sessions)
Themes: touch sensor, wait block, logical loops, unlimited loops and loops associated to a sensor, switch block, timers, arrays and its operators, brick screen messages and status light management, arguments and variables, user block or subprograms with arguments, and the Master/Slave design pattern application architecture using loops running at different rates.
UNIT 13. On programing design patterns architecture in NXT and EV3 (2 sessions)
Themes: logical loops, unlimited loops and loops associated to a sensor, switch block, arguments and variables, data flow diagrams, and the application architectures with the different design patterns (sequential programing, loop programing, parallel loops, master and slave design pattern and state machine).
ANNEX 1. Catalog summary of “equivalent” programing structures
Themes: motors control in a straight movement, motors control in a straight movement using sensors and logical structures.
not yet translated
History of changes
- Version 4.6, May 2018: learning unit 13 created.
- Version 4.6, September 2017: learning units 11 and 12 created.
- Version 4.5, May 2016: learning unit 10 created and minimum corrections.
- Version 4.5, December 2014: learning unit 6 modified to include EV3 programing and translation to English (there is no version change).
- Version 4.5, October 2014: learning unit 4 modified to include EV3 programing and translation to English (there is no version change).
- Version 4.5, August 2014: learning unit 9 finalized which includes programing with Mindstorms EV3 and the systematic comparison with Mindstorms NXT-G (which will be completed for all learning units). English translation of the course started.
- Version 4.0, May 2014: includes minor corrections and modifies the examples of the programs considering that the Move block is not still capable to break the motors due to an error of the program that is not fixed yet. It includes two new learning units. Learning unit 8 deepens into the line follower algorithm of one light sensor. Learning unit 9 uses the example of the 4 step simple line follower of two light sensors to introduce the states machine programing as an improvement of the sequential programing.
- Version 3.0, December 2011: includes minor changes with more detailed explanations and precisions about aspects that could be confusing, and references to videos and articles that better illustrate each learning unit. It includes a new learning unit 4 to deepen the threshold concept which includes an experiment to illustrate the light sensor behavior. Exercises have been renumbered. Minor corrections of the robot model have been made.
- Version 2.0, August 2010: includes a new learning unit 6 about data logging and the concept of experiments in Mindstorms. Some learning units have been modified. It includes an annex with a catalog of “equivalent” programing structures that allows comparing different ways of accomplishing the same functionalities, but with different features. It also includes minor corrections.
- Version 1.0, May 2009: initial version of the course composed by 5 learning units. It includes small changes and minor corrections without version changes.
References
Books:
http://mindstorms.lego.com/en-us/community/books/default.aspx
“Building Robots with LEGO Mindstorms”, M.Ferrari, G.Ferrari, R.Hempel, http://www.syngress.com
“LEGO Technic Tora no Maki”, Y.Isogawa, http://www.isogawastudio.co.jp/legostudio/
Interesting webs:
http://www.legoengineering.com
http://www.technologyreview.com
http://www.ni.com/getting-started/labview-basics/
You can look up our web http://www.bogatech.org where, in addition of finding this course in the section of “Courses and exercises”, you will find information about events related to educational robotics and LEGO, articles and presentations we have done and foreseen, a little bit of history about Bogatell-Icària LEGO Robotics Workshop and its learning goals, resources about international competitions like RoboCup Junior, and the activities and registrations for each course.
For those who have accessed the course from BOGATECH web, you can find the course published at the educational portal of the Generalitat regional government http://www.edu365.cat inside the section Imagina, http://www.edu365.cat/imagina/.
Contact
For any question about the “Teachers Introduction Course to LEGO Mindstorms NXT & EV3”, or to contact us, or for any modification or if you find any error in the course, we kindly request you to inform us, you can send an email to info@bogatech.org.
LEGO, MINDSTORMS and NXT are registered trademarks of LEGO Group, which do no sponsor, authorize nor guarantee this material.