Getting Started with Flowcode for Arduino
Arduino is the open source electronics prototyping platform. It has become popular in the world of hobbyists, students, artists, programmers and professionals. Arduino was born as an easy tool for fast prototyping, aimed at students without a background in electronics and programming. As soon as it reached a wider community, the Arduino board started changing to adapt to new needs and challenges, differentiating its offer from simple 8-bit boards to products for Internet of Things (IoT) applications, wearable, 3D printing, and embedded environments. All Arduino boards are completely open-source, empowering users to build them independently and eventually adapt them to their particular needs. The software, too, is open-source, and it is growing through the contributions of users worldwide.
Some Arduino boards
The Arduino Uno board is inexpensive (about $30) and quite tolerant of common novice mistakes. There are currently a couple of Arduino boards, the cheapest and the simplest to start with is the Arduino Uno board shown above on figure 1. This board is based on ATmega328 microcontroller. It has a USB interface, 6 analog input pins and 14 digital input output pins which allows the user to extend connection with other boards. ATmega 328 has 32KB of flash memory for storing the program. 2KB of SRAM and 1KBof EEPROM are also available. Arduino Uno provides an external polyfuse for the protection of the computer’s USB. The fuse will break automatically when more than 500mA of current passed to the USB port and it will remain until the short or overload is removed.
Figure 2: Description of Arduino Uno Board
- The USB connector is used to connect the Arduino to a computer, so that the microcontroller can be programmed. The connection can also provide electrical power for the board if an external power supplier is not used.
- The Arduino microcontroller stays in its socket. It can be replaced, if damaged, but the Arduino SMD Edition, you can’t replace the Arduino microcontroller
- The USB port is used to power the board from your computer’s USB port and also to transfer the program code from your computer into the Arduino microcontroller.
- The power supplier is to power the board if you don’t want to use the USB. An AC adapter could be used (9 volts recommended, 2.1 mm barrel tip, center positive). Whenever power is provided at the power socket, Arduino will use that, and if there is no power at the power socket, Arduino will use power from the USB socket. It’s safe to have power at both the power socket and the USB socket.
- Digital I/O pins (pins 0–13): These pins can be either inputs or outputs. Inputs are used to read information from sensors, while outputs are used to control actuators. You will specify the direction (in or out) in the sketch (Arduino programming Software is called Sketch) you create in the IDE. Digital inputs can only read one of two values, and digital outputs can only output one of two values (HIGH and LOW).
- Analogue In pins (pins 0–5): The analogue input pins are used for reading voltage measurements from analogue sensors such as temperature sensors. In contrast to digital inputs, which can only have two values HIGH and LOW, analogue inputs can measure 1,024 different levels of voltage.
- Analogue Out pins (pins 3, 5, 6, 9, 10, and 11): These are actually six of the digital pins that can perform a third function: they can provide analogue output. As with the digital I/O pins, you specify what the pin should do in your sketch.
You can learn more from Arduino Website.
Arduino Mega 2560
Figure 3: Arduino Mega 2560
The MEGA 2560 is designed for more complex projects. With 54 digital I/O pins, 16 analog inputs and a larger space for your sketch. This gives your projects plenty of room and opportunities.
Figure 4: Arduino Yún
Arduino YÚN is the perfect board to use when designing connected devices and, more in general, Internet of Things projects. It combines the power of Linux with the ease of use of Arduino. The board has built-in Ethernet and WiFi support, a USB-A port, micro-SD card slot, 20 digital input/output pins (of which 7 can be used as PWM outputs and 12 as analog inputs), a 16 MHz crystal oscillator, a micro USB connection, an ICSP header, and a 3 reset buttons.
Some Arduino shields
Shields are boards that can be plugged on top of the Arduino PCB extending its capabilities.
Arduino GSM Shield
Figure 5: Arduino GSM Shield
The Arduino GSM Shield allows your Arduino board to make phone calls, send SMS and connect to the Internet.
Arduino Ethernet Shield
Figure 6: Arduino Ethernet Shield
The Arduino Ethernet Shield allows an Arduino board to connect to the internet. It has a standard RJ-45 connection, with an integrated line transformer and Power over Ethernet enabled.
Arduino Motor Shield
Figure 7: Arduino Motor Shield
The Arduino Motor Shield is based on the L298 (datasheet), which is a dual full-bridge driver designed to drive inductive loads such as relays, solenoids, DC and stepping motors. It lets you drive two DC motors with your Arduino board, controlling the speed and direction of each one independently. You can also measure the motor current absorption of each motor, among other features.
Flowcode for Arduino Software
Matrix Technology Solutions has introduced Flowcode for AVR/Arduino in Flowcode v6. Apart from the wide range of microcontrollers it supports: PIC10, 12, 16, 18, dsPIC, PIC24 series, AVR and ARM, now Arduino is suported. Flowcode has huge benefits over the software platform and compiler used by Arduino and this is where users can really benefit from using the Flowcode environment. The intuitive, graphical programming style of Flowcode means that there is an ease-of-development aspect to be gained from Flowcode.
Flowcode is one of the World’s most advanced graphical programming languages for microcontrollers.
Flowcode software allows you to develop complex electronic and electromechanical systems with ease by just dragging and dropping icons on to a flowchart to create programs. The graphical programming tool allows even those with little experience to develop complex electronic systems in minutes.
These programs can control external devices attached to the microcontroller such as LED, LCD, GSM/GPRS modems, 3D Printer, Bluetooth, Motor or read external devices connected to the microcontroller such as switches, keypad, Humidity SHT21, Temperature LM75B, Acceleromete etc. Various communication protocols are also supported in Flowcode such as CAN, I2C Master, LIN Master, LIN Slave, One Wire, RS232, SPI Master, TCP Base, TCPIP, USB HID, USB Serial, USB Slave, Visi (4DSystems), Webserver.
Once you have designed your flowchart, you can simulate your project to see how it will behave once compiled and transferred to your Arduino board. Flowcode V6 has improved its simulation, you can now design and simulate in 2D or 3D, this will enable you to construct a complete electronic system on-screen, develop a program based on standard flowcharts, simulate the system and then deploy it with confidence.
Figure 1: 3D System Panel and 2D Dashboard Panel
Flowcode v6 has two separate panels compared to 1 panel in its predecessor. The Dashboard Panel and System Panel are both designed to compliment each other, the Dashboard Panel is a 2D workspace designed to display and simulate controls, such as buttons, switches, dials, knobs and sliders as well as readings such as meters, scales and digits such as temperatures, times and measurements while the The System panel provides a real-world framework on which to load Flowcode components. It is designed to show the physical representation of real world components during simulation in 3D.
Advantages of using Flowcode for Arduino
- A bigger range of components: Flowcode 6 for Arduino is loaded with lots of components like Analog to Digital Converters, LEDs, switches, keypads, LCDs, Graphical LCDs, wide number of sensors, 7-segment displays, Internal EEPROM, Touchscreen LCD. Supported mechatronics Accelerometer, PWM, Servo, Stepper, Speech and includes component creation software for users to create their own designs: electrical, mechanical and systems.
- Various communication protocols: Flowcode supports CAN, I2C Master, LIN Master, LIN Slave, One Wire, RS232, SPI Master, TCP Base, TCPIP, USB HID, USB Serial, USB Slave, Visi (4DSystems), Webserver
- Simulation: Flowcode 6 has superb simulation capabilities. The great thing about simulation is that it allows you to test your design on-screen before you deploy it. This saves time. Simulation also allows you to set scenarios for your project to test it under more conditions than you find on the bench.
- Test built in: Flowcode 6 now includes full 3D support and a range of API calls that allow engineers to work at a systems level. Flowcode 6 can now simulate complete mechanical systems like plotters and 3D printers. The 3D engine and API calls facilitate other types of design and simulation: from heating water in tanks using PID algorithms to robotics. 3D design files for electromechanical parts are now freely available and can be easily imported into Flowcode and used in engineer’s designs.
- Data Injectors: Some of the more common communications based components have an inbuilt option to use a data injector component to allow the external portion of the communications bus to be simulated. The data injectors are designed to replicate the functionality of a specific external interface without adding anything to the downloadable code sent to the embedded device. Here are the current included data injectors: Injector Base, AT Injector, CAN Injector, DS1307 Injector, GPS Injector, Human Interface Injector and Vnet Injector
Figure 2: Flowcode v6 Overview
- API Support: Flowcode 6 includes a full API with DLL support. This means that during simulation and In-Circuit-Test mode you can control any third party instrument that provides a DLL and develop a full SCADA system
- Dashboard HMIs: Human Machine interface: components show your system during simulation and In-Circuit-Test using intuitive displays including meters, graphs, oscillograms and tables.
Figure 3: Dashboard HMIs
- Third party instrument support: access readings and data from external instruments using DLL support. Display data with dashboard HMIs or third party software.
- Ghost technology: This provides a real time log of the status of all the pins on the microcontroller whilst a Flowcode program is running on the device. Ghost data can be viewed on the Flowcode Softscope at the same time as the flow chart simulation.
- Different Languages support: Flowcode 6 is available in many languages such as French, German, English, Italian, Spanish etc
- More boards are supported: AVR support means you can do more with your Arduino than you ever dreamed, you can even integrate it into the Matrix Technology Solutions E-blocks modules. Flowcode v6 for Arduino supports Duemilanove, Leonardo, Fio, LilyPad, Mega, BT, Micro, Nano, Pro, Pro Mini, Uno & Yun
Versions of Flowcode v6
- Free Version: 30 days trial version with full features, after 30 days, some features will be disabled including Compile to chip. Full version This well featured version allows you to verify that Flowcode will provide the functions you need and is also suitable for ongoing use with personal computers.
- Chip Pack Version: These Chip pack versions of Flowcode are available for each of the microcontroller chip types supported. When bought alone they give limited functionality for each chip type but When used in conjunction with a professional or multi-user education license, the chip pack unlocks the full Flowcode features for the chip type. There is a Chip Pack for ARM, AVR/Arduino, PIC (PIC10, PIC12, PIC16 and PIC18) and PIC16 (PIC24 and dsPIC)
- Professional Version: This version includes all functions, components, and is licensed for commercial use.
- Academic Versions: A reduced cost Academic version of Flowcode is available and it provides the same functionality as the Professional version. Academic multi-user versions (10 user, 50 user) are also available. These are for sale only to educational schools, colleges and universities.
- Free Flowcode SE version: Flowcode SE is a reduced function version of Flowcode 6. It is the same software products with a different ‘skin’ on it. All Flowcode 6 Academic customers can receive Flowcode SE free of charge should they want it.