新型の構想だけを練る その4

昨今はArduinoシミュレーションも簡単にできる様になったので、今回は仮想マシンで構想を練ることにしてみます。

Autodeks Thinkercad

ここにはArduinoのシミュレーターと、回路を組んだ結果を見ることができます。動作のモタつきが問題ではありますが、ゆっくり作業をしていると思えば大丈夫。

まずは、複数台のArduino(UNOしかありませんので)を使用して、4芯のつもりで、
5V+ GND RX TX を接続、

1:端末側が押されたら
2:親機に自端末の名前を流す TX
3:親機が音を鳴らし、リセットボタンを点灯させ、TXに端末名称を流す
4:端末側は、RXが自端末名称であれば、点灯、そうでなければその後入力無視。
5:親機LCDに端末名称を表示

と簡単に考えていたのですが・・・シリアルは1対1が原則で、1対多にすると干渉するのでして撃沈。でも、チャレンジした人がおりましたので、大変参考になりました。
https://plaza.rakuten.co.jp/cpu4edu/25027/

4芯ステレオケーブルを使用すれば、これで十分なのですが、それじゃーつまらない。なんとかして3芯にできれば、既存の機材と部品併用ができ、コストダウンに繋がる。

というわけで、ロジックを考え直しましたが、TX RXを短絡接続したら、当然うまくいきません。電源を親機経由でOUT側から出すとか、端末側で条件分岐とか、いろいろ考えたのですが・・・。力技使ってなんとかしました、割り込み用ピンを使います(笑)

1:端末側が押されたら、親機に自端末の名前を流し TX、自ランプ点灯
2:割り込みピン(全ての端末でTXと短絡しておきます)に入力が入り全端末が入力無視。(含む自端末だが、すでにランプが点灯している)
3:親機が音を鳴らし、リセットボタンを点灯させる
※ Arduinoで音を出すのやり方で、親機から音出します。
4:親機LCDに端末名称を表示

https://www.tinkercad.com/things/0TdaZ6GddX4#/

つまり、親機からの出力がありません。(笑)
割り込みピンは、電圧の「変化」があれば反応してくれるので、HIGH LOWの指定がいらないのです。あくまで見ているのは「変化」というわけで。

論理的には、シリアル通信の距離限界(数メートルだそうです)範囲ならば、何台でもつなげられるのでは?と思ってます。これはテストが必要です。とはえ、本体とじゃなく、隣のボタンとつながるわけですから、会議室内くらいだったらなんとかなるんじゃね?と思っています。

ちなみに、RXを使わずに、普通のOUTピンと割り込みピンを使えば、シリアル通信の距離限界とか関係ないので、本当に50台以上つなげられると思っています。

「力技」と思っているのは、同着問題を解決していないんです。

つまり、端末が押され、親機に自端末の名前を流している処理の間に、もう一つの端末が押されたら・・・シリアルの文字化けと2端末の点灯が起こる可能性が捨てられません。
先の「並列技」のスケッチの通り、TXが開くのは名称を流す瞬間だけですが、それでも同着可能性は十分にあります。「精度」が本当に問題になる機材というわけです。

にしても、端末1500円、親機8000円でも、利益の出る可能性のあるマシンだと思います。

親機は音もLCDも、十分にグレードアップできるし、後から端末の追加もできる。激安&遅反応の音出しモジュールを本体に別途入れれば、12個の音だって出せるんです。早押しとは絡まないから。

シリアル通信の距離限界が会議室一杯くらいだったらうれしいな。

もう少し精査します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です