0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5AtomS3で黒電話のダイヤルを検知させてみた

Last updated at Posted at 2024-09-06

はじめに

友人の作ったダイヤルを回せ!に感化されたのと、SPAJAMで使えたらいいよねということで黒電話を購入。
メルカリでクーポン使って1,000円以下というかなりお安くGET!
で、ダイヤルを検知できないと何もできないよね、ということでやってみた。

友人の以下の記事を参考にしてます。

なお、回路とかよくわからないことと、M5 Atom S3というか各ポートもよく理解していない(がさすがにグランドはわかる)のでおかしなところがあるかもしれないので、優しく指摘してくださいw

考え方

以下の考え方で実装しているつもり
実装はUIFlow2のブロックエディタで行った。
コードで書けばよかったかなと後からちょっと後悔

dial.png

今回使っている黒電話は600-A1で、こちらの記事によると、1秒間に10パルス信号を発生させるらしい。

コード

考え方の図はブロックエディタで処理を構成してから考えをまとめるために作成
その後、コードに反映。

image.png

ちなみに以下を試してみて、アナログ入力&デジタル入出力でできたので、それを採用

パターン 結果
アナログ入力のみ 値が取れない
デジタル入力出力のみ 受話器は取れるダイヤルのパルスを拾いきれない。ゆっくりダイヤルを回すと取れるので拾えてなさそう
アナログ入力&デジタル入出力 デジタル化された値がアナログで取れてるようでうまくいった

M5AtomS3と黒電話の接続

以下のようにG1とグランドに接続

P_20240907_021249.jpg

ちなみに、電話から赤と白の線がでいるが、赤とG1、白とグランド、赤とグランド、白とG1のどちらでもいいみたい。

ポイント

アナログ+デジタルにする際、初期化をアナログ→デジタルで行う。
逆にすると、値の取れ方がおかしくなった。
image.png
(これ、あってる?)

今後

まず、UIFlowで作った処理を考え方に沿ってもう少しスリムにしたい。
もう、アナログだけ、デジタルだけの処理は消そうかな・・・
AndroidとBluetoothで接続して、値だけ転送する。
ダイヤルの入力判定等はAndroid側で行うようにしたい。
あと、アナログ入力有効使っているときに、受話器から音が聞こえるので、音出せたら面白いよねーって考えているけど、どうすべきかわからない

追記

気になったので画面に簡易的なグラフを出して確認。
デジタル入力出力の時にゆっくり回すとダイヤルを認識した理由が気になったので。
とはいえ状況証拠だけなので何ともですが。

通常のダイヤルの場合、出力される値が最大値の半分未満っぽい
ゆっくり回すと周波数が大きくなる

認識できなかったことと、上記を踏まえると、M5AtomS3側か黒電話側の問題かわからないが、波形の立ち上がりが遅い、または弱い為、認識できないのではないかと思われる。

別の黒電話で試したいところ。

この記事の続き

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?