from signal import pause import atexit import gpiozero from gpiozero.tools import scaled, negated robot = gpiozero.Robot(left=(27, 17), right=(24, 23)) left_line_sensor = gpiozero.LineSensor(5) right_line_sensor = gpiozero.LineSensor(6) # Ensure it will stop atexit.register(robot.stop) robot.left_motor.source = scaled(negated(left_line_sensor), -0.3, 0.4) robot.right_motor.source = scaled(negated(right_line_sensor), -0.3, 0.4) pause()
#!/usr/bin/python3 from gpiozero import LED, PingServer from gpiozero.tools import negated from signal import pause green = LED(17) red = LED(4) google = PingServer('8.8.8.8') green.source = google green.source_delay = 60 red.source = negated(green) pause()
def constant_true(): while True: yield True def constant_false(): while True: yield False # start it assign_sources() # temperature alarms ok_led.source = booleanized(temp, MIN_TEMP / 100, MAX_TEMP / 100) alarm_led.source = negated(booleanized(temp, MIN_TEMP / 100, MAX_TEMP / 100)) # schedule status write to file def writeStatus(): global scheduler writeStatusToFile() scheduler.enter(1, 1, writeStatus) # start scheduler # scheduler.enter(2, 1, writeStatus) ? scheduler.run() # wait until program gets killed
from gpiozero import StatusZero, MotionSensor from gpiozero.pins.pigpio import PiGPIOFactory from gpiozero.tools import negated from signal import pause ips = ['192.168.1.3', '192.168.1.4', '192.168.1.5'] remotes = [PiGPIOFactory(host=ip) for ip in ips] sz = StatusZero() # on this pi sensors = [MotionSensor(17, pin_factory=r) for r in remotes] # remote sensors for strip, sensor in zip(leds, sensors): strip.green.source = sensor.values strip.green.source_delay = 5 # check every 5 seconds strip.red.source = negated(strip.green.values) pause()
from gpiozero import StatusBoard from gpiozero.tools import negated import requests from signal import pause def in_the_news(text): url = 'http://www.bbc.co.uk/news' while True: r = requests.get(url) yield text in r.text sb = StatusBoard() people = ['Donald Trump', 'Kim Jong-Un', 'Theresa May'] for strip, person in zip(sb, people): strip.lights.red.source = in_the_news(person) strip.lights.red.source_delay = 60 # check every hour strip.lights.green.source = negated(strip.lights.red.values) pause()
from travispy import TravisPy from gpiozero import LED from gpiozero.tools import negated from time import sleep from signal import pause def build_passed(repo='RPi-Distro/python-gpiozero', delay=3600): t = TravisPy() r = t.repo(repo) while True: yield r.last_build_state == 'passed' sleep(delay) # Sleep an hour before hitting travis again red = LED(12) green = LED(16) red.source = negated(green.values) green.source = build_passed() pause()
from gpiozero import PingServer, LEDBoard from gpiozero.tools import negated from signal import pause status = LEDBoard( mum=LEDBoard(red=14, green=15), dad=LEDBoard(red=17, green=18), alice=LEDBoard(red=21, green=22) ) statuses = { PingServer('192.168.1.5'): status.mum, PingServer('192.168.1.6'): status.dad, PingServer('192.168.1.7'): status.alice, } for server, leds in statuses.items(): leds.green.source = server.values leds.green.source_delay = 60 leds.red.source = negated(leds.green.values) pause()
from gpiozero import LED, PingServer from gpiozero.tools import negated from signal import pause green = LED(17) red = LED(18) google = PingServer('google.com') green.source = google.values green.source_delay = 60 red.source = negated(green.values) pause()
from gpiozero import Button, LED from gpiozero.tools import negated from signal import pause led = LED(4) btn = Button(17) led.source = negated(btn.values) pause()
from gpiozero import LED, PingServer from gpiozero.tools import negated from signal import pause import time yellow_led = LED(4) red_led = LED(17) green_led = LED(18) yellow_led.on() time.sleep(15) google = PingServer('google.com') green_led.source_delay = 60 green_led.source = google yellow_led.source = negated(green_led) pause()
from gpiozero import StatusZero, PingServer from gpiozero.tools import negated, smoothed from signal import pause sz = StatusZero('mum', 'dad', 'alice') statuses = { PingServer('192.168.1.5'): status.mum, PingServer('192.168.1.6'): status.dad, PingServer('192.168.1.7'): status.alice, } for server, strip in statuses.items(): strip.green.source = smoothed(server.values, 2, any) # allow 1 false negative out of 2 strip.green.source_delay = 60 strip.red.source = negated(leds.green.values) pause()
from gpiozero import Button, LED from gpiozero.tools import negated from signal import pause led = LED(4) btn = Button(17) led.source = negated(btn) pause()
from gpiozero import LED, Button from gpiozero.tools import all_values, any_values, negated from signal import pause in_1 = Button(23) in_2 = Button(15) out_1 = LED(24) out_2 = LED(18) out_3 = LED(14) out_1.source = all_values(in_1.values, in_2.values) out_2.source = any_values(in_1.values, in_2.values) out_3.source = negated(out_1.values) pause()
from gpiozero import StatusBoard from gpiozero.tools import negated from signal import pause sb = StatusBoard() for strip in sb: strip.lights.green.source = strip.button.values strip.lights.red.source = negated(strip.button.values) pause()
from gpiozero import PingServer, StatusZero from gpiozero.tools import negated from signal import pause status = StatusZero('mum', 'dad', 'alice') statuses = { PingServer('192.168.1.5'): status.mum, PingServer('192.168.1.6'): status.dad, PingServer('192.168.1.7'): status.alice, } for server, leds in statuses.items(): leds.green.source = server leds.green.source_delay = 60 leds.red.source = negated(leds.green) pause()