那個藏在你屁股後面的小玩意兒
- 32. 啟用 i2c 功能
• $sudo raspi-config
• $sudo apt-get install i2c-tools
- 38. 小測驗
• ax =(e7, c0) -> ?
• ay =(e5, 04) -> ?
Ans:
ax = 59328 = -6208
ay = 58628 = -6908
- 39. Python 寫法
• import smbus
• i2c = smbus.SMBus(1)
• addr = 0x68
• a_out = i2c.read_i2c_block_data(addr, 0x3B, 6)
• g_out = i2c.read_i2c_block_data(addr, 0x43, 6)
- 40. ax ay az gx gy gz mx my mz
Acc: 16384 LSB = 1 g = 9.8 m/s^2
Gyro: 131 LSB = 1 deg/s
Mag: 1 LSB = 0.15 uT
- 48. 再來一點截長補短…
感測器特性
• 加速度的特性:
• 有重力當靠山,
• 但是雜訊量非常大。
• 角速度的特性:
• 短時間可以有效的表示旋轉量,
• 但是長時間會飄到世界盡頭。
• 磁力計:
• 有地磁當靠山,
• 但是反應速度相對很慢。
截長補短
所以…
• 用可靠的濾波過濾加速度。
• 用重力值校正磁力計對於地軸
的偏差。
• 用重力值校正角速度的飄移量
• 用磁力計校正加速度計長期的
方向