ほぼデスクトップ版と同じUIに見えますが、ボードの接続状態も見えるのはアドバンテージ。
コードはクラウド上からもインポートは出来ますが、最初のステップのLチカコードをmacからインポートして書き込めば動作しました。
しかしヘッダファイルを組み込むSimpleWebServerWiFiはヘッダファイルをタブ追加して置いても、組み込めない(コンパイルできない)からこれは継続調査必要。
admin
la vie libre
ほぼデスクトップ版と同じUIに見えますが、ボードの接続状態も見えるのはアドバンテージ。
コードはクラウド上からもインポートは出来ますが、最初のステップのLチカコードをmacからインポートして書き込めば動作しました。
しかしヘッダファイルを組み込むSimpleWebServerWiFiはヘッダファイルをタブ追加して置いても、組み込めない(コンパイルできない)からこれは継続調査必要。
admin
IoT Cloudを使うために、
<事前準備>
① アカウント取得
② Arduino Client Plugin、実はagentのインストール
③ Arduino IoT Cloudに入って使う
の手順になりますが、②のagentインストールで証明書インストールエラー(一言で言うと)でインストール完了しません。
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
のガイドにあるように、
3.のArduino IoT Cloudにログイン出来て、こんな画面が最初に現れます。常駐アイコンのクリックメニューでもArduino createに入れますが。
https://create.arduino.cc/iot/things
<デバイスのCloudへの登録>
Arduino IoT Cloudのメニューにデバイス登録があるので登録してみました。
ここで再びArduino Client Plugin見つかんないよと言われたので、同じことを再度繰り返し。実はこのリンク辿るとPluginの版数が異なってますね。
ともかくArudinoをUSB接続して認識されると、クラウドにデバイスが登録されました。デバイスの名称(Aubry)はデフォルト値そのままです。この登録過程ではArudinoに書き込まれていたファームは書き換えされるようです。
IoT CloudではWebエディターも使えるから、もしかしたらデスクトップIDEが必要ないのかもしれない。
admin
参考は、
https://www.denshi.club/cookbook/arduino/mkr1010/arduinoiot3wi-fil.html
・Wi-Fi使うためにWiFiNINAライブラリのインストール
どこかでインストールしてしまったか、既にインストール済みになっていた。
使い方は既存のA.Pに接続してIPアドレスを取得し、自分自身はHTTPサーバーとなって他のクライアントからのリクエストを受け取ってレスポンスを返すというもの。
あるいは、Arduino自身をA.Pにすることもできるようですね。
・サンプルプログラム
サンプルから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にも応答します。
シリアルモニターにArduinoが吐き出すメッセージとクライアントとの通信ログ(HTTPリクエストの中身)も見えます。また、setup()関数の最後にprintWifiStatus()関数で自分のWi-Fiのステータスを吐き出してます。シリアルモニターはあくまでUSB経由つないだ時しか見れず、Arduinoを切り離してWi-Fiで運用するときには機能しません。あり得ないけど、USBつないでるときは無線でやりとりしないで、USB経由でやりとりしてる?
ブラウザから該当のURLをアクセスすると、このようなメニューが表示されて、ボードのLEDのオンオフがブラウザから”Click here”のリンクをクリックすることで制御できます。ブラウザからのアクセス受け付けるまでに、データ転送完了後あるいはArduinoの電源オンから5秒以上は待たないといけないようです。
これでWi-Fiの疎通確認ができました。
Arduinoはwebサーバー機能あるといっても、HTMLやHTTPステートメントは全てprint文で記述しなければいけないのでかなり面倒ではあります。
admin
購入後の最初の動作確認をしてみます。
<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はシリアルポートと呼んでいます。シリアルに違いはないけども。
ソースをコンパイル、転送すると自動的にプログラムはスタート。指定した通りにボード上のLED が点滅しています。他のプログラム言語のHello world!と同じ。
下の動画はLED点灯のオンオフを100msにしたものです。
admin
まだ不要ですが、いずれ移行が必要になったときにWi-Fi以外でどうするのかなと思ったら、M1より前のモデルはthunderboltケーブルで、M1以降はthunderbolt、USBあるいはUSB type-Cケーブルでつなげとあります。
この差はなんなのだろうと思うけれども、よく読めば後者はintel macはターゲットディスクモードにはならないと言ってるようだから、接続はやはりthunderbolt使うことになりそう。
第三の方法としては元のmacのバックアップデータであるtime machineデータを指定して新たなマシンに持ってくるというやり方もありそうです。
まとめると、
① Wi-Fi経由
② thunderbolt直接接続
③ timemachineバックアップから
速度的には② > ① ≧ ③(NASだから実力50MB/sぐらい)になるんだろうけど、手間かからないのは①か③ということになる。
admin
timemachine領域はMacBook Airとproを領域共通で使ってましたが、容量が枯渇に近い事はわかっていて、先週MacBook AirのOSをMontereyにしたのでそろそろ枯渇処理がどうなるか見れると思っていましたが(Airは使用頻度相対的に少ないので週一のバックアップ)、半分予想通りで領域不足で失敗。MacBook Proはおそらく過去のバックアップを一部削除して成功。仕様上は過去のバックアップの一部を削除なのですが、この差のロジックはよく分かりませんが、この際なのでproとairのtimemachine領域は独立で設定しました。
qnapのtimemachine設定に関する公式ドキュメントはおそらくこれですが、
中の説明で、「共有 time machineアカウント」を選択
というqnapで推奨されていない説明もあるから首尾一貫していないようには思う。
ともかく、timemachine領域をMac毎に別に定義して運用してみます。
admin