RoadTest: PiFace Digital
Author: richvillehill
Creation date:
Evaluation Type: Independent Products
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: Programmable Logic Controls Microcontroller
What were the biggest problems encountered?:
Detailed Review:
PiFace Road test
5/29/13
David Hartle
My usage of the piface is as an industrial controls device. Industrial control devices are primarily programmable logic controllers (PLC’s), microcontrollers, and or relays and pushbuttons. Industrial PLC’s are expensive and the software proprietary and/or unavailable. Microcontrollers require supporting circuitry to build and troubleshoot before it can be used. The piface is inexpensive and ready to go to work right out of the package.
The raspberry pi is an amazingly inexpensive computer. It is a powerful tool to use in many different methods. When the pi is coupled with the piface, the system is a great tool to use as a low cost industrial controls PLC.
The piface has 4 onboard momentary push buttons that serve as inputs. It has two onboard relays to serve as outputs, and 8 LED output indicators.
Example #1
A simple control circuit used in industrial controls is a start/stop circuit. The circuit uses two momentary push buttons and a relay to turn on or off a device. The circuit can be hard wired as shown in Figure 1. Notice the first pushbutton labeled “stop” is a normally closed push button and the second pushbutton labeled “start” is a normally open pushbutton. The last device on the rung is the coil of the relay labeled “CR”. When the relay coil is energized contacts labeled “CR” (connected in parallel with “start”) close to serve as a “seal”. The seal in contacts maintain current to the coil even after the “start” pushbutton is released.
Figure 1
The order of operations for the circuit in Figure 1:
Press “start”: “CR” will turn on and “seal” in, staying even after releasing “start”
Press “stop”: “CR” will turn off and remain off even after releasing “stop”
Programming the simple start/stop control circuit requires the use of logical operators. Rungs are built using “and” “or” “not” statements in conjunction with variables that are defined to the input and output hardware available on the piface.
I used python to program the pi and control the piface with this simple control circuit method. Because all the buttons on the piface are normally open, the “stop” input has to be inverted with a “not” operator.
Here is the example code:
import piface.pfio as pfio
pfio.init()
x=pfio.digital_read(4) # 4 pushbutton halts the program
cr=0 # set variable initial value
while(not(x)): # continue until 4th pushbutton is pressed
start = pfio.digital_read(1) #button 1 is start pb
stop = pfio.digital_read(2) #button 2 is stop pb
cr = not(stop) and (start or cr) #simple start stop control with logical operators
pfio.digital_write(1,cr) # update output 1, Relay
x = pfio.digital_read(4) # 4 pushbutton halts the program
When the code is executed on the pi with the piface attached, one can press the first momentary pushbutton on the piface and the first relay should “click” on and LED output #1 will light. The output will remain on until pushbutton number 2 is pressed. Pressing pushbutton number 4 will halt the program operation.
Example #2
The next simple control circuit uses three inputs. The inputs will include 2 from the previous example, start and stop, and one more called jog. Figure 2 shows the hardwired control circuit. This circuit provides operation like example one but also provides another input called “jog” that operates the relay “out” only as long as the button is pressed. The “out” relay coil is operated when either “cr” or “jog” is activated.
Figure 2
The order of operations for the circuit in Figure 2:
Press “start”: “CR” will turn on and “seal” in, staying even after releasing “start”
“CR” will turn on “out”
Press “stop”: “CR” will turn off and remain off even after releasing “stop”
“CR” will turn off “out”
Press “Jog”: “out” will turn on, “out” turns off when “jog” is released
Here is the python code to implement example 2:
import piface.pfio as pfio
pfio.init()
x=pfio.digital_read(4) # 4 pushbutton halts the program
cr=0 # set variable initial value
out = 0 # set variable initial value
while(not(x)): # continue until 4th pushbutton is pressed
start = pfio.digital_read(1) #button 1 is start pb
stop = pfio.digital_read(2) #button 2 is stop pb
jog = pfio.digital_read(3) #button 3 is jog pb
cr = not(stop) and (start or cr) #simple start stop control with logical operators
out = jog or cr # jog input or cr
pfio.digital_write(1,out) # update output 1, Relay
x = pfio.digital_read(4) # 4 pushbutton halts the program
Conclusion:
The raspberry pi and piface are a great tool to learn how to build control logic circuits. The free software and inexpensive hardware make it very affordable for the first time experimenter. I will be using this hardware in my course work in the future.