Setting up the software
In this project, we're going to show a trick to exchange data between two processes in a very simple manner. At the beginning of the chapter, it was mentioned that the ADCs must be sampled at 100Hz, but we don't need to be so fast to render a simple interface on the external LCD. In fact, a reasonable updating frequency for the user interface can be 1Hz (once per second.) So, to keep the code simple, we implement our device by using two different processes running at different frequencies that exchange data with each other instead of using a single process.
Simply speaking, if we realize a program called adc
that reads the data from the ADCs at 100Hz and then prints its output on the stdout
stream (standard output) at 1Hz, we can redirect such output to another program called lcd.sh
that reads the data from its stdin
stream (standard input) at 1Hz and then draws the user interface accordingly.
The data flow is unidirectional. Program adc
reads data from the ADC and...