+-----+-----+---------+------+---+-Pi ZeroW-+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | | | 3.3v | | | 1 || 2 | | | 5v | | #| | 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5v | | *| | 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0v | | #| | 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 0 | IN | TxD | 15 | 14 | | | | 0v | | | 9 || 10 | 1 | IN | RxD | 16 | 15 | | 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 1 | ALT0 | GPIO. 1 | 1 | 18 #| | 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | | | 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 *| | | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 | | 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | | | 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 | | 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 | | | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 | | 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 | | 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | *| |* 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN | GPIO.26 | 26 | 12 | | 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | | 0v | | | |# 19 | 24 | GPIO.24 | ALT0 | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 | | 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | ALT0 | GPIO.28 | 28 | 20 | | | | 0v | | | 39 || 40 | 1 | ALT0 | GPIO.29 | 29 | 21 #| +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+ | BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM | +-----+-----+---------+------+---+-Pi ZeroW-+---+------+---------+-----+-----+
GPIO.setmode(GPIO.BCM) GPIO.setup(6, GPIO.IN, pull_up_down=GPIO.PUD_UP) #add PullUp
# coding: utf-8 import RPi.GPIO as GPIO import time import subprocess PIN_BUTTON = 6 # GPIO6 PIN_LED = 23 # GPIO23 WAIT_SEC = 0.1 LONG_PUSH_SEC = 3 LED_FLASH_PERIOD = 0.3 LED_FLASH_COUNT = 10 # Pin Configration GPIO.setmode(GPIO.BCM) GPIO.setup(PIN_BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_UP) #add PullUp GPIO.setup(PIN_LED, GPIO.OUT) # Detect Button Action while True: cnt = 0 long_pushed = False while GPIO.input(PIN_BUTTON) == GPIO.LOW: GPIO.output(PIN_LED, GPIO.HIGH) # LED点灯 time.sleep(WAIT_SEC) cnt += 1 if cnt > 1 / WAIT_SEC * LONG_PUSH_SEC: long_pushed = True break GPIO.output(PIN_LED, GPIO.LOW) # LED消す if long_pushed: # LED Blink for i in range(LED_FLASH_COUNT): GPIO.output(PIN_LED, GPIO.HIGH) time.sleep(LED_FLASH_PERIOD / 2.) GPIO.output(PIN_LED, GPIO.LOW) time.sleep(LED_FLASH_PERIOD / 2.) break else: time.sleep(WAIT_SEC) # ピン設定解除 GPIO.cleanup([PIN_BUTTON, PIN_LED]) # PowerOff subprocess.call(["sudo poweroff"], shell=True)
su pi /usr/bin/python -c "/home/volumio/bin/shutdown,py &"