開発環境
- 黒電話
- M5 Atom S3
- Androidスマホ
M5 Atom S3を利用したのは、小型デバイス かつ 積みデバイスだったためです。
システム概要
- M5 Atom S3をWifiアクセスポイントとしてAndroidと接続します。
- M5 Atom S3とAndroidはUDPで通信します。
- M5 Atom S3は電話の2線からHigh/Lowを監視します。(ActiveLow)
- 受話器を上げると信号がLowになります。
- Androidへ受話器を上げたことを送信します。
- ダイヤルを回します。
- 番号に応じて出力されるパルス(約20msec)を計測します。
- 1は1パルス、2は2パルス... 9はパルス
- 0は例外で10パルス
- Androidへ計測したダイヤル番号を送信します。
- 受話器が奥までパルス計測とAndroidへの送信を繰り返します。
- 受話器を置くとHighになります。
- Androidへ受話器を上げたことを送信します。
- パルス計測と区別するため、50msec以上Highが継続した場合、受話器を置いたと判断します。
補足:受話器を下げた状態でダイヤルを回してもパルスは発生しません。
黒電話の受話器状態・ダイヤル検出
アプリ詳細
- 受話器を上げます。
- 5桁の番号が表示されます。
- ダイヤルを回します。(赤:回すダイヤル)
- 回したダイヤルを判定します。(緑:OK、灰:NG)
- 5桁の番号を回すまで3と4を繰り返します。
- 5桁の番号を全て回したら完了です。
- 電話のベルが鳴ります。
- 相手の電話に出た音声が流れます。(全てOK、NGありで音声が変わります)
開発素材
ベル音
OtoLogic
OK/NG音
効果音ラボ
参考サイト
黒電話のダイヤル仕組み
【Arduino】エモっ!黒電話のダイヤルで数字入力!ダイヤルの仕組みが分かれば可能性が広がるよ!
YouTubeで紹介させていただきました!
https://youtube.com/live/E4Z8g71zuE8