Nゲージの駅で接近放送を流そう!
Nゲージの駅で接近放送を流してみる
どうも、いつもの中の人です。
いや、E231-1000は好きなんだけどね、京急もいいんですよ~。
とくにだるまさんとかかなあ?
あれデザインいいですよね~!
そんなことはさておき、今日は接近放送をホームで流してみようかと思います。
どうするかというと、センサーで列車を感知したら接近放送を流すという
簡単なものですね、はい。
回路は簡単ですね。(そりゃスピーカーとセンサーの回路しかないからな)
プログラムがややこしいくらいかなあ。
あと、Arduinoのメモリだと、音声データが入らないのでSDカードのデータを転送して
流すつもりです。
それではどうぞ。
1) センサー部
基本的な考えは前のブログでどうぞ。
今回、センサー部が進化しました!
いままでは、アナログ入出力ピンでA/D変換して読み取っていたのですが、
それだと割り込みができない!拡張性が薄い!ということで、
割り込みできるようデジタルピン対応型をつくりました!
とはいっても、ちょっとでも太陽光が当たると不安定だし、
いつも不安定ぎみなので参考程度に。
まず、センサーが感知しないときについて考えます。
部屋の照明とかでわずかに電圧が流れていますが、マイコンが誤反応してしまいます。
しかし、ダイオードの順電圧よりは低いです。そこで、まずダイオードを挟みます。
すると、電圧はカットされませんが電流がカットされます。そこで、電流で動く
トランジスタを挟めば、電圧、電流がどちらもカットされるではありませんか!
これで簡単なコンパレーターの出来上がりです!(信用できるとは言っていない)
2) SDカード部
SDカードに音声データを保存し、データを少しずつ転送して流すという考えです。
SDカードスロットには、秋月のSDカードDIP化キットを使いました。
参考にしたサイトです。
CSピン以外は、ArduinoのUSBポートの反対側にある6本のオスピンの集まりが
あるじゃないですか。そこのMISO、MOSI、CLKを使いました。
(そうしないと通信できなかった)
いやあ、難しかったですよ。(無慈悲に全カット)
あとは、PWM出力(パルス出力)できるピンにスピーカーの+極を挿せば
回路は完成、っと。
問題はプログラムです。
3) プログラム
いやあ、大変でした。
少しずつデータを転送してそれをPWM出力するのは分かったんですが、
どうすればいいのか・・・
このサイトがすべて解決してくれました。ありがたやありがたや。
完成したのがこちらです。
1個目のセンサーで感知したら放送開始、2個目のセンサーで感知したら停止
という感じにしました。1個目はコンパレーター、2個目はA/D変換にしました。
まあ、いいんじゃない?
あとはこれを、ホームの屋根部分に設置して完成です。
発車メロディーは、接近放送を停止した後に数秒後の鳴らすよう処理すれば
いいだけだし、手動で鳴らしたいときも今回の仕組みを使えば簡単なので
割愛します。
今日はこんなところで!