Ejemplo n.º 1
0
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()
Ejemplo n.º 2
0
#!/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()
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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()
Ejemplo n.º 6
0
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()
Ejemplo n.º 7
0
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()
Ejemplo n.º 8
0
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()
Ejemplo n.º 9
0
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()
Ejemplo n.º 10
0
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()
Ejemplo n.º 12
0
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()
Ejemplo n.º 13
0
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()
Ejemplo n.º 14
0
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()
Ejemplo n.º 15
0
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()