PageUpdate 2023/11/19 Ver3.1 Release
9年ぶりのアップデート!
USB-IOを使ったプログラムチャイムが生まれ変わりました。
今回、C#を使って全面的にリメイクし、チャイムや音楽ファイルを流す時刻などはExcelのブックで管理するようにしました。これで担当者の苦労がだいぶ軽減できると考えています。
USB-IOは昔のものでもOkなのでシステムを入れ替えるだけで済みます。また、USB-IOにリレー駆動のユニットを付け、3Dプリンタで作った枠に入れてみました。
今回はVisualStudio2019で開発し、ClosedXML、NAudio、HidLibrary、USBIO2Deviceなど、多くのライブラリなどを使わせていただきました。
Ver3.1の変更点はchime.mp3という音源ファイルをプログラムと同じフォルダに用意するとリソースではなくその音源をチャイムとして再生できるようにしました。
先ず、作ったアプリを紹介します。
起動時はこんな感じで、ExcelBookを読み込むと次のようになりいくつかのボタンが有効になります。
実行時はこんな感じで、実行中のボタンが赤くなります。振鈴時刻になると停止ボタンの右の四角が赤くなります。
読み込んだExcelBookはこんな感じです。先ずはシート名が「タイムテーブル」は・・
A列は日付、B列は備考欄でこれは読み込みません。C列以降がチャイムを鳴らす時刻です。2行目のセルに色が付いていますが薄いオレンジの列が時刻だけの設定、薄い青の列が時刻とその時に流す音楽やアナウンスが入った音源番号になっています。音源番号を指定していない場合はチャイムが鳴ります。AJ列までが読み込み範囲です。
シート名が「設定」は・・・
「設定」シートのA列はタイムテーブルのカレンダーの休日に色をつけるためのものです。D列は音源ファイルを指定するものでこのあたりの関連性は何となく理解できると思います。例ですので、再生させたいな音源はプログラムと同じフォルダにコピーしておいてください。MP3でもWAVでも再生できます。(それ以外のファイルは確認していません)
プログラムの他のボタンについて簡単に説明します。
「ファイル指定・読み込み」ボタンを押してタイムテーブルのExcelBookを指定します。これは必須ですが、チャイムを強制的に鳴らすだけなら必要ありません。
読み込むと、左側のテキストボックス(白い部分)にその日の振鈴の状況が表示されます。例では8時30分と8時35分に音源1、すなわちチャイムが流れます。今回のプログラムではチャイム音源はリソースとして内包されています。どうしても別のチャイム音源を鳴らしたい場合は、その音源をChime.mp3というファイル名でプログラムと同じフォルダに保存してください。(Ver3.1で修正)音源リストに登録し番号指定をする必要がありますが、その数は限られています。リソースを変更したい場合はプログラムを修正する必要があります。
「チェック」ボタンを押すと読み込んだExcelBookの時刻入力をチェックします。半角で入力できていなかったりコロンとセミコロンを間違えていたり、セルに空白文字が入っていたりしないかを確認します。ミス入力があると左側のテキストボックスに間違えたセルのおよその場所が表示されます。表示がなくなるまでチェックを繰り返します。(一度に1か所しか発見できません)
「実行」ボタンを押すと設定時刻にチャイムや音源を再生します。イヤホン端子の出力を放送用アンブの音声入力に接続してもきます。このプログラムはタイムテーブルが設定されたExcelbookを、夜中の0時2分に読み込み、その日に設定された振鈴をメモリーにセットします。同時に左側のテキストボックスに設定が表示されます。テキストボックスを修正してもメモリーは変更されませんのでご注意ください。
「停止」ボタンは自動放送を停止するだけです。あまり使いません。チャイムを強制的に止めることはできません。
「再読み込み」ボタンはExcelBookを読み込みなおします。ExcelBookを修正し上書き保存をしたら、このボタンを押して反映させます。Excelは開いた状態でも読み込みなおすことができます(読み取り専用で開きます)。
「チャイム強制起動」ボタンは強制的にチャイムを鳴らすためのボタンで、ボタンを押すとすぐスイッチが入り、5秒後にチャイム音が流れます。
「強制終了」ボタンは何が何でも放送を止めたいときに使います。音源が流れている場合は途中で止まります。
「翌日の確認」ボタンを押すと翌日、翌々日・・・の振鈴表が表示されます。確認が終わったら「再読み込み」のボタンを押してその日の振鈴表を読み込みます。読み込まないとその日のチャイムは鳴らなくなります。
「音源の再生」ボタンはその右の番号に対応した音源を再生します。確認のためです。
USB-IOを接続していない状態で起動しチャイムを鳴らそうとすると「Deviceが見つかりません」という表示が出ます。ご注意ください。
USB-IOの接続方法は以前と変わりません。特別なドライバーは不要です。どのUSBポートに接続しても動作します。
今回はAmazonで売られていたリレー駆動ユニットを使ってみました。3個で約600円なので、1個200円位で購入できます。リレー単体で買うのとあまり変わりません。これです。
ターミナルが付いていましたが、精度が悪いものだったので取り外しました。また、緑色のPower表示LEDが紛らわしかったのでリレー駆動時にだけ光るように改造しました。(赤いLEDと同時に光ります)USB-IOのJ2端子とリレーユニットのIN、あとは電源の+ーの3本の線で接続するだけです。リレー側は、COMとNOをアンプのスイッチ(実際にはリモートスイッチ用の端子)へ接続します。
このような仕組みを考えて、実際に稼働させる予定です。(2023/11/20に稼働開始の予定) どなたかが興味を持っていただけたら嬉しいです。リソースの変更なども対応したいと考えています。
以下は、以前の記事をそのまま載せています。
PageUpdate 2014.9.26
USBで学校放送用のアンプを制御できないか・・・・と考え、巡り合ったのがUSB-IO。なんと1500円だ。
これを使ってアンプの電源を入れ、5秒待ってMP3やWAVなどの形式で保存された音源を再生する。
(ビクターの放送卓用アンプは電源を入れてから5秒待たないと放送が完全にできないという仕様。これがこの装置を作るきっかけになった)
例えば
・朝の登校時に音楽にミキシングされた音声を流し「間もなく始業のチャイムが鳴ります・・・」
・昼の準備の時間に「給食の準備は整いましたか。まだのクラスは急ぎましょう」
・掃除のときに音楽を流し「清掃終了5分前です。用具の片づけなどをしっかり行いましょう」
・最終下校の15分前から新世界第二楽章を流し「間もなく最終下校時刻です。なるべく集団で下校しましょう」
などのアナウンスを自動的に流すこともできます。
もちろんチャイムもならせます。
2014.9.26 New
最新版のVer1.7をアアップしました。作成したのは2012.3.28なので何をどのようにアップしたのかは記憶の彼方・・・・・。使い勝手を良くしていると・・・・・思います。
2014.1.15
USB-IO2.0を使った回路と実際の写真を掲載します。
今回使っているUSB-IOとその周辺部品がはんだ付け不良で動かなくなったのを機会に、回路を確認し実際の状況の写真を撮って、覚書をしておこうと考えました。
これが実物。このあと小さな木の板をベースにし部品をネジやグル―ガンで固定しケースに入れた。
またこれが回路図?かな。
2012.1.22
開発環境変更(VisualBasic から BorlandC++Builder へ)
休日に再生しないように設定可能。設定ファイルをドラッグアンドドロップ可能、上書きOr追加選択可能。
USB-IO2.0に対応。 Version1.5
ここからダウンロード可能。
まだ、操作説明書も作っていないが、mp3のサウンドをプログラムと同じフォルダにいれ、編集>登録音源確認で
... ボタンを押して登録し更新、あとはチャイムを鳴らしたい時刻を入力し、開始ボタンを押せばOK。
画面イメージはこんな感じです。
VB2010を使って作ったので.NetFx4以上が必要です。
USB-IOはカセットテープのケースに入れコンパクトに。
リードリレーは秋月電子SS1A05D(5個400円)・・・・送料と代引き手数料のほうが高くつきそう。
2011.6.28
強制的にチャイム(サウンド1)をならせるボタンをプログラムした。もちろんそれを強制的に止めることもできる。また、チャイムを途中で止めることも可能にした。(今までは鳴り終わるまで待っていなければならなかった。)
チャイムを鳴らす時刻をファイルに保存し、それを読み込んだ時に音の選択が正確に反映されなかったのを修正。(原因不明だが、Formの改良によってうまく反映できるようになった)
2011.6.25
リモートデスクトップの問題はその設定にあり、ローカルコンピュータでサウンドを再生させればうまくいくが・・・・・まだ課題がある。
とりあえず、リモートで設定したらそのままにするか切断後に本体にて再ログオンすることで解決?
2011.6.23
10分を超えるサウンドの再生でのバグはやはり自分のプログラムミスであることが解明。プログラムを修正。
下校放送の音楽にアナウンスをミキシングして校内放送! バッチリできた。
2011.6.20
再生される音源(MP3やWAV)の確認ダイヤログを表示するよう変更。
2011.6.18
10分を超えるサウンドの再生でのバグがWindowsUpdateで解決?
2011.6.16
見えないバグが結構見つかる。特に内部でのデータ処理。
2011.6.13
リモートデスクトップにて別室から操作・・・・うまくいかず。
2011.6.6
試験運用開始:Version 1.0