コード例 #1
0
class Laser(object):
    """
    Class that uses PWM to control the laser.
    """
    def __init__(self) -> None:
        """
        Initialization
        """
        if gpio_found:
            self.laser = PWMLED(GPIO_PIN)
        self._current_power = 0
        self.power = 100

    def state(self) -> bool:
        """
        Query the laser state
        """
        if gpio_found:
            return self.laser.is_lit
        else:
            return False

    def on(self) -> None:
        """
        Turn the laser on.
        """
        if gpio_found:
            self.laser.on()

    def off(self) -> None:
        """
        Turn the laser on.
        """
        if gpio_found:
            self.laser.off()

    @property
    def power(self) -> int:
        """
        Query the laser power %
        """
        return int(self._current_power * 100)

    @power.setter
    def power(self, percent_power: int) -> None:
        """
        Set the power as a percentage. Raises a value error is the power
        is outside the expected range of 0-100%
        """
        if percent_power > 100:
            raise ValueError("Laser Power cannot be greater than 100%")
        if percent_power < 0:
            raise ValueError("Laser Power cannot be less than 0%")
        self._current_power = percent_power / 100
        if gpio_found:
            self.laser.value = self._current_power
コード例 #2
0
def main():
    fan = PWMLED(18)
    while True:
        vcgm = Vcgencmd()
        temp = vcgm.measure_temp()
        if temp >= 40:
            fan.on()
        elif temp <= 35:
            fan.off()
        time.sleep(1)
コード例 #3
0
def main():
    """ Main loop """

    args = get_args()
    params = load_params(args)
    test = False

    if args.version:
        print(u'Version : {}'.format(__version__))
        sys.exit(0)

    if args.infos:
        print_infos(params)
        sys.exit(0)

    if args.verbose:
        print_infos(params)

    count = 1
    if args.test:
        count = args.test
        test = True

    # exit(0)

    factory = RPiGPIOFactory()
    fan = PWMLED(params['gpio_pin'], pin_factory=factory)
    fan.on()
    fan_on = False
    fan.value = 0
    temp_seuil = (params['temp_max'] + params['temp_min']) / 2

    while count > 0:
        if test:
            count += -1
        temp = get_temp()
        if not fan_on and temp > temp_seuil:
            fan_on = True
        if temp < params['temp_min']:
            fan_on = False
            fan.value = 0
        if fan_on:
            voltage = get_voltage(params)
            fan.value = voltage
        if test:
            print(u'temp: {} voltage: {}'.format(temp, fan.value), flush=True)
        time.sleep(params['sleep_interval'])
コード例 #4
0
class LED(object):
    def __init__(self,pin_gpio, name="GPIO"):
        self.GPIO = PWMLED(pin_gpio)
        self.name = name if name != "GPIO" else "GPIO " + str(pin_gpio)
        self.set_blink = False

    def on(self):
        self.GPIO.on()
    
    def set_value(self,pwm_value):
        self.GPIO.value = pwm_value
    
    def off(self):
        self.GPIO.off()
    
    def blink(self,time_blink,inter_blink):
        alarma_n = ceil(time_blink/(2 * inter_blink))
        for k in range(alarma_n):
            if not self.set_blink:
                break
            self.GPIO.on()
            sleep(inter_blink)
            self.GPIO.off()
            sleep(inter_blink)
    
    def on_time(self,time_on):
        self.GPIO.on()
        sleep(time_on)
        self.GPIO.off()
コード例 #5
0
from datetime import datetime
from time import sleep
from gpiozero import PWMLED
star = PWMLED(2)
#store christmas day in the current year in the c_day variable
c_day=datetime(datetime.now().year,12,25)

#subrotuine to advoid copy pasting code
def get_time():
    #get the current time down to the microsecond
    today = datetime.now()
    #find the difference between c_day and the time in the today variable
    rd = c_day-today
    #converts rd as a number of seconds to a string to so we can get only everything before the decimal point
    #then converts that to an integer and divides that integer by 500,000
    time=int(str(rd.total_seconds()).split(".")[0])/500000
    return time

while True:
    #turns the star on
    star.on()
    #waits for the amount of seconds returned by get_time
    sleep(get_time())
    #turns the star off
    star.off()
    #waits for the amount of seconds returned by get_time
    sleep(get_time())
コード例 #6
0
            green_led.pulse()
        else:
            logger.info("Meeting room free at the moment!")
            red_led.off()
            green_led.on()

if __name__=="__main__":
    try:
        logger.info("Starting up the experiment...")

        # setup pins
        blue_led = PWMLED(22)   # used as a status indicator
        red_led = PWMLED(17)    # used as "reserved" indicator
        green_led = PWMLED(4)   # used as "free" indicator

        blue_led.on()

        red_led.pulse()
        green_led.pulse()

        button = Button(27)
        button.when_released = handle_button_release
        button.when_pressed = None
        button.hold_time = 3
        button.when_held = handle_button_hold

        # check initial reservation status
        poll_availability()

        # schedule the status check to be run every minute
        schedule.every(1).minutes.do(poll_availability)
コード例 #7
0
ファイル: gpio_write.py プロジェクト: hANSIc99/Pythonic
class Element(Function):
    def __init__(self, id, config, inputData, return_queue, cmd_queue):
        super().__init__(id, config, inputData, return_queue, cmd_queue)

    def execute(self):

        #####################################
        #                                   #
        #     REFERENCE IMPLEMENTATION      #
        #                                   #
        #####################################
        specificConfig = self.config.get('SpecificConfig')

        if not specificConfig:
            self.return_queue.put(
                Record(None,
                       message='Trigger: {:04d}'.format(
                           self.config['Identifier'])))
            return

        gpioName = None
        mainMode = None
        subModeLED = None
        subModePWMLED = None
        gpioWorker = None
        cmd = None

        self.gpio = None
        self.initFlag = False

        for attrs in specificConfig:
            if attrs['Name'] == 'GPIO':
                gpioName = attrs['Data']
            if attrs['Name'] == 'MainMode':
                mainMode = attrs['Data']
            elif attrs['Name'] == 'SubModeLED':
                subModeLED = attrs['Data']
            elif attrs['Name'] == 'SubModePWMLED':
                subModePWMLED = attrs['Data']

        if mainMode == 'LED':

            self.gpio = LED(gpioName, initial_value=False)

            if subModeLED == 'Toggle on input':

                gpioWorker = self.ledWorkerToggle
                self.gpio.toggle()
                self.logLEDstate()

            elif subModeLED == 'Control on Input':

                gpioWorker = self.ledWorkerCtrl
                # set initial state
                if self.inputData is not None:
                    if self.inputData:
                        self.gpio.on()
                    else:
                        self.gpio.off()

                    self.logLEDstate()

            elif subModeLED == 'Blink':

                def a(cmd=None):
                    pass

                gpioWorker = a  # assign an empty function
                self.gpio.blink()
                self.return_queue.put(
                    Record(
                        None, 'Start LED Blink Mode on GPIO{}'.format(
                            self.gpio.pin.number)))

        elif mainMode == 'PWMLED':

            self.gpio = PWMLED(gpioName, initial_value=False)

            if subModePWMLED == 'Control on Input':

                gpioWorker = self.pwmLedWorkerCtrl

                if self.inputData is not None:
                    self.gpio.value = self.inputData
                    self.return_queue.put(
                        Record(
                            None, 'PWMLED: Set brightness on GPIO{} to {:.2f}'.
                            format(self.gpio.pin.number, self.inputData)))

            elif subModePWMLED == 'Pulse':

                def a(cmd=None):
                    pass

                gpioWorker = a  # assign an empty function
                self.gpio.pulse()
                self.return_queue.put(
                    Record(
                        None, 'Start PWMLED Pulse Mode on GPIO{}'.format(
                            self.gpio.pin.number)))

        #####################################
        #                                   #
        #     Start of the infinite loop    #
        #                                   #
        #####################################

        while (True):

            # Example code: Do something

            try:
                # Block for 1 second and wait for incoming commands
                cmd = None
                cmd = self.cmd_queue.get(block=True, timeout=1)
            except queue.Empty:
                pass

            if isinstance(cmd, ProcCMD):
                if cmd.bStop:
                    # Stop command received, exit
                    self.return_queue.put(
                        Record(None,
                               'GPIO{} closed'.format(self.gpio.pin.number)))
                    self.gpio.close()
                    return

            gpioWorker(cmd)

    def logLEDstate(self):
        self.return_queue.put(
            Record(
                None,
                'Switch LED on GPIO{} to {}'.format(self.gpio.pin.number,
                                                    self.gpio.is_active)))

    def ledWorkerToggle(self, cmd=None):

        if cmd is None:
            return

        self.gpio.toggle()
        self.logLEDstate()

    def ledWorkerCtrl(self, cmd=None):

        if cmd is None:
            return

        if cmd.data:
            self.gpio.on()
        else:
            self.gpio.off()

        self.logLEDstate()

    def pwmLedWorkerCtrl(self, cmd=None):

        if cmd is None:
            return
        try:
            self.gpio.value = cmd.data
        except Exception:
            self.gpio.close()
            raise
        self.return_queue.put(
            Record(
                None, 'PWMLED: Set brightness on GPIO{} to {:.2f}'.format(
                    self.gpio.pin.number, cmd.data)))
コード例 #8
0
class LED(object):
    def __init__(self, pin_gpio, name="GPIO"):
        """
        Constructor del objeto LED

        Args:
            pin_gpio (int): pin GPIO donde va a estar conectado el dispositivo.
            name (str, optional): Nombre con el que se mostrará el dispositivo en los diferentes servicios implementados. Defaults to "GPIO".
        """
        self.GPIO = PWMLED(pin_gpio)
        self.name = name if name != "GPIO" else "GPIO " + str(pin_gpio)
        self.set_blink = False
        self.sensors = []

    def on(self):
        self.GPIO.on()

    def set_value(self, pwm_value):
        self.GPIO.value = pwm_value

    def off(self):
        self.GPIO.off()

    def blink(self, time_blink, inter_blink):
        alarma_n = ceil(time_blink / (2 * inter_blink))
        for k in range(alarma_n):
            if not self.set_blink:
                break
            self.GPIO.on()
            sleep(inter_blink)
            self.GPIO.off()
            sleep(inter_blink)

    def on_time(self, time_on):
        """
        Se queda prendido un cierto tiempo determinado por time on

        Args:
            time_on (float): Tiempo que estara prendido el LED.
        """
        self.GPIO.on()
        sleep(time_on)
        self.GPIO.off()

    def set_light_sensor(self, sensor):
        """
        Establece el dispositivo para sensar.

        Args:
            sensor (LightSensor): Sensor con el que se trabajara
        """
        global light_sensor_enable
        self.light_sensor = sensor
        light_sensor_enable = False
        self.sensors.append(sensor)

    def use_light_sensor_exp(self,
                             use_pwm=False,
                             on_range=(0.5, 1),
                             debug=False):
        """
        Utiliza el sensor de forma indeterminada con los valores que se le hayan asignado.

        Args:
            use_pwm (bool, optional): Si se requiere que el valor del LED dependa completamente del sensor de luz. Defaults to False.
            on_range (tuple, optional): Rango en el que estara encendido el LED. Defaults to (0.5,1).
        """
        global light_sensor_enable
        light_sensor_enable = True
        Thread(target=use_sensor,
               args=(self.GPIO, self, self.light_sensor, use_pwm,
                     on_range)).start()
        return

    def turn_off_sensor(self):
        global light_sensor_enable
        light_sensor_enable = False
        return

    def turn_on_sensor(self):
        global light_sensor_enable
        light_sensor_enable = True
        self.use_light_sensor_exp()
        return

    def use_light_sensor(self, use_pwm=False, on_range=(0.5, 1), debug=False):
        """
        Utiliza el sensor de forma indeterminada con los valores que se le hayan asignado.

        Args:
            use_pwm (bool, optional): Si se requiere que el valor del LED dependa completamente del sensor de luz. Defaults to False.
            on_range (tuple, optional): Rango en el que estara encendido el LED. Defaults to (0.5,1).
        """
        self.light_sensor_enable = True
        while self.light_sensor_enable:
            if debug:
                print(self.light_sensor.value)
            if not use_pwm:
                if on_range[
                        0] <= self.light_sensor.value and self.light_sensor.value <= on_range[
                            1]:
                    self.on()
                else:
                    self.off()
            else:
                self.GPIO.source = self.light_sensor
コード例 #9
0
class HD44780:
	
	  

	def __init__(self, pin_rs=7, pin_e=8, pins_db=[25, 24, 23, 18]):
		self.pin_rs=pin_rs
		self.pin_e=pin_e
		self.pins_db=pins_db
		self.contrast = PWMLED(15,frequency=25)
		self.contrast.on()
		self.contrast.value=.55
		self.Contrastbutton = Button(14)
		self.Contrastbutton.when_pressed = self.ContrastPressed
		
		self.brightness = PWMLED(20,frequency=60)
		self.brightness.on()
		self.brightness.value=.95
		self.Brightnessbutton = Button(21)	
		self.Brightnessbutton.when_pressed = self.BrightnessPressed

		GPIO.setmode(GPIO.BCM)
		GPIO.setup(self.pin_e, GPIO.OUT)
		GPIO.setup(self.pin_rs, GPIO.OUT)
		for pin in self.pins_db:
			GPIO.setup(pin, GPIO.OUT)
		self.clear()
		
        
	def ContrastPressed(self):
		nCurrentContrastValue = self.contrast.values.next() + .1
		self.contrast.value = nCurrentContrastValue if nCurrentContrastValue < 1 else .05
		self.clear()
		self.message("Contrast: " + str(self.contrast.values.next()))
		
	def BrightnessPressed(self):
		nCurrentBrightnessValue = self.brightness.values.next() + .1
		self.brightness.value = nCurrentBrightnessValue if nCurrentBrightnessValue < 1.01 else .10
		self.clear()
		self.message("Brightness: " + str(self.brightness.values.next()))	

	def clear(self):
		""" Blank / Reset LCD """

		self.cmd(0x33) # $33 8-bit mode
		self.cmd(0x32) # $32 8-bit mode
		self.cmd(0x28) # $28 8-bit mode
		self.cmd(0x0C) # $0C 8-bit mode
		self.cmd(0x06) # $06 8-bit mode
		self.cmd(0x01) # $01 8-bit mode

	def cmd(self, bits, char_mode=False):
		""" Send command to LCD """

		sleep(0.001)
		bits=bin(bits)[2:].zfill(8)

		GPIO.output(self.pin_rs, char_mode)

		for pin in self.pins_db:
			GPIO.output(pin, False)

		for i in range(4):
			if bits[i] == "1":
				GPIO.output(self.pins_db[::-1][i], True)

		GPIO.output(self.pin_e, True)
		GPIO.output(self.pin_e, False)

		for pin in self.pins_db:
			GPIO.output(pin, False)

		for i in range(4,8):
			if bits[i] == "1":
				GPIO.output(self.pins_db[::-1][i-4], True)


		GPIO.output(self.pin_e, True)
		GPIO.output(self.pin_e, False)

	def message(self, text):
		""" Send string to LCD. Newline wraps to second line"""

		for char in text:
			if char == '\n':
				self.cmd(0xC0) # next line
			else:
				self.cmd(ord(char),True)
"""
from gpiozero import Button, PWMLED

button = Button(17)
red = PWMLED(pin=18, active_high=True, initial_value=1, frequency=100)
green = PWMLED(pin=27, active_high=True, initial_value=0, frequency=100)


def stop():
    """
    Releases resources and exits.
    """
    print("\nStopping program.")
    button.close()
    red.close()
    green.close()
    exit()


if __name__ == '__main__':
    print("Press Crtl-C to stop the program.")
    try:
        while True:
            if button.is_pressed:
                red.off()
                green.on()
            else:
                red.on()
    except KeyboardInterrupt:
        stop()
コード例 #11
0
        setVolume(1.0)  #Set the volume a little more louder for shutdown sound
    pygame.mixer.music.play()


def setVolume(volumeLevel):
    pygame.mixer.music.set_volume(volumeLevel)


########Setup up our GPIO Pins
GPIO.setmode(GPIO.BCM)
GPIO.setup(ledGPIO, GPIO.OUT)
btn = Button(buttonGPIO, hold_time=holdTime)

#########This happens at Startup
pygame.init()
playSoundFile(startupSound)
while (pygame.mixer.music.get_busy()
       ):  #Wait till our song finishes, then shutdown
    GPIO.output(ledGPIO, True)
    continue
whiteLED = PWMLED(ledGPIO)
whiteLED.on()
btn.when_held = when_held
btn.when_pressed = when_pressed
btn.when_released = when_released

pause()  #This is much better than using an infinite loop
#and constantly checking if buttons were pressed;
#it doesn't drain too much CPU, so that's good.
#########
コード例 #12
0
    ecodes.KEY_0,
)

evdev_device = 0
try:
    evdev_device = int(sys.argv[1])
except IndexError:
    pass
except ValueError:
    pass


print("Almost there, pulse the eyes to let the user know")
eyes = PWMLED(21)
eyes.blink(0.5, 0.25, 0.25, 0.25, 3, False)
eyes.on()

print("Initialised, now handling events")
try:
    # Only run the motors at 50% initially
    power = 0.5
 
    # Process the (lirc-spawned) events
    device = InputDevice("/dev/input/event" + str(evdev_device))
    for event in device.read_loop():
        if event.type == ecodes.EV_KEY:
            if event.value == 1: # key down
                if event.code in robot_movement:
                    robot_movement[event.code](power)
                elif event.code in robot_power:
                    power = (event.code - 1) / 10
コード例 #13
0
ファイル: main.py プロジェクト: lochbika/recording_box
         rec_stream.stop_recording()
         rec_stream.close()
         reclist = get_recordingsList(basepath + '/recordings/')
         MainMenu.replaceLevelItemList('0.', reclist[0])
         record_led.off()
         standard_screen()
 while len(play) > 0:
     item = play.popleft()
     if item == 0 and menu and MainMenu.CurrentItem.startswith('0.') and not playing:
         selectedrecording = int(MainMenu.CurrentItem.split('.')[MainMenu.CurrentLevel])
         custom_chars.load_progress()
         player = AudioIO.Player(channels=output_channels, rate=output_rate, device=output_device)
         player_stream = player.open(reclist[1][selectedrecording])
         player_stream.start_playing()
         play_screen = dsphlp.display_screen(lcd)
         play_led.on()
         playing = True
     elif playing:
         player_stream.toggle()
         play_led.toggle()
 while len(loop) > 0:
     item = loop.popleft()
     if item == 0 and menu and not playing:
         if MainMenu.CurrentLevel == 0:
             standard_screen()
             idle = True
             menu = False
         else:
             MainMenu.levelAscent()
             dsphlp.dspwrite(lcd, MainMenu.AllItems[MainMenu.CurrentItem])
     elif item == 0 and idle and not shutdown_bit:
コード例 #14
0
ファイル: test.py プロジェクト: Jennypies/radioraspberry
prev_led = PWMLED(22)

while True:
    # update staus LEDs
    if b"paused" in subprocess.check_output(["mpc", "status"]):
        toggle_led.pulse(fade_in_time=0.5,
                         fade_out_time=0.5,
                         n=None,
                         background=True)
        next_led.pulse(fade_in_time=0.5,
                       fade_out_time=0.5,
                       n=None,
                       background=True)
        prev_led.pulse(fade_in_time=0.5,
                       fade_out_time=0.5,
                       n=None,
                       background=True)
    else:
        toggle_led.pulse(fade_in_time=0.5,
                         fade_out_time=0,
                         n=1,
                         background=True)
        next_led.pulse(fade_in_time=0.5, fade_out_time=0, n=1, background=True)
        prev_led.pulse(fade_in_time=0.5, fade_out_time=0, n=1, background=True)
        sleep(0.4)
        toggle_led.on()
        prev_led.on()
        next_led.on()
    # wait for status to change
    subprocess.check_output(["mpc", "idle"])
コード例 #15
0
from gpiozero import MCP3008, PWMLED
from time import sleep

LED_PIN = 18

adc = MCP3008(channel=0)
pwm_led = PWMLED(LED_PIN)

pwm_led.on()

while True:
    print("{:.0%}".format(adc.value))
    pwm_led.value = adc.value
    sleep(0.2)
コード例 #16
0
ファイル: LEDonly.py プロジェクト: Syu125/COSMOS_final
    def run(self, tempo):
        if self.song == True:
            return
        pattern = random.randint(1, 8)
        count = 0
        f = 60
        T = 1 / f
        p = 0.9
        red1 = PWMLED(17)
        orange1 = PWMLED(18)
        yellow1 = PWMLED(27)
        green1 = PWMLED(22)
        blue1 = PWMLED(23)
        white1 = PWMLED(24)
        red2 = PWMLED(13)
        orange2 = PWMLED(19)
        yellow2 = PWMLED(26)
        green2 = PWMLED(16)
        blue2 = PWMLED(20)
        white2 = PWMLED(21)

        self.song = True
        while self.song == True:
            print(".", end='')
            #in order 2 (slow)
            while pattern == 1 and count <= 3:
                beat = tempo / 6000
                red1.value = 0.1
                time.sleep(beat)
                red1.off()

                orange1.value = 0.2
                time.sleep(beat)
                orange1.off()

                yellow1.value = 0.5
                time.sleep(beat)
                yellow1.off()

                green1.value = 0.05
                time.sleep(beat)
                green1.off()

                blue1.on()
                time.sleep(beat)
                blue1.off()

                white1.on()
                time.sleep(beat)
                white1.off()

                red2.on()
                time.sleep(beat)
                red2.off()

                orange2.on()
                time.sleep(beat)
                orange2.off()

                yellow2.on()
                time.sleep(beat)
                yellow2.off()

                green2.on()
                time.sleep(beat)
                green2.off()

                blue2.on()
                time.sleep(beat)
                blue2.off()

                white2.on()
                time.sleep(beat)
                white2.off()

                count += 1

            #alternating
            while pattern == 2 and count <= 1:
                beat = tempo / 3000

                red1.value = 0.1
                time.sleep(beat)
                red1.off()

                yellow1.value = 0.5
                time.sleep(beat)
                yellow1.off()

                blue1.on()
                time.sleep(beat)
                blue1.off()

                red2.on()
                time.sleep(beat)
                red2.off()

                yellow2.on()
                time.sleep(beat)
                yellow2.off()

                blue2.on()
                time.sleep(beat)
                blue2.off()

                orange1.value = 0.2
                time.sleep(beat)
                orange1.off()

                green1.value = 0.05
                time.sleep(beat)
                green1.off()

                white1.on()
                time.sleep(beat)
                white1.off()

                orange2.on()
                time.sleep(beat)
                orange2.off()

                green2.on()
                time.sleep(beat)
                green2.off()

                white2.on()
                time.sleep(beat)
                white2.off()

                count += 1

            #in order (fast)
            while pattern == 3 and count <= 7:
                beat = tempo / 12000
                red1.value = 0.1
                time.sleep(beat)
                red1.off()

                orange1.value = 0.2
                time.sleep(beat)
                orange1.off()

                yellow1.value = 0.5
                time.sleep(beat)
                yellow1.off()

                green1.value = 0.05
                time.sleep(beat)
                green1.off()

                blue1.on()
                time.sleep(beat)
                blue1.off()

                white1.on()
                time.sleep(beat)
                white1.off()

                red2.on()
                time.sleep(beat)
                red2.off()

                orange2.on()
                time.sleep(beat)
                orange2.off()

                yellow2.on()
                time.sleep(beat)
                yellow2.off()

                green2.on()
                time.sleep(beat)
                green2.off()

                blue2.on()
                time.sleep(beat)
                blue2.off()

                white2.on()
                time.sleep(beat)
                white2.off()

                count += 1

            #spreading out
            while pattern == 4 and count <= 7:
                beat = tempo / 10000
                white1.on()
                red2.on()
                time.sleep(beat)
                white1.off()
                red2.off()

                blue1.on()
                orange2.on()
                time.sleep(beat)
                blue1.off()
                orange2.off()

                green1.value = 0.05
                yellow2.on()
                time.sleep(beat)
                green1.off()
                yellow2.off()

                yellow1.value = 0.5
                green2.on()
                time.sleep(beat)
                yellow1.off()
                green2.off()

                orange1.value = 0.2
                blue2.on()
                time.sleep(beat)
                orange1.off()
                blue2.off()

                red1.value = 0.1
                white2.on()
                time.sleep(beat)
                red1.off()
                white2.off()

                blue2.on()
                orange1.value = 0.2
                time.sleep(beat)
                blue2.off()
                orange1.off()

                green2.on()
                yellow1.value = 0.5
                time.sleep(beat)
                green2.off()
                yellow1.off()

                yellow2.on()
                green1.value = 0.05
                time.sleep(beat)
                yellow2.off()
                green1.off()

                orange2.on()
                blue1.on()
                time.sleep(beat)
                orange2.off()
                blue1.off()

                count += 1

            #color-by-color
            while pattern == 5 and count <= 7:
                beat = tempo / 6000
                red1.value = 0.1
                red2.on()
                time.sleep(beat)
                red1.off()
                red2.off()

                orange1.on()
                orange2.on()
                time.sleep(beat)
                orange1.off()
                orange2.off()

                yellow1.on()
                yellow2.on()
                time.sleep(beat)
                yellow1.off()
                yellow2.off()

                green1.on()
                green2.on()
                time.sleep(beat)
                green1.off()
                green2.off()

                blue1.on()
                blue2.on()
                time.sleep(beat)
                blue1.off()
                blue2.off()

                white1.on()
                white2.on()
                time.sleep(beat)
                white1.off()
                white2.off()

                count += 1

            #in order alternating
            while pattern == 6 and count <= 3:
                beat = tempo / 5000

                red1.on()
                yellow1.on()
                time.sleep(beat)
                red1.off()
                yellow1.off()

                orange1.on()
                green1.on()
                time.sleep(beat)
                orange1.off()
                green1.off()

                yellow1.on()
                blue1.on()
                time.sleep(beat)
                yellow1.off()
                blue1.off()

                green1.on()
                white1.on()
                time.sleep(beat)
                green1.off()
                white1.off()

                blue1.on()
                red2.on()
                time.sleep(beat)
                blue1.off()
                red2.off()

                white1.on()
                orange2.on()
                time.sleep(beat)
                white1.off()
                orange2.off()

                red2.on()
                yellow2.on()
                time.sleep(beat)
                red2.off()
                yellow2.off()

                orange2.on()
                green2.on()
                time.sleep(beat)
                orange2.off()
                green2.off()

                yellow2.on()
                blue2.on()
                time.sleep(beat)
                yellow2.off()
                blue2.off()

                green2.on()
                white2.on()
                time.sleep(beat)
                green2.off()
                white2.off()

                count += 1

            #two colors at a time in order
            while pattern == 7 and count <= 3:
                beat = tempo / 10000
                red1.on()
                orange1.on()
                time.sleep(beat)
                red1.off()

                yellow1.on()
                time.sleep(beat)
                orange1.off()

                green1.on()
                time.sleep(beat)
                yellow1.off()

                blue1.on()
                time.sleep(beat)
                green1.off()

                white1.on()
                time.sleep(beat)
                blue1.off()

                red2.on()
                time.sleep(beat)
                white1.off()

                orange2.on()
                time.sleep(beat)
                red2.off()

                yellow2.on()
                time.sleep(beat)
                orange2.off()

                green2.on()
                time.sleep(beat)
                yellow2.off()

                blue2.on()
                time.sleep(beat)
                green2.off()

                white2.on()
                time.sleep(beat)
                blue2.off()

                blue2.on()
                time.sleep(beat)
                white2.off()

                green2.on()
                time.sleep(beat)
                blue2.off()

                yellow2.on()
                time.sleep(beat)
                green2.off()

                orange2.on()
                time.sleep(beat)
                yellow2.off()

                red2.on()
                time.sleep(beat)
                orange2.off()

                white1.on()
                time.sleep(beat)
                red2.off()

                blue1.on()
                time.sleep(beat)
                white1.off()

                green1.on()
                time.sleep(beat)
                blue1.off()

                yellow1.on()
                time.sleep(beat)
                green1.off()

                orange1.on()
                time.sleep(beat)
                yellow1.off()

                red1.on()
                time.sleep(beat)
                red1.off()

                count += 1

            else:
                count = 0
                red1.off()
                orange1.off()
                yellow1.off()
                green1.off()
                blue1.off()
                white1.off()
                red2.off()
                orange2.off()
                yellow2.off()
                green2.off()
                blue2.off()
                white2.off()
                pattern = random.randint(1, 8)
コード例 #17
0
ファイル: test_led.py プロジェクト: darrelhong/iot-assign2
from gpiozero import PWMLED

status_led = PWMLED(24)

type = int(input("Enter type: "))

if type == 0:
    status_led.on()
elif type == 1:
    status_led.blink(0.5, 0.5)

while True:
    a = 1
コード例 #18
0
#lut_partial_update
epd = epd2in7.EPD()
epd.init()
epd.Clear(0xFF)
print("cleaned")

#GPIO setup
greenLed = PWMLED("BOARD33")
yellowLed = PWMLED("BOARD35")
redLed = PWMLED("BOARD37")

greenButton = Button("BOARD36")
yellowButton = Button("BOARD38")
redButton = Button("BOARD40", hold_time=5)

greenLed.on()


#Epaper function
def updateEpaperLoop():
    month = time.strftime("%m")
    day = time.strftime("%d")
    wk_day = time.strftime("%A")
    hour_number = time.strftime("%H")
    min_number = time.strftime("%M")
    sec_number = time.strftime("%S")
    date = month + "/" + day + " " + wk_day
    hourMin = hour_number + ":" + min_number
    print("Got time")
    statusName = "thinking"
    img = imageGenerator.generateImage((epd.height, epd.width), date, hourMin,
コード例 #19
0
class KillTeam:
    def __init__(self):
        self.plusButton = Button(17)
        self.minusButton = Button(27)
        self.okButton = Button(22)

        self.canticleLed1 = PWMLED(5)  # IncantationOfTheIronSoul
        self.canticleLed2 = PWMLED(6)  # LitanyOfTheElectromancer
        self.canticleLed3 = PWMLED(13)  # Chant of the Remorseless Fist
        self.canticleLed4 = PWMLED(19)  # Shroudpsalm
        self.canticleLed5 = PWMLED(26)  # Invocation of Machine Might
        self.canticleLed6 = PWMLED(21)  # Benediction of the Omnissiah

        self.initiativeLed = PWMLED(23)
        self.movementLed = PWMLED(24)
        self.psychicLed = PWMLED(25)
        self.shootingLed = PWMLED(12)
        self.meleeLed = PWMLED(16)
        self.moraleLed = PWMLED(20)

        self.selected_canticle = INCANTATION_OF_THE_IRON_SOUL
        self.canticle1Used = False
        self.canticle2Used = False
        self.canticle3Used = False
        self.canticle4Used = False
        self.canticle5Used = False
        self.canticle6Used = False

        self.continueGame = True

    def select_canticles(self):
        self.initiativeLed.off()
        self.movementLed.off()
        self.psychicLed.off()
        self.shootingLed.off()
        self.meleeLed.off()
        self.moraleLed.off()

        self.plusButton.when_pressed = self.canticle_plus_button
        self.minusButton.when_pressed = self.canticle_minus_button
        self.okButton.when_pressed = self.canticle_ok_button

        self.display_canticle()

        self.okButton.wait_for_press()

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        sleep(0.5)

    def canticle_plus_button(self):
        self.selected_canticle += 1
        if self.selected_canticle == 8:
            self.selected_canticle = INCANTATION_OF_THE_IRON_SOUL
        self.display_canticle()

    def canticle_minus_button(self):
        self.selected_canticle -= 1
        if self.selected_canticle == -1:
            self.selected_canticle = BENEDICTION_OF_THE_OMNISSIAH
        self.display_canticle()

    def canticle_ok_button(self):
        if self.selected_canticle == 0 or self.selected_canticle == 7:
            self.selected_canticle = randint(1, 6)
        else:
            if self.selected_canticle == INCANTATION_OF_THE_IRON_SOUL:
                self.canticle1Used = True
            elif self.selected_canticle == LITANY_OF_THE_ELECTROMANCER:
                self.canticle2Used = True
            elif self.selected_canticle == CHANT_OF_THE_REMORSELESS_FIST:
                self.canticle3Used = True
            elif self.selected_canticle == SHROUDPSALM:
                self.canticle4Used = True
            elif self.selected_canticle == INVOCATION_OF_MACHINE_MIGHT:
                self.canticle5Used = True
            elif self.selected_canticle == BENEDICTION_OF_THE_OMNISSIAH:
                self.canticle6Used = True
        self.display_canticle(True)

    def initiative_phase(self):
        self.initiativeLed.on()
        self.movementLed.off()
        self.psychicLed.off()
        self.shootingLed.off()
        self.meleeLed.off()
        self.moraleLed.off()

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        self.okButton.wait_for_press()
        sleep(0.5)

    def movement_phase(self):
        self.initiativeLed.off()
        self.movementLed.on()
        self.psychicLed.off()
        self.shootingLed.off()
        self.meleeLed.off()
        self.moraleLed.off()

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        self.okButton.wait_for_press()
        sleep(0.5)

    def psychic_phase(self):
        self.initiativeLed.off()
        self.movementLed.off()
        self.psychicLed.on()
        self.shootingLed.off()
        self.meleeLed.off()
        self.moraleLed.off()

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        self.okButton.wait_for_press()
        sleep(0.5)

    def shooting_phase(self):
        self.initiativeLed.off()
        self.movementLed.off()
        self.psychicLed.off()
        self.shootingLed.on()
        self.meleeLed.off()
        self.moraleLed.off()

        if self.selected_canticle in [
                SHROUDPSALM, BENEDICTION_OF_THE_OMNISSIAH
        ]:
            self.display_canticle(True, True)

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        self.okButton.wait_for_press()

        if self.selected_canticle in [
                SHROUDPSALM, BENEDICTION_OF_THE_OMNISSIAH
        ]:
            self.display_canticle(True, False)
        sleep(0.5)

    def melee_phase(self):
        self.initiativeLed.off()
        self.movementLed.off()
        self.psychicLed.off()
        self.shootingLed.off()
        self.meleeLed.on()
        self.moraleLed.off()

        if self.selected_canticle in [
                LITANY_OF_THE_ELECTROMANCER, CHANT_OF_THE_REMORSELESS_FIST,
                INVOCATION_OF_MACHINE_MIGHT
        ]:
            self.display_canticle(True, True)

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        self.okButton.wait_for_press()

        if self.selected_canticle in [
                LITANY_OF_THE_ELECTROMANCER, CHANT_OF_THE_REMORSELESS_FIST,
                INVOCATION_OF_MACHINE_MIGHT
        ]:
            self.display_canticle(True, False)
        sleep(0.5)

    def morale_phase(self):
        self.initiativeLed.off()
        self.movementLed.off()
        self.psychicLed.off()
        self.shootingLed.off()
        self.meleeLed.off()
        self.moraleLed.on()

        if self.selected_canticle in [1]:
            self.display_canticle(True, True)

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        self.okButton.wait_for_press()

        if self.selected_canticle in [1]:
            self.display_canticle(True, False)
        sleep(0.5)

    def select_if_end_game(self):
        self.initiativeLed.pulse()
        self.movementLed.pulse()
        self.psychicLed.pulse()
        self.shootingLed.pulse()
        self.meleeLed.pulse()
        self.moraleLed.pulse()

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = self.end_game_select
        self.okButton.when_pressed = None

        self.okButton.wait_for_press()

        self.plusButton.when_pressed = None
        self.minusButton.when_pressed = None
        self.okButton.when_pressed = None
        sleep(0.5)

    def end_game_select(self):
        self.continueGame = not self.continueGame
        if self.continueGame:
            self.initiativeLed.pulse()
            self.movementLed.pulse()
            self.psychicLed.pulse()
            self.shootingLed.pulse()
            self.meleeLed.pulse()
            self.moraleLed.pulse()
        else:
            self.initiativeLed.off()
            self.movementLed.off()
            self.psychicLed.off()
            self.shootingLed.off()
            self.meleeLed.off()
            self.moraleLed.off()

    def close(self):
        self.initiativeLed.close()
        self.movementLed.close()
        self.psychicLed.close()
        self.shootingLed.close()
        self.meleeLed.close()
        self.moraleLed.close()
        self.canticleLed1.close()
        self.canticleLed2.close()
        self.canticleLed3.close()
        self.canticleLed4.close()
        self.canticleLed5.close()
        self.canticleLed6.close()
        self.plusButton.close()
        self.minusButton.close()
        self.okButton.close()

    def display_canticle(self, selected=False, blinking=False):
        if selected:
            self.canticleLed1.off()
            self.canticleLed2.off()
            self.canticleLed3.off()
            self.canticleLed4.off()
            self.canticleLed5.off()
            self.canticleLed6.off()
            if self.selected_canticle == 1:
                if blinking:
                    self.canticleLed1.pulse()
                else:
                    self.canticleLed1.on()
            elif self.selected_canticle == LITANY_OF_THE_ELECTROMANCER:
                if blinking:
                    self.canticleLed2.pulse()
                else:
                    self.canticleLed2.on()
            elif self.selected_canticle == CHANT_OF_THE_REMORSELESS_FIST:
                if blinking:
                    self.canticleLed3.pulse()
                else:
                    self.canticleLed3.on()
            elif self.selected_canticle == SHROUDPSALM:
                if blinking:
                    self.canticleLed4.pulse()
                else:
                    self.canticleLed4.on()
            elif self.selected_canticle == INVOCATION_OF_MACHINE_MIGHT:
                if blinking:
                    self.canticleLed5.pulse()
                else:
                    self.canticleLed5.on()
            elif self.selected_canticle == BENEDICTION_OF_THE_OMNISSIAH:
                if blinking:
                    self.canticleLed6.pulse()
                else:
                    self.canticleLed6.on()
        else:
            if not self.canticle1Used:
                self.canticleLed1.on()
            else:
                self.canticleLed1.off()
            if not self.canticle2Used:
                self.canticleLed2.on()
            else:
                self.canticleLed2.off()
            if not self.canticle3Used:
                self.canticleLed3.on()
            else:
                self.canticleLed3.off()
            if not self.canticle4Used:
                self.canticleLed4.on()
            else:
                self.canticleLed4.off()
            if not self.canticle5Used:
                self.canticleLed5.on()
            else:
                self.canticleLed5.off()
            if not self.canticle6Used:
                self.canticleLed6.on()
            else:
                self.canticleLed6.off()
            if self.selected_canticle == 1:
                self.canticleLed1.pulse()
            elif self.selected_canticle == LITANY_OF_THE_ELECTROMANCER:
                self.canticleLed2.pulse()
            elif self.selected_canticle == CHANT_OF_THE_REMORSELESS_FIST:
                self.canticleLed3.pulse()
            elif self.selected_canticle == SHROUDPSALM:
                self.canticleLed4.pulse()
            elif self.selected_canticle == INVOCATION_OF_MACHINE_MIGHT:
                self.canticleLed5.pulse()
            elif self.selected_canticle == BENEDICTION_OF_THE_OMNISSIAH:
                self.canticleLed6.pulse()
            else:
                self.canticleLed1.pulse()
                self.canticleLed2.pulse()
                self.canticleLed3.pulse()
                self.canticleLed4.pulse()
                self.canticleLed5.pulse()
                self.canticleLed6.pulse()
コード例 #20
0
ファイル: drive.py プロジェクト: JanRunge/pycar
if(run_on_remote):
	print("connecting with remote ... ")
	remote_factory = PiGPIOFactory(host=remote_host)
	left = PWMLED(27, pin_factory=remote_factory) 
	right = PWMLED(22, pin_factory=remote_factory)
	vor = PWMLED(13, pin_factory=remote_factory) 
	back = PWMLED(19, pin_factory=remote_factory) 
	print("connected")
else:
	left = PWMLED(13) 
	right = PWMLED(19)
	vor = PWMLED(22) 
	back = PWMLED(27) 
	control_led = PWMLED(17)
	control_led.on()


#home = 192.168.2.205
#svenja = 192.168.178.41

throttle_stages = [0.2, 0.3, 0.5, 0.7, 0.9, 1.0]
current_throttle_stage = 2
class MyController(Controller):
	#https://pypi.org/project/pyPS4Controller/
	def __init__(self, **kwargs):
		Controller.__init__(self, **kwargs)

	
	##arrows
	def on_up_arrow_press(self):
コード例 #21
0
                rpi_temp = round(sensor.read_temperature())
                rpi_light_level = round(light_sensor.value * 100)
                responses.append(f"edge_rpi-{rpi_temp}-{rpi_light_level}")

            for response in responses:
                values = response.split("-")
                if len(values) == 3:
                    temp = int(values[1])
                    light_level = int(int(values[2]) / 255 * 100) if not values[0].startswith('edge') else int(values[2])
                    insert_sensor_data(
                        conn, f"{STATION_NAME} {values[0]}", temp, light_level
                    )

                    if temp > TEMP_THRESHOLD and light_level > LIGHT_THRESHOLD:
                        print("fire outbreak detected")
                        status_led and status_led.on()
                        curr_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
                        event = "fire outbreak"
                        SERIAL and sendCommand(f"{STATION_NAME} fire")
                        insert_fire_event(conn, STATION_NAME, event, curr_time)
                        send_event_cloud(STATION_NAME, event, curr_time)

        while message_cache:
            try:
                message = message_cache.pop().strip()
                message_arr = message.split(" ")
                station = message_arr[0]
                command = message_arr[1]
                message
                if command == "fire":
                    insert_fire_event(
コード例 #22
0
#!/usr/bin/python3
# Beispieldatei gpiozero-led-pwm.py
from gpiozero import PWMLED
import sys, time
myled = PWMLED(7, frequency=1000)  # BCM-Nummer 7 = Pin 26 des J8-Header
# Frequenz: 1000 Hz

print("LED wird langsam heller")
myled.value = 0
myled.on()
for brightness in range(1, 11):
    myled.value = brightness / 10.0
    time.sleep(0.5)

print("LED blinkt zehn Mal")
myled.blink(on_time=0.5, off_time=0.25, n=10, background=False)

print("Kurze Pause")
time.sleep(1)

print("LED blinkt dreimal langsam, halbe Helligkeit")
myled.value = 0.1
myled.blink(on_time=1, off_time=1, n=3, background=False)

print("LED aus und Programmende")
myled.off()
コード例 #23
0
led1_fadein = 3
led1_fadeout = 1.5

hold_time = 3.0

#----- functions ------


def shut_down():
    led1.pulse(led1_fadein, led1_fadeout)
    system("sudo shutdown -h now")
    sleep(40)  # should take no more than 40 secs to shutdown


#----- start of main logic------

while True:

    led1.on()
    btn1.wait_for_press()
    led1.blink(0.2, 0.2)
    start_time = time()

    while btn1.value == True:
        sleep(0.1)
        duration = time() - start_time
        if duration > hold_time:
            shut_down()

#----- end of main logic -----
コード例 #24
0
    p = subprocess.Popen(["/usr/bin/vcgencmd", "measure_temp"],
                         stdout=subprocess.PIPE,
                         stderr=subprocess.STDOUT).communicate()[0]
    # extract the raw value
    val = p.split('=')[1].split('\'')[0]

    # convert string to float
    return float(val)


def convertF(degreesc):
    return (degreesc * 1.8) + 32


def intensity(value, min, max):
    if value < min:
        return 0.0
    elif value > max:
        return 1.0
    else:
        return (1.0) * (value - min) / (max - min)


led = PWMLED(17)
led.on()

while True:
    led.value = intensity(convertF(readTemp()), 115, 125)
    print led.value
    time.sleep(0.5)
コード例 #25
0
from gpiozero import LED
from gpiozero import PWMLED
from time import sleep

sololed = PWMLED(17)
for i in range(0,3):
    sololed.on()
    sleep(.5)
    sololed.off()
    sleep(.5)

print("begin pulsing")
sololed.pulse(n=3,background=False)
print("end pulsing")

led=[]
sleeptime=.01 

for i in range(0,10):
    led.append(LED(i+2))

while True:
    for i in range(0,10):
        print("{} on".format(i))
        led[i].on()
        sleep(sleeptime)
        print("  off")
        led[i].off()
        sleep(sleeptime)
    for i in range(9,-1,-1):
        print("{} on".format(i))
コード例 #26
0
            forwardLed.off()
        if event.key == pygame.K_a:
            leftLed.off()
        if event.key == pygame.K_s:
            reverseLed.off()
        if event.key == pygame.K_d:
            rightLed.off()
    else:
        keys = pygame.key.get_pressed()

        if keys[pygame.K_w]:
            forwardVoltage += increment
            if forwardVoltage > 1:
                forwardVoltage = 1
                print("Brightness limit reached")
            forwardLed.on()
            reverseLed.off()
            forwardLed.value = forwardVoltage
            print("w pressed")

        if keys[pygame.K_s]:
            reverseVoltage += increment
            if reverseVoltage > 1:
                reverseVoltage = 1
                print("Brightness limit reached")
            reverseLed.on()
            forwardLed.off()
            reverseLed.value = reverseVoltage
            print("s pressed")

        if keys[pygame.K_a]: