This project is meant to complement the comparison made in The Difference Between LEGO MINDSTORMS EV3 Home Edition (#31313) and LEGO MINDSTORMS Education EV3 (#45544), an article by Laurens Valk.
There are two editions of LEGO Mindstorms, LEGO's Robotics Invention System (RIS), the EV3 Home Edition and the Education Edition. You may wonder what is the difference and which one is right for you. Reviews on Amazon will tell you that the Education set is meant for schools, with a more robust plastic packaging and shorter, in-class exercises to go through instead of full-blown projects to be exercised from start to end that fulfill you as a robot newbie with the Home Edition.
If you one day want to upgrade your set you'll be wondering if you can combine the two. The data elaborated in this project may help you with your decision on what pieces to buy.
The Education Edition's rechargeable battery pack also fits on the EV3 Home Edition brick! This is useful since the battery piles drain rather fast (10-20 minutes playing at average). Instead of buying 6 or 12 battery piles, unmounting and charging them regularly you could simply buy a single battery pack and attach the charger while playing, whenever needed.
- The Difference Between LEGO MINDSTORMS EV3 Home Edition (#31313) and LEGO MINDSTORMS Education EV3 (#45544)
- LEGO Answers question (Bricks, a StackExchange site)
Lego-Mindstorms-Editions-Comparison.ods
, a LibreOffice Calc spread sheet, lists the pieces of all sets combined. ColumnsH
andK
tell you which pieces to buy if you have either Home Edition + Expansion Set or Education Edition + Expansion Set. You can filter the columns using the "Auto Filter" in the first row.The spread sheet document specifically targets the two sections "‘Upgrading’ Elements from Education Edition to Home Edition" and "‘Upgrading’ Elements from Home Edition to Education Edition" in Lauren's article. Specifically, the document will make the latter section less vague with regards to the "you’ll need to purchase [...] certain Technic building elements" statement.
Note
If you can't or don't want to install LibreOffice here are some free services that display or convert the spread sheet: convert-doc (view), Zamzar (convert), convertfiles (convert). Some let you specify the raw document url directly. Google Docs and Zoho Docs also import the spread sheet.
lego-mindstorms-pieces.py
is a Python3 script to help with calculating and ordering required LEGO Mindstorms EV3 spare parts. It has three commands:parse
Generate the combined list of LEGO pieces from the 3 separate inventory lists (the combined list is what the above mentioned spread sheet is made of). It takes three file names as an argument. Output is sent to
stdout
. You can redirect it to a text file using the>
operator on the command line.missing
Generate a list of LEGO parts missing in the combination of the Edu Expansion set + Home or Edu Core, that only the other (omitted) set would have. The output has the format
part:quantity,...
and is sent tostdout
. You can use the result as a shopping list in theorder
command.order
Add a list of LEGO parts and their quantity to the 'Shopping Bag' of LEGO's customer service platform. A browser window will be opened, you'll be able to watch the browser do what you would normally do by hand, and execution will stop after all pieces have been added, so you can review and finalize your order. (This is just to help you save time on entering 60+ pieces manually. Nothing is ordered on your behalf!)
For full instructions run:
python3 lego-mindstorms-pieces.py {command} --help
To run lego-mindstorms-pieces.py order
you need:
- Python Selenium (see
requirements.txt
) - geckodriver
- chromedriver (you must use version 2.33 for Chrome 62.0)
See the docs folder for sample output of the order
command, and screenshots
of prepared orders at LEGO's customer service platform.
The order process at LEGO is highly automated. This usually means that orders with items out of stock, or orders that are too large will not be processed. LEGO notifies you with an automatic email in such a case.
- LEGO Mindstorms, 31313 EV3 Home Edition, User Guide (look for "User Guide" button)
- LEGO Mindstorms Education, 45544 EV3 Core Set, Element Overview
- LEGO Mindstorms Education, 45560 EV3 Expansion Set, Element Overview
- Brickset inventory lists: 31313-1, 45544-1, 45560-1
- LEGO Pick a Brick (official parts shop)
- LEGO Bricks & Pieces (official customer service) [1]
- Rebrickable:
- compare Mindstorms vs. Edu Core
- compare Mindstorms vs. Edu Expansion
- compare Edu Core vs. Edu Expansion
- search sets, search parts
- Brickset:
- BrickLink > Catalog Search (parts, shops, marketplace)
- Brick Owl (parts and store search)
- LEGO parts drawing programs:
[1] | Spare parts you want to buy in addition are usually available here. Use the 5-digit number of the set you did not buy (31313 or 45544) when the shop asks you for a set number. |
LEGO robot programs can be written with the LEGO MINDSTORMS EV3 Software (on Windows and Mac), the Windows 10 touch device application (Education Edition), or with any programming language supported by the ev3dev firmware (platform-independent).
Open Roberta Lab is available as a visual editor for ev3dev (setup instructions), featuring Python under the hood. Also, if you use Scratch you may be interested in Scratch extensions (for Windows and Mac).
LEGO firmware | ev3dev (Python) [2] | Description |
---|---|---|
> Home Edition robots (build instructions for 5 official and many more robots) | ||
Track3r (LEGO) | Track3r (ev3dev) | Crawler-mounted, all-terrain robot |
Spik3r (LEGO) | n/a | Remote-controlled scorpion robot |
R3ptar (LEGO) | R3ptar (ev3dev) | Scary cobra snake robot |
Gripp3r (LEGO) | Gripp3r (ev3dev) | Heavy-duty lifting robot |
Ev3rstorm (LEGO) | Ev3rstorm (ev3dev) | Walking robot firing bullets |
> Education Edition Core Set robots (build instructions for 5 robots) | ||
Educator Vehicle | Educator | Multi-purpose robot for teaching robotics |
Sorter | n/a | Sorts LEGO bricks by size and color |
Gyro Boy | Balanc3r | Self-balancing robots |
Puppy | n/a | Looks and behaves like a dog |
Robot Arm H25 | n/a | Robot arm used for assembly in factories |
> Education Edition Expansion Set robots (build instructions for 6 robots) | ||
Znap | n/a | Crawler-mounted bat-like animal |
Remote Control | n/a | A remote control for your hand |
Stair Climber | n/a | Wheel and crawler-mounted vehicle |
Tank Bot | n/a | Crawler-mounted military vehicle |
Elephant | n/a | Walking and roaring elephant |
Spinner Factory (1/3) | n/a | Complex assembly line machine |
> Popular (awesome) robots by other authors | ||
n/a | Explor3r | Self-driving exploring robot |
n/a | EV3D4 | Remote-controlled Star Wars R2-D2 clone |
MindCub3r | MindCub3r (ev3dev) | Solves the Rubik's cube |
n/a | EV3 Tracked Explor3r | Autonomous crawler-mounted tank vehicle |
EV3 Dancing robot | n/a | The sweetest LEGO disco dancer ever! |
Wall-EV3 (non-free) | n/a | Disney's cute WALL-E robot built with EV3 |
Chip & Dale (non-free) | n/a | Two mecha twin robots that walk and turn |
NXT Turtle (non-free) | n/a | An awesome turtle (see also: EV3 Turtle) |
EV3 Desk Guardian | (easy to write yourself) | A bodyguard shooting robot for your desk |
Clev3r Car | n/a | RC or autonomous car that avoids obstacles |
Cleaning Robot | n/a | Clean your room with this Roomba clone! |
n/a | Sound & LEDs | Demos to produce sound and activate LEDs |
> Other resources | ||
Walking robots | just videos of maker creations | |
More EV3 Maker and Coding Activities | official LEGO downloads | |
ev3devlight (ev3dev based on MicroPython) | Faster, lightweight ev3dev for MicroPython |
[2] | Python bindings API docs |
If you find a typo, an error, a critical mistake or feel there's some enhancement needed please feel free to open an issue, or even better clone the repository, apply your changes, and place a pull request. Your contribution is welcome!
Please run flake8
over the Python code to make sure it follows PEP8.
A line length of 100 is okay (flake8 --max-line-length=100
).
If you make changes to the raw data, e.g. raw-data/Brickset-inventory-*.csv
,
in a pull request please also regenerate the combined list and update the Calc
spread sheet as follows:
$ cd raw-data/ $ python3 ../lego-mindstorms-pieces.py parse Brickset-* > "Lego Mindstorms EV3 combined list.csv"
Then open Lego-Mindstorms-Editions-Comparison.ods
and copy the contents of
the regenerated Lego Mindstorms EV3 combined list.csv
from a text editor
into the spread sheet as follows:
- Highlight the first 7 columns and press the
Del
key to clear the cells. - Place the cursor onto the first left upper cell and press
Ctrl
+v
. - The "Text Import" dialog pops up. Choose "Unicode" and "Tab" separation.