FLProg is a visual programming system for Arduino. FLProg - Arduino Visual Programming System Download Arduino Graphic Programming Program

Hello! I am Alikin Alexander Sergeevich, teacher additional education, I lead circles "Robotics" and "Radio Engineering" in the Central Children's and Youth Theater of Labinsk. I would like to talk a little about a simplified way to program Arduino using the ArduBloсk program.

I entered this program into educational process and delighted with the result, it is in special demand among children, especially when writing simple programs or for creating some initial stage of complex programs. ArduBloсk is a graphical programming environment, i.e. all actions are performed with drawn pictures with signed actions in Russian, which greatly simplifies learning the Arduino platform. Children from the 2nd grade can easily master working with Arduino thanks to this program.

Yes, some might say that Scratch still exists and is also a very simple graphical environment for Arduino programming. But Scratch does not flash the Arduino, but only controls it by means of USB cable. Arduino is dependent on the computer and cannot work autonomously. When creating your own projects, autonomy for Arduino is the main thing, especially when creating robotic devices.

Even the well-known LEGO robots, such as NXT or EV3, our students are no longer so interesting with the advent of the ArduBloсk program in Arduino programming. Arduino is also much cheaper than any LEGO constructors and many components can simply be taken from an old household electronic engineering. The ArduBloсk program will help not only beginners, but also active users of the Arduino platform in their work.

So, what is ArduBlock? As I said, this is a graphical programming environment. Almost completely translated into Russian. But in ArduBloсk, the highlight is not only this, but also the fact that the ArduBloсk program written by us is converted into Arduino IDE code. This program is built into the Arduino IDE programming environment, i.e. it is a plugin.

Below is an example of a blinking LED and a converted program in the Arduino IDE. All work with the program is very simple and any student can understand it.

As a result of working on the program, you can not only program the Arduino, but also study commands that are incomprehensible to us in the text format of the Arduino IDE, but if you are too lazy to write standard commands, you should quickly sketch out a simple program in ArduBlok with a quick mouse manipulation, and debug it in the Arduino IDE .

To install ArduBlok, you first need to download and install the Arduino IDE from the official Arduino website and understand the settings when working with the Arduino UNO board. How to do this is described on the same site or on Amperk, or look at YouTube. Well, when you figured out all this, you need to download ArduBlok from the official website, here. I do not recommend downloading the latest versions, they are very difficult for beginners, but the version from 2013-07-12 is the most important, this file is the most popular there.

Then, we rename the downloaded file to ardublock-all and in the "documents" folder. Create the following folders: Arduino > tools > ArduBlockTool > tool and in the latter we throw the downloaded and renamed file. ArduBlok works for everyone operating systems, even on Linux, I personally tested it on XP, Win7, Win8, all examples are for Win7. The installation of the program is the same for all systems.

Well, if it's easier, I prepared an archive on the Mail-disk 7z, unpacking which you will find 2 folders. In one already working programm Arduino IDE, and in another folder, the contents must be sent to the documents folder.

In order to work in ArduBlok, you need to run the Arduino IDE. Then we go to the Tools tab and there we find the ArduBlok item, click on it - and here it is, our goal.

Now let's deal with the interface of the program. As you already understood, there are no settings in it, but there are plenty of icons for programming, and each of them carries a command in the Arduino IDE text format. There are even more icons in new versions, so deal with ArduBlok latest version difficult and some of the icons are not translated into Russian.

In the section "Management" we will find a variety of cycles.

In the "Ports" section, we can manage the values ​​of the ports, as well as the sound emitters, servos or ultrasonic proximity sensors connected to them.

In the "Numbers / Constants" section, we can choose digital values ​​​​or create a variable, but you are unlikely to use the one below.

In the "Operators" section, we will find all the necessary comparison and calculation operators.

The Utilities section mostly uses icons over time.

"TinkerKit Bloks" is the section for purchased TinkerKit sensors. Of course, we don’t have such a set, but this does not mean that the icons will not work for other sets, on the contrary, it is very convenient for the guys to use icons such as turning on an LED or a button. These signs are used in almost all programs. But they have a peculiarity - when they are selected, there are incorrect icons indicating ports, so they must be removed and the icon from the “numbers / constants” section should be replaced at the top in the list.

"DF Robot" - this section is used if there are sensors specified in it, they are sometimes found. And our today's example is no exception, we have "Adjustable IR Switch" and "Line Sensor". The "line sensor" is different from the one in the picture, as it is from Amperka. Their actions are identical, but the sensor from Amperka is much better, since it has a sensitivity regulator.

Seeedstudio Grove - I have never used the sensors of this section, although there are only joysticks. This section has been expanded in new versions.

And the last section is "Linker Kit". The sensors presented in it did not come across to me.

I would like to show an example of a program on a robot moving along the strip. The robot is very simple, both in assembly and in acquisition, but first things first. Let's start with its acquisition and assembly.

Here is the set of parts itself, everything was purchased on the Amperka website.

  1. AMP-B001 Motor Shield (2 channels, 2 A) 1 890 rubles
  2. AMP-B017 Troyka Shield RUB 1,690
  3. AMP-X053 Battery compartment 3×2 AA 1 60 RUB
  4. AMP-B018 Line sensor digital 2 580 RUB
  5. ROB0049 Two-wheel platform miniQ 1 1890 RUB
  6. SEN0019 Infrared obstacle sensor 1 390 RUB
  7. FIT0032 Mount for infrared obstacle sensor 1 90 RUB
  8. A000066 Arduino Uno 1 1150 RUB

To begin with, we will assemble the wheeled platform and solder the wires to the engines.

Then we will install the racks for attaching the Arduino UNO board, which were taken from the old motherboard or other similar attachments.

Then we attach the Arduino UNO board to these racks, but we can’t fasten one bolt - the connectors get in the way. You can, of course, solder them, but it's up to you.

Next, we attach the infrared obstacle sensor to its special mount. Please note that the sensitivity control is on top, this is for ease of adjustment.

Now we install digital line sensors, here we have to look for a couple of bolts and 4 nuts for them. We install two nuts between the platform itself and the line sensor, and fix the sensors with the rest.

The next install Motor Shield or in another way you can call the motor driver. In our case, pay attention to the jumper. We will not be using a separate power supply for the motors, so it is installed in this position. The lower part is sealed with electrical tape, so that there are no accidental short circuits from the USB connector of the Arduino UNO, just in case.

Install Troyka Shield on top of Motor Shield. It is necessary for the convenience of connecting sensors. All the sensors we use are digital, so the line sensors are connected to ports 8 and 9, as they are also called pins, and the infrared obstacle sensor is connected to port 12. Be sure to note that you cannot use ports 4, 5, 6, 7 as they are used by the Motor Shield to control the motors. I even specially painted over these ports with a red marker so that the students could figure it out.

If you have already noticed, I added a black sleeve, just in case, so that the battery compartment we installed does not fly out. And finally, we fix the entire structure with an ordinary rubber band.

Battery compartment connections can be of 2 types. First wire connection to Troyka Shield. It is also possible to solder the power plug and connect it to the Arduino UNO board itself.

Here is our robot ready. Before you start programming, you will need to learn how everything works, namely:
- Motors:
Port 4 and 5 are used to control one motor, and 6 and 7 the other;
We adjust the rotation speed of the motors with PWM on ports 5 and 6;
Forward or backward by signaling ports 4 and 7.
- Sensors:
We are all digital, so they give logical signals in the form of 1 or 0;
And in order to adjust them, they have special regulators and with the help of a suitable screwdriver they can be calibrated.

Details can be found at Amperka. Why here? Because there is a lot of information on working with Arduino.

Well, we, perhaps, looked at everything superficially, studied and, of course, assembled the robot. Now it needs to be programmed, here it is - the long-awaited program!

And the program converted to Arduino IDE:

Void setup() ( pinMode(8 , INPUT); pinMode(12 , INPUT); pinMode(9 , INPUT); pinMode(4 , OUTPUT); pinMode(7 , OUTPUT); pinMode(5, OUTPUT); pinMode(6 , OUTPUT); ) void loop() ( if (digitalRead(12)) ( if (digitalRead(8)) ( if (digitalRead(9)) ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite( 6, 255); digitalWrite(7 , HIGH); ) else ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite(6, 50); digitalWrite(7 , LOW); ) ) else ( if (digitalRead (9)) ( digitalWrite(4 , LOW); analogWrite(5, 50); analogWrite(6, 255); digitalWrite(7 , HIGH); ) else ( digitalWrite(4 , HIGH); analogWrite(5, 255); analogWrite(6, 255); digitalWrite(7 , HIGH); ) ) ) else ( digitalWrite(4 , HIGH); analogWrite(5, 0); analogWrite(6, 0); digitalWrite(7 , HIGH); ) )

In conclusion, I want to say that this program is just a godsend for education, even for self-study, it will help you learn the Arduino IDE commands. The most important highlight is that with more than 50 installation icons, it starts to "fail". Yes, indeed, this is a highlight, since constant programming only on ArduBlok will not teach you how to program in the Arduino IDE. The so-called "glitch" makes it possible to think and try to remember commands for precise debugging of programs.

Wish you luck.

In this tutorial, we will learn how to program Arduino in the Scratch programming language using mBlock. But first, let's take a quick look at what Arduino and Scratch are, respectively.

Arduino- a small board designed primarily for prototyping, which brings any ideas to life. Using Arduino, you can create a robot, an electronic gadget, and more. No limit! Pictured below is the board.

For example, to start engines with set intervals an Arduino board can be used, which connects to four motors (plus a control motor). You must instruct the Arduino to control the motors using a programming language where you write down the steps and upload the finished program to the board in order for the project to work.

The microcontroller has its own programming language, although this language consists of functions derived from C/C++.

However, you can use other languages ​​to program the Arduino, usually using a third party tool such as Snap4Arduino, ArduBlock, and others. One such program is mBlock, which allows you to use the Scratch visual programming language with Arduino.

In this tutorial, we'll cover the basics of using mBlock to program Arduino with Scratch.

Scratch(Scratch) is a programming language designed for kids to learn programming interactively. In Scratch, you attach labeled blocks (which serve as code snippets) to write a complete program or game.


Using Scratch, some users have developed another add-on called mBlock. The difference between mBlock and Scratch is that mBlock allows you to program your Arduino in a simple and interactive way.

The interesting thing about mBlock is that you can see source in C++ after programming Arduino.


Blinking an LED using mBlock

Let's start small using mBlock by making a program that will make the LED blink.

Check out how easy it is:

In the above program, you can see that we have placed an Arduino block and a "forever" block. These two blocks are mandatory for Arduino programming.

The essence of using an eternal block is that in the Arduino program, the logic must be such that it runs in a loop indefinitely. In our case, we need to flash the LED over and over again, so in many cases the use of a perpetual block is a must, and it makes life easier when programming the Arduino.

Inside the block forever set which digital pin will be used. This one can provide high or low pin voltage. So, if I have an LED connected to Arduino pin number 13 (see below) and I want to turn it on, I will use " set digital pin 13 output HIGH" and my LED will light up.

This program uses delays ( delays) to pause the program for one second between states ON and OFF. So we can see how the LED blinks.

Try connecting your Arduino to an LED as shown above and run the code after Arduino connections to the computer (make sure you select the right board and serial port with mBlock). To do this, you definitely need a software environment.

Then run the code. You will be able to see the LED blink.

it good tool for beginners. Try exploring other blocks and see what you can do!

This blog is dedicated to this project, and here I will talk about the news of the project, and the achievements of the members of the user community of the program. The project is dedicated to creating a visual programming environment for Arduino boards, and therefore, before talking about the FLProg program, I want to make a small overview existing programs for programming these boards.

Arduino board programming environments can be divided into the following types:

  1. Upgraded Notepads
  2. Text Development Environments
  3. Graphical environments that visualize the structure of the code.
  4. Graphical environments that display code as graphics.
  5. Visual programming environments that do not use code.
Let's look at each type.

Upgraded Notepads

This type includes the original Arduino-IDE programming environment, as well as many of its clones.

The design of the program for the controller in it takes place in the Processing/Wiring language, which is a dialect of the C language (rather C++). This environment is, in fact, a regular text editor with the ability to load written code into the controller

Text Development Environments

An alternative to the Arduino IDE is the development environment from the Atmel microcontroller manufacturer - AVRStudio.

Programming in it is done in pure C, and it already has a lot more features and is more like serious IDEs for "real" programming languages.

These two types of programs are designed for experienced programmers who know the language well and can create serious projects with them.

Graphical environments that visualize the structure of the code.

These are programs that, in fact, are a formatting extension for the usual text editor code. In it, the program is also written in C, but in a more convenient version. Now there are a lot of such environments, the most striking examples are Scratch, S4A, Ardublock. They are very good for learning to program in C, because they show the structure and syntax of the language very well. But for large serious projects, the program turns out to be cumbersome.

Graphical environments that display code as graphics

These are programs that hide code and replace it with graphic counterparts. They also repeat the structure of the language, form cycles, transitions, conditions. They are also very well suited for learning to build algorithms, with a subsequent transition to programming in classical languages. And they are also not suitable for building large projects due to the cumbersomeness of the resulting display. An example of such a program: MiniBlog, Algorithm Builder, Flowcode

The types of programs described above are designed for programmers or for those who decide to study classical programming. But for the manufacture of the final device, in addition to directly programming the controller, it usually requires the development of an external board binding, the development and calculation of the power section, input decoupling, and much more. Programmers often have problems with this. But electricians and electronics engineers do an excellent job with this. But among them there are few programmers who could write a program for the controller. The combination of a programmer and an electronics engineer is a rather rare case. As a result of this situation, real, completed projects based on Arduino boards (and other controllers) are few. To solve this problem, programs of the latter type are used.

Visual programming environments that do not use code.

These programs implement a principle that has been used by almost all manufacturers of industrial controllers for many years. It consists in creating programs for the controller in FBD or LAD languages. In fact, as such, they are not languages. Rather, they are graphical environments for drawing circuit or logic diagrams. Recall that processors were by no means always microprocessors, but were created on the basis of digital microcircuits. Therefore, those who are used to working with digital technology will enjoy working on them more than writing code in classical programming languages. Examples of such programs are the Horizont and FLProg projects. Programs of this type are well suited both for studying the construction of impulse and relay technology, and for creating serious projects.


And finally, the hero of this blog, the FLProg project.

Since I have been working as a process control system developer for many years, I tried to collect in the FLProg program everything that I liked the most in environments from leading manufacturers of industrial equipment (Tia-Portal, Zelio Soft, Logo Soft Comfort).
The program allows you to draw diagrams in two forms: functional diagrams (FBD) and relay diagrams (LAD).

FBD (Function Block Diagram) is a graphical programming language of the IEC 61131-3 standard. The program is formed from a list of circuits executed sequentially from top to bottom. When programming, sets of library blocks are used. Block (element) is a subroutine, function or functional block (AND, OR, NOT, triggers, timers, counters, processing blocks analog signal, mathematical operations, etc.). Each individual chain is an expression composed graphically of the individual elements. The next block is connected to the output of the block, forming a chain. Inside the chain, blocks are executed strictly in the order of their connection. The result of the circuit calculation is written to an internal variable or fed to the controller output.



Ladder Diagram (LD, LAD, RKS) - the language of ladder (ladder) logic. The syntax of the language is convenient for replacing logic circuits made on relay technology. The language is aimed at automation specialists working in industrial enterprises. Provides a visual interface to the logic of the controller, which facilitates not only the tasks of programming and commissioning itself, but also quick search malfunctions in the equipment connected to the controller. The ladder logic program has a visual and intuitive graphical interface for electrical engineers, presenting logical operations, such as electrical circuit with closed and open contacts. The flow or absence of current in this circuit corresponds to the result of a logical operation (true - if current flows; false - if current does not flow). The main elements of the language are contacts, which can be figuratively likened to a pair of relay or button contacts. A pair of contacts is identified with a logical variable, and the state of this pair is identified with the value of the variable. A distinction is made between normally closed and normally open contact elements, which can be compared to normally closed and normally open pushbuttons in electrical circuits.

This programming method turned out to be very convenient for easy entry into the development of automated control systems for electrical and electronic engineers. When developing device designs, they can easily link the operation of these installations to the controller's operation algorithms.

The FLProg program built on these representations works with Arduino. Why?
The board is very convenient for the rapid development and debugging of your devices, which is important not only for radio amateurs, but is very useful, for example, in school circles and college laboratories. One advantage is that you don't need a programmer. You connect the Arduino board to the computer and download the finished program from the development environment. Currently, there is a rich selection of Arduino modules, additional modules that work with Arduino, sensors and executors.

The following versions of Arduino are currently supported by the program: Arduino Diecimila, Arduino Duemilanove, Arduino Leonardo, Arduino Lilypad, Arduino Mega 2560, Arduino Micro, Arduino Mini, Arduino Nano(ATmega168), Arduino Nano (ATmega328), Arduino Pro Mini, Arduino Pro (ATmega168), Arduino Pro (ATmega328), Arduino UNO. In addition, recently appeared in the list of supported controllers Intel board Galileo gen2. In the future, this list is also expected to be replenished, and, possibly, the addition of boards based on STM controllers.

A project in the FLProg program is a set of original boards, each of which contains a complete module of the general circuit. For convenience, each board has a name and comments. Also, each board can be rolled up (to save space in the work area when work on it is finished) and deployed.

The composition of the library of elements for the FBD language at the moment.

Decor

  • Inscription
  • Image
Basic elements
  • State table
Special Blocks
triggers
Timers
Counters
Mathematics
Algebra
Comparison
UART
  • Send to UART
  • Receiving from UART
  • Sending variable to UART
  • Receiving variable from UART
Switch
Motors
  • ServoMotor
  • stepmotor
Real time clock
Displays
  • Display on HD44780 chip
  • Display backlight on HD44780 I2C chip
Strings
  • String addition
  • String comparison
  • Line length
  • Substring search
  • Getting a substring
  • Get character from string
  • Append Char to String
Arrays
  • Writing an element to an array
  • Getting an element of an array
  • Sum of array elements
  • Finding an element in an array
Sensors
SD card
  • Uploading a file from an SD card
  • Write variable to SD card
Type conversion
  • String conversion
  • -> bytes
  • -> Char
Extension ICs
  • Terminal Expander 74HC595
  • MAX7219 LED Driver
Bit Operations
  • Decoder
  • Encoder
  • Reading a bit
  • Recording a beat
Miscellaneous
  • Matrix keyboard
  • Piezo speaker
  • OneWare Bus Scan
EEPROM
  • Write to EEPROM
  • Reading from EEPROM
Communications
  • RessiveVariableFromCommunication
  • WebServerPage
  • SendVariableFromCommunication
  • WebClient
Ready-made services
  • narodmon.ru
  • goplusplatform.com

The composition of the library of elements for the LAD language at the moment.

Decor

  • Inscription
  • Image
Base blocks
  • Contact
  • Coil
  • Chatter protection
  • Leading edge detection
  • State table
Special relays
  • Bistable relay
  • Time relay
  • Generator
  • Comparison relay
Algebra
  • RANDOM
Analog Blocks
  • Scaling
  • Mathematics
  • Counter
  • analog switch
  • Many to One Switch
  • One to many switch
  • Controller analog input
  • Controller analog output
  • Analog connector input
  • Analog connector output
  • speed counter
UART
  • Send to UART
  • Receiving from UART
  • Sending variable to UART
  • Receiving variable from UART
Motors
  • Servo motor
  • stepper motor
Real time clock
  • To get data
  • Alarm
  • Time setting
Displays
  • Display on HD44780 chip
  • Display backlight control unit based on HD4480 I2C chip
  • Decoding block of the seven-segment indicator
Strings
  • String addition
  • String comparison
  • Line length
  • Substring search
  • Getting a substring
  • Get character from string
  • Append Char to String
Arrays
  • Writing an element to an array
  • Getting an element of an array
  • Sum of array elements
  • Finding an element in an array
Sensors
  • Ultrasonic Distance Meter HC-SR04
  • Temperature and humidity sensor DHT11 (DHT21, DHT22)
  • Temperature sensor DS18x2x
  • IR Resive
  • BMP-085
  • BH1750 Light Meter
SD card
  • Write variable to SD card
  • Uploading a file from an SD card
Type conversion
  • String conversion
  • Convert Float to Integer
  • -> bytes
  • -> Char
Extension ICs
  • Terminal Expander 74HC595
  • MAX7219 LED Driver
Bit Operations
  • Encoder
  • Decoder
  • Reading a bit
  • Recording a beat
Miscellaneous
  • Matrix keyboard
  • Piezo speaker
  • OneWare Bus Scan
EEPROM
  • Write to EEPROM
  • Reading from EEPROM
Communications
  • Block sending variable via communications
  • Reception of a variable via communications
  • Web server page
  • web client
Ready-made services
  • Data transfer to narodmon.ru
  • Remote control via RemoteXY

I will tell you more about the project in subsequent posts, and finally, a short video showing the principles of working in the program and the ability to control the board from an application on a smartphone.

You can help and transfer some funds for the development of the site

In recent years, programming and robotics clubs have become extremely popular and accessible even to students. elementary school. This became possible thanks to the use of graphical programming environments, which, it should be noted, are actively used by large companies. To talk about graphical programming environments, we have selected three of the most popular of them.

Visuino

Visuino is a free graphical environment that runs on Arduino-compatible Controllino industrial controllers (PLCs). It makes it possible to create complex automation systems and IoT (Internet of Things, Internet of Things) solutions, and this can be done simply by moving and connecting visual blocks. Software environment automatically generates code for industrial controllers.

So what needs to be done. Select components (modules) from the components panel and move them to the design area. Then they need to be connected and set up properties. This is done using the object inspector.

The advantages of Visuino include a large set of components for mathematical and logic functions, servos, displays, the Internet, etc.

When the PLC is programmed, the graphical environment prompts affordable way connection to the controller. It can be a serial port, Ethernet, Wi-Fi or GSM.

Finally, your project is ready: all controllers are registered, everything works. Now by clicking on the Arduino logo located on top panel, you will force Visuino to create codes for Arduino and open its development environment (Arduino IDE), through which you can already compile the code and download it to the PLC.

Advice. If set fee does not match your Arduino, you can change it with the "Select Board" command.

Scratch

This graphical programming environment was created in 2003 when a group of MIT Media Lab employees decided to develop a programming language that is accessible to absolutely everyone. As a result, after some time, Scratch was introduced to the public.

Most of all, perhaps, it looks like Lego. At least the principle is the same: it's an object-oriented environment in which programs are assembled from details, colorful and bright. These details can be moved, modified, made to interact in various ways. The basis of Scratch is blocks of commands such as sensors, variables, movement, sound, operators, appearance, pen, controls, etc. Built-in graphics editor makes it possible to draw any object. Less than five years after the creation of Scratch, the Scratch for Arduino project (abbreviated as S4A) was born, which allows you to program the Arduino PLC.

The advantages of the system include the fact that it is Russified and completely localized - anyone who wants to find a lot of data on it. In addition, work in this graphical environment is available even for elementary school students who are not yet too confident in reading.

Advice. For those new to Scratch, there is a special resource: https://scratch-ru.info .

ArduBlock

When a person has already fully mastered Scratch, but has not yet grown up to Wiring, on which Arduino-compatible boards are programmed, it's time to advise him the ArduBloсk tool written in Java. It is especially good for those who are fond of robotics.

What is the difference? The fact is that Scratch does not know how to flash the Arduino, it only controls its PLC via USB. Thus, Arduino cannot work on its own, because it depends on the computer.

In fact, ArduBloсk is an intermediate stage between the children's Scratch and the quite professional, albeit affordable Visuino, because, like the latter, it has the ability to flash Arduino-compatible controllers.

Advice. Don't forget to install Java Machine on your PC. It does not take much time.

So, more graphical environments - good and different. May the Arduino be with you.

Photo: manufacturing companies, pixabay.com

In recent years, programming and robotics circles have become extremely popular and are accessible even to elementary school students. This became possible thanks to the use of graphical programming environments, which, it should be noted, are actively used by large companies. To talk about graphical programming environments, we have selected three of the most popular of them.

Visuino is a free graphical environment that runs on Arduino-compatible Controllino industrial controllers (PLCs). It makes it possible to create complex automation systems and IoT (Internet of Things, Internet of Things) solutions, and this can be done simply by moving and connecting visual blocks. The software environment automatically generates code for industrial controllers.

So what needs to be done. Select components (modules) from the components panel and move them to the design area. Then they need to be connected and set up properties. This is done using the object inspector.

The advantages of Visuino include a large set of components for mathematical and logic functions, servos, displays, the Internet, etc.

When the PLC is programmed, the graphical environment prompts the available way to connect to the controller. It can be a serial port, Ethernet, Wi-Fi or GSM.

Finally, your project is ready: all controllers are registered, everything works. Now, by clicking on the Arduino logo located on the top panel, you will force Visuino to create codes for Arduino and open its development environment (Arduino IDE), through which you can already compile the code and download it to the PLC.

Advice. If the installed board does not match your Arduino, you can change it using the "Select Board" command.

This graphical programming environment was created in 2003 when a group of MIT Media Lab employees decided to develop a programming language that is accessible to absolutely everyone. As a result, after some time, Scratch was introduced to the public.

Most of all, perhaps, it looks like Lego. At least the principle is the same: it's an object-oriented environment in which programs are assembled from details, colorful and bright. These details can be moved, modified, made to interact in various ways. Scratch is based on blocks of commands, such as sensors, variables, movement, sound, operators, appearance, pen, control, etc. The built-in graphics editor makes it possible to draw any object. Less than five years after the creation of Scratch, the Scratch for Arduino project (abbreviated as S4A) was born, which allows you to program the Arduino PLC.

The advantages of the system include the fact that it is Russified and completely localized - anyone who wants to find a lot of data on it. In addition, work in this graphical environment is available even for elementary school students who are not yet too confident in reading.

Advice. For those new to Scratch, there is a special resource: https://scratch-ru.info.

When a person has already fully mastered Scratch, but has not yet grown up to Wiring, on which Arduino-compatible boards are programmed, it's time to advise him the ArduBloсk tool written in Java. It is especially good for those who are fond of robotics.

What is the difference? The fact is that Scratch does not know how to flash the Arduino, it only controls its PLC via USB. Thus, Arduino cannot work on its own, because it depends on the computer.

In fact, ArduBloсk is an intermediate stage between the children's Scratch and the quite professional, albeit affordable Visuino, because, like the latter, it has the ability to flash Arduino-compatible controllers.

Advice. Don't forget to install Java machine on your PC. It does not take much time.

So, more graphical environments - good and different. May the Arduino be with you.

Photo: manufacturing companies, pixabay.com Are you into programming? Yes, I'm a programmer Yes, this is a very interesting thing I'm not addicted, but my child is Yes No, I'm not interested View results Loading ... Read also: Arduino: how to turn an LCD monitor into a thermometer

Mini-PC Raspberry Pi 3 Model B + can become the center of the "smart" home