コード例 #1
0
    #is at .3, this code will convert that number to a target dc light level of 70%.
    lightLevel = 1 - lightLevel
    lightLevel = lightLevel * 100

    #If the target light level is below 20%, this if statement scales it exponentially
    #downward to a lower level by taking the 1/4 root of the original value. This is done
    #to help make the lights dimmer indoors because the light sensor usually doesn't get
    #above 90 indoors.
    if (lightLevel < 20):
        lightLevel = lightLevel**(.25)

#If the current duty cycle is below the target light level, then the dc value is
#increased slightly, otherwise it is decreased slightly when it is measured as higher
#than the target level.
    if (((dc - lightLevel) <= -1) and dc <= 99):
        dc = dc + 1
    else:
        if (((dc - lightLevel) >= 1) and dc >= 1):
            dc = dc - 1
#This new dc value is fed into the LED switch to change its intensity. The loop runs every
#.05 seconds, so the LEDs quickly dim or brighten to the level they are supposed to be at.
    LED.ChangeDutyCycle(dc)
    time.sleep(.05)

#Everything is cleaned up and the program is ended.
LED.stop()
light.close()
GPIO.output(signal, 0)
GPIO.cleanup()
sys.exit()
コード例 #2
0
ファイル: ldrone.py プロジェクト: GMTrends/Python-Projects
#ldrone.py
from gpiozero import LightSensor
from time import sleep
ldr = LightSensor(4)
try:
    while True:
        sleep(0.2)
        print("ldr.value " + str(ldr.value))
        if ldr.value < 0.95:  # make the sensitivity different
            print("Light Blocked")
        else:
            print("Light On")
except KeyboardInterrupt:
    print("Exiting ...")
finally:
    ldr.close()
コード例 #3
0
class TestStrikeZone(unittest.TestCase):
    def setUp(self):
        self.strikeZone = StrikeZone()
        self.horizSensor1 = LightSensor(17)
        self.horizSensor2 = LightSensor(27)
        self.vertSensor1 = LightSensor(23)
        self.vertSensor2 = LightSensor(24)

    def tearDown(self):
        self.horizSensor1.close()
        self.horizSensor2.close()
        self.vertSensor1.close()
        self.vertSensor2.close()
        self.strikeZone = None

    '''Test ball hitting horiz1 and not hitting either vertical'''

    def test_horizSensor1_ball(self):
        self.strikeZone.horizDark(self.horizSensor1)
        self.assertEquals(self.strikeZone.horizDetected, 1)
        self.assertEquals(self.strikeZone.strikeCount, 0)
        self.assertEquals(self.strikeZone.ballCount, 0)

        self.strikeZone.horizLight(self.horizSensor1)
        self.assertEquals(self.strikeZone.strikeCount, 0)
        self.assertEquals(self.strikeZone.ballCount, 1)

    '''Test ball hitting vert1 and not hitting either horiz'''

    def test_vertSensor1_ball(self):
        self.strikeZone.vertDark(self.vertSensor1)
        self.assertEquals(self.strikeZone.vertDetected, 1)
        self.assertEquals(self.strikeZone.strikeCount, 0)
        self.assertEquals(self.strikeZone.ballCount, 0)

        self.strikeZone.vertLight(self.vertSensor1)
        self.assertEquals(self.strikeZone.strikeCount, 0)
        self.assertEquals(self.strikeZone.ballCount, 1)

    '''Test ball hitting horiz1 and horiz2 and not hitting either vertical'''

    def test_horizSensor1_and_horiz2_ball(self):
        self.strikeZone.horizDark(self.horizSensor1)
        self.strikeZone.horizDark(self.horizSensor2)
        self.assertEquals(self.strikeZone.horizDetected, 2)
        self.assertEquals(self.strikeZone.strikeCount, 0)
        self.assertEquals(self.strikeZone.ballCount, 0)

        self.strikeZone.horizLight(self.horizSensor1)
        self.strikeZone.horizLight(self.horizSensor2)
        self.assertEquals(self.strikeZone.strikeCount, 0)
        self.assertEquals(self.strikeZone.ballCount, 1)

    '''Test ball hitting horiz1 and vert2 for strike'''

    def test_horizSensor1_and_vert2_strike(self):
        self.strikeZone.horizDark(self.horizSensor1)
        self.strikeZone.vertDark(self.vertSensor2)
        self.assertEquals(self.strikeZone.horizDetected, 1)
        self.assertEquals(self.strikeZone.vertDetected, 1)

        self.strikeZone.horizLight(self.horizSensor1)
        self.strikeZone.vertLight(self.vertSensor2)
        self.assertEquals(self.strikeZone.strikeCount, 1)
        self.assertEquals(self.strikeZone.ballCount, 0)