Esempio n. 1
0
def main():
    """ メイン関数 """
    # 接続ピン
    PIN_LD = 23
    PIN_PR = [10, 9, 11, 8]
    # フォトリフレクタラベル(フィールド追加)
    Button.label = 0

    # 赤色lED設定
    red = LED(PIN_LD)
    # フォトリフレクタ(複数)設定(ボタンとして)
    photorefs = [ Button(PIN_PR[idx], active_state=True, pull_up=None) \
    for idx in range(len(PIN_PR)) ]
    # フォトリフレクタラベル設定
    for idx in range(len(photorefs)):
        photorefs[idx].label = idx + 1

    # フォトリフレクタ検出結果の論理和をLED入力に接続
    red.source = any_values(photorefs[0],photorefs[1], \
    photorefs[2],photorefs[3])

    # コールバック設定
    for pr in photorefs:
        # 白色検出時
        pr.when_pressed = white
        # 黒色検出時
        pr.when_released = black

    # 停止(Ctrl+c)まで待機
    pause()
Esempio n. 2
0
    def test_construction(self):
        """ 生成テスト """
        # 接続ピン
        PIN_LD = 23
        PIN_PR = 10

        # 周辺設定
        led = LED(PIN_LD)

        # 期待値
        valueLDExpctd = False # black

        # ターゲット生成
        photoref  = Button(PIN_PR,active_state=True,pull_up=None)

        # 接続
        led.source = photoref

        # 実際値
        valueLDActual = led.value

        # 評価
        try:
            self.assertEqual(valueLDActual,valueLDExpctd)
            sleep(0.1)
        finally:
            led.close()
            photoref.close()
Esempio n. 3
0
def led_btn():
    led_1 = LED(17)
    led_2 = LED(18)
    
    btn_1 = Button(2)
    btn_2 = Button(3)

    btn_1.when_pressed = led_1.on
    btn_1.when_released = led_1.off

    led_2.source = button
    
    pause()
Esempio n. 4
0
    def test_drive(self):
        """ 駆動テスト """
        # 接続ピン
        PIN_LD = 23
        PIN_PR = 10

        # 周辺設定
        led = LED(PIN_LD)

        # 期待値
        highLDExpctd = True # white
        lowLDExpctd = False # black

        # ターゲット生成
        photoref  = Button(PIN_PR,active_state=True,pull_up=None)
        photoref_pin = Device.pin_factory.pin(PIN_PR)

        # 接続
        led.source = photoref

        # Highでフォトリフレクタを駆動(白)
        photoref_pin.drive_high()
        sleep(0.1)
        highLDActual = led.value

        # Lowでフォトリフレクタを駆動(黒)
        photoref_pin.drive_low()
        sleep(0.1)
        lowLDActual = led.value

        # 評価
        try:
            self.assertEqual(highLDActual,highLDExpctd)
            self.assertEqual(lowLDActual,lowLDExpctd)
            sleep(0.1)
        finally:
            led.close()
            photoref.close()
Esempio n. 5
0
from gpiozero.pins.mock import MockFactory
from gpiozero import Device, Button, LED
from time import sleep

# Set the default pin factory to a mock factory
Device.pin_factory = MockFactory()

# Construct a couple of devices attached to mock pins 16 and 17, and link the
# devices
led = LED(17)
btn = Button(16)
led.source = btn.values

# Here the button isn't "pushed" so the LED's value should be False
print(led.value)

# Get a reference to mock pin 16 (used by the button)
btn_pin = Device.pin_factory.pin(16)

# Drive the pin low (this is what would happen eletrically when the button is
# pushed)
btn_pin.drive_low()
sleep(0.1) # give source some time to re-read the button state
print(led.value)

btn_pin.drive_high()
sleep(0.1)
print(led.value)
Esempio n. 6
0
from gpiozero import Button, LED
from gpiozero.pins.pigpio import PiGPIOFactory
from signal import pause

factory = PiGPIOFactory(host='192.168.1.3')

button = Button(2)
led = LED(17, pin_factory=factory)

led.source = button

pause()
from gpiozero import Button, LED
from gpiozero.tools import all_values
from signal import pause

button_a = Button(2)
button_b = Button(3)
led = LED(17)

led.source = all_values(button_a.values, button_b.values)

pause()
Esempio n. 8
0
File: led.py Progetto: drocco007/PiG
def show_from_sequence(seq, pin=17):
    led = LED(pin)
    led.source = seq

    pause()
Esempio n. 9
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):
    t = TravisPy()
    r = t.repo(repo)
    while True:
        yield r.last_build_state == 'passed'


red = LED(12)
green = LED(16)

green.source = build_passed('RPi-Distro/python-gpiozero')
green.source_delay = 60 * 5  # check every 5 minutes
red.source = negated(green.values)

pause()
Esempio n. 10
0
from bluedot import BlueDot
from gpiozero import LED
from signal import pause

bd = BlueDot()
led = LED(27)

led.source = bd.values

pause()
Esempio n. 11
0
from gpiozero import LED
from random import randint
from signal import pause


def rand():
    while True:
        yield randint(0, 1)


led = LED(17)
led.source = rand()

pause()
from gpiozero import Button, LED
from signal import pause

def opposite(values):
    for value in values:
        yield not value

led = LED(4)
btn = Button(17)

led.source = opposite(btn.values)

pause()
Esempio n. 13
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):
    t = TravisPy()
    r = t.repo(repo)
    while True:
        yield r.last_build_state == 'passed'

red = LED(12)
green = LED(16)

green.source = build_passed('RPi-Distro/python-gpiozero')
green.source_delay = 60 * 5  # check every 5 minutes
red.source = negated(green.values)

pause()
Esempio n. 14
0
from gpiozero import LED, Button
from signal import pause

red = LED(14)
green = LED(15)
button = Button(17)

red.source = button.values
green.source = red.values

pause()
Esempio n. 15
0
def main():
    # from picamera import PiCamera
    from gpiozero import LED, Button, MotionSensor
    from gpiozero.tools import all_values, any_values
    from signal import pause
    # import logging
    import json
    import sys

    print('')
    print('# RPiMS is running #')
    print('')

    global redis_db
    redis_db = db_connect('localhost', 0)

    config_yaml = config_load('/var/www/html/conf/rpims.yaml')
    config = config_yaml['setup']
    zabbix_agent = config_yaml['zabbix_agent']
    gpio = config_yaml.get("gpio")

    redis_db.flushdb()
    redis_db.set('gpio', json.dumps(gpio))
    redis_db.set('config', json.dumps(config))
    redis_db.set('zabbix_agent', json.dumps(zabbix_agent))

    get_hostip()
    hostnamectl_sh(**zabbix_agent)

    if bool(config['verbose']) is True:
        for k, v in config.items():
            print(f'{k} = {v}')
        for k, v in zabbix_agent.items():
            print(f'{k} = {v}')
        print('')

    if bool(config['use_door_sensor']) is True:
        global door_sensors_list
        door_sensors_list = {}
        for item in gpio:
            if (gpio[item]['type'] == 'DoorSensor'):
                door_sensors_list[item] = Button(gpio[item]['gpio_pin'],
                                                 hold_time=int(
                                                     gpio[item]['hold_time']))

    if bool(config['use_motion_sensor']) is True:
        global motion_sensors_list
        motion_sensors_list = {}
        for item in gpio:
            if (gpio[item]['type'] == 'MotionSensor'):
                motion_sensors_list[item] = MotionSensor(
                    gpio[item]['gpio_pin'])

    if bool(config['use_system_buttons']) is True:
        global system_buttons_list
        system_buttons_list = {}
        for item in gpio:
            if (gpio[item]['type'] == 'ShutdownButton'):
                system_buttons_list['shutdown_button'] = Button(
                    gpio[item]['gpio_pin'],
                    hold_time=int(gpio[item]['hold_time']))

    global led_indicators_list
    led_indicators_list = {}
    for item in gpio:
        if (gpio[item]['type'] == 'door_led'):
            led_indicators_list['door_led'] = LED(gpio[item]['gpio_pin'])
        if (gpio[item]['type'] == 'motion_led'):
            led_indicators_list['motion_led'] = LED(gpio[item]['gpio_pin'])
        if (gpio[item]['type'] == 'led'):
            led_indicators_list['led'] = LED(gpio[item]['gpio_pin'])

    if bool(config['use_door_sensor']) is True:
        for k, v in door_sensors_list.items():
            if v.value == 0:
                door_status_open(k, **config)
            else:
                door_status_close(k, **config)
        for k, v in door_sensors_list.items():
            v.when_held = lambda s=k: door_action_closed(s, **config)
            v.when_released = lambda s=k: door_action_opened(s, **config)
        if bool(config['use_door_led_indicator']) is True:
            led_indicators_list['door_led'].source = all_values(
                *door_sensors_list.values())

    if bool(config['use_motion_sensor']) is True:
        for k, v in motion_sensors_list.items():
            if v.value == 0:
                motion_sensor_when_no_motion(k, **config)
            else:
                motion_sensor_when_motion(k, **config)
        for k, v in motion_sensors_list.items():
            v.when_motion = lambda s=k: motion_sensor_when_motion(k, **config)
            v.when_no_motion = lambda s=k: motion_sensor_when_no_motion(
                k, **config)
        if bool(config['use_motion_led_indicator']) is True:
            led_indicators_list['motion_led'].source = any_values(
                *motion_sensors_list.values())

    if bool(config['use_system_buttons']) is True:
        system_buttons_list['shutdown_button'].when_held = shutdown

    if bool(config['use_CPU_sensor']) is True:
        threading_function(get_cputemp_data, **config)

    if bool(config['use_BME280_sensor']) is True:
        threading_function(get_bme280_data, **config)

    if bool(config['use_DS18B20_sensor']) is True:
        threading_function(get_ds18b20_data, **config)

    if bool(config['use_DHT_sensor']) is True:
        threading_function(get_dht_data, **config)

    if bool(config['use_weather_station']) is True:
        threading_function(rainfall, **config)
        threading_function(wind_speed, **config)
        threading_function(wind_direction, **config)

    if bool(config['use_serial_display']) is True:
        threading_function(serial_displays, **config)

    if bool(config['use_picamera']) is True and bool(
            config['use_picamera_recording']) is False and bool(
                config['use_door_sensor']) is False and bool(
                    config['use_motion_sensor']) is False:
        av_stream('start')

    pause()
Esempio n. 16
0
from gpiozero import LED, Button
from signal import pause

led = LED(17)
button = Button(2)

led.source = button.values

pause()
Esempio n. 17
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()
Esempio n. 18
0
with PiCamera() as camera:
        #camera.start_preview()
        path, dirs, files = os.walk('/home/pi/photo_output').next()
	file_count = len(files)
	print (file_count)
	frame = 1 + file_count
        while True:
                if stop.is_pressed:
			draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
        		draw.text((3,20), 'Safe stop', font=font)
        		disp.image(image)
        		disp.display()
        		time.sleep(2)
        		subprocess.call('sudo halt', shell=True)
		button.wait_for_press()
                yellow.source = button.values
                draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
		#disp.image(image)
                disp.display()
		draw.text((3,0),'Taking ....', font=font)
		disp.image(image)
                disp.display()
		print ("About to capture photo")
                camera.capture('/home/pi/photo_output/frame%03d.jpg' % frame)
                print (frame)
		draw.text((3,10),'Frames taken:', font=font)
		draw.text((10,20), str(frame), font=font)
                draw.text((0,30), str(startup), font=font)
		disp.image(image)
		disp.display()
		frame +=1
Esempio n. 19
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()
Esempio n. 20
0
from gpiozero import LED, Button
from signal import pause

mySwitch = Button(2)
myLED = LED(26)

# test the connections
# myLED.blink()

myLED.source = mySwitch

pause()


Esempio n. 21
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()
Esempio n. 22
0
            print(f'Started state {r.state}')
            yield r.state == 'started'

    def build_passed():
        while True:
            r = travis.repo(repository_name)
            print(f'Passed state {r.state}')
            yield r.state == 'passed' and r.state != 'started'

    def build_unsuccessful():
        while True:
            r = travis.repo(repository_name)
            print(f'Unsuccessful state {r.state}')
            yield r.state != 'passed' and r.state != 'started'

    green.source = build_passed()
    green.source_delay = 20

    red.source = build_unsuccessful()
    red.source_delay = 20

    yellow.source = build_started()
    yellow.source_delay = 20

    pause()
except KeyboardInterrupt:
    green.off()
    red.off()
    yellow.off()
    print("Exiting...")
Esempio n. 23
0
import inkyphat
from datetime import datetime as dt
from PIL import ImageFont, Image
import sys
sys.path.insert(0, '/home/pi/DHT11_Python')
import Adafruit_DHT
logzero.logfile("/home/pi/viv.log", maxBytes=1000000)
logger.debug("Finished imports")
humidity_gpio_pin = 3
humidity_sensor = Adafruit_DHT.DHT22
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
logger.debug("Setting door locks")
leftside = Button(20)
leftside_led = LED(21)
leftside_led.source = leftside.values
rightside = Button(19)
rightside_led = LED(26)
rightside_led.source = rightside.values

City = "SnakeTown"
BUCKET_NAME = ":snake:Vivarium"
BUCKET_KEY = ""
ACCESS_KEY = ""
SENSOR_LOCATION_NAME = "Viv1"

streamer = Streamer(bucket_name=BUCKET_NAME,
                    bucket_key=BUCKET_KEY,
                    access_key=ACCESS_KEY)

Esempio n. 24
0
from gpiozero import LED
from random import randint
from signal import pause

def rand():
    while True:
        yield randint(0, 1)

led = LED(17)
led.source = rand()

pause()
from gpiozero import LED
from signal import pause

led = LED(17)
led.source_delay = 1
led.source = [1, 0, 1, 1, 1, 0, 0, 1, 0, 1]

pause()
Esempio n. 26
0
from gpiozero import LED, Button
from signal import pause

led = LED(18)
btn = Button(23)

led.source = btn

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()
Esempio n. 28
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()
from gpiozero import LED, PingServer
from gpiozero.tools import negated
from signal import pause

green = LED(17)
red = LED(18)

google = PingServer('google.com')

google.when_activated = green.on
google.when_deactivated = green.off
red.source = negated(green)

pause()
def switch_on_right():
    print('Right switch is on')


def switch_off_left():
    print('Left switch is off')


def switch_off_right():
    print('Right switch is off')


# Setup connections
# ===================

led_red.source = button_red
led_green.source = button_green
led_blue.source = button_blue

button_yellow.when_pressed = rgb_demo

switch_left.when_pressed = switch_on_left
switch_left.when_released = switch_off_left

switch_right.when_pressed = switch_on_right
switch_right.when_released = switch_off_right

print('Running')
pause()
Esempio n. 31
0
from gpiozero import Button, LED
from signal import pause

button = Button(20)
led = LED(21)

# button의 상태를 led와 동일하게 하겠다
led.source = button.values

pause()
Esempio n. 32
0
selection_3_led    = LED(8)

selection_4_button = Button(0)
selection_4_led    = LED(1)

selection_5_button = Button(6)
selection_5_led    = LED(12)

selection_6_button = Button(19)
selection_6_led    = LED(16)

selection_7_button = Button(26)
selection_7_led    = LED(20)

selection_8_button = Button(27)
selection_8_led    = LED(10)
# setup complete

# main'ish:
power_led.source = power_button.values
selection_1_led.source = selection_1_button.values
selection_2_led.source = selection_2_button.values
selection_3_led.source = selection_3_button.values
selection_4_led.source = selection_4_button.values
selection_5_led.source = selection_5_button.values
selection_6_led.source = selection_6_button.values
selection_7_led.source = selection_7_button.values
selection_8_led.source = selection_8_button.values

pause()
        motor_down(motor_1_dir, motor_1_pwm)


def rightpoke():
    poke_time = time.time()
    temp = pd.DataFrame([['poke', poke_time - start_time]])
    temp.to_csv(expdate + "_rightpoke.csv", mode='a', header=False)


def wrongpoke():
    poke_time = time.time()
    temp = pd.DataFrame([['poke', poke_time - start_time]])
    temp.to_csv(expdate + "_wrongpoke.csv", mode='a', header=False)


LED_1.source = (IR_1.values)
LED_2.source = (IR_2.values)

motor_1_pwm.off()
motor_1_dir.off()


def record():
    IR_1.when_released = rightpoke
    IR_2.when_released = wrongpoke


def reward():
    IR_1.when_released = reward_delivery

Esempio n. 34
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()
Esempio n. 35
0
#!/usr/bin/python3

from gpiozero import Button, LED
from signal import pause

GPIO_btn_B = 18
GPIO_led_B = 17

btn = Button(GPIO_btn_B, True)
led = LED(GPIO_led_B)

led.source = btn.values

pause()
Esempio n. 36
0
# custom constant value generators
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()

 path, dirs, files = os.walk('/home/pi/photo_output').next()
 file_count = len(files)
 print(file_count)
 frame = 1 + file_count
 while True:
     if stop.is_pressed:
         draw.rectangle((0, 0, LCD.LCDWIDTH, LCD.LCDHEIGHT),
                        outline=255,
                        fill=255)
         draw.text((3, 20), 'Safe stop', font=font)
         disp.image(image)
         disp.display()
         time.sleep(2)
         subprocess.call('sudo halt', shell=True)
     button.wait_for_press()
     yellow.source = button.values
     draw.rectangle((0, 0, LCD.LCDWIDTH, LCD.LCDHEIGHT),
                    outline=255,
                    fill=255)
     #disp.image(image)
     disp.display()
     draw.text((3, 0), 'Taking ....', font=font)
     disp.image(image)
     disp.display()
     print("About to capture photo")
     camera.capture('/home/pi/photo_output/frame%03d.jpg' % frame)
     print(frame)
     draw.text((3, 10), 'Frames taken:', font=font)
     draw.text((10, 20), str(frame), font=font)
     draw.text((0, 30), str(startup), font=font)
     disp.image(image)
Esempio n. 38
0
##


def motor_down(motor_1_dir, motor_1_pwm):
    global poke_success
    motor_1_dir.on()
    motor_1_pwm.on()
    sleep(5)
    motor_1_pwm.off()
    sleep(1)
    motor_1_dir.off()
    motor_1_pwm.on()
    sleep(5)
    motor_1_pwm.off()
    poke_success = False


def IR_held():
    global poke_success
    if poke_success == False:
        poke_success = True
        motor_down(motor_1_dir, motor_1_pwm)


LED_1.source = (IR_1.values)

motor_1_pwm.off()
motor_1_dir.off()

IR_1.when_released = IR_held
# print(poke_success)
from gpiozero import Button, LED
from gpiozero.tools import all_values
from signal import pause

button_a = Button(2)
button_b = Button(3)
led = LED(17)

led.source = all_values(button_a, button_b)

pause()
Esempio n. 40
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()
from gpiozero import LED
from gpiozero.pins.pigpio import PiGPIOFactory
from gpiozero.tools import all_values
from signal import pause

factory3 = PiGPIOFactory(host='192.168.1.3')
factory4 = PiGPIOFactory(host='192.168.1.4')

led = LED(17)
button_1 = Button(17, pin_factory=factory3)
button_2 = Button(17, pin_factory=factory4)

led.source = all_values(button_1, button_2)

pause()
from gpiozero import LED
from signal import pause
from random import randint


def set_source():
    while True:
        yield randint(0, 1)


led = LED(18)
led.source_delay = 1
led.source = set_source()
# led.source = [1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

pause()
from gpiozero import LED
from signal import pause

led = LED(17)
led.source = [1, 0, 1, 1, 1, 0, 0, 1, 0, 1]

pause()