部品実装と配線、配線チェックと単体の機能試験まで、
① 回路図:ライブラリが存在しないパーツは適宜置き換え、三端子、加速度センサー、OLECD、ライブラリあったのはラズパイI/FとADCだけという結果
アナログ電源はノイズ除去のためにL/Cでπ型のフィルタ構成にしています、ラズパイやM5StackなどのADCではデジタルノイズ混入しまくりだし、精度も10ビットしか取れないので震度計算の目的には使えないでしょう
P.S. 2024/10/1 回路図誤記修正(MCP3004電源)
② 実装と配線
アナロググランドは一点アース、この程度の周波数だとそれがベストだろう
③ 機能確認
・OLCD
https://qiita.com/tkarube/items/6808538012cba499d5e2
CircuitPythonのライブラリを使うのが今は推奨だが、動くだけなら旧ライブラリでも動くようだ
・加速度センサー
https://note.com/upyc101/n/nd3a1d606adf2
静止状態で一万回読み出して、最大値と最小値は、
python ./main.py
1259 1262
2045 2048
1843 1847
z, y, x座標の値ですが、z軸の値は重力加速度が加算(モジュールを裏返しにしている)されます。ガル値の計算では測定値からオフセットは差し引いていますが
S/Nでフルスケールに対してノイズレベルはおよそ60dB(およそ2/2000)はとれてるからまあまあではないか、
サンプルの最大・最小値を求めるために、リンクのコードのmain.pyは以下に変更、
import sub1
value_array = [
[4000, 0],
[4000, 0],
[4000, 0]
]
adc = sub1.adc() # クラス adc のインスタンスを作成
for j in range(10000):
for i in range(3):
c = adc.rdadc(i)
if c > value_array[i][1]:
value_array[i][1] = c
if c < value_array[i][0]:
value_array[i][0] = c
print(value_array[0][0], value_array[0][1])
print(value_array[1][0], value_array[1][1])
print(value_array[2][0], value_array[2][1])
admin