テンキーで操作するラズパイラジオ

# はじめに
●テンキーで操作するラズパイラジオ
ラズパイで使用可能なテンキー（エレコムのTCM011BK）を使用してます。
![スクリーンショット 2022-06-06 202155.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/222582/d8422733-d623-da55-84f3-c49665fe41e6.jpeg)

# 環境
ラズパイZEROで構築しています。
radiko.shはhttps://github.com/jg1uaa/radish-play と同じものです。
//2022-6-14追加
60分タイマー（60分後に停止）を追加する場合はtimer.shを下記の行に追加してください。
if event.code !=69:
    print(f"{event.code} - DOWN")
    subprocess.run("killall ffplay mpv >> /dev/null &", shell=True)
    subprocess.run("/home/pi/timer.sh >> /dev/null &", shell=True) #タイマー追加
//2022-8-28
プログラムで放送大学以降がずれていたので修正しました。

■timer.sh
killall sleep
sleep 3600
killall ffplay mpv

# テンキーで操作するラズパイラジオプログラム(read_kbd.py)

```Python
# Enterキーで再生停止です
# NumLock ONでもOFFでも同じラジオ局を割り当てています
# NumLock ON時のコードです。（）内はOFF時のコードです。
# Tab コード:15(15)
# /   コード:98(98)
# *   コード:55(55)
# BS  コード:14(14)
# 7   コード:71(102)
# 8   コード:72(103)
# 9   コード:73(104)
# -   コード:74(74)
# 4   コード:75(105)
# 5   コード:76(なし)
# 6   コード:77(106)
# +   コード:78(78)
# 1   コード:79(107)
# 2   コード:80(108)
# 3   コード:81(109)
# 0   コード:82(110)
# 00  コード:82(なし)
# .   コード:83(111)
# Enter  コード:96(96)


import evdev
import subprocess

DEVICE_PATH = "/dev/input/event0" #接続デバイスは確認してください
    
def main():
    device = evdev.InputDevice(DEVICE_PATH)

    for event in device.read_loop():
        if event.type == evdev.ecodes.EV_KEY:
            if event.value == 1:
                if event.code !=69: # 再生停止
                    print(f"{event.code} - DOWN")
                    subprocess.run("killall ffplay mpv >> /dev/null &", shell=True)

                if event.code == 15: # TBSラジオ
                    subprocess.run("/home/pi/radiko.sh -t radiko -s TBS >> /dev/null &", shell=True)
                elif event.code == 98: # 文化放送
                    subprocess.run("/home/pi/radiko.sh -t radiko -s QRR >> /dev/null &", shell=True)
                elif event.code == 55: # ニッポン放送
                    subprocess.run("/home/pi/radiko.sh -t radiko -s LFR >> /dev/null &", shell=True)
                elif event.code == 14: # ラジオ日本
                    subprocess.run("/home/pi/radiko.sh -t radiko -s JORF >> /dev/null &", shell=True)
                elif event.code == 71 or event.code == 102: # BAYFM78
                    subprocess.run("/home/pi/radiko.sh -t radiko -s BAYFM78 >> /dev/null &", shell=True)
                elif event.code == 72 or event.code == 103: # NACK5
                    subprocess.run("/home/pi/radiko.sh -t radiko -s NACK5 >> /dev/null &", shell=True)
                elif event.code == 73 or event.code == 104: # TOKYO FM
                    subprocess.run("/home/pi/radiko.sh -t radiko -s FMT >> /dev/null &", shell=True)
                elif event.code == 74: # J-WAVE
                    subprocess.run("/home/pi/radiko.sh -t radiko -s FMJ>> /dev/null &", shell=True)
                elif event.code == 75 or event.code == 105: # FMヨコハマ
                    subprocess.run("/home/pi/radiko.sh -t radiko -s YFM >> /dev/null &", shell=True)
                elif event.code == 76: # 放送大学
                    subprocess.run("/home/pi/radiko.sh -t radiko -s HOUSOU-DAIGAKU >> /dev/null &", shell=True)
                elif event.code == 77 or event.code == 106: # InterFM897
                    subprocess.run("/home/pi/radiko.sh -t radiko -s INT >> /dev/null &", shell=True)
                elif event.code == 78: # 茨城放送
                    subprocess.run("/home/pi/radiko.sh -t radiko -s IBS >> /dev/null &", shell=True)
                elif event.code == 79 or event.code == 107: # NHK第一
                    subprocess.run("/home/pi/radiko.sh -t radiko -s JOAK >> /dev/null &", shell=True)
                elif event.code == 80 or event.code == 108: # NHK第二
                    subprocess.run("/home/pi/nhk_2.sh", shell=True)
                elif event.code == 81 or event.code == 109: # NHK FM
                    subprocess.run("/home/pi/radiko.sh -t radiko -s JOAK-FM >> /dev/null &", shell=True)
                elif event.code == 82 or event.code == 110: # NIKKEI1
                    subprocess.run("/home/pi/radiko.sh -t radiko -s RN1 >> /dev/null &", shell=True)
                elif event.code == 83 or event.code == 111: # NIKKEI2
                    subprocess.run("/home/pi/radiko.sh -t radiko -s RN2 >> /dev/null &", shell=True)
    return


if __name__ == "__main__":
    main()
```
nhk_2.sh
```
#!/bin/sh
#
   
mpv https://radio-stream.nhk.jp/hls/live/2023501/nhkradiruakr2/master.m3u8 >> /dev/null &
```