Arduino Web Editorを使う

ほぼデスクトップ版と同じUIに見えますが、ボードの接続状態も見えるのはアドバンテージ。

コードはクラウド上からもインポートは出来ますが、最初のステップのLチカコードをmacからインポートして書き込めば動作しました。

 

スクリーンショット 2021-12-04 10.02.03.png

しかしヘッダファイルを組み込むSimpleWebServerWiFiはヘッダファイルをタブ追加して置いても、組み込めない(コンパイルできない)からこれは継続調査必要。

 

admin

Arduino IoT Cloud使うための準備

IoT Cloudを使うために、

<事前準備>

① アカウント取得

② Arduino Client Plugin、実はagentのインストール

③ Arduino IoT Cloudに入って使う

の手順になりますが、②のagentインストールで証明書インストールエラー(一言で言うと)でインストール完了しません。

スクリーンショット 2021-12-03 13.59.54.png

WebのArduino forumのリンクで関連する事象あったので対応出来ました。

https://forum.arduino.cc/t/macos-big-sur-installation-problem-createagent/929305/4

具体的には、

“Upon further investigation this is something we can’t seem to be able to tackle unless InstallBuilder allows shell scripts to be executed.
There is a chain of trust which fails when launching an AppleScript invoking a Shell script.

For now, users who get this issue, please run this command in the terminal after installing the Agent”

で、インストールが不完全に終わった後で、以下のコマンドを実行。このコマンドで証明書をキーチェーンに追加するようです。

$ sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /Users/$(whoami)/Applications/ArduinoCreateAgent/ArduinoCreateAgent.app/Contents/MacOS/ca.cert.pem

このアプリ自身はバックグランド動作(おそらくクラウドにログオンするためのエージェント)するのでこのアプリ自体をクリックしても何も起きませんが、他のアプリを動かすことでagentの動作を確認できます。

常駐したことは、アイコン表示で知ることができます。

ここまでできれば、

https://www.arduino.cc/en/Guide/MKRWiFi1010

のガイドにあるように、

スクリーンショット 2021-12-03 14.25.22.png

3.のArduino IoT Cloudにログイン出来て、こんな画面が最初に現れます。常駐アイコンのクリックメニューでもArduino createに入れますが。

https://create.arduino.cc/iot/things

スクリーンショット 2021-12-03 14.24.08.png

<デバイスのCloudへの登録>

Arduino IoT Cloudのメニューにデバイス登録があるので登録してみました。

ここで再びArduino Client Plugin見つかんないよと言われたので、同じことを再度繰り返し。実はこのリンク辿るとPluginの版数が異なってますね。

ともかくArudinoをUSB接続して認識されると、クラウドにデバイスが登録されました。デバイスの名称(Aubry)はデフォルト値そのままです。この登録過程ではArudinoに書き込まれていたファームは書き換えされるようです。

IoT CloudではWebエディターも使えるから、もしかしたらデスクトップIDEが必要ないのかもしれない。

 

admin

ArduinoのWi-Fi機能確認

参考は、

https://www.denshi.club/cookbook/arduino/mkr1010/arduinoiot3wi-fil.html

・Wi-Fi使うためにWiFiNINAライブラリのインストール

どこかでインストールしてしまったか、既にインストール済みになっていた。

使い方は既存のA.Pに接続してIPアドレスを取得し、自分自身はHTTPサーバーとなって他のクライアントからのリクエストを受け取ってレスポンスを返すというもの。

あるいは、Arduino自身をA.Pにすることもできるようですね。

スクリーンショット 2021-12-01 17.09.40.png

・サンプルプログラム

サンプルからSimpleWebServerWiFiを読み込む。

IDEエディタのヘッダーファイルarduino_secrets.hに自分が使うA.P情報を追加入力する。

char ssid[] = “aterm”; # 自分のAP SSID

char pass[] = “pw”; # 自分のpw

int keyIndex = 0;   

Wi-Fiはnではつながるけれどもacにはつながらないようです。実用上は全く問題ないですが。

・動作の確認

コンパイルしてArduinoに転送するとプログラムが起動して、

ネットワークにArduinoが見えました、Wi-Fiモジュール(Espressif)は中国製のようです。pingにも応答します。

スクリーンショット 2021-12-02 14.51.27.png

シリアルモニターにArduinoが吐き出すメッセージとクライアントとの通信ログ(HTTPリクエストの中身)も見えます。また、setup()関数の最後にprintWifiStatus()関数で自分のWi-Fiのステータスを吐き出してます。シリアルモニターはあくまでUSB経由つないだ時しか見れず、Arduinoを切り離してWi-Fiで運用するときには機能しません。あり得ないけど、USBつないでるときは無線でやりとりしないで、USB経由でやりとりしてる?

スクリーンショット 2021-12-02 14.56.51.png

ブラウザから該当のURLをアクセスすると、このようなメニューが表示されて、ボードのLEDのオンオフがブラウザから”Click here”のリンクをクリックすることで制御できます。ブラウザからのアクセス受け付けるまでに、データ転送完了後あるいはArduinoの電源オンから5秒以上は待たないといけないようです。

スクリーンショット 2021-12-02 14.52.46.png

これでWi-Fiの疎通確認ができました。

Arduinoはwebサーバー機能あるといっても、HTMLやHTTPステートメントは全てprint文で記述しなければいけないのでかなり面倒ではあります。

 

admin

Arduino IDEのセットアップと動作確認

購入後の最初の動作確認をしてみます。

 

<set up>

・Arduino MKR WiFi 1010はデフォルトのボード選択リストに入っていないから、ボードマネージャーで追加します。手順は以下を参考に、

https://www.denshi.club/cookbook/arduino/mkr1010/arduinoiot1iotarduino.html

 

<動作確認>

・動作確認のためにサンプルプログラムを動かす(定番のLチカ)

コードはこんな感じで、ボード搭載のLEDを出力指定して、時間を指定してオン。オフ切り替えしています。

// the setup function runs once when you press reset or power the board

void setup() {

  // initialize digital pin LED_BUILTIN as an output.

  pinMode(LED_BUILTIN, OUTPUT);

}

// the loop function runs over and over again forever

void loop() {

  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)

  delay(2000);                       // wait for 2 seconds

  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW

  delay(1000);                       // wait for a second

}

最初電源供給できるだけのUSBケーブルでつないでいたからシリアルポート見えなくて当然、データ転送できるUSBケーブルで以下のように見えます。(/dev/usbmodem*****)

USBだけど、Arduinoはシリアルポートと呼んでいます。シリアルに違いはないけども。

スクリーンショット 2021-12-01 13.34.22.png

ソースをコンパイル、転送すると自動的にプログラムはスタート。指定した通りにボード上のLED が点滅しています。他のプログラム言語のHello world!と同じ。

下の動画はLED点灯のオンオフを100msにしたものです。

 

admin

MacBookシステム移行のやり方の差

まだ不要ですが、いずれ移行が必要になったときにWi-Fi以外でどうするのかなと思ったら、M1より前のモデルはthunderboltケーブルで、M1以降はthunderbolt、USBあるいはUSB type-Cケーブルでつなげとあります。

この差はなんなのだろうと思うけれども、よく読めば後者はintel macはターゲットディスクモードにはならないと言ってるようだから、接続はやはりthunderbolt使うことになりそう。

第三の方法としては元のmacのバックアップデータであるtime machineデータを指定して新たなマシンに持ってくるというやり方もありそうです。

まとめると、

  Wi-Fi経由

② thunderbolt直接接続

③ timemachineバックアップから

速度的には② > ① ≧ ③(NASだから実力50MB/sぐらい)になるんだろうけど、手間かからないのは①か③ということになる。

スクリーンショット 2021-11-30 13.28.39.png

スクリーンショット 2021-11-30 13.24.46.png

 

admin

Arduino IDE

Arduinoはオーダー(Arduino MKR WiFi 1010)してまだ届かないけど、Arduino IDEだけはインストールしてみた。

Arduinoではプログラムと言わずにsketchというらしい。デフォルトで作成されるsetup()関数は初期化関数(init()相当)だろうし、処理は普通終了することがないからloop()だろう。もちろん他の関数を定義して呼び出しもできるだろうけど、この二つの関数は間違いなくデフォルトで必要。

言語そのものはcだけれども、IDEによって面倒なところは隠蔽しているのはJavaを使うProcessingなどと同じ。

 

admin

NAS(Qnap)のtimemachine領域が尽きたら何が起こるか?

timemachine領域はMacBook Airとproを領域共通で使ってましたが、容量が枯渇に近い事はわかっていて、先週MacBook AirのOSをMontereyにしたのでそろそろ枯渇処理がどうなるか見れると思っていましたが(Airは使用頻度相対的に少ないので週一のバックアップ)、半分予想通りで領域不足で失敗。MacBook Proはおそらく過去のバックアップを一部削除して成功。仕様上は過去のバックアップの一部を削除なのですが、この差のロジックはよく分かりませんが、この際なのでproとairのtimemachine領域は独立で設定しました。

 

qnapのtimemachine設定に関する公式ドキュメントはおそらくこれですが、

https://www.qnap.com/ja-jp/how-to/tutorial/article/time-machine-を使用して-mac-を-smb-3-経由で-qnap-nas-にバックアップする

共有Time Machineアカウントと1台のMacをHBS 3でバックアップ

中の説明で、「共有 time machineアカウント」を選択

というqnapで推奨されていない説明もあるから首尾一貫していないようには思う。

ともかく、timemachine領域をMac毎に別に定義して運用してみます。

 

admin

KiCadでステッピングモーター動作検証の回路図作成してみた

インストールはしてたけど、使ったのは初めて。部品ライブラリがインストールされてなかったので10GB以上のライブラリをインストール。

操作(UI)そのものは分かりやすくて、ライブラリも充実しているので回路図作成は簡単でした。

フリーでも十分に使えるのは、IDEなどと同じです。

 

admin

 

KiCadはインストールしただけではシンボルライブラリ組み込まれない

今後のFreeCADはKiCadを使おうと思いますが、インストール後に回路図作成しようとしても、シンボルライブラリが空。

メニューの「設定」–> 「シンボルライブラリの管理」でたとえデフォルトのライブラリでも設定したやらないとダメなんだ。マニュアルよく読めば書いてあるんだろうけど、マニュアルなしで使おうとしたらそうだった。

 

admin