2023年1月29日日曜日

マイコンボード

昨年末~正月明けにかけて、M5StickC Plus に 3.3V 稼働の MEMS加速度センサーをつなげようと試行錯誤していました。

I2C、SPI 共にどうやってもうまくデータが取れないため、センサーを壊してしまったのか、GitHub から拾ってきたコードの修正箇所がマズいのか。
このままではわからないので、別のマイコンボードを買うことにしました。買ったのは以下。

・Arduino MKR WIFI 1010
・Raspberry Pi Pico
・M5Stack Tough

MKR の SPI 接続を調べ、接続し、コードをMKR用に少し変えてみました。

繋がりますね。

Z軸はOK。9.8m/sを示します。XYはダメ。コードが誤っているのでしょう。まあ、Zしか使わないので良いのですが。
とりあえず、センサーは生きているようで安心しました。

Pico は扱い方が良くわからず。C++ではなく、MicroPython の別のコードで比較すれば、XYの修正箇所も見えてくると思ったのですが、複数のコードを保存する方法がわかりませんでした。調べてから扱うことにしましょう。

Tough は I2C を使うのが簡単そうですね。電源だけ3.3Vにすれば、動くでしょう。その後で速度の出る SPI かな。

一つではわからなくても、複数を組み合わせることで何かしらヒントを掴めるでしょう。
このまま進めましょう。


2023年1月26日木曜日

Office 365 プロパティ変更

MS Office 製品のデータには、作成者や印刷日時などの情報が含まれます。

その多くは explorer のプロパティから削除することが可能なのですが、前回保存日等は変更できません。ツールを探してみましたが、ないですね。

では、作りましょう。ということで、Pythonで作成しました。

といっても、Word や EXCEL のファイルはただの ZIP ファイルですので、docProps/core.xml を入れ替えるだけです。ファイル操作のみですので、PowerShell でも可能かもしれません。

import os
import shutil
import glob
import zipfile

# output ディレクトリを空にする
shutil.rmtree("./output/data/")
os.mkdir("./output/data/")

# data の下にプロパティを変更したいデータを入れる。
# プロパティ変更済みの./docProps/core.xmlを別途用意。
path = 'data/*'
files = glob.glob(path)

for file in files:
    print(file)
    zin = zipfile.ZipFile (file, 'r')
    zout = zipfile.ZipFile ("./output/"+file, 'a')
    for item in zin.infolist():
        buffer = zin.read(item.filename)
        if (item.filename!= "docProps/core.xml"):
            zout.writestr(item, buffer)
    zout.write('./docProps/core.xml')
    zout.close()
    zin.close()
参考:https://stackoverflow.com/questions/513788/delete-file-from-zipfile-with-the-zipfile-module

2023年1月22日日曜日

仮想メモリ

 今月は納期が重なり忙しくしていました。

こういう時でも、翌月に検討するためのデータ作成は進めておく必要があり、時間のかかる計算をPCに頑張ってもらっていました。

計算を初めて3日目。ふと見るとexeが落ちていました。Winのログをたどると、夜中にメモリーオーバーの度が過ぎてしまったようです。実装メモリは64GBで、大きな計算をするには少し小さめ。仮想メモリを実装メモリの3倍程度使っており、落ちてしまったようです。
8TB の SSD を購入し、input data を入れていたのですが、これでは速度改善が見込めません。 手元にあるより大きなメモリを積んでいるPCでも、ダメでしょう。

ハードの容量と計算の規模がイタチごっこ。
メモリが安くなってきたといっても、TBは高価。SSD を追加して仮想メモリに割り当てるか、分割して計算するしかなさそうです。いつの時代も、変わらないですね。

****************************
20230206追記

SSD の威力を実感。1.5日で終わった計算が、HDDからの読み込みだと10日かかる見込み。かもう一台買いましょうか。


Picker

とある先生にお声をかけていただき、新しい探査法のデータをいただきました。

振動解析のフレームワークをそのまま適用できると考え、Python で処理。

Record Section を書くところまではあっさりできたのですが、波速を決定するところで引っかかりました。

Cross Correlation だと、1m離れたら相関性が小さくなってしまうという結果。STA/LTAだと、60m/sというS波にしても遅い波速になりました。評価に迷います。うーん。

そもそも生波形が特殊な形をしていたので、そのまま使うのはダメなのでしょうね。 何か工夫が必要なのでしょう。文献を調べてみましょう。