Source code for DesignSpark.Pmod.KYPD

"""
Interface for Pmod_KYPD
"""

import RPi.GPIO as GPIO

CAP = 'GPIO'
PHY = '2x6'

ROWNUM = 4; # 4 lines
COLNUM = 4; # 4 columms

# Declaration of the key of the keypad
DefaultKeyMap=[['1','2','3','A'],['4','5','6','B'],['7','8','9','C'],['0','F','E','D']]
keyMap=[['0','0','0','0'],['0','0','0','0'],['0','0','0','0'],['0','0','0','0']]


[docs]class PmodKYPD: def __init__(self,DSPmod12): # Assignement of pin for the keypad self.port = DSPmod12 self.rowPins=[0,0,0,0] self.colPins=[0,0,0,0] self.colPins[0] = self.port.pin4 self.colPins[1] = self.port.pin3 self.colPins[2] = self.port.pin2 self.colPins[3] = self.port.pin1 self.rowPins[0] = self.port.pin10 self.rowPins[1] = self.port.pin9 self.rowPins[2] = self.port.pin8 self.rowPins[3] = self.port.pin7 GPIO.setmode(GPIO.BCM) # for i in range(COLNUM): GPIO.setup(self.colPins[i],GPIO.OUT) # for i in range(ROWNUM): GPIO.setup(self.rowPins[i],GPIO.IN) # self.setKeyMapDefault() # Default key map
[docs] def cleanup(self): GPIO.cleanup()
[docs] def setKeyMapDefault(self): for i in range(COLNUM): for j in range(ROWNUM): keyMap[i][j] = DefaultKeyMap[i][j]
[docs] def setKeyMap(self,UsrKeyMap): # Set User KeyMap for i in range(COLNUM): for j in range(ROWNUM): keyMap[i][j] = UsrKeyMap[i][j]
[docs] def getKey(self): # initialize col to be high for i in range(COLNUM): GPIO.output(self.colPins[i], GPIO.HIGH) for i in range(COLNUM): # start to scan colPins[i] GPIO.output(self.colPins[i],GPIO.LOW) for j in range(ROWNUM): # row[j] # print(i,j) if(GPIO.input(self.rowPins[j])== 0): return keyMap[j][i] # stop scanning colPins[i] GPIO.output(self.colPins[i],GPIO.HIGH)
[docs] def getColRow(self): # initialize col to be high for i in range(COLNUM): GPIO.output(self.colPins[i], GPIO.HIGH) for i in range(COLNUM): # start to scan colPins[i] GPIO.output(self.colPins[i],GPIO.LOW) for j in range(ROWNUM): # row[j] if GPIO.input(self.rowPins[j])== 0: return j<<2|i # stop scanning colPins[i] GPIO.output(self.colPins[i],GPIO.HIGH)
[docs] def getKeyMap(self): return keyMap