RPiVolumio
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
*RPi + Volumio [#f2bd8b59]
-Volumio の最新版ではなく、2.x のバージョンを入れた。
--DACのHATは使わずに、[[I2S [IIS] 入力DAC PCM5101A搭載32b...
-Logitech Media Server プラグイン を入れ、LMS のプラグイ...
らじるらじる関連のNHK局、Radikoの地方局、いくつかのコミュ...
-問題点
--起動して自動でラジオが鳴る設定がわからない
--選曲はLMSのWeb、終了時はVolumioのWebなのでめんどくさい...
---ただしこれでもDACの電源を落とす必要がある。
--2022年4月1日からコミュニティFMのグループ FM++, JCBA が...
**GPIOの基本 [#g8fa5262]
-%%RPiZeroW のコマンド gpio readall で嵌まった%% bullseys...
+-----+-----+---------+------+---+-Pi ZeroW-+---+------+...
| BCM | wPi | Name | Mode | V | Physical | V | Mode |...
+-----+-----+---------+------+---+----++----+---+------+...
| | | 3.3v | | | 1 || 2 | | |...
| 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | |...
| 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | |...
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 0 | IN |...
| | | 0v | | | 9 || 10 | 1 | IN |...
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 1 | ALT0 |...
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | |...
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN |...
| | | 3.3v | | | 17 || 18 | 0 | IN |...
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | |...
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN |...
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN |...
| | | 0v | | | 25 || 26 | 1 | IN |...
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN |...
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | |...
|* 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN |...
| 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | |...
|# 19 | 24 | GPIO.24 | ALT0 | 0 | 35 || 36 | 0 | IN |...
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | ALT0 |...
| | | 0v | | | 39 || 40 | 1 | ALT0 |...
+-----+-----+---------+------+---+----++----+---+------+...
| BCM | wPi | Name | Mode | V | Physical | V | Mode |...
+-----+-----+---------+------+---+-Pi ZeroW-+---+------+...
-#:I2Sインターフェース, *:Shutdown SW及びLED
-Name列を見ると GPIO.0 GPIO.2 ... とあるので「GPIOの番号...
BCMの番号がGPIOの番号だとわかる。 無駄時間を4時間ほど浪...
の仕方を練習したので無駄だと思わないことにした(笑)。
$ raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT
GPIO 1: level=1 fsel=0 func=INPUT
GPIO 2: level=1 fsel=0 func=INPUT
GPIO 3: level=1 fsel=0 func=INPUT
GPIO 4: level=1 fsel=0 func=INPUT
GPIO 5: level=1 fsel=0 func=INPUT
GPIO 6: level=1 fsel=0 func=INPUT
GPIO 7: level=1 fsel=0 func=INPUT
GPIO 8: level=1 fsel=0 func=INPUT
GPIO 9: level=0 fsel=0 func=INPUT
GPIO 10: level=0 fsel=0 func=INPUT
GPIO 11: level=0 fsel=0 func=INPUT
GPIO 12: level=0 fsel=0 func=INPUT
GPIO 13: level=0 fsel=0 func=INPUT
GPIO 14: level=0 fsel=0 func=INPUT
GPIO 15: level=1 fsel=0 func=INPUT
GPIO 16: level=0 fsel=0 func=INPUT
GPIO 17: level=0 fsel=0 func=INPUT
GPIO 18: level=0 fsel=0 func=INPUT
GPIO 19: level=0 fsel=0 func=INPUT
GPIO 20: level=0 fsel=0 func=INPUT
GPIO 21: level=0 fsel=0 func=INPUT
GPIO 22: level=0 fsel=0 func=INPUT
GPIO 23: level=0 fsel=0 func=INPUT
GPIO 24: level=0 fsel=0 func=INPUT
GPIO 25: level=0 fsel=0 func=INPUT
GPIO 26: level=0 fsel=0 func=INPUT
GPIO 27: level=0 fsel=0 func=INPUT
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=0 func=INPUT
GPIO 29: level=1 fsel=0 func=INPUT
GPIO 30: level=0 fsel=7 alt=3 func=CTS0
GPIO 31: level=0 fsel=7 alt=3 func=RTS0
GPIO 32: level=1 fsel=7 alt=3 func=TXD0
GPIO 33: level=1 fsel=7 alt=3 func=RXD0
GPIO 34: level=1 fsel=7 alt=3 func=SD1_CLK
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3
GPIO 40: level=0 fsel=1 func=OUTPUT
GPIO 41: level=1 fsel=1 func=OUTPUT
GPIO 42: level=0 fsel=0 func=INPUT
GPIO 43: level=0 fsel=4 alt=0 func=GPCLK2
GPIO 44: level=0 fsel=1 func=OUTPUT
GPIO 45: level=1 fsel=1 func=OUTPUT
BANK2 (GPIO 46 to 53):
GPIO 46: level=1 fsel=0 func=INPUT
GPIO 47: level=0 fsel=1 func=OUTPUT
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK
GPIO 49: level=1 fsel=4 alt=0 func=SD0_CMD
GPIO 50: level=1 fsel=4 alt=0 func=SD0_DAT0
GPIO 51: level=1 fsel=4 alt=0 func=SD0_DAT1
GPIO 52: level=1 fsel=4 alt=0 func=SD0_DAT2
GPIO 53: level=1 fsel=4 alt=0 func=SD0_DAT3
**GPIO 入力ピン 物理的に抵抗がなければ、GPIOの機能でプル...
-GPIO.setupのpull_up_down引数でプルアップ/ダウンを指定出...
GPIO.setmode(GPIO.BCM)
GPIO.setup(6, GPIO.IN, pull_up_down=GPIO.PUD_UP) #add Pu...
*shutdown処理 [#d541c4a4]
-bin/shutdown.py
# 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...
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)
-/etc/rc.local
--exit行より上に以下の行を追加
su pi /usr/bin/python -c "/home/volumio/bin/shutdown,py &"
終了行:
#contents
*RPi + Volumio [#f2bd8b59]
-Volumio の最新版ではなく、2.x のバージョンを入れた。
--DACのHATは使わずに、[[I2S [IIS] 入力DAC PCM5101A搭載32b...
-Logitech Media Server プラグイン を入れ、LMS のプラグイ...
らじるらじる関連のNHK局、Radikoの地方局、いくつかのコミュ...
-問題点
--起動して自動でラジオが鳴る設定がわからない
--選曲はLMSのWeb、終了時はVolumioのWebなのでめんどくさい...
---ただしこれでもDACの電源を落とす必要がある。
--2022年4月1日からコミュニティFMのグループ FM++, JCBA が...
**GPIOの基本 [#g8fa5262]
-%%RPiZeroW のコマンド gpio readall で嵌まった%% bullseys...
+-----+-----+---------+------+---+-Pi ZeroW-+---+------+...
| BCM | wPi | Name | Mode | V | Physical | V | Mode |...
+-----+-----+---------+------+---+----++----+---+------+...
| | | 3.3v | | | 1 || 2 | | |...
| 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | |...
| 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | |...
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 0 | IN |...
| | | 0v | | | 9 || 10 | 1 | IN |...
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 1 | ALT0 |...
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | |...
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN |...
| | | 3.3v | | | 17 || 18 | 0 | IN |...
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | |...
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN |...
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN |...
| | | 0v | | | 25 || 26 | 1 | IN |...
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN |...
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | |...
|* 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | IN |...
| 13 | 23 | GPIO.23 | IN | 0 | 33 || 34 | | |...
|# 19 | 24 | GPIO.24 | ALT0 | 0 | 35 || 36 | 0 | IN |...
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | ALT0 |...
| | | 0v | | | 39 || 40 | 1 | ALT0 |...
+-----+-----+---------+------+---+----++----+---+------+...
| BCM | wPi | Name | Mode | V | Physical | V | Mode |...
+-----+-----+---------+------+---+-Pi ZeroW-+---+------+...
-#:I2Sインターフェース, *:Shutdown SW及びLED
-Name列を見ると GPIO.0 GPIO.2 ... とあるので「GPIOの番号...
BCMの番号がGPIOの番号だとわかる。 無駄時間を4時間ほど浪...
の仕方を練習したので無駄だと思わないことにした(笑)。
$ raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT
GPIO 1: level=1 fsel=0 func=INPUT
GPIO 2: level=1 fsel=0 func=INPUT
GPIO 3: level=1 fsel=0 func=INPUT
GPIO 4: level=1 fsel=0 func=INPUT
GPIO 5: level=1 fsel=0 func=INPUT
GPIO 6: level=1 fsel=0 func=INPUT
GPIO 7: level=1 fsel=0 func=INPUT
GPIO 8: level=1 fsel=0 func=INPUT
GPIO 9: level=0 fsel=0 func=INPUT
GPIO 10: level=0 fsel=0 func=INPUT
GPIO 11: level=0 fsel=0 func=INPUT
GPIO 12: level=0 fsel=0 func=INPUT
GPIO 13: level=0 fsel=0 func=INPUT
GPIO 14: level=0 fsel=0 func=INPUT
GPIO 15: level=1 fsel=0 func=INPUT
GPIO 16: level=0 fsel=0 func=INPUT
GPIO 17: level=0 fsel=0 func=INPUT
GPIO 18: level=0 fsel=0 func=INPUT
GPIO 19: level=0 fsel=0 func=INPUT
GPIO 20: level=0 fsel=0 func=INPUT
GPIO 21: level=0 fsel=0 func=INPUT
GPIO 22: level=0 fsel=0 func=INPUT
GPIO 23: level=0 fsel=0 func=INPUT
GPIO 24: level=0 fsel=0 func=INPUT
GPIO 25: level=0 fsel=0 func=INPUT
GPIO 26: level=0 fsel=0 func=INPUT
GPIO 27: level=0 fsel=0 func=INPUT
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=0 func=INPUT
GPIO 29: level=1 fsel=0 func=INPUT
GPIO 30: level=0 fsel=7 alt=3 func=CTS0
GPIO 31: level=0 fsel=7 alt=3 func=RTS0
GPIO 32: level=1 fsel=7 alt=3 func=TXD0
GPIO 33: level=1 fsel=7 alt=3 func=RXD0
GPIO 34: level=1 fsel=7 alt=3 func=SD1_CLK
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3
GPIO 40: level=0 fsel=1 func=OUTPUT
GPIO 41: level=1 fsel=1 func=OUTPUT
GPIO 42: level=0 fsel=0 func=INPUT
GPIO 43: level=0 fsel=4 alt=0 func=GPCLK2
GPIO 44: level=0 fsel=1 func=OUTPUT
GPIO 45: level=1 fsel=1 func=OUTPUT
BANK2 (GPIO 46 to 53):
GPIO 46: level=1 fsel=0 func=INPUT
GPIO 47: level=0 fsel=1 func=OUTPUT
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK
GPIO 49: level=1 fsel=4 alt=0 func=SD0_CMD
GPIO 50: level=1 fsel=4 alt=0 func=SD0_DAT0
GPIO 51: level=1 fsel=4 alt=0 func=SD0_DAT1
GPIO 52: level=1 fsel=4 alt=0 func=SD0_DAT2
GPIO 53: level=1 fsel=4 alt=0 func=SD0_DAT3
**GPIO 入力ピン 物理的に抵抗がなければ、GPIOの機能でプル...
-GPIO.setupのpull_up_down引数でプルアップ/ダウンを指定出...
GPIO.setmode(GPIO.BCM)
GPIO.setup(6, GPIO.IN, pull_up_down=GPIO.PUD_UP) #add Pu...
*shutdown処理 [#d541c4a4]
-bin/shutdown.py
# 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...
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)
-/etc/rc.local
--exit行より上に以下の行を追加
su pi /usr/bin/python -c "/home/volumio/bin/shutdown,py &"
ページ名: