前回の記事で、水槽の水温計測にArduinoを使ったボードを作成しました。またProcessingを使って計測結果をパソコンに保存できるようにしました。
しかしアプリを実行するのは、ファイルを開く作業やアプリの操作など、簡単だけどめんどくさい作業が多く、複数のアプリを頻繁に実行したいときにやりたくないと思ってしまいがちです。
なので今回はArduinoのプログラム書き込みとprocessingの実行を無料の自動化アプリであるMicrosoft製Power Automateで自動化してみました。 動画は実行画面です。操作が多い作業を全部やってくれているというのが伝わればと思います。


アクションを追加するには、デスクトップレコーダーのボタンを押して、パソコン内の操作を自動で記録する方法と、画面左のタブから一つずつ操作を選んでいく方法があります。ただタブから選ぶ方法では、操作を選択したあと、選択するアイコン・ボタンの設定も必要となります。この2つの操作を同時にできるのが デスクトップレコーダー なので今回はこの方法を紹介します。

まず デスクトップレコーダーのボタン を押すと、以下の画面に変わりデスクトップでの操作を記録することができます。記録されるのはアイコンなどを開く操作と操作したアイコン(UI要素と呼ばれています)になります。なので、デスクトップにそのアイコンがあれば、場所が変わっていても自動で実行してくれます。

レコードボタンを押したあと、操作を記録する状態に入ります。例えばモニター下のタスクバーに設置したArduinoIDEを押すと「ウィンドウ内のボタンを押す」というコマンドが記録されます。このとき、ArduinoIDEのアイコンも記録されているので、 ArduinoIDE がタスクバーにあれば自動で ArduinoIDE を開いてくれます。

デスクトップのアイコンだけでなく、各アプリのボタンも記録することができます。なので「ファイルを開く」や「マイコンボードに書き込む」ボタンを押す設定も可能です。

手順を追加できたら実行ボタンで実行・確認します。不具合があればその都度修正します。不具合が起きやすい状況としては、次の操作に移るときに前の操作が完了していない、アイコンなどが正しく設定されていない、などがあります。こんなときはwaitコマンドで操作が完了するのを待つ、デスクトップレコーダーによるアイコンの設定ではなくキーボードのショートカットキーで代用するなどがあります。

今回設定したアクションは以下の3つになります。
Main / ArduinoIDE_Open / Processing_Open
テキストのファイルをPowerAutomateのアクション設定の画面に貼り付ければそのまま使うことができますが。(Main以外はサブフローを作ってください)エラーが2つ出ます。一つはUI要素が保存されていないエラー、もう一つはArduinoなどのプログラムを保存しているフォルダ名の設定ができていないというエラーです。なので、UI要素は上記手順で設定し、フォルダ名は画面右の入出力変数から設定して使用可能になります。
