minosukeのアイコン画像
minosuke 2020年05月03日作成 (2020年05月03日更新)
製作品 製作品 閲覧数 754
minosuke 2020年05月03日作成 (2020年05月03日更新) 製作品 製作品 閲覧数 754

外部SW押すだけでパソコンの動画フォルダを選択して連続再生させる

概要

手の不自由な友人のために、外部SW押すだけでパソコンの動画フォルダを選んで連続再生できるようなシステムを作りました。

STM32マイコンと Tera Term マクロ、動画再生に smplayer を使いました。

*** SW 押した時の動作 ***

・SW1 押すと・・・C:_AV2\DATA\ にある動画を連続再生
・SW2 押すと・・・C:_AV2\DATA2\ にある動画を連続再生
・SW3 押すと・・・C:_AV2\DATA3\ にある動画を連続再生
・SW4 押すと・・・C:_AV2\DATA4\ にある動画を連続再生

構成

・パソコン側: 通信ソフト TeraTerm 4.95 動画再生ソフト smplayer
・マイコン:STM32F103C8T6
・その他:ブレッドボード・ワイヤー・タクトSW

配線
キャプションを入力できます

マイコン側のソフト

押したSWにより 0~4 の数値をパソコンへ送ります。

void setup() { Serial.begin(9600); pinMode(22,INPUT_PULLUP); pinMode(23,INPUT_PULLUP); pinMode(24,INPUT_PULLUP); pinMode(25,INPUT_PULLUP); } void loop() { if (digitalRead(22)) Serial.println("1"); else if (digitalRead(23)) Serial.println("2"); else if (digitalRead(24)) Serial.println("3"); else if (digitalRead(25)) Serial.println("4"); else Serial.println("0"); }

パソコン側のソフト

パソコンを起動すると、Startup にある TeraTerm マクロを実行します。
マイコンから 0~4 の数字を受取り、その数値より再生するフォルダを変えて動画を再生します。

① _START.ttl ファイルに以下を記述

(注意)
・COM_PORT 番号は必要の応じて変更する
・再生する動画は C:_AV2\DATA 等に入っていることを想定

COM_PORT = '6' BAUDRATE = '9600' COMMAND = '/C=' strconcat COMMAND COM_PORT strconcat COMMAND ' /BAUD=' strconcat COMMAND BAUDRATE connect COMMAND :L1 val=0 while val=0 recvln str2int val inputstr endwhile if val=1 exec 'C:\_AV2\smplayer.exe C:\_AV2\DATA' if val=2 exec 'C:\_AV2\smplayer.exe C:\_AV2\DATA2' if val=3 exec 'C:\_AV2\smplayer.exe C:\_AV2\DATA3' if val=4 exec 'C:\_AV2\smplayer.exe C:\_AV2\DATA4' pause 3 goto L1 end

② Tera Term の起動で ①のマクロファイルを指定して起動するショートカットを作成

プロパティ-リンク先を以下にする

C:\Program Files (x86)\teraterm\ttpmacro.exe C:_AV2_START.ttl

③ ② をスタートアップフォルダ(以下)へ登録する

C:\Users\△△\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

ログインしてコメントを投稿する