概要

Raspberry Pi を使って ビデオ再生装置を作りました。

下の画像にあるように、緑のボタン8個と青のボタン8個で、あらかじめこの装置に記憶している動画や、USBメモリの動画を選択、再生します。

その他のボタンは、音量調整、動画再生スピードの変更、一時停止/再生、停止、電源ON/OFFです。

キーボードやマウスを使わないで操作することが可能です。

外観

23個のボタンが載った箱の後ろには、Raspberry Pi3とACアダプタ、テーブルタップを配置しています。

Raspberry Pi3の40ピンのGPIO信号は、リボンケーブで箱の中に入り、各ボタンに接続されています。

各ボタンの配置/名称などは、下のソフトウエアソースコードの一番上に記載しています。

ハードウエア

下の回路図のようにRaspberry Pi3とボタン23個、LEDと抵抗のみの簡単な回路です。

23個のボタンは、Raspberry PiのGPIOに接続されています。

LEDと抵抗もGPIOに接続し電源がONの時、点灯します。。

回路図の下に使用した部品の画像を載せます。

FANは、Raspberry Piを冷却するために、ケースを加工して取り付けています。

また、このFANは5V仕様ですが、Raspberry Piの3.3Vに接続し、ゆっくり回しています。

Raspberry_Pi3_kamakura

Raspberry Pi3 GPIO

3.3V PWR125V PWR
GPIO2(SDA1,I2C)345V PWR
GPIO3(SCL1,I2C)56GND
GPIO4(GPIO_GCLK)78UART-TX
GND910UART-RX
GPIO17(GPIO_GEN0)1112GPIO18(GPIO_GEN1)
GPIO27(GPIO_GEN2)1314GND
GPIO22(GPIO_GEN3)1516GPIO23(GPIO_GEN4)
3.3V PWR1718GPIO24(GPIO_GEN5)
GPIO10(SPIO_MOSI)1920GNE
GPIO9(SPIO_MISO)2122GPIO25(GPIO_GEN6)
GPIO11(SPIO_CLK)2324GPIO8(SPI_CE0_N)
GND2526GPIO7(SPI_CE1_N)
2728
GPIO52930GND
GPIO63132GPIO12
GPIO133334GND
GPIO193536GPIO16
GPIO263738GPIO20
GND3940GPIO21

電源スイッチ(赤ボタン)

ソフトウエアとして /boot/config,txtファイルに dtoverlay=gpio-shutdown と一行追加する。

電源スイッチは、上のRaspberry PI3のGPIOの5番ピン(GPIO3)と6番ピン(GND)間にスイッチを入れる。

エディタとして標準で添付されているmousepadを使用すると

$ sudo mousepad/boot/config.txt でファイルを開いてください。

Raspberry Pi3のセッティング

  • Raspberry Pi ImagerでRaspberry Pi OSをSDカードに書く(Busterを書きました)。
  • このSDカードをRaspberry Pi3に装着する。
  • Raspberry Pi3にディスプレイ、キーボードマウスを接続する。
  • Raspberry Pi3のGPIOに上のハードウエアを接続する。
  • Raspberry Pi3の電源ON しばらく待つ。
  • 国、言語、タイムゾーンをjapan,japanese,tokyoにセットする。
  • [change password]は何もしないでNextを クリック
  • [setup screen]はディスプレイで句を枠が出ていればチェックを入れてNextをクリック
  • [select WiFi Netwark]はSkipをクリック・・・有線で接続
  • [update software]はNextをクリック しばらく待つ
  • [setup complete]で再起動を行う
  • あkベガ身を好みの画像にする。設定/外観の設定/デスクトップタブ/画像で選択する。
  • 電源On時 IP/パスワードなしで立ち上がるようにする。
  • ターミナルを立ち上げ $sudo raspi-configでコンフィグレーションを開く
  • 1 Syetem Option , S5 Boot/Auto Login , B4 Desktop Auto Login を選択<了解>
  • <finish> Would you like to reboot now ? <はい>
  • 動画再生アプリケーションomxplayerをインストール ターミナルから $sudo apt-get install omxplayer
  • 静止画表示アプリケーションfbiをインストール ターミナルから $sudo apt-get install fbi
  • 動画ファイルを /home/pi/Vieos に格納する
  • 静止画ファイルを /home/pi/Pictures に格納する
  • プログラム(kamakura1.py)を /home/pi に格納する
  • 電源On時 プログラムが自動起動するようにする。・・・下記の「ソフトウエアの自動起動」を参照

ソフトウエアの自動起動(電源ONでソフトウエアを起動させる)

電源ONで、下記のソースコード(kamakura1.py)のソフトウエアを起動させる方法です。

/etc/rc.local ファイルの最後にexit0とあるので、その手前に起動時実行したいコマンドを書く。

1) $sudo mousepad/etc/rc.local でファイルを開く

2) python3 /home/pi/kamakura1.py & をexit0の前に書く

3) mousepadで保存する

ソフトウエア

Raspberry PiのソフトウエアはPythonで作成しました。

初めてのPython でわからないことが多くありましたが、何とか動かすことができました。

動画再生には、omxplayerを使用しました。

omxplayerは、GUIなしでコマンドだけで再生指示できるメディアプレイヤーです。

私の環境では、omxplayerは、ビデオ再生を制御するコマンドが用意されていますが、例えばビデオ再生時に速度UPなどのコマンドを受け付け、正常に動作しますが、停止時にこのコマンドを出力すると動作がおかしくなります。

これから、omxplayerが停止中か再生中かのステータスを見てビデオ制御コマンドをコントロールしています。

具体的には、緑1~8ボタン、または青1~8ボタンが押されたときは、omxplayerが再生中の時は、停止させてから、各ボタンに割り当てられているビデオの再生を行っています。停止中は、すぐに再生を始めます。

このソフトウエアでは、再生中、停止中の2つの変数を使って全体を制御しています。

omxplayerコマンド

  • q:omxplayerを終了する
  • 1:再生スピードを遅くする
  • 2:再生スピードを速くする
  • <:巻き戻し
  • >:早送り
  • p/スペース:一時停止、解除
  • ←:30秒巻き戻し
  • →:30秒早送り
  • ↓:10分巻き戻し
  • ↑:10分早送り
  • ー:音量を下げる
  • +/=:恩賞を上げる
  • —refrsh:解像度をビデオに合わせる
  • –loop:ループ再生
  • –no-osd:メッセージを非表示
  • -0 adevデバイス オーディオ出力デバイス hdmi/local(アナログ出力)/both
  • –orientaion 180 180度回転

例) omxplayer -0 hdmi Video/filename.mp4 –loop –no osd

Videoフォルダ内のfilename.mp4ファイルをhdmi出力(音声)で、メッセージ非表示、ループ嗄声をする

ソースファイル(kamakura1.py)・・・home/piに保存する。ビデオファイルはhome/pi/Videoに保存する。

# ビデオ再生 プログラム1
#**************************************[ビデオ・コンソール]************************************************
#   [音・大 ]   [音・小]    [速度up]    [速度down]  [pause]     [stop]      [LED]       [power]
#   GPIO18      GPIO23      GPIO9       GPIO8       GPIO6       GPIO19      GPIO2       GPIO3
#   12pin       16pin       21pin       24pin       31pin       35pin       3pin        5pin
#
#   [青1]      [青2]      [青3]      [青4]      [青5]      [青6]      [青7]      [青8]
#   GPIO17      GPIO22      GPIO10      GPIO11      GPIO5       GPIO13      GPIO26      GPIO21
#   11pin       15pin       19pin       23pin       29pin       33pin       37pin       40pin
#
#   [緑1]      [緑2]      [緑3]      [緑4]      [緑5]      [緑6]      [緑7]      [緑8]
#   GPIO4       GPIO27      GPIO24      GPIO25      GPIO7       GPIO12      GPIO16      GPIO20
#   7pin        13pin       18pin       22pin       26pin       32pin       36pin       38pin
#***********************************************************************************************************

#**************** [ビデオ・ファイル名]と[ビデオ再生ボタン(緑1~8、青1~7)]を紐付ける *********************
ビデオファイル = {\
"緑1":"ビデオ緑1.mp4",\
"緑2":"ビデオ緑2.mp4",\
"緑3":"ビデオ緑3.mp4",\
"緑4":"ビデオ緑4.mp4",\
"緑5":"ビデオ緑5.mp4",\
"緑6":"ビデオ緑6.mp4",\
"緑7":"ビデオ緑7.mp4",\
"緑8":"ビデオ緑8.mp4",\
"青1":"ビデオ青1.mp4",\
"青2":"ビデオ青2.mp4",\
"青3":"ビデオ青3.mp4",\
"青4":"ビデオ青4.mp4",\
"青5":"ビデオ青5.mp4",\
"青6":"ビデオ青6.mp4",\
"青7":"ビデオ青7.mp4"}
#************************ 再生したいファイル名を"ファイル名.mp4"に書く **************************************

import subprocess
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)                          #GPIO番号で指示
                                                # raspberry pi GPIOの2ピンを出力に、その他のピンは、すべてプルアップ入力とする
GPIO.setup(2,GPIO.OUT)                          #GPIO2(3ピン)   出力  LED 
GPIO.setup(3,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #GPIO3(5ピン)   入力 プルアップ  電源スイッチ
GPIO.setup(4,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #GPIO4(7ピン)   入力 プルアップ  画像:緑1
GPIO.setup(5,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #GPIO5(29ピン)  入力 プルアップ  画像:青5
GPIO.setup(6,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #GPIO6(31ピン)  入力 プルアップ  画像:停止・解除(pause:p)
GPIO.setup(7,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #GPIO7(26ピン)  入力 プルアップ  画像:緑5
GPIO.setup(8,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #GPIO8(24ピン)  入力 プルアップ  画像:再生スピードを遅くする(speed_down:1)
GPIO.setup(9,GPIO.IN,pull_up_down=GPIO.PUD_UP)  #GPIO9(21ピン)  入力 プルアップ  画像:再生スピードを早くする(speed_up:2)
GPIO.setup(10,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO10(19ピン) 入力 プルアップ  画像:青3
GPIO.setup(11,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO11(23ピン) 入力 プルアップ  画像:青4
GPIO.setup(12,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO12(32ピン) 入力 プルアップ  画像:緑6
GPIO.setup(13,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO13(33ピン) 入力 プルアップ  画像:青6
GPIO.setup(16,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO16(36ピン) 入力 プルアップ  画像:緑7
GPIO.setup(17,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO17(11ピン) 入力 プルアップ  画像:青1
GPIO.setup(18,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO18(12ピン) 入力 プルアップ  音量:音・大(audio_up:+)
GPIO.setup(19,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO19(35ピン) 入力 プルアップ  画像:再生を停止する(stop:q)
GPIO.setup(20,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO20(38ピン) 入力 プルアップ  画像:緑8
GPIO.setup(21,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO21(40ピン) 入力 プルアップ  画像:青8(USB)繰り返し再生
GPIO.setup(22,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO22(15ピン) 入力 プルアップ  画像:青2
GPIO.setup(23,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO23(16ピン) 入力 プルアップ  音量:音・小(audio_down:-)
GPIO.setup(24,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO24(18ピン) 入力 プルアップ  画像:緑3
GPIO.setup(25,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO25(22ピン) 入力 プルアップ  画像:緑4
GPIO.setup(26,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO26(37ピン) 入力 プルアップ  画像:青7
GPIO.setup(27,GPIO.IN,pull_up_down=GPIO.PUD_UP) #GPIO27(13ピン) 入力 プルアップ  画像:緑2

#power = 3                                      #GPIO3 (5ピン)  入力  パワースイッチ
led = 2                                         #GPIO2 (3ピン)  出力  LED

green_button1 = 4
green_button2 = 27
green_button3 = 24
green_button4 = 25
green_button5 = 7
green_button6 = 12
green_button7 = 16
green_button8 = 20

blue_button1 = 17
blue_button2 = 22
blue_button3 = 10
blue_button4 = 11
blue_button5 = 5
blue_button6 = 13
blue_button7 = 26
blue_button8 = 21                                    #GPIO21(40ピン) 入力 プルアップ  画像:(USB)繰り返し再生

stop = 19
pause = 6
speed_up = 9
speed_down = 8
audio_up = 18
audio_down = 23

再生中 = 0                                      #再生中のとき1

GPIO.output(led,0)                                                                                  #LED点灯
wellcome = "sudo fbi -T 1 -d/dev/fb0 -noverbose /home/pi/Pictures/kamakura.png"                     #Wellcome静止画を設定する
proc=subprocess.Popen(wellcome,shell=True,stdin=subprocess.PIPE)                                    #Wellcome静止画を表示する

while True:
    #------ ビデオ再生 緑1〜8ボタン再生処理 ------
    if GPIO.input(green_button1) == 0 :                                                      #緑1ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑1"]     #緑1動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(green_button2) == 0 :                                                    #緑2ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑2"]     #緑2動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(green_button3) == 0 :                                                    #緑3ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑3"]     #緑3動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(green_button4) == 0 :                                                    #緑4ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑4"]     #緑4動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(green_button5) == 0 :                                                    #緑5ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑5"]     #緑5動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(green_button6) == 0 :                                                    #緑6ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑6"]     #緑6動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(green_button7) == 0 :                                                    #緑7ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑7"]     #緑7動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(green_button8) == 0 :                                                    #緑8ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["緑8"]     #緑8動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    #------ ビデオ再生 青1〜7ボタン再生処理 ------
    elif GPIO.input(blue_button1) == 0 :                                                     #青1ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["青1"]     #青1動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(blue_button2) == 0 :                                                     #青2ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["青2"]     #青2動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(blue_button3) == 0 :                                                     #青3ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["青3"]     #青3動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(blue_button4) == 0 :                                                     #青4ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["青4"]     #青4動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(blue_button5) == 0 :                                                     #青5ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["青5"]     #青5動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(blue_button6) == 0 :                                                     #青6ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["青6"]     #青6動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    elif GPIO.input(blue_button7) == 0 :                                                     #青7ボタンが押されているか?
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both /home/pi/Videos/" + ビデオファイル["青7"]     #青7動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)
    #------ ビデオ再生 青8ボタン(USB)繰り返し再生処理 ------
    elif GPIO.input(blue_button8) == 0:                                                      #青8(USB)再生
        if 再生中 == 1 :                                                                     #もし再生されている場合は、動画を停止する
            proc.stdin.write(b"q")
            proc.stdin.flush()
        command = "omxplayer --refresh -o both --loop /media/pi/*/*.mp4"                     #USB動画を再生する
        proc=subprocess.Popen(command,shell=True,stdin=subprocess.PIPE)
        再生中 = 1
        time.sleep(1)

    #------ 一時停止/解除ボタン 処理 ------
    elif 再生中 == 1 and GPIO.input(pause) == 0 :                                 #一時停止/解除:p
        proc.stdin.write(b"p")
        proc.stdin.flush()
        停止中 = 1
        time.sleep(1)
    #------ 停止ボタン 処理 ------
    elif 再生中 == 1 and GPIO.input(stop) == 0 :                                  #停止:q
        proc.stdin.write(b"q")
        proc.stdin.flush()
        停止中 = 0
        time.sleep(1)
    #------ 再生速度upボタン 処理 ------
    elif 再生中 == 1 and GPIO.input(speed_up) == 0 :                              #再生速度up:2
        proc.stdin.write(b"2")
        proc.stdin.flush()
        time.sleep(1)
    #------ 再生速度downボタン 処理 ------
    elif 再生中 == 1 and GPIO.input(speed_down) == 0 :                            #再生速度down:1
        proc.stdin.write(b"1")
        proc.stdin.flush()
        time.sleep(1)
    #------ 音・大ボタン 処理 ------
    elif 再生中 == 1 and GPIO.input(audio_up) == 0 :                              #音量:大:+
        proc.stdin.write(b"+")
        proc.stdin.flush()
        time.sleep(1)
    #------ 音・小ボタン 処理 ------
    elif 再生中 == 1 and GPIO.input(audio_down) == 0 :                            #音量:小:-
        proc.stdin.write(b"-")
        proc.stdin.flush()
        time.sleep(1)
    #------ 再生終了検知、静止画表示 処理 ------
    else :                                                                          #ビデオ再生が終了したかを調べる
        if 再生中 == 1 :
            状態 = str(subprocess.check_output("ps"))                               #プロセスの状態をチェック
            if "omxplayer" in 状態 :                                                #[再生ー再生]
                再生中 = 1
            else :                                                                  #[再生ー停止]
                再生中 = 0                                                          #ビデオ再生が終了したら[再生中=0]にする
                proc=subprocess.Popen(wellcome,shell=True,stdin=subprocess.PIPE)    #Wellcome静止画を表示する
                time.sleep(1)                                                       #1秒 休む
        else :
            状態 = str(subprocess.check_output("ps"))                               #プロセスの状態をチェック
            if "omxplayer" in 状態 :                                                #[停止ー再生]
                再生中 = 1
                proc.stdin.write("sudo pkill fbi")                                  #fbi を停止
                proc.stdin.flush()
            else :                                                                  #[停止ー停止]
                再生中 = 0

新しいビデオファイルの追加

ビデオ再生装置に新しいビデオファイルを追加する方法を説明します。

追加するビデオファイルはmp4形式です。

このファイルを /home/pi/Videos に保存します。下記に具体的に説明します。

  • 新しいビデオファイルをUSBメモリに保存します。
  • このUSBメモリをRaspberryPi3のUSBコネクタに挿入する。
  • 「リムーバルメディアの挿入」ダイアログが出る。
  • 「ファイルマネージャーで開く」 OKをクリック。
  • USBメモリ内の画像ファイルが見える。
  • 左側にフォルダ一覧が見え、ここで▷home/▷piをクリックしVideosが見えるようにする。
  • 右側のフォルダ内で所望するファイルを左側のVideosにドラックドロップする。
  • 左側のVideosをクリックすると、ドラックドロップしたファイルが移動しているのが確認できる。

新しいビデオをボタンに設定する

新しいビデオファイルをビデオ再生装置のボタンに設定する方法を説明します。

設定するソフトウエアは /home/pi/kamakura1.py である。 

以下 具体的に説明する。

  • ソフトウエアを作成するエディタに「Mu」を使用する。
  • イチゴマーク/プログラミング/mu をクリック。
  • 新しいビデオをボタンに設定するには、ソフトウエアの18行目~32行目を変更する。
  • ここは、各ボタンに対応するビデオファイルを定義しています。
  • ビデオファイル = {\
  • 18行 ”緑1″:”ビデオ緑1.mp4″,\  緑1のボタンには 「ビデオ緑1.mp4」ファイルが設定されています。
  • 19行 ”緑2″:”ビデオ緑2.mp4″,\  緑2のボタンには 「ビデオ緑2.mp4」ファイルが設定されています。
  • 20行 ”緑3″:”ビデオ緑3.mp4″,\  緑3のボタンには 「ビデオ緑3.mp4」ファイルが設定されています。
  • 21行 ”緑4″:”ビデオ緑4.mp4″,\  緑4のボタンには 「ビデオ緑4.mp4」ファイルが設定されています。
  • 22行 ”緑5″:”ビデオ緑5.mp4″,\  緑5のボタンには 「ビデオ緑5.mp4」ファイルが設定されています。
  • 23行 ”緑6″:”ビデオ緑6.mp4″,\  緑6のボタンには 「ビデオ緑6.mp4」ファイルが設定されています。
  • 24行 ”緑7″:”ビデオ緑7.mp4″,\  緑7のボタンには 「ビデオ緑7.mp4」ファイルが設定されています。
  • 25行 ”緑8″:”ビデオ緑8.mp4″,\  緑8のボタンには 「ビデオ緑8.mp4」ファイルが設定されています。
  • 26行 ”青1″:”ビデオ青1.mp4″,\  青1のボタンには 「ビデオ青1.mp4」ファイルが設定されています。
  • 27行 ”青2″:”ビデオ青2.mp4″,\  青2のボタンには 「ビデオ青2.mp4」ファイルが設定されています。
  • 28行 ”青3″:”ビデオ青3.mp4″,\  青3のボタンには 「ビデオ青3.mp4」ファイルが設定されています。
  • 29行 ”青4″:”ビデオ青4.mp4″,\  青4のボタンには 「ビデオ青4.mp4」ファイルが設定されています。
  • 30行 ”青5″:”ビデオ青5.mp4″,\  青5のボタンには 「ビデオ青5.mp4」ファイルが設定されています。
  • 31行 ”青6″:”ビデオ青6.mp4″,\  青6のボタンには 「ビデオ青6.mp4」ファイルが設定されています。
  • 32行 ”青7″:”ビデオ青7.mp4″}  青7のボタンには 「ビデオ青7.mp4」ファイルが設定されています。
  • ボタン名と位置は、上の「ビデオコンソール」を見てください
  • 青8のボタンはUSBメモリに割り当てているためビデオファイルの設定はできません。
  • 各ボタンのビデオの割り当ては上記18行から32行もファイル名のところを変更します。
  • 例えばテスト.mp4ファイルを緑1のボタンに割り当てたい場合は
  • 18行 ”緑1″:”テスト.mp4″,\   のようにします。
  • 各フィル名は、/home/pi/Video 内の前と同一である必要があります。

費用

品名型名販売店単価(円)個数
ボードコンピュータRaspberry Pi3(M-11425)秋月電子4800
Raspberry Pi3用ケースP-14069秋月電子4001
ヒートシンクM-16775秋月電子1801
ファン60mm角 5V(P-16828)秋月電子2801
SDカード32GB(S-15844)秋月電子7801
リボンケーブル40p(C-08931)秋月電子2001
ACアダプタ5V(M-10507)秋月電子11001
ゲームスイッチP-07248 他秋月電子345023
木材1800*60*12mmコーナン11881
テーブルタップ3口 スイッチつきダイソー3301

合計金額 12708円 (450mm*300mm木材、ペンキなどは含まれません)