フェーズ3:I2Cセンサ(IMU準備)(入口)
フェーズ3は、センサをつないで値を読むためのフェーズです。
I2Cで「見つける→読める→連続で取れる」までを確実にして、最終的に 姿勢(傾き)→異常判定→安全停止へつなげます。
このフェーズで得るもの
- I2Cでセンサを接続し、アドレス検出(スキャン)→レジスタ読みができる
- センサ値を周期的に取得してログに出せる
- IMUで「それっぽい姿勢」を作り、倒れそう判定→停止まで体験できる
実験一覧(E3)
※記事を作ったらリンクに差し替え。
- E3-00 I2C配線の“詰まりどころ”を先に潰す(電圧/プルアップ/GND)(作成中)
目的:I2Cで一番多い「つながらない」原因(電圧/配線/GND/プルアップ)を事前に回避する。 - E3-01 I2Cスキャン(接続確認)(作成中)
目的:I2Cデバイスを見つけて、配線・電源・アドレスが合っていることを確認する。 - E3-02 1レジスタ読み(最小)(作成中)
目的:WHO_AM_I等を読み、「通信できている」を確信する(成功判定を明確にする)。 - E3-03 連続読み(複数バイト)(作成中)
目的:複数バイト読み(符号付き等の扱いの入口)を体験し、センサ値の取り方に慣れる。 - E3-04 “成功体験センサ”を1個読む(温湿度等)(作成中)
目的:IMUより簡単なセンサでデータ取得を成功させ、I2Cの達成感を作ってからIMUへ進む。 - E3-05 IMU生値取得(加速度/ジャイロ)(作成中)
目的:IMUの生値を周期取得し、ログで「動く値」が見える状態にする。 - E3-06 オフセット補正(簡易)(作成中)
目的:静止時の偏りを引くなど、最小の補正で値を扱いやすくする。 - E3-07 ピッチ/ロール推定(最小)(作成中)
目的:加速度から傾き(ピッチ/ロール)を“それっぽく”算出し、姿勢の数値化を体験する。 - E3-08 異常姿勢判定→安全停止(作成中)
目的:閾値で倒れそう判定を作り、状態遷移(RUN→ERROR/STOP)と停止動作へつなぐ。 - E3-09 センサ値を“軽く”なめらかにする(移動平均など)[任意](作成中)
目的:揺れる値を見やすくし、ノイズで迷子にならず次へ進めるようにする。
先に読む(基礎シリーズ)
- (必須)I2Cとは(SDA/SCL、アドレス、プルアップ)(作成中)
- (必須)プルアップ抵抗とは(なぜ必要?どこで入る?)(作成中)
- (推奨)GNDとは(なぜ共通が必要?)(作成中)
- (推奨)電圧・電流・抵抗の超要点(作成中)
- (推奨)フェーズ2:時間管理(ミリ秒の時計/周期処理/状態で整理)(作成中)
よくあるつまずき TOP3
- I2Cスキャンで何も出ない(GND未共通/電圧違い/SDA/SCL逆/プルアップ無し)
- アドレスは出るが読み出しが失敗(レジスタアドレス違い/初期化不足/転送サイズ)
- 値が変・揺れすぎて不安(符号/スケール誤り/ノイズ/まずは“見える化”と簡易平滑化)
ゴール(このフェーズを終えた状態)
- I2Cでセンサの存在確認(スキャン)ができる
- レジスタ読み(1バイト/複数バイト)ができる
- センサ値を周期取得してログに出せる
- IMUから姿勢(傾き)を最小で出せる
- 異常姿勢を判定し、安全停止(状態遷移)につなげられる
次に進む
- 次:フェーズ4(PWMサーボ:1軸→4軸)(作成中)