An important question and always asked by fans of the world of robotics. Me too, before I went on the adventure.
In the beginning, as you know, robotics is a huge world, and it can be entered from different entrances. You can get into it through learning embedded micro-controllers, through a computer, through artificial intelligence (AI), through the Internet of Things (IoT) or through cloud computing.
Let’s start with the basics and the first level of learning.
microcontrollers Arduino Uno board Arduino Uno board The robot is usually controlled by a microcontroller located on the board. This panel is responsible for moving the motors. And reading from sensors. and communicate with other panels.
For a start, I advise you to start with an Arduino microcontroller (Arduino Uno or Arduino Mega) – Arduino.
To work with Arduino boards, you need to learn the following:
C / C Plus Plus (C++), but I must warn that you will deal with a very basic and simple version of the language and it will be easy to learn!
Communication protocols that you will use to send and receive data from sensors and to other panels such as monitors. Among these protocols: I2C, UART, SPI.
Using digital and analog I/O inputs and outputs to control motors (such as servo and stepper motors) through PWM and read analogue sensors. etc…
I highly recommend that you start with Arduino because you will find many useful references on the Internet that will help you solve the problems you may encounter.
Programming the robot through a computer
Now that you have control of the robot’s electronics, you may want to design a more advanced control system. And maybe you want to use some artificial intelligence. For this, you will need a high-performance computer that supports Multi-Threading.
Essentially your main program on the computer will communicate with the microcontroller, which in turn will deal with the electronics.
At this point, you can use your PC to do this
Raspberry Pi 3 . board Raspberry Pi 3 . board With this task, or you can start to get acquainted with a special and important piece of computing in the world of robotics, which is the Raspberry Pi board at an affordable price. The Raspberry Pi is a small cam computer that you can easily fit inside your robot. It contains all the basic outputs, Internet outputs, and hardware outputs, just like the Arduino.
At this point, I advise you to:
Buy a Raspberry Pi 3B board, it’s only about $40. Download an operating system like (Xubuntu for Raspberry Pi) Learn and get some knowledge in system administration like dealing with udev tools and hundreds of other things. Learn Python or C++. These are the most popular languages for robots. If you do not know any of these languages, I advise you to start with Python, as it is much easier for beginners and very powerful. Anyway these languages are just tools and the important thing is to learn algorithms and design patterns… Learn how to use some bot-specific libraries (wiringPi in C++ and Rpi.GPIO in Python) These are the basics. Now let’s focus on a bigger goal!
Learn the Android Operating System (ROS). The architecture of the Android operating system ROS The architecture of the Android operating system ROS The Robot Operating System (ROS) is an integrated software package that you can use on your computer to make communication between nodes easier. In this system, you can get some tools and algorithms that may take you years if you want to build them yourself, such as: navigation tools (2D navigation), motion planning, and 3D visualization.
Through ROS you can act as a bridge between the end user of the robot and the parts of the robotic system (hardware).
ROS is a whole topic that we will talk about later in the blog.
User software and cloud computing Well, now your robot is “smart”, it can handle complex tasks automatically, uses advanced algorithms and controls all the electronics inside. But in practical applications, someone will need to use your robot and this person does not know anything about programming!
In this case, you will have to write a program on the computer, an application on the mobile phone, or an easy-to-use website to control the robot.
Here we go back to classic software development that has no direct relationship with robotic programming but is important if you want to become a full stack robotic developer.
Here you may learn C-Sharp if you want to run a program on Windows. Or Android Studio to run a program on Android phones or JavaScript and Python or PHP to run a control site on the Internet.
In the end, and in summary The software side of bots is huge, and there are a lot of things to learn at different levels.
If you prefer lower-level applications dealing with hardware and electronics, learn Arduino and Raspberry Pi.
If you want to learn the AI side of a robot, click on ROS
And if you prefer programming web and mobile applications. Make a program that communicates with the robot and through the Internet to control several robots from a distance
Comments