Programming
A robot is designed to be programmed. The development application is called Mindstorms for Lego and RoboPro for fischertechnik.
fischertechnik RoboPro only supports Windows, while Lego Mindstorms runs on Windows and Mac OS X. The Mindstorms application is power by National Instruments LabView. |
Lego provides 3 options to program the EV3 controller:
The first option is hard to use and the second pretty limited. |
fischertechnik provides one option only, RoboPro on Windows.
|
GUI
Mindstorms offers a GUI with specific colours for each kind of elements.
The menus provide additional features, like creating a sub-routine. |
RoboPro offers a GUI with specific colours for each kind of elements. Everything is available on the screen, with no need to call the menus.
RoboPro allows to select among 5 levels, from Beginners, then Sub-Programs, Variables, Custom Commands, up to Objects. |
Calculations
Mindstorms includes elements for performing calculations. They are included in the main process of the program.
|
However, RoboPro offers greater flexibility with 2 distinct flows: a process flow (in blue) and a variable flow (in orange) . This allows to perform calculations separately.
|
Sub-Routines and Functions
Mindstorms allows to define sub-routines.
|
RoboPro relies extensively on sub-routines and functions
|
A sub-routine is called My Block, with optional inputs and outputs.
|
A sub-routine contains a process flow and optionally a variable flow with inputs and outputs. It can have multiple exits for the process flow, here Yes and No.
|
The Advanced option of the Math element allows to write a formula in text with up to 4 inputs and one single output.
|
A function has only a variable flow, but with multiple inputs and outputs. Formula written in text is not available.
|
Sub-routines are grouped in the green section of elements.
|
Sub-routines and functions are listed on the left to be picked and displayed as panes listed on the top for edit.
|
Debugging
The main window has a dedicated zone to display the battery level, the peripherals attached and detected automatically by the EV3 and the connection used.
|
The separate Interface Test window displays all the inputs and outputs of the controller, with their configurations and values, and allows to change them.
|
Mindstorms includes basic debugging with on-line execution of the whole program or a selected part of it.
|
RoboPro provides debugging, with on-line execution, step-by-step execution, pause and resume, and value monitoring.
The simulation mode allows to test the project without a controller. |
Advanced Features
Mindstorms features multi-tasking, albeit without the standard RTOS tools like semaphores or mailboxes.
Other advanced features include sending messages to other controllers, writing and reading files on the SD-card. |
RoboPro features multi-tasking, albeit without the standard RTOS tools like semaphores or mailboxes.
Other advanced features include sending messages to other controllers, writing to and reading from I²C devices. However, the SD-card isn't implemented yet. |
Customs peripherals
The Mindstorms application provides no option for custom digital, analog or I²C peripherals.
Three documents provide the corresponding documentation: the Hardware Developer Kit the Software Developer Kit and the Communication Developer Kit. |
The RoboPro application allows to configure each input as analog or digital, voltage or resistor. Similarly, it provides functions to communicate directly with I²C peripherals.
There's no need for external documentation. |
Conclusion
Despite the National Instruments LabView partnership, the Lego Mindstorms application was more difficult to use, partly due to its horizontal only organisation.
The fischertechnik RoboPro allows to use both vertical and horizontal organisations with separated command flow and data flow, and features 5 levels from beginner to expert. I like the automatic identification of the peripherals by the Lego EV3 brick, at the expense of a proprietary connector. Now, according the the schematics, most of the peripherals include their own micro-controller. The fischertechnik approach brings more freedom, as the inputs (analog and digital) and outputs (PWM) are standard, with ∅ 4 mm plugs. Functions are available for custom analog, digital and I²C peripherals, bringing expansibility for smart sensors. Similarly, RoboPro provides more powerful debugging facilities, including a simulation mode with no controller connected. |
Previous |
Next |