このサービスによって、呼び出し元のスレッドは、指定したタイマー ティック数だけ中断されます。 タイマー刻みに関連付けられている物理時間の量は、アプリケーション固有です。
今の能力での解決は難しそうです。
20230316追記
そもそも MKR には SPI が1系統しかないとのこと。HPを見ると、確かにそのように書いてありました。
とすると、この機種では I2C + SPI しかないですね。
このサービスによって、呼び出し元のスレッドは、指定したタイマー ティック数だけ中断されます。 タイマー刻みに関連付けられている物理時間の量は、アプリケーション固有です。
入社後5年くらいの方が GEORAMA を使いたい!と言うので、一通り説明しました。
何でも吸収していく頃なのか、2日である程度はモデル化できるようになりました。
で、結果を見て「ナニコレ」。
いえ、モデル化が悪いのではなくて、与えられた 2D 図面の推定精度が悪かっただけです。それを忠実にモデル化したのでナニコレな3次元モデルができました。よくある困った話です。
今回は入社後約30~40年の方々が書かれた 2D 地質断面を後追いで 3D 化しました。この世代の方々、なかなか 3D モデルから2D 図面を切り出す発想に至りません。で、御自分のできる(と思われている)2D 地質図面の作成を先行し、CIM用に3D化を若い世代に投げるという逆順を取られるようです。で、ナニコレが出来上がります。
個人的には、2D の世界のみに生きている地質屋さんの地質断面図をあまり信じていません。それは私も含め、2D だけでは作図を誤りやすいからです(経験上、そうして作られた図面のどこかに誤りがあります)。それは、3D の世界に飛び込まないと気づきません。そして何度も誤りを見つけることを繰り返す内に、己の能力の限界を知り、3D のツールを手放せなくなります。3D で 2D をチェックしながら図面を作っていく。このトライ&エラーの過程でミスをなくせること、それをツールが簡単にしてくれることに気づいてしまうからです。
もちろん、トライせずエラーに気付かないまま成果を作り続けて40年過ごしても、土木工事は成立してきました。それはそれで幸せなのかもしれません。その方々から見ると、3D 化は手間と費用のかかる作業にしか見えないでしょう。だから本来の手順とは異なる「後追い 3D 化」を選択しつづけるのだと思います。
30年以上、地質調査を担ってこられた方の図面を見て、地質の分布がおかしいと気づく5年生。きちんとした仕事をしたいなら、早めに己の限界を知り 3D を利用するなど対応を考えるべきでしょう。
ここ数日、CIM対応のお手伝いで、Navis+を触りました。
Ver.2023 になってから GEORAMA で 属性付与用の csv を吐き出せるようになりました。それを Navis+で読んで属性付与、といった手順です。
が、うまくいきません。単に読むだけなのですが、ダメ。
試行錯誤の結果、GEORAMA から吐き出した dwg データを編集し保存した時点で、属性付与のためのキーが消える事がわかりました。吐き出し直後のデータにしか付与できないようです。しかし、編集しないと柱状図のハッチングが Navis で表示されません。GEORAMA の柱状図の吐き出し方が Navis に対応していませんでした。
最終的には2Dの柱状図とソリッドボーリングを別に書き出し、前者のみ編集する(ハッチングを分解する)、後者に属性を付与する、といった対応で済ませました。
次年度の CIM 関連基準では属性付与作業が軽くなるようです。Navis+ を使用せずとも、属性付与ができるようになれば、ありがたいですね。
|
ストレージ |
EC2(Win) |
オンプレ |
|
EBS |
〇マウント可 |
〇RDP |
|
FSx |
〇マウント可 |
×理解不足 |
|
S3 |
× |
〇転送可 |
MicroSD カードへの書き込みも、ボードにバンドルされるライブラリによって差がありました。
SAMD21 (Arduino MKR Wifi 1010)
書き込みモードで新たにファイル作成。その後、同じコマンドを繰り返して追記。
SD.open("/Log.txt", FILE_WRITE)
ESP32(M5 Stack Tough):
書き込みモードで新たにファイル作成。
SD.open("/Log.txt", FILE_WRITE)
その後、追記。
SD.open("/Log.txt", FILE_APPEND)
MKR で SD.open("/Log.txt", FILE_WRITE) を繰り返し、追記していたのですが、それをM5に持ってくると前の書き込みが消える。同じ SD という名前のライブラリなのに、紛らわしい。
この辺り、初心者が通る道なのでしょうね。覚えました。
ここ数週間、M5 と Arduino の SPI 通信にハマっています(現在進行形)。
M5Stack Tough や Arduino MKR wifi 1010 に加速度センサーを付けて波形を取れるようになりました。それをロギングするのに MicroSD を使用しようと目論見。
まずは M5。 こちらには TF カードモジュールが実装されています。SD.begin()に TF が使用している4番を割り振ってから、そこにカードを突っ込むだけ。ではダメでした。コンパイル直後は正しい値を示すものの、電源を入れなおすと加速度値が 0.00 になります。これが改善せず、放置。
次に MKR。 こちらも TF カードモジュールを加えるとダメ。取得値の桁が変わります。SDに書き込めるのでCSピンは正しく機能しているはず(と思いたいがダメなのでしょう)。コチラはブレッドボードに指していたので、TF モジュールやワイヤー順にを取り除いてみました。結果、MKR ボードに指すだけでも値が不安定になります。接触抵抗抵抗?電流不足?速度?
ブレッドボードを使用しない場合も試してみましたがダメ。で、放置。
似たような症状でしたので、少なくともSPIは干渉しているのでしょうと想像し、センサーを HSPI に、TF を VSPI に切り分けてみることにしました。M5 の接続は I2C と GPIO ポートを利用し、TFと物理的に分けました。
この段階でようやく理解したのが、SPI ライブラリが M5 と MKR で異なっている点。M5 は SPI.begin()にピン番号を引数として指定できたのですが、MKR ではダメ。M5 では SPIClass hspi(HSPI) が通るのに、MKR ではダメ。どちらを使うかはボードを選択したときに決まるようですね。esp32 と SAMD21 の違いでしょうね。
その後、Google先生や ChatGPT師範に教わるも進展なし。時間を溶かしながらも、ようやく M5 だけ通信ができました。以下の手順です。
・I2Cポート、GPIOポートに接続
・M5.In_I2C.release() で I2C をリリース。
・ピンを割り振って起動
//spi2.begin(sckPin, miPin, moPin, csPin);
spi2.begin(26, 36, 32, 33);
pinMode(csPin, OUTPUT);
digitalWrite(csPin, HIGH);
M5 では SPIClass hspi(HSPI) は通りますが不要でした。これ、ハマりどころでは?https://forum.arduino.cc/t/esp32-spi-accelerometer/1004705
web 上に情報がたくさんあるので素人でもなんとかなるでしょう、と軽い気持ちで始めたのですが、それは間違いでした。同じ名前のライブラリでも機種によって異なる、たくさんあるコードや情報には新旧玉石が混在。欲しい情報がなかなか見つかりませんでした。想定に反し、苦戦しそうです。
この先、M5 もディスプレーを begin すると TF と干渉するのでしょうか。うーん。
放置していた Raspberry Pi Pico へ進みましょうか。
****************************
20231230 試作品をGitHubに公開
https://github.com/T40O0/ADXL355_SPI_M5_SD_FIR.git