Rei Vilo's fischertechnik Corner
  • About
  • Blog
  • Reviews
    • How to Start?
    • Controllers >
      • Robotics TXT
      • TXT 4.0 Controller
      • Bluetooth Smart Beginner Set
      • Interface Boards for fischertechnik Models
      • Didacta Advance Pi-F5 interface board
    • Sets >
      • Technical Revolutions Set
      • Pneumatic Power Set
      • Automation Robots Set
      • Electro-Pneumatic Set
      • Starter Set for micro:bit
      • Bluetooth Smart Beginner Set
      • Robotics TXT Smart Home Set
    • Exploring the Lego World >
      • Purchasing
      • Unboxing
      • Installing
      • Building
      • Programming
      • Connecting
      • Playing
      • Expanding
      • Concluding
  • Models
    • Back to the 70's
    • Micro Models
    • New Magasin >
      • Magasin releases 1, 2 and 3
      • Long X-Axis
      • Moving Desk And Y-Axis
      • Compressed Air And Vacuum For Z-Axis
      • Pictures
      • Specifications
    • Power Saving White LED
    • Flipper with I²C LCD Panel
    • Celebrating 50 Years!
    • ft Convention 2013
    • ft Convention 2014
  • Sensors
    • Interfacing an Arduino to a Robo TX Controller >
      • Analog Interface
      • Digital Interface
      • I²C Interface
    • Standard Sensors >
      • Playing With Accelerometers
      • Proximity Sensor
      • Pressure Sensor
    • Advanced Sensors >
      • Industrial Colour Reader
      • Stepper Motor Controller
      • DC-Motor with Quadrature Encoder Controller
    • smartDevices >
      • smartColours
      • smartRFID
      • smartLED
      • smartHub
      • smartControls
      • smartMeter
      • smartCamera
      • smartNewCamera
      • smartWiFi
      • smartBLE
      • smartNode
      • smartIMU
  • RoboPro
    • Value Operations >
      • Min and Max Functions
      • Signal Management With Median
      • Modulo Function
      • Map Function
    • Standard Modules >
      • Software Managed Compressor
      • Self-Calibrated Colour-Reader
      • Standard Conveyor Belt Routine
      • Management Panel
      • Encoder-Motor Position Management
    • Variable Types >
      • CSV List Management
      • Queue Function
    • Program Structures >
      • Parallel Processing
      • Multi-Tasking End Management Procedure
    • Tutorials >
      • Setting Bluetooth LAN with Multiple TX-Cs
      • Dealing with Very Large Models >
        • Getting a General View
        • Defining User's Functions
        • Elaborating the Modelisation
        • Defining the Processes
        • Setting the Messages
        • Going Further
        • References
      • Program Error 2 Message
  • I²C
    • How to Connect an I²C Device to the Robo TX?
    • How to Connect an I²C Device to the Robotics TXT?
    • How to Manage an I²C Device?
    • How to Use an I²C Driver?
    • List of I²C Drivers for Sensors >
      • I²C Real Time Clock DS1307
      • I²C LCD screen 4 lines of 20 characters LCD03
      • I²C Triple Axis Accelerometer ADXL345
      • I²C Red-Green-Blue LED BlinkM
      • I²C Two Axis Compass HMC6352
      • I²C Triple Axis Magnetometer HMC5843
      • I²C True Colour Sensor ADJD-S371
      • I²C Stepper Controller AMIS-30624
    • List of I²C Drivers for smartDevices >
      • I²C True Colours Smart Sensor smartColours
      • I²C RFID Smart Sensor smartRFID
      • I²C 4-Digit 7-Segment LED Display smartLED
      • I²C Screen With Touch and SD-Card smartControls
      • I²C Smart Sensor smartCamera
      • I²C Smart Sensor smartNewCamera
      • I²C Remote WiFi Interface smartWiFi​
      • I²C Remote Bluetooth Interface smartBLE​
      • I²C Remote Interface smartNode​
      • I²C New LCD Screen 4 x 20 characters smartLCD
      • I²C Inertial Measurement Unit smartIMU

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.

Picture
Picture
Picture
Picture
Lego provides 3 options to program the EV3 controller:
  • In-place programming using the buttons and the screen of the EV3 controller.
  • A simplified version of Mindstorms running on tablets (iOS and Android).
  • The standard programming Mindstorms application on Windows or Mac OS X.

​The first option is hard to use and the second pretty limited. 
fischertechnik provides one option only, RoboPro on Windows. 

GUI

Example programs on Mindstorms left 
and on RoboPro right 
Picture
Picture
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

The same program on Mindstorms left 
and on RoboPro right 
Picture
Picture
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
Left, a sub-routine on Mindstorms
Right, a sub-routine on RoboPro 
Picture
Picture
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. 
Left, the Advanced option of the Math element
Right, a function with multiple inputs and outputs
Picture
Picture
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.
Picture
Picture
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.

Picture
Picture

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 

Left, documentation aplenty
Right, everything included for I²C 
Picture
Picture
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

  • Building

Next 

  • Connecting
Powered by Create your own unique website with customizable templates.