Implementation of fuzzy logic to applications is finding limitations with application boards in terms of memory space, processor, power, speed and size. On top of it, the embedded software employed to code the application has its own limitations pertaining to the drivers for external access of data, parameters and status of the process. Also, in some cases, application boards are specific to the application and lose their uniqueness, thus raising the cost of the end product. A single board computer (SBC) ported with Linux as its OS and the application coded on a simple coding language or scripting language could be a cost effective front and back end solution.
In significant number of applications, there has been a want for hardware with a processor, VGA display or HDMI, USB ports, keyboard, mouse, solid state memory interface, Ethernet – all in small physical dimensions and low power consumption. It was the launch of Raspberry Pi, a credit card sized SBC running on Linux Debian, that gave way to a solution for all the needs. This board interfaces with an SD card acting as a hard disk to carry the OS and running programs. This SBC consumes, at the most, 5 Watt of power on a micro USB socket. Having several I/O pins, it caters TTL UART pins on board. Several SBCs are available today but none are equal to Raspberry Pi with respect to the features, dimensions and price. Linux OS is virus free and boots up faster. Python being a scripting language can be used to develop code for addressing external devices to access data and actuate devices. A front end HMI interface can be developed on the same platform as well.
The basic idea
SBCs can be employed to perform intelligent part of the application where it is required to address a number of devices. Discrete MCUs (microcontrollers) can be used to perform the task of activating and responding to end devices be it a semiconductor device, a module or an electromechanical element. All such discrete MCUs can be embedded on a single board and all of them are interfaced via TTL UART to the SBC. Each dedicated MCU performs their assigned tasks and reports back to the SBC. All the decisions are centrally controlled by the SBC. This system mainly comprises of Raspberry Pi, application board and python software. A number of applications can be developed in the grand scheme of things. In the automobile industry, auto gearing system for four wheelers has long awaited for a breakthrough. With SBCs, it will be a unique approach of implementing it on the existing manual gearing system to preserve the efficiency and performance in the run of the vehicle.
One major feature of Pi is that the SD card being a solid state device can sustain vibrations. It stretches its prominence in defence requirements as it caters to mobile applications sustaining to vibrations and shocks. Its size and power consumption gives a scope for battery operated applications. As application programs written in Python are stored in the SD card, it further makes editing of programs, without any external programmers and code burners into the processor, a simple job just like any other program done on any computer. This facilitates a fatigue free code development environment for an engineer. Raspberry Pi’s large SD card capacity aids to fit lengthy fuzzy conditions like ‘IF THEN’ conditions and Loops with fast access and processing.
Application board and the working explained
The network of MCUs interacting with the SBC, taking logical decisions from SBC and acting to its commands is identified as the application board here.
Figure 1 is an illustration of application board interfaced to the SBC. The application board basically consists of MCUs interacting with external devices with corresponding connectivity and signalling protocol. Each MCU is defined with a specific task and connected to the SBC through its TTL UART. SBC carrying application program running in Python takes the data from application board and processes the data with the fuzzy logical decisions. The SBC then sends the fuzzy commands to the application board. Application board primarily defuzzifies the received data and converts them to commands. Depending on the commands, corresponding actuation of the devices takes place.