Today's computer control systems enable remote control of a wide range of devices. We have many types of such systems and many of them are very sophisticated. These systems can be divided into very different categories depending on the aspects we are interested in. There are plenty of these aspects. For example, these systems may differ in architecture, may use different communication methods (wired or wireless connections), may have different data exchange protocols, may or may not be autonomous, etc.
Now I want to draw attention to only one general aspect - how computerized control systems and operators of these devices communicate with each other. It is worth remembering that not all control systems are monitored by operators. Today we have installations in which only devices communicate with each other and systems operate autonomously. However, we will start with basic projects in which the system is managed by a human. In the professional literature, such implementation would be called a human-machine or human-computer communication interface.
Imagine we have a robot manipulator, a so-called robotic arm. This arm is controlled by a computer system connected to it via an appropriate controller.
The controller can be connected to the computer system via cable, wireless or fiber optic line. The computer system does not have to be a desktop computer, it can be of some other type.
The most important question for us now is where can be the operator?
The oldest and classic solution is that the operator uses an application implemented in the same computer that controls the device.
Nowadays, many computer control systems are more sophisticated. The control computer is connected to a computer network (especially to the Internet).
The operator can be located anywhere in the world and remotely control the robot from there. Of course, the operator also uses a computer to connect to the robot's control system.
Such solutions are standard in the Internet of Things (IoT) or Smart Home projects, etc. Very different devices are controlled in this way - it is estimated that there are billions of them.
However it should be noted that regardless of the version of the control system architecture, we always have a computer directly controlling the device.
I presented in great simplification what the architecture of computer control systems can be. This is needed if we want to understand how such systems work, build them ourselves or develop appropriate software for them.
As you can see, to develop such a system we need skilled team of perosons such as:
However, you don't have to be a professional, you just need to be a hobbyist or enthusiast and like to do something yourself. You can also be a beginner in this field if you want to learn something new. It is with such people in mind that I create these websites.
Developing software for computer control systems includes issues such as: web applications, data formats sent over computer networks, Internet databases, creating applications with intuitive graphical user interfaces (GUI), low-level applications for controlling devices via computer ports, etc.
Basically, I will not post here descriptions of projects from the DIY (Do It Yourself) series titled "How to construct device X". I want to focus on computer control methods and software for this purpose. However, how to write such applications without having devices to test this software? Of course, you can buy such devices, but not everyone wants to spend their money on it and waste time installing these devices.
For those who like to focus solely on programming, I have created several virtual devices that can be controlled via the Internet.
Generally, I will not include here descriptions of how to construct computer-controlled devices or their drivers. In other sections of my website, you will find some information about electronics and hardware, but I mainly focus on issues from the IT industry.
However, I wrote a few words about controllers below.
In another section on these websites you will find some information about electronics and hardware, and in this one I focus mainly on IT issues. PCs or other computers with appropriate ports can be used to control the devices (e.g. USB). Professionals often develop their own computer controllers to control their devices. However, they, like hobbyists and amateurs, often use ready-made single-board computers. These boards are equipped with microprocessors, memory, input/output devices connected to ports. There is everything you need to control a large range of various devices. What is very important is that there is very rich software for these drivers and it is free. It is therefore not surprising that these platforms are eagerly used in education. I will list here some very popular solutions of this type. I recommend that you familiarize yourself with them and maybe you will choose something for yourself.
Controllers - single-board computer systems:
I will refer to some of these platforms in other sections of my site.