【Scilab_Arduino】 ScilabとArduinoを接続に挑戦するための例題(まずはデジタル)
1 はじめに
以前、Scilab/XcosとArduinoの接続方法について書きました。
【Scilab/XCOS】ScilabをArduinoに接続する手順
前回の記事では、接続中心の話であったこと。
また、ブレッドボードを使った簡単なハードウェアがないと、機能確認ができないこと。
この2点から、簡単な例題を紹介したいと思います。
ここから思いつく応用的なアイデアがあれば、試してみてください。
そして、記事として結果の紹介をお願いいたします。
2 ふりかえり(Scilab-Arduino)の接続方法
概要図を描くと、以下のようになります。
以下のイメージから文字情報を起こすと以下のようになります。
(詳細については、有料記事を購読してください。)
(準備すること)
パソコン
OS (Windows 11)
インストールするアプリケーションソフトウエア① (Scilab/Xcos 2024.1.0)
インストールATOMS(Scilab/Xcosのアドオンソフト) (Arduino 1.9)
インストールするアプリケーションソフトウエア② (Arduino IDE 2.3.2)
Arduino
Arduino UNO R3 (対応しているのは、このバードのみ。/ほかのボードには対応していない。)
3. Scilab/XcosとArduinoを接続する例題 (デジタル)
(例題①)
Xcosのバルス発生ブロックで発生させたパルスをArduinoのデジタルボートに出力させる例題です。
出力するパルスはArduino用のスコープでモニターします。
バルス信号の仕様は周期1.0 (sec.)
バルス幅は50%
出力するDIOのピン番号はD13
実際にパソコンにArduinoをUSBで接続すると、固有のポート番号が割り当てられます。
この例題でのポート番号はCOM8です。
デバイスマネージャでCOMのポート番号については、ご確認ください。
この時点で、パルス信号に応じて転倒するLEDの回路をでレッドボードで作成してみてください。
分からなければ、次のイラストで写真を掲載していますので、参考にしてみてください。
(例題②)
外部から入力されるON/OFF信号をArduinoのデジタルポート7番ピン(D7)に入力します。
入力した信号をXcosの中で加工せず、10番ピン(D10)に出力します。
また、入力される信号を確認するため、ハードウエアで信号線を分岐し8番ピン(D8)に入力します。
8番ポートの信号をArduinoスコープでグラフ化し表示させます。
ブロック線図(プログラム)の内容は、それだけです。
ハードウエアとしては、スイッチのON/OFF信号を使い、LEDを点灯させる回路を組みました。
他に考えられる回路があれば、考えてみてください。
先に例題をまとめました。
実行結果については、以下に、それぞれ、まとめてあります。
4. Scilab/XcosとArduinoを接続する例題の実行結果 (デジタル)
(例題①の実行結果)
実行した結果、Arduinoスコープで観測した結果と、ハードウエアの回路の写真を掲載いたします。
Scilab/Xcosに実装されているデモプログラムは、以下に示されるようなブロック線図状のプログラムしかありません。
そこから、例題を実行するために必要な電気回路を考えて組み立てないと、実行結果を確認できません。
例題の内容は簡単な内容ですが、ソフトだけでなくハードの構成もイメージできないと実行できない内容です。
分からないところがあれば、いろいろと調べてください。
結果は、Xcosのパルスジェネレータで発生させたパルスをArduino用スコープで観測すると、以下のグラフが得られます。
またブレッドボード上のLEDは、パルス波に沿って点滅を繰返しました。
(例題②の実行結果)
例題②の実行結果を2枚の図で紹介します。
1枚目は、結果と回路の紹介です。
スイッチのON/OFF信号を分岐し、8番ボート(D8)に入力させて信号の波形です。
Arduinoの電源ポートからDC 5.0 Vを使い、信号電圧を供給しました。
振れているので、コンデンサーなどを入れた方がいいかもしれません。
回路上のスイッチをONすると、7番ピンに入力する信号電圧は0.0Vになります。
スイッチをOFFにすると、7番ピンに入力する信号は、振れていますが5.0Vになります。
スイッチの回路図は2枚目の図に示します。
7番ピンに入力した信号をXcosで加工せず10番ピンに出力させています。
10番ピンの信号を使い、例題①の回路を使ってLEDを点滅させています。
スイッチをONにすると、LEDは消灯し、スイッチをOFFにすると、電源信号が振れているためLEDは点滅します。
回路としては、アルプスアルパイン株式会社様のサイトで販売されているエンコーダを参考にスイッチの回路を考えてみました。
製品の説明ページに製品を使う場合の回路図(参考図)が掲載されております。
EC12Eシリーズ | 絶縁軸エンコーダー | エンコーダー | 電子部品検索 | 製品・技術 | アルプスアルパイン (alpsalpine.com)
インターネット上を検索すれば、実用的な回路があると思います。
一例として参考とし、よりよい回路を考えてみてください。
5. まとめ
Arduinoのデジタルポートを使った例題を2つ紹介しました。
ソフトウエア(Xcos)のブロック線図は簡単です。
しかも、入力信号と出力信号は、この場合、デジタルで”0″または”1″のいずれかです。
その一方で、次の2つを考える必要があります。
入力信号を発生させる回路や装置。
出力信号を利用する回路やデバイス。
意外に難しいかもしれません。
デジタル信号の処理ですから、OpenPLCを使って、Arduinoをスレーブデバイスとし、ラダープログラムのシミュレータにしている人たちもいるようです。
実際にArduino ProブランドにはOPTAというマイクロPLCがラインナップされています。
今後、製造業だけでなく建設業にもIoTの波は訪れており、打合せをしたこともあります。
また、今回はデジタルポートを使った例題でしたが、アナログポートを使った例題もあります。
まとまったら、アナログポートを使った例題も紹介したいと思います。
さらにHILS (Hardware In the Loop Simulation)という手法があります。
Arduino UNO3 の先に試作している装置の模擬装置を作成しておき、その装置の制御アルゴリズムをXcosで開発することができるかもしれません。
今月、2024年7月に、こんな商品の販売をArduino財団が開始しました。
電気回路の部分を考えなくても、“Arduino Plug and Make Kit” で、組め可能性もあります。
Arduino Plug and Make Kit — Arduino Online Shop
参考にしてみてください。
気になることがあれば、コメントをお願いいたします。