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
|