Cos'è il coding e perché è importante per il futuro delle aziende

What is coding and why it is important for the future of companies

In a world where almost everything works through mechanical devices, such as computers, and where they are often used irresponsibly and passively, coding becomes an exercise in learning how to manage these tools.

 

Learning coding means learning a mental process that accustoms us to think differently, that is, by algorithms, in a pragmatic way aimed at solving problems.

What is coding: definition and contents

The term coding simply implies "computer programming". It consists in explaining to the computer what to do through the use of words and numbers (algorithms) which, ordered in the correct sequence, give it orders.

In addition to this, coding can be defined as a method of approaching the problems inherent in the construction of a final product, be it a website, an image, a game, or a video.

Learning to talk to the computer, thinking in logical terms to give it the right keys in order to get what we want from it, is the basis of coding.

In fact, it could be defined as a real language to be studied, like those currently known, which instead of helping us communicate with other human beings, teaches us to communicate with machines, be they computers or appliances, tablets or video games.

Using this method of transmission, which is increasingly necessary in a world that turns towards a future oriented towards the use of technology, will be an indispensable element for future generations.

In fact, it is not only designed to train future programmers but especially to forge, from childhood , people who are able to interact with the machines made available by science, all this to help humanity and themselves.

This is very useful, beyond the ability to train oneself to dictate commands through universal codes, to the education of thought in dealing with the problems that life reserves for each of us. Learning to use a programmatic language means learning to rationalize any problem and to face it in a lucid and decisive way.

Computational thinking: we reason by algorithms

By computational thinking we mean the teaching of a reasoning methodology suitable for solving problems through the acquisition of specific tools. Considered increasingly necessary as a learning criterion to be included in schools to prepare children for a constantly evolving society, it is nothing more than the education of the mind to plan a strategy through phased reasoning.

It could be compared to the approach you have in a video game, where to close the path you have to overcome increasing levels of difficulty. The logic education to be followed, therefore, dismantles the problem that is being faced into small segments, which, once united, give the overall result.

Computational thinking, therefore, represents a concept, a logical but also creative way of thinking. By giving orders to the instrument, a mental path is created, which the computer cannot but accept as a mere executor of given rules.

Where to learn coding: ease of access

It is not difficult to understand that like all aspects of life, in order to acquire the tools necessary for one's own learning, it is necessary to learn how to proceed. This applies both to traditional subjects taught in school and, of course, to coding as an opportunity to access the universe of programming and consequently to a universal language.

Increasingly observed and studied for the purpose of its inclusion in schools, from early childhood to secondary school but only in some large cities in our country such as Milan, Turin, Cosenza and Rome, coding is proposed by associations , institutional bodies, but especially through the internet.

The goal is to teach, through the creation of a game, a story, a site, to prepare the mind for programming, using a process that involves a succession of blocks to overcome.

It is easy to find guidance for those who carry out these courses on the web, as it is equally to be advised on the type of teaching that one needs, whether it is a young person, a teacher who wants to introduce programming and computational thinking within his own class, or a simple private individual.

Adhering to this methodology is very easy. The web, in fact, allows us to get in touch with all those channels in which coding courses are provided, through lessons given by specialists in the sector.

How to learn coding: learning opportunities

There are a whole host of possibilities to learn programming in a simple way. The most used resources are those that are provided to us free of charge, as we said, by websites that allow us to approach this science,according to our age.

Easy to use, educational robotics, is a method that allows children, teenagers and adults to learn through the use of robots and coding,to  use platforms that facilitate knowledge in a simple and fun way.

Furthermore, educational robotics allows you to improve your learning through the use of logic and rationalization of thinking (computational thinking), also favoring the possibility of creating a robot from scratch, a goal that can also be found in coding.

Do not forget the apps on tablets or mobile phones, which are also suitable tools for learning programming starting from scratch thanks to a digital animator.

How code.org works: a simple method

The code.org site allows all those who wish to learn programming, children, teachers or individuals, the possibility of accessing this world even if they do not have knowledge of the subject.

Presented in an extremely usable way, through instructions, informative videos, it will indicate the best path to take in order to get to plan what you intend to achieve.

"The Hour of the Code" is the basic method that you will face when accessing the site. Through this system, it will be possible to have, in just an hourt, the possibility to get in touch with the first rudiments of computational thinking and also to take advantage of technological lessons by choosing the setting you want most, whether you are talking about captivating scenic reconstructions, such as Star Words, Frozen or others.

Code.org will also allow, if a teacher wants to start their class studying programming, to create a virtual classroom within the platform, in which enrolled students can be monitored. For older children, there is the opportunity to create applications using block programming.

The latter, giving the opportunity to create games, interactive stories, animations and even a robot, uses a method that allows you to create everything mentioned above, without the need to write any code. To move blocks or graphic elements it will be sufficient to give a command to each of them. In this way, we will proceed to the development of a machine assembly process aimed at creating the project.

Conclusions: why it is important for companies

Keeping up with the times for a company like ours, that deals with machine vision, is essential for growth and stability on the market. A Code.org survey found that the search for programmers who, in addition to knowing traditional systems, know how to approach new techniques, will increase exponentially in the years to come.

The use of robots, a concept that responded to imagination until a few years ago, is now a reality. The use of these machines in numerous sectors of human knowledge, from medicine to industry 4.0, from the home to scientific research, will facilitate and support the life of men who will be increasingly concentrated in the study and realization of new goals to be achieved in the knowledge field.

 

 

 

 

 

Processi industriali

Artificial vision in industrial processes

When it comes to automation in the context of industrial production processes, it is absolutely impossible to ignore a digression regarding the so-called machine vision systems.

 

In fact, over time, they have become essential, representing the only solution being able to optimize productivity and significantly reduce all kinds of production costs. All this while guaranteeing the highest quality.

With regard to machine vision, it should be noted that it is also applied to the quality control of each product. Scanners, digital cameras, sensors, image processors, thermal cameras: these are just some of the instruments that use machine vision. For example, let's think about the use of CNC machines and the contribution of machine vision to improve them to meet the needs of Industry 4.0.

The demand for so-called conformity certifications is increasing and therefore, it has proved necessary to look for alternatives capable of meeting this need without having any kind of negative impact from an economic point of view.

industria 4.0

Automation of industrial processes and vision systems

The first and most important aspect to take into account when referring to the automation of industrial processes and so-called vision systems concerns the fact that this type of technology operates in synergy with many other disciplines such as optics but also electronics and lighting.

Each vision system used to automate industrial processes must lay its foundations on software that has the task of processing all kinds of images and transforming what is stored into data. Obviously, all this does not see the end user as the protagonist in any way, who has to start the process and receive the result.

Among other things, it is useful to point out that there are some systems that have the ability to self-configure according to specific production processes. This appears, without any doubt, as a considerable added value.

 

The different application solutions: dedicated systems and commercial systems

Regarding the application solutions, it is good to keep in mind that there are two main alternatives. The first alternative is very complex from a purely technical point of view and is the so-called dedicated one.

In the second case, however, we are dealing with a much simpler and more commercial solution that has the task of carrying out a solely and exclusively two-dimensional analysis of a particular object.

As it is easy to guess, this second alternative is less demanding both from a technical point of view and from a purely economic aspect.

 

Solutions adopted: sensors and digital cameras

In this context, it is useful to make a quick reference to the fact that the industrial vision in recent years has been exploited a lot in various industrial sectors including, for example, manufacturing.

Through a correct visual inspection, you have the opportunity to quickly identify any kind of product defect and to intervene to resolve any critical issues.

The solutions adopted are many and among these there are digital cameras, traditional cameras, image processors, optical cameras and infrared thermal cameras.

 

All these solutions are part of other much more complex systems and have the task of providing all the information through which perform a particular task. Among other things, it is also useful to point out that there is also the possibility of opting for so-called machine systems to be used in synergy with the latest generation of computers.

robotica

Experience and objectives: the lighting system and the optics

As previously clarified, thanks to machine vision, it is possible to follow a very punctual inspection method. Basically, a vision system, when and if configured in the correct way, is able to minimize or even eliminate any type of defect.

In this regard, more information is available on our page on the system for the judgment of product defects and for the characterization of defects entirely made and supported by Vision Device.

With regard to this problem, it is necessary to make a brief but interesting reflection in reference to the overall costs. Those who decide to invest in these systems have the opportunity to return in a short time. Everything is mainly related to the chosen lighting systems and those necessary for image acquisition and processing.

Some cameras, for example, to be able to quickly reach the objectives set, resort to so-called structured-lighting systems.

 

Application areas

Vision systems are of crucial importance in any kind of industrial production. Just think, for example, of the manufacturing sector and much more generally, of all those areas in which it is essential to minimize the risk of errors of various kinds. Thanks to the vision systems in question, not only do you have the opportunity to save but also to make production faster and above all, offering your customers high quality standards with an almost non-existent margin of error. In terms of vision systems used in industrial processes, there are many innovations and it is safe to bet that there will be further innovations in the next period. By guaranteeing the highest quality with minimum effort, it is clear that visual systems are a sector in which it is essential to continue investing, especially if we take into account the fact that certifications represent a significant strength in every kind of market.

Therefore, every industry will no longer be able to operate without vision systems since, thanks to them, they will have the possibility to put on the market products without defects.

A final consideration must be made regarding the cost of such instruments. While it is true that opting for solutions of this type entails the need to incur expenses, it is equally true that, already in the short term, it is possible to return this economic commitment, by minimizing if not eliminating the risk of error.

Through the visual systems, therefore, it is possible to create an added value of which the end user has the opportunity to benefit and, indirectly, also the manufacturing industry which will benefit not a little in both exclusively economic terms and in regard to the quality of products put on the market.

Visione cenni storici

Theories of vision: historical notes

To better understand the meaning and, above all, the complexity of machine vision, we believe it is appropriate to take a step back and analyze what can be defined as the theories of vision. In fact, what has led, over the centuries, to the development of today's vision systems has deep historical roots that deserve to be analyzed in order to have an overall picture of the matter.

 

The eye and consequently the vision have been the subject of very contrasting interpretations since ancient times and throughout history.

Plato, who was a firm believer in an "active action of the eye", wrote that light emanated from the eye itself, identifying and enveloping objects with its rays. Theophrastus, who had been a disciple of Aristotle, was of the same opinion and wrote that the eye had "the fire inside", moving away from the ideas of his master, who instead thought it was the eye that received the rays.

The emissionist theory

Around 300 BC, Euclid wrote "Optica", which reported the results of his studies on the properties of light. He hypothesized that it traveled in a straight line, described the laws of reflection, studied them mathematically and argued that visual rays are emitted by the eye to capture the objects that are being observed.

Ptolemy and Galen further explored the refraction of light and also supported the emissionist theory according to which objects are seen by the rays of light that emerge from the eyes. Galen's great medical authority allowed his theory to exert considerable influence in Europe for much of the following thousand years. Proponents of the emissionist theory bore two pieces of evidence to support their belief:

  • The habit of greeting Greek soldiers, who put their hands in front of their eyes, stemmed from the need to protect themselves from the powerful light emanating from the eyes of their commanders;
  • The light from the eyes of some animals, such as cats, which allows them to see in the dark.

The eye was also a topic of particular interest for medieval Islamic medicine and philosophy, which were obviously influenced by the treatises written by Galen. Numerous specialist treatises on ophthalmology appeared between the ninth and fourteenth centuries, and leading scholars, such as Al-Kindi and Hunain Ibn Ishaq, favored the theory of vision loss.

However, both scholars began to pay particular attention to the anatomy of the eye and to investigate the role of important parts such as the retina and the crystalline lens.

Criticisms to the emissionist theory

Avicenna, a famous Persian philosopher and scientist, offered a systematic critique of the Galenic theory of the eye and while keeping faith with the results of Galen's anatomical studies of hollow nerves and crystalline lenses, at some point he began to express some perplexities about the emissionist theory, gradually approaching the concept of the intrusion of light into the eyes.

At the beginning of the 10th century, the great clinician of Baghdad, Al-Razi (Rhazes), noticed the contraction and dilation of the pupil, a century later, Al-Haythan (Alhazen) noted in his "Book of Optics" that the eye was hurt by a strong light and both scholars began to think that it was the light that hit the eye and not vice versa. Islamic literature was translated from Arabic into Latin in the period between the eleventh and thirteenth centuries, as a result medieval European doctors had much to discuss and investigate.

Renaissance anatomists studied the anatomy of the eye extensively and Leonardo da Vinci, for example, substantially transformed his theory of vision, having first supported the emissionist theory but then approached the intromissionist theory.

The intromissionist theory

The theory of intromission was already proposed by Democritus, who lived in Greece between the 4th and 3rd centuries BC, then by Lucretius (1st century BC), to be finally concretized by the Arab scholar Alhazen, who lived around the year one thousand.  The intromissionist theory suggests that vision is the result of various types of substances traveling into the eye, with nothing coming out of it. In the Renaissance, technological advances made important new contributions that allowed the progressive affirmation of the intromissionist theory.

For example, the development of linear perspective in painting, the better understanding of the anatomy of the eye, the recognition of the real shape of the lens, the study and realization of the darkroom and finally the study of spectacle lenses played an important role. All these advances provided the essential ingredients for Kepler's theory of retinal images, published in 1604.

It is at this point that proponents of emissionist theory pose the question of why we don't see everything reversed and upside down if the eye behaves like a darkroom and this inability to explain perception has haunted science ever since. Proponents of the theory of interference began to argue that all images, real and virtual, somehow end up being realized inside the

visione

Combination of emissionist and intromissionist theory

In his study of the intellectual development of children, Piaget (1896-1980) found that the majority of children between the ages of 10 and 11 think that sight involves an influence that moves outward from the eyes. Eighty percent of children between the ages of 8 and 9 agree that vision involves the movement, whether inward or outward, of rays, energy or something else indefinable.

In the same age group, 75% said they could perceive the gaze of others and 38% said they could perceive the gaze of animals. All of this carries a significant correlation between adult people's belief in the ability to perceive gazes and their belief that something goes out of their eyes when people look at them.

The belief in the ability to perceive the gaze of others increases with age, with 92% of older children and adults being convinced that they feel observed, even if they do not see the person who is watching them. The belief in the ability to perceive gazes, of high level among children and adults, appears to increase with age.

The computational approach

The vision has baffled scientists and philosophers for centuries and continues to do so. According to scholars of computational theory, man must consider himself an information processor, for which knowledge and understanding, in a broad sense, are a complex series of processes that lead to the construction of various representations of reality. The visual processes that lead to the complete realization of vision are also very complicated.

David Marr, an English psychologist, identifies, for the total realization of the visual process, the completion, by man, of processes based in succession on three levels, called computational, algorithmic and implementation. It also demonstrated that even a low-level computational process, such as visual perception, is actually very complex.

Vision is therefore a cognitive system, organized into subsystems, defined as a black box that receives input (input), a pair of retinal images and produces output (output), a description of the objects contained in that image; the subsystems in this case could be color perception, size detection, surface type recognition and so on.

Vision theories: conclusions

In light of the results of most recent research, the process related to vision would be quite complex. If the thesis linked to the computational approach is accepted, in order to completely solve the process linked to vision, it is also necessary to accept the algorithmic and implementation approaches.

Understanding the theory at the algorithmic level is the psychologist's task, while, at the implementation level, it is a question of correlating the descriptions and representations resulting from the previous levels with the available data relating to the biology of the brain and to the functioning of neurophysiological mechanisms.

For a complete understanding of the visual process, therefore, a coordinated and collaborative action of philosophy, psychology, information technology and neuroscience would be necessary.

Programmare Arduino

How to program Arduino: hardware and software

We have already talked about Arduino, introducing the main features to understand what it is and how it works. Now we want to describe how Arduino can be programmed by analyzing what is necessary on both the hardware and software sides.

 

We quickly recall that Arduino is actually a family of cards but for simplicity we are talking today about the most widespread board of the family, the Arduino UNO.

What is Arduino UNO

Arduino UNO is, trivially, a board with digital or analog communication ports (the so-called pins) to which sensors, but also small LEDs or mini displays can be connected.

The reasons for its diffusion in the field of basic electronics are mainly due to the low cost of the board, about 25 euros, in combination with a vast support for compatible accessories and online forums and guides that allow you to carry out many step-by-step projects.

How can Arduino be useful

The use of the Arduino board is currently mainly linked to the field of robotics. In fact, there are numerous projects and online tutorials that allow the construction of mini robots. The sale of third-party kits containing everything needed for the development and construction of various types of robots is also noteworthy.

Considering the widespread development of this card, it is possible that in the future it can also be used in the field of machine vision as well as in the educational field and for professional reasons.

Arduino UNO

What you need to get started with Arduino

Now let's see in detail how to start programming with Arduino and what we need, both in the software and hardware fields. In order to program it, first of all, on the hardware side, you need a PC, and of course the Arduino UNO board and a type B male - type A male USB cable, which will be used to physically connect the board to the computer. This cable is usually sold together with the card being purchased but if it is broken or lost it can be easily found online or in the best electronics stores.

For the software, instead, it is possible to simply download Arduino IDE from the official website or, if you have a Microsoft computer, from the store of the latest operating systems. The program, in addition to having the programming environment ready, contains a list of examples that cover every field of application, at least for the initial exercises.

How to program Arduino

First, open the program and immediately you will find yourself in front of the programming screen. It is important, if you have never programmed before, to go to Tools and select the board with which you want to run your first programs.

Arduino Tools Board

Once this is done, you are ready to go! Now you can connect your new Arduino board and install all the related drivers necessary for the correct recognition! Now try to load the first example sketch, which can be downloaded from the File -> Examples-> Basics -> 3. Blink, in order to analyze the whole structure.

Arduino examples

The setup () and loop () functions

There are two main functions in every Arduino program: the setup () function and the loop () function. The first is essentially used to initialize variables, to set the necessary ports for the program and to include the various libraries that will be used. This function is performed only and exclusively once the board has been reset or when it is switched on for the first time.

The second, instead, contains the whole body of the program that is executed in loop (hence the name of the function).

Taking the Blink software as an example, the simplest one that simply 'blinks' (i.e. cyclically turns on and off) a LED, you can see how the loop () function contains two calls: the first digital/write is used to set the logical value of the led to high in order to turn it on, while the second digatal/write sets it to low, turning it off.

Each statement is terminated by a semicolon. Since LED 13 is digital, it only needs two voltage values ​​to switch on and off.

Compiling and uploading

At this point you can compile the program by clicking on the Sketch menu -> Verify / Compile and then press the Load button to write the program on the board. Now trying to run it, you will notice that everything is done correctly!

In case you notice that the switching on and off of the LED are too close to each other, you can add the delay () function among the instructions, which simply makes you wait for the execution of the next instruction. The unit of measure of the instruction is the millisecond, so writing for example (1000)delay, the program will be paused for 1 second at each execution.

Trivial but not so obvious observation: remember to insert the delay even after the last function call, otherwise at each loop there will be no delay between the instructions!

Good work with Arduino!

Obviously you are only at the beginning of this journey with Arduino, and this is only the first, simple, program you can run. I recommend that you also look at the other examples contained in the IDE to better understand the structure and use of functions in the Arduino programming language ... and to experiment as much as possible, which is the real basis of electronics!

Useful links

Here are some useful links to learn more about the topic:

The Arduino website;

Built-in examples, directly from the Arduino website (in English).

Conclusions

To conclude, you just have to start looking around and buy the first sensors to connect to your Arduino board, try to expand its features, test the sketches in the examples and start trying to write your own. Good fun!