Network of IcT Robo Clubs “NITRO Clubs EU”

Nayden Chivarov
Institute of Information and Communication Technologies at Bulgarian Academy of Sciences – Sofia, Bulgaria

Abstract: The paper is dedicated to ERASMUS + project ”NITRO Clubs EU”. The project envisions to create the Network of IcT Robo Clubs by using multifunctional mobile robot platforms for each participant. In this paper is presented the application of Educational Mobile Robot for Line Following. Research and development of Mechanical System, Electronical and Control System of the Robot and Line Following Algorithm are described.


The most wanted professions today did not exist ten years ago. In another ten years, robots will do 65% of the work we do today. The EU Industrial Policy Strategy defines robotics as an integral part of the Key Enabling Technologies (KETs) with the most important share in the growth of the European industries. Therefore, greater attention must be focused on how robots can be better integrated into the lives of young people and their education. Robots have great potential in being utilized as an educational technology. They can be used as a powerful edutainment platform – combining the traditional and innovative didactic methods and the educational content in mathematics, physics, computers, electronics, mechanical engineering, and even artificial intelligence,
with the experience of gamified learning. The project NITRO Clubs EU builds a Network of IcT Robo Clubs, but more importantly, the project will provide the infrastructure, the know-how and the tools for its sustainable development and further expansion beyond the project limits. The main objective of the project team is to contribute to the enhancement of the open, innovative education on KETs in the partnering countries and the region. Additionally, it aims to foster social inclusion and to provide learning opportunities to VET students from schools with insufficient availability of equipment, thus providing equal access to the educational content for all students. The project envisions to create the Network of IcT Robo Clubs by using multifunctional mobile robot platforms for each participant. The key concept of multifunctional mobile robot platform will be its easy re-configurability in order to achieve a vast range
of goals and perform different service tasks by configuring the design of the system to ever growing demands of robot adaptively to changing environment by introducing elements of AI (artificial intelligence). At the same time user interaction with the robot must stay as simple and intuitive as possible, while its reconfiguration must remain economically adequate. The basic configuration of each Mobile Robot Platform (MRP) consists of Robot body, wheels, actuators, control system, sensors, battery and battery holder, which require following features:

Size – The physical size and weight of the system should be practical with regard to the intended mobile robot platform;
Simplicity – The system should be cost effective and modular to allow for easy maintenance and evolutionary upgrades, not hardware-specific;
Power consumption – The power requirements should be minimal in keeping with the limited resources onboard a mobile robot;
Accuracy–must be in keeping with the needs of the given task.
Real-time operation – The control system of the MRP must provide rapid, real-time data at a rate commensurate with the platform’s speed of advance /and take into account the velocity of other approaching vehicles/;
Concise, easy to interpret data – The output format should be realistic from the standpoint of processing requirements; too much data can be as meaningless as not enough; some degree of pre-processing and analysis is required to provide output only when action is required.
Redundancy– The system should provide graceful degradation and not become incapacitated due to the loss of a sensing element; a multimodal capability would be desirable to ensure detection of all targets, as well as to increase the confidence level of the output.

Having those requirements in mind, educational robots will be designed for variety of applications. Different modules will be chosen depending on tasks that must be performed and goals to be achieved. In this paper is presented research and development of Educational Mobile Robot for Line Following. 


Whole design of our mobile robot for line following (mechanical, electrical and software) will be based on modules [1]. Achieving balance on our MRP is very common. We must keep the center of mass between the wheels and as low as possible. This means that we have to place the heavy components like DC motors and battery, in the center of the robot and as low as possible. Our four wheeled Mobile Robot Platform consist of two unpowered wheels used for keeping Robot in balance by providing a point of contact with the ground, two powered wheels used to move the robot forwards or backwards driven by DC gear-motors, Robot body produced from plate iron and plastic mandrel, microprocessor controller, Additional Sensors, Radio module, 7.2 V battery and battery holder Fig 1

Technical specifications of our Mobile Robot Platform are presented in Table 1.


Arduino platform is increasingly used for control and programming of robots of different types. It is used for control engines of robots and control various sensors and implementation of communication between the controller and the computer [2].

Electronic system of our mobile robot consists of Arduino controller (fig. 2) and Arduino motor shield driver (fig. 3), these two modules can be combined with many other electronic modules for example: Wi-Fi or Bluetooth modules, ultrasonic and infrared sensors, servo, DC or stepper motors and more. For line following we use sensors for line following directly connected to the main controller.

– Arduino Uno controller: The Uno is a microcontroller board based on the ATmega328P. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analogue inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header and a reset button. The Uno can be programmed with the Arduino Software (IDE) [3]. The open-source Arduino Software (IDE) makes it easy to write code and upload it to the board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing and other open-source software. This software can be used with any Arduino board. Because of that flexibility and application of the Arduino platform it is very suitable for educational purposes. 

Figure 2. Arduino controller

The Arduino Integrated Development Environment – or Arduino Software (IDE) – contains a text editor for writing code, a message area, a text console, a toolbar with buttons for common functions and a series of menus. It connects to the Arduino and Genuino hardware to upload programs and communicate with them.

– Arduino Adafruit Motor Shield: The shield contains two L293D motor drivers and one 74HC595 shift register (fig.3). The shift register expands 3 pins of the Arduino to 8 pins to control the direction for the motor drivers. The output enable of the L293D is directly connected to PWM outputs of the Arduino. 4 HBridges: L293D chipset provides 0.6A per bridge (1.2A peak) with thermal shutdown protection, 4.5V to 25V

Figure 3: Arduino motor shield

The Motor Shield is able to drive 2 servo motors, and has 8 half-bridge outputs for 2 stepper motors or 4 full Hbridge motor outputs or 8 half-bridge drivers, or a combination [4].

For controlling our two DC motors we are using AF_Motor library, specially created for the motor shield. This library includes methods and object for direct control of the motors. The AF DC Motor class provides speed and direction control for up to four DC motors when used with the Adafruit Motor Shield.

• port num – selects which channel (1-4) of the motor controller the motor will be connected to;
• freq – selects the PWM frequency. If no frequency is specified, 1KHz is used by default.

Method “setSpeed (speed)” – sets the speed of the motor.
• speed- Valid values for ‘speed’ are between 0 and 255 with 0 being off and 255 as full throttle.

Method “run(cmd)” – sets the run mode of the motor.
• cmd – the desired run mode for the motor

Valid values for cmd are:
• FORWARD – run forward (actual direction of rotation will depend on motor wiring);
• BACKWARD – run backwards (rotation will be in the opposite direction from FORWARD);
• RELEASE – Stop the motor. This removes power from the motor and is equivalent to setSpeed(0). The motor shield does not implement dynamic breaking, so the motor may take some time to spin down [5].

– Line following sensors: The QRD1114 reflective sensor Fig. 4 consist of an infrared emitting diode and an NPN silicon phototransistor mounted side by side in a black plastic housing. The on-axis radiation of the emitter and the onaxis response of the detector are both perpendicular to the face of the QRD1114. The phototransistor responds to radiation emitted from the diode only when a reflective object or surface is in the field of view of the detector [6 .

We use three reflective object sensors to follow the line. They are placed on the front side of the robot shown in figure 5. The distance between each sensor is 12mm, because the width of the line is 20mm. They are near to the ground to give us more accurate measurements.

Data from the sensors is from the analog input of the Arduino. Measured values are:
– For white surface: under 100mV
– For black surface: over 100mV
When the surface is white, we will use logical “0” and for black logical “1”.


To develop algorithm for line following we have to explain the logic that will be used. The middle sensor will detect that the line is in the center of the robot and the moving is forward. When other of the sensors detect line then the robot will have to turn in same direction to follow the line: if right sensor detects line left motor increase its speed and right motor decrease its speed so the robot turns right. It is the same when left sensor detects line (fig. 6). In case that there is no line the robot will turn around and looking for a line. If all of the sensors detect line, means that robot is out of the line board, then the robot will stop and we will have to place it on the right place.

The algorithm that we developed is based on that logic. In the algorithm (fig. 7) are included all possible situations that may happened during the line following. In the beginning of the program the controller reads the data from the sensors. In the diamonds of the scheme are shown the values.

First value is for the left sensor, second for the center sensor and third for the right sensor. Logical “1” represents true i.e. there is line and logical “0” is false – no line. For every measurement the algorithm is executed and starts from the beginning. The Arduino controller is working on this way, it loops the algorithm all the time. We added two different turning radiuses according to the turns.

If center and left sensors give “1” the turning radius is lower and if only left sensor is “1”, turning radius is high. These methods are used to prevent understeering. Used speeds of the motors are different for each case. For moving forward, the speed for both motors is 13. For left and right turns one speed is 35 and the other is 35 in the opposite direction- in this way the robot turns on place and continue until the centered sensor detects line. For slightly turning speeds are lower: 25 in forward and 15 in backward. These speeds should be fast enough for the robot to follow the line. It is expected that the robot will follow the line smoothly and do not deviate from it.

Tests were carried on the runway with black line an white background. Such a runway is used in competitions with robots. The robot (fig. 8) successfully follows the line. Sensors detect turns and the robot is not missing the line. When the surface is white and there is no line, it starts to turn around and searching for one. And if the three sensors detect line the robot stops.


We successfully developed a robot for line following that performs the given tasks. The robot is able to be improved and upgraded or to be reconstructed to perform other tasks by adding various modules. This makes it a good and multifunctional robot for edutainment. This type of robots is widely used in education by giving the student chance to acquire knowledge on electronics and mechanics to practice programming and algorithms. These robots have a great potential and we will continue with their development.

This research was carried out as part of the project № 2020-1-BG01-KA202-079200,”Network of IcT Robo Clubs” ERASMUS +, Key action 2, Vocational education and training, 2020, coordinator Nayden Chivarov, financed by the EC.

[1] Educational Mobile Robot Platform for Line Following, 6th International Scientific Conference”, N. Chivarov, D Chikurtev, I Rangelov, A. Gigov and N. Shivarov, Educational Mobile Robot Platform for Line Following, 6th International Scientific Conference” Education, Science, Innovations”, June 10-11, 2016, Pernik, Bulgaria, pp. 290 – 298, ISSN 1314-5711.

[2] Denis Chikurtev, Nayden Chivarov, et al. Application of Arduino platform for control a mobile mini-robot with DC-motors, ADP 2013, 01-03 June, Sozopol, Bulgaria; p. 79-84, ISSN 1314-4634


Translate »