Though the SBC and application board interaction takes place in serial communication, it is observed that the data processing, command execution and actuation take place faster compared to conventional serial interfaces. This is achieved as principal and time consuming job is done by the SBC. Data access and device actuation is achieved by a set of dedicated MCUs in the application board.
Why Python for this application?
The present situation is an attempt to implement fuzzy Logic in SBC. Python is identified as a simple to learn and powerful language for embedded applications as it consumes less memory space with a vast vocabulary of commands having capability of reaching the processor I/O pins, UART lines, Ethernet port and USB. Most importantly, since Python is a scripting language, it can be programmed to operate as a front end as well. This gives a full solution on a single platform with editing at any stage and on the field without any external hardware required to port the new code.
Python has commands for ‘IF THEN’ conditions were fuzzy logic finds its way to take fast fuzzification and rapid logical decisions within. Logical loops execution is fast enough to cater complicated logics. Python has fast mathematical equation solving capabilities more concentrated on the accuracy of machine control.
Combination of Linux, Python and SBC gives a solution to develop the product fast as it sits on the SD card without any external hardware required to burn the program into it. The programs written in Python and verified on the application board can be saved into SD card. It is much simpler when compared to C language. A unique feature is identified here – running two or more applications on the same SBC. Python programs can be executed in ‘Terminate’ and ‘Stay Resident’ (TSR) operation. Two or more programs can be operated at the same time while using the SBC for general utility. C language also has TSR operation but it cannot address the microprocessor and its hardware because C programs are compiled to a target microcontroller code. Python programs on the SBC operate on the same platform, OS and on the same SBC hardware to address any nook and corner of the SBC hardware. This is one big advantage of Python on SBC to function for more number of application boards.
Automatic gearing system for four wheelers
The application is with respect to the automobile industry in view of providing the same efficiency and fuel burn but improving comfort level with respect to the strain associated with shifting gears frequently. An Automatic Gearing System is proposed with fuzzy logic implemented on Raspberry Pi as SBC.
Raspberry Pi available as a SBC is a cost effective solution used in this application. Figure 2 illustrates the scheme for Automatic Gearing System proposed for four wheelers.
The present auto gearing vehicles carry a specifically designed mechanical auto gearing gear box. The gear shifts take place linearly with a Vero drive which is a power lossy mechanism operating on centrifugal force to change the gearing. This has a big slip from the crank drive shaft and does not drive the wheels ultimately for every stroke of the piston. Thus fuel burnt is lost without putting energy on to the wheels. A manual synchromesh gear box is comparatively efficient in driving the wheels at every stroke of the piston. This article concentrates on this gear box and proposes to operate the gear shifts electromechanically. Once this is achieved, this system is interfaced with a Raspberry Pi and the application board.
Figure 2 indicates application board interfaced with ADC module having access to accelerator position, RPM of the engine, torque of the engine and the wheel speed of the vehicle. Actuator module addresses electromechanical gear levers in x axis, y axis, accelerator low to high and clutch low to high. Application board concentrates on taking the feedback from the status of operation by reading the parameters of the position of gear levers to identify the status of the gear level.
Raspberry Pi is interfaced with a keypad to have the option of selecting of manual or auto gearing mode while driving. An LCD is employed to monitor the parameters like gear level, speed, RPM and torque of the vehicle performance. Fuzzy logic calculates from the ADC read parameters like accelerator position, RPM, torque and wheel speed decides to shift the gear and put the vehicle to optimum performance. This relieves the driver from the strain associated to taking decisions related to shifting the gears.