![見出し画像](https://assets.st-note.com/production/uploads/images/136705944/rectangle_large_type_2_6f272f3256790d2cb141b0a777defa77.png?width=1200)
「2進数データから直接スイッチを操作できるパターン」で制御を簡単に-その2-
10進数入力・2進数出力するエンコーダの2進数データ出力から直接スイッチを操作することができます。例えば、7桁の2進数の場合、10進数3~127の内、1値入力により、1種類から21種類のスイッチを単一・複数同時にONできます。
2.スイッチ制御システムについて
2-1.パターン表につきまして
下記がパターン表になります。プログラムで制御値3を指定しますと、A1(3)が点灯します。制御値5ですとA2(5)、制御値6ですとA3(6)となり、制御値7では、A1(3)とA2(5)とA3(6)が同時に点灯します。制御値7の下欄の組合せ欄に、A1 A2 A3と明示してあります。
※Axxは物理スイッチの種類を示し、()内の数値は、制御値(10進数値)です。 例 A1(3):物理スイッチA1、制御値は3
またa A pattem欄に、A1~A6の記載ある制御値が物理スイッチとなります。
![](https://assets.st-note.com/img/1712642606065-adrajuGXnK.png?width=1200)
このパターン表のように、物理スイッチとその組み合わせは、制御値で表すことが出来ます。
これによって単一の物理スイッチを選択したり、複数を同時選択したりできます。
2-2.パターン表によるイルミネーションの実施例
市販の4.5VのLEDイルミネーションライト(50球)で、点灯と点滅をスライドスイッチで切り替える廉価タイプ、単三電池3本の電池ボックスのものを使用して、スライドスイッチは点灯側にしておきます。(高機能なイルミネーションライトほど電源が入った時、点灯しませんので、スライドスイッチを点灯側にして、電池を1個外して、再度セットすることで点灯できればOKです)
これを3セット用意して、物理スイッチA1、A2、A3をそれぞれにセットして、このスイッチがONとなった時に点灯できるようにしておきます。(例:両面基板無垢を切り取って、それぞれの面に電線をはんだ付けして、電池にはさめます。実施する場合には、危険の無いように、個人の責任にてお願いします。)
これをプログラミングするときには、制御値3を3秒、制御値5を3秒、制御値6を3秒、制御値7を3秒と指定し実行しますと、A1が施設されたLEDイルミネーションライト(以下省略)が3秒点灯し、A2が3秒点灯し、A3が3秒点灯し、A1、A2、A3の3個とも同時に3秒点灯するイルミネーションになります。これを繰り返すだけで飾ったクリスマスツリーが楽しくなります。
単純には、A1、A2、A3をそれぞれONするロジックと、3つともONするロジックが必要となりますが、本パターンを利用した制御では、制御値と点灯時間を指定するという1つのロジックで達成できます。
ただし、A1とA2の2つ、A2とA3の2つ、A1とA3の2つの同時点灯は出来ません。これを具現化したい場合には、物理スイッチの選択と組合せを工夫することになります。
2-3.工夫により解決する例
前項A1、A2、A3を2つの同時点灯も可能にするには、物理スイッチをA7、A8、A9に替えて使用します。これですと、A7(17)、A8(18)、A9(20)で単独点灯、制御値19でA7とA8の2つを点灯、制御値22でA8とA9の2つを点灯、制御値21でA7とA9の2つを点灯、制御値23でA7、A8、A9の3つを点灯することが出来ます。このように物理スイッチの選択とパターンの選択により解決します。
ただし、A7、A8、A9だけを使用する観点からすれば、A1、A2、A3の物理スイッチは、使わないので、パターン表にあっても、物理スイッチを接続させなければ、確実に無効化できます。これは、今までの論理回路に無い観点です。(ここは、後で説明します)
![](https://assets.st-note.com/img/1712642882134-WQFlR5KV6g.png)
2-4.1つのロジックとは
「1つの制御値と、その値を保持する時間」これが「1つのロジック」です。「1つのロジック」毎に制御値と時間を変えながら、これを繰り返すことで、イルミネーションが成立します。
これをDMX512通信プロトコルの舞台照明装置や論理回路ICを使用してもかまいませんが、アドレスなどの複数の組合せは、それぞれ作っておく必要があると思います。
そして、それらをメンテナンスすることも含めますと、このスイッチ制御システムは、「1つのロジック」の繰り返しであるだけでなく、制御値含むパターン表自体が変えようのない標準化であることから、メンテナンスを「簡単に」するための要素となります。(実は、二進数そのものなのですが)
ただ、実際には、前項で示したように、万能ではなく、物理スイッチA1、A2、A3のセットを、物理スイッチA7、A8、A9のセットに変更するなどのような使い分けはありますので、その場合には、物理スイッチを人の手により付け替えることがあります。
2-5.機械制御に使えるのか
ここまでで、パターンを利用することで、イルミネーションが簡易にでき、プログラムメンテナンスにもメリットがありそうなことはイメージいただけたと思います。
では、機械制御に使えるのかということにつきましては、複数のスイッチを1値の制御値により同時に複数をON/OFFできるスイッチが、今までありませんでした。
予測できない動作や制約違反が発生する可能性のある機械制御の場合、色々とやってみないと何とも言えません。
ただ、シンプルにすることも回避策の一つですので、以降では、論理的に考えうるものも含めて述べていきたいと思います。
例えば、理論上、モータドライバ(TB67H450)とブラシ付きDCモータのセットを、複数同時に「正転、逆転、ブレーキ」と駆動させることができます。下記図の5つのモータを使用した場合には、スイッチのON/OFFとPWMだけです。
この構成ができることで、トルクレンジやトルクダイナミクスが広がるのでPID制御は楽になるかもしれません。
![](https://assets.st-note.com/img/1712643209091-A0g9PUrlxO.png?width=1200)
また、物理スイッチA1、A2、A3、A7、A8、A9を用いた6本指のグリッパにより多様なワークをつかむなども考えられます。
A1、A7、A8の3本指で柔らかい、A2、A7、A9の3本指で普通、A3、A8、A9の3本指で硬いをセットにし、それぞれのセットでの指の柔らかさを変えることができます。
柔らかさの異なるワークを潰さずにつかんだり、6本指すべてで重いワークをつかんだりすることができるようになります。
![](https://assets.st-note.com/img/1712646263969-2ZsarjOyyI.png?width=1200)
2-6.PLCを使用したシーケンス制御との大きな違い
説明にあたって、「A1の物理スイッチをセットしたLEDイルミネーションライト(50球)を点灯させる」表現を、少し具体的に言います。
これは、
・物理スイッチにa接点フォトリレーを使用して
・制御値3により対象となる物理スイッチA1の入力側に電気を流している間
・a接点モーメンタリ型スイッチであるフォトリレーの出力がONとなり
・当該電源によりLEDイルミネーションライト(50球)が点灯する
ということになります。
![](https://assets.st-note.com/img/1712712988748-C0cNb52ip1.png?width=1200)
同様に、PLCを使用したシーケンス制御(以下シーケンス制御)では、a接点(常時OFF、動作時ON)もb接点(常時ON、動作時OFF)もソフトウェアでプログラムし、LEDイルミネーションライト(50球)は、PLCの出力側に接続することで点灯させることができます。
シーケンス制御では、入力に接続されたスイッチX0を一度ONすることで、出力に接続されたLEDイルミネーションライト(50球)が点灯し、もう一度スイッチX0が押されることで消灯する。このことをPLCのソフトウェアで処理しております。
外付けの物理的なものは、入力スイッチとLEDイルミネーションライト(50球)だけです。
この他に、消灯用スイッチX1を追加で設けて、自己保持を解除し消灯させたり、X1が押されているとX0を押しても点灯できなかったり、X0が押されているとX1で消灯できなかったりなどと多様に安全策をとることができるようにもなります。
![](https://assets.st-note.com/img/1712646874962-UDZPP5ht4z.png)
このように、ほとんどをソフトウェアで処理しているPLCに対して、本制御では、「1つのロジック」を繰り返すところまでをソフトウェアで処理していて、以降は、その信号により外付けされた物理スイッチが作動して点灯させている点に、大きな違いがあります。
そして、スタート用スイッチなどの入力については、Arduinoの入力機能によります。(前項で紹介しましたユーチューブのイルミネーションでは、タイマー電源ONでプログラムがスタートしますので、そもそもスタート用スイッチを省略しております)
PLCでは、2個点灯したい場合には、Y1、Y2・・・と出力に追加していきますが、本制御では、物理スイッチをディジーチェーンにより、次々とつないでいきます。
たとえば、制御値が127までの場合には、必要なA1~A21の物理スイッチを取り付けたLEDイルミネーションライトを飾付けながら、次々とディジーチェーンなどにより接続していきます。
できれば一方向が理想です。物理スイッチが重複してもかまいません。(複数が同時点灯するだけです)
イルミネーションをテストして見ていて、1ヶ所の物理スイッチA1を施したLEDイルミネーションライトの物理スイッチを、A3にしたい場合には、プログラムを修正する必要が無くて、A1の物理スイッチを外し、A3に付け替えることで解決できます。
![](https://assets.st-note.com/img/1712647571036-6rxpzNt8G9.png?width=1200)
これは、物理スイッチが外出しされているから出来ることであり、カルノー図などによりすべてが網羅された組合せ回路では、回路の組み直しとなり手間暇の掛かることであります。(A3点灯がプログラミングされている前提です)
以降は、有料となりますが、Scrattino3実プログラムを示し、さらに具体的に説明します。
そして、-その3-として、5つのモータを使用したマルチモーターについて、回路に頼らない、プログラミングによる論理的な取り組みの構成を、紹介させていただきます。
ここから先は
¥ 500
よろしければサポートお願いします! 様々に、検証が必要となりますので、ご協力よろしくお願いいたします。