Статья опубликована в рамках: Научного журнала «Студенческий» № 13(183)
Рубрика журнала: Технические науки
Секция: Электротехника
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4
ANALYSIS, DESIGN AND IMPLEMENTATION OF THE ARDUINO MOBILE WHEEL ROBOT PLATFORM
ABSTRACT
The article considers an algorithm for developing a prototype of mobile wheeled robot capable of moving on a horizontal surface, which can be an experimental platform for future testing of "intelligent" functions on it to choose the optimal route to achieve the research goal along this route.
Keywords: microcontroller, mobile robot, Arduino, software device, robotics, sensor, C++ language.
Modern high-tech time is determined by the development of scientific and technological progress, which is undoubtedly characterized by the large-scale introduction of computer technology and automation tools, which operate largely on the basis of microprocessor technology. At the same time, one should agree with the opinion widespread in the scientific community that “The spread of computers and microprocessor technology makes it possible, in principle, to introduce an instrumental component into any human activity, and especially where one has to deal with both information processing and automation of various types. activity” [1].
Nowadays, there are many examples of automation of spheres of human activity. The use of robots in modern production can serve as a clear confirmation of this. Therefore, it is quite reasonably considered that today robotics is the most important technical basis for the development of production and is an applied science that develops automated technical systems and programming for this process [2].
Taking into account the importance of automation processes and the design tasks set before us, work was carried out to develop a prototype of a mobile wheeled robot that demonstrates the ability to move on a flat surface, which will be an experimental platform in the future for working out some of the "intelligence" functions on it.
We assume that the developed mobile robot can become an experimental platform for testing on it such "intellectual" functions as:
- orientation in space and determination of one's own location.
- setting the goal that the robot must achieve;
- Search for the best way to achieve the goal;
- the movement to a given goal along the constructed route.
When developing the project, we initially did not assume the implementation of the "intelligent" functions themselves. We were faced with the task of creating only a certain platform for their further development. Therefore, the prototype software had to be focused on the easy addition of “intelligent” functions to it, based on mathematical algorithms, without a fundamental change in the structure and principles of the software. It was also necessary that the hardware design of the robot be easily assembled and easily modified. In particular, it had to be possible to quickly add new parts, devices, and sensors. Such a requirement would make it possible to easily and quickly make changes to the design of the robot, increasing its capabilities and increasing functionality.
The robot must be controlled by a programmable microcontroller. The microcontroller must control all input and output devices of the robot. The algorithms of the robot operation in all modes must be implemented using a special control program loaded into the microcontroller that controls all the functions of the robot. Microcontroller programming must be done in a high-level programming language. The robot control program must be flexible, multifunctional, easily changeable, and understandable.
The robot must be equipped with sensors to detect obstacles along its path in order to avoid collision with these obstacles. Sensors should allow detecting obstacles in the direction of movement and in a certain field of view around the robot, for which a mechanism for turning the sensors should be provided. When an obstacle is detected, the control program should allow to scan the space in a given sensor and choose the freest direction to go around the obstacle.
The robot must work in the following modes:
- Demo mode - standalone demonstration of motion capabilities. The mode is intended for a visual demonstration of the robot's functions.
- Controlled mode - execution of operator commands. In this mode, switching between modes is initiated by the operator.
In any of the modes, the robot will have to be able to:
- Determine the actual speed of each wheel, measure the distance traveled and measure the actual angle of rotation (odometry).
- Carry out automatic adjustment of the speed of rotation of the wheels when driving straight ahead.
- Detect obstacles along the way.
- Scan spaces in front of you in the range of 0-180 degrees.
The above requirements for the developed robot required the developer to make a reasonable choice of means for implementing both the hardware and software parts of the robot. Therefore, proceeding from this, we initially decided on the essential parts of the tasks of choosing the means of implementation, which are reflected in Fig. 1.
Figure 1. Components of the task of choosing means of implementation
The requirement to programmatically configure the functions and algorithms of the robot's operation led us to the need to use a programmable microcontroller, which should be responsible for the entire operation of the robot. We chose the ArduinoUNOR3 controller based on the ATMega 328 controller as such a controller. The controller allows you to load software written in the high-level C ++ language in a special Arduino development environment (IDE). According to scientists: “The use of the C++ language allows you to write a flexible and multifunctional control program, and the use of C++ language classes allows you to organize software development at a high level” [3].
The robot must move with the help of electric traction - this is one of the requirements formulated above. Therefore, it is necessary to choose a model of electric motor for the robot. This is not difficult to do, since robotic kits sell assembled geared motors adapted to the platform we have chosen. The DC micromotor is installed in a plastic housing, which contains a reduction gear made of plastic gears and increases the force on the shaft of the mechanism. A wheel with a rubber tire is mounted on the shaft of the motor reducer. The shaft exits from both sides of the gearbox housing as shown in Fig.2.
Figure 2. Gear motor assembly
Two such motors with wheels are installed on the platform. A third wheel will be installed at the back of the platform, rotating in all directions for balance.
The requirement to adjust the speed of the robot (more precisely, the speed of rotation of the wheels) is reduced to the need to adjust the supply voltage on the motors, including ensuring the sufficiency of this voltage.
The requirement for the autonomy of power leads to the need to place a power source on the platform for all components and parts. As such a source, it is advisable to use finger batteries or accumulators, which require a battery compartment to accommodate. It is possible that the power calculation will show the need for a separate power supply for the movement and control circuits and therefore the need for multiple battery compartments.
The "eyes" of the robot will be an ultrasonic distance measurement sensor. The use of this sensor will fulfill the requirement of determining the distance to an obstacle and avoiding a collision with it when moving. The HC-SR04 module was chosen as such a sensor (Fig. 3).
Figure 3. HC-SR04 Ultrasonic Sensor Module
In order to scan the space in a certain sector, it is advisable to place the ultrasonic sensor on a rotating platform located in front of the robot's hardware platform. When an obstacle is detected, the robot will be able to scan the space in front of itself in the range of 0-180 degrees and choose the best direction to bypass this obstacle. The TowerPro SG90 servo drive was chosen as the platform rotation motor, and as the platform that it rotates and on which the ultrasonic distance sensor is mounted, a typical servo mount was chosen, which is described in earlier works [4].
The requirement to determine the actual speed of rotation of the wheels, on the basis of which the distance traveled and the actual angle by which the turn is made, leads to the need to use the so-called encoders - wheel speed sensors, or in other words optical interrupters. The motors that move the robot can be of different power and rotate at different speeds. Even if you achieve the supply of exactly the same voltage to the motors, due to the difference in the friction force of the surfaces on which the wheels may be, they can actually rotate at different speeds. Encoders are used to determine the actual speed of the wheels.
Their device is quite simple. On one side, the encoder contains an infrared LED that constantly emits invisible infrared radiation into the slot. On the other side of the slot is a phototransistor. IR radiation hits it, and it opens - that is, conducts an electric current through itself. If something opaque is introduced into the slot, then the phototransistor closes, and no current flows through it. Its scheme is shown in Fig. 4
Figure 4. Scheme of operation of the optical interrupter
The source of interruptions for encoders are special slotted discs that are mounted on the gear motor shaft on the opposite side of the wheel (Figure 5).
Figure 5. Discs with slots for encoders
Thus, each time the slot of the slot (or, vice versa, the obstacle) of the disc hits the IR beam of the encoder, it is interrupted. This event can be recorded in the control program, and knowing the number of such operations per unit time, the wheel rotation speed can be calculated. Mounting discs on the gearbox shaft is shown in Fig. 6
Figure 6. Attaching a slotted disk to the gearbox shaft
The robot must respond to the operator's commands. These can be both switching commands between operating modes and control commands in a controlled mode. Therefore, it is necessary to provide for the possibility of giving these commands (from the side of the operator) and receiving and processing these commands (from the side of the robot). Communication between the robot and the operator will be carried out using an infrared control panel (operator) and an infrared receiver (robot). As an IR receiver, you can choose any IR receiver, even the cheapest one, such as the VS1838B infrared photodiode.
It is advisable to equip the robot with several such receivers, oriented to receive signals from different directions, in order to confidently receive commands from the operator at any orientation and position of the robot.
As an IR remote control, you can use the remote control from any household appliance. It will be necessary to enter the codes of the control panel buttons into the control program and determine which button is responsible for which action.
The robot must visually display the operating mode in which it is located. For this, it is advisable to use LEDs. Two LEDs, with their on-off states, will allow you to encode the display of four states, and the blinking of the LEDs will allow you to additionally visualize the sub models of the robot. The LEDs can be set to flash at different frequencies, which will allow an even more detailed display of the sub-mode of operation.
Thus, the means of implementing this project are determined, which can be seen in the following diagram (Fig. 7)
Figure 7. Choice of means of implementation
Next, consider a control program that will be written in C ++ in the Arduino development environment (IDE) [5]. A custom C++ class (library) will be written that implements the basic capabilities of the robot, which will be the basis of the control program. For the operation of auxiliary devices (sensors, servos, etc.), both standard libraries of the Arduino environment (IDE) described by foreign authors [6] and libraries of third-party developers will be used. The emphasis in the work will be on programming. A class structure should be implemented, which in the future will make it easy to adapt this platform for the implementation of the "intelligent" functions of the robot.
During the project, the Arduino hardware and software platform, and the features of its work, were studied in detail. Special attention is paid to programming techniques both for this platform and in general. A constructive platform for assembling the robot has been chosen. Further, the main parts and assemblies were selected, allowing for the implementation of the specified functions. All parts and assemblies on the platform have been connected. Connection schemes have been developed. Particular attention was paid to the development of robot operation algorithms and their software implementation. The robot's work program is built on the principles of multitasking. Parallel processes are organized using hardware and software interrupts.
In general, based on the tasks that the developed prototype should perform, hardware and software tools for developing the prototype were selected. The program development is based on the principles of object-oriented programming. The program has developed a class system that implements the functions of the robot. The Arduino platform was chosen as the basis of the developed prototype, as the most suitable for the purposes of the project.
On the one hand, the robot platform turned out to be sufficient for the further implementation of “intelligent” functions on it. At the same time, due to its openness, it allows you to easily modify it if necessary.
The result of the work is a working prototype of the robot, which can later be used to develop and implement "intelligent" functions on it. The developed prototype of a wheeled robot fully satisfies the task, performs all the functions formulated for it at the beginning of development, and is a workable platform for debugging "intelligent" functions on it.
References:
- Golodov E.A., Grotskaya I.V., Lyashenko O.P. The use of microprocessor technology in technology lessons / Educational robotics in the scientific and technical creativity of schoolchildren and students: experience, problems, prospects: Proceedings of the IV All-Russian scientific and practical conference with international participation. - Armavir: RIO ASPU, 2019. - 216 p. [Electronic resource] - URL: http://agpu.net/roboteh/2019/sbornikkonf25.09.19.pdf
- Makarov I. M., Topcheev Yu. I. Robotics: History and prospects. - M.: Nauka, 2003. - 349 p.
- Massimo B. Arduino for beginner wizards / B. Massimo - M .: VSD, 2012. - 128 p.
- Vukobratovich M. Walking robots and anthropomorphic mechanisms. -M.: Mir, 1976.- 541 p.
- Bjorn Stroustrup. Programming language C++=TheC++ Programming Language / Per. from English. - 3rd ed. - St. Petersburg: Nevsky dialect - Binom, 1999. - 991 p.
- McRoberts M. Beginnings of Arduino. - London: CUP, 2010. - 459s. [Electronic resource] - URL: https://radiohata.ru/arduino/4321-osnovy-arduino.html
Оставить комментарий