From 0ddc8e6c74e7ce4c6e1614f080aeb6dc17268ee7 Mon Sep 17 00:00:00 2001 From: HerrNamenlos123 Date: Fri, 19 Mar 2021 15:09:21 +0100 Subject: [PATCH] Added support for new analog IR sensors --- compLib/IRSensor.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/compLib/IRSensor.py b/compLib/IRSensor.py index dfd8e6b..d98b6dd 100644 --- a/compLib/IRSensor.py +++ b/compLib/IRSensor.py @@ -2,6 +2,7 @@ import pigpio from compLib.ADC import ADC from compLib.LogstashLogging import Logging +import spidev TOP_LEFT_CHANNEL = 0 TOP_RIGHT_CHANNEL = 1 @@ -14,6 +15,9 @@ BOTTOM_MIDDLE_PIN = 15 BOTTOM_RIGHT_PIN = 23 adc = ADC() +spi = spidev.SpiDev() +spi.open(0, 0) +spi.max_speed_hz = 1000000 # GPIO.setmode(GPIO.BCM) @@ -89,3 +93,39 @@ class IRSensor(object): """ return states[str(BOTTOM_RIGHT_PIN)] # return GPIO.read(BOTTOM_RIGHT_PIN) + + @staticmethod + def bottom_left_analog() -> int: + """Get bottom left infrared sensor value: ranges from 0 to 1023 + + :return: 10-bit brightness value + :rtype: int + """ + channel = 2 + spi.writebytes([channel << 3, 0]) + bytes = spi.readbytes(2) + return (bytes[0] * 256 + bytes[1]) >> 2 + + @staticmethod + def bottom_middle_analog() -> int: + """Get bottom middle infrared sensor value: ranges from 0 to 1023 + + :return: 10-bit brightness value + :rtype: int + """ + channel = 1 + spi.writebytes([channel << 3, 0]) + bytes = spi.readbytes(2) + return (bytes[0] * 256 + bytes[1]) >> 2 + + @staticmethod + def bottom_right_analog() -> int: + """Get bottom right infrared sensor value: ranges from 0 to 1023 + + :return: 10-bit brightness value + :rtype: int + """ + channel = 0 + spi.writebytes([channel << 3, 0]) + bytes = spi.readbytes(2) + return (bytes[0] * 256 + bytes[1]) >> 2 \ No newline at end of file