26 lines
		
	
	
		
			652 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			652 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import RPi.GPIO as GPIO
 | |
| 
 | |
| from ...robot.sensor import Sensor
 | |
| 
 | |
| 
 | |
| class ContactSensor(Sensor):
 | |
|     """ Gives access to a micro switch sensor. """
 | |
|     registers = Sensor.registers + ['contact']
 | |
| 
 | |
|     def __init__(self, name, gpio_data, gpio_vcc=None):
 | |
|         Sensor.__init__(self, name)
 | |
| 
 | |
|         self._pin = gpio_data
 | |
|         GPIO.setmode(GPIO.BCM)
 | |
|         GPIO.setwarnings(False)
 | |
|         GPIO.setup(self._pin, GPIO.IN)
 | |
| 
 | |
|         if gpio_vcc is not None:
 | |
|             self._vcc = gpio_vcc
 | |
|             GPIO.setup(self._vcc, GPIO.OUT)
 | |
|             GPIO.output(self._vcc, GPIO.HIGH)
 | |
| 
 | |
|     @property
 | |
|     def contact(self):
 | |
|         return GPIO.input(self._pin) != 0
 |