Skip to content

Instantly share code, notes, and snippets.

@linuxdaemon
Created April 1, 2014 02:50
Show Gist options
  • Save linuxdaemon/9906784 to your computer and use it in GitHub Desktop.
Save linuxdaemon/9906784 to your computer and use it in GitHub Desktop.
import RPi.GPIO as GPIO
import time
import sys
GPIO.cleanup()
pins = {0: {"in": 8,"out": 10},
1: {"in": 7,"out": 11},
2: {"in": 13,"out": 15},
3: {"in": 19,"out": 21},
4: {"in": 16,"out": 18}}
def register_pins():
global inPins
global outPins
inPins = []
outPins = []
for finger in pins:
inPins.append(pins[finger]["in"])
outPins.append(pins[finger]["out"])
def setup_board():
GPIO.setmode(GPIO.BOARD)
def setup_pins():
for pin in inPins:
GPIO.setup(pin, GPIO.IN)
for pin in outPins:
GPIO.setup(pin, GPIO.OUT, initial=GPIO.LOW)
def getResistance(inPin, outPin):
startTime = time.time()
GPIO.output(outPin, GPIO.HIGH)
GPIO.wait_for_edge(inPin, GPIO.RISING)
stopTime = time.time()
return(stopTime - startTime)
def start():
setup_board()
register_pins()
setup_pins()
resistanceVals = [[],[],[],[],[]]
output = ["","","","",""]
while True:
for finger in range(5):
resistanceVals[finger].append(getResistance(pins[finger]["in"], pins[finger]["out"]))
if len(resistanceVals[finger]) > 10:
output[finger] = "Finger " + str(finger+1) + ": " + str(1000*(sum(resistanceVals[finger])/len(resistanceVals[finger]))) + " ms"
resistanceVals[finger] = []
print("Resistance Averages per Finger")
for line in output:
print(line)
if "start" in sys.argv:
start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment