今、BMX055の9軸センサーを使っています。
https://qiita.com/john256/items/b0ad7a4222ad1583b124
のサイトにある、「BMX055.pyのソーコード修正と実行」クリックしていただくと、
https://github.com/ControlEverythingCommunity/BMX055/blob/master/Python/BMX055.py
へジャンプすることができるのですが、そこにある磁気センサのプログラムについての質問です。
# BMX055 Mag address, 0x10(16) # Select Mag register, 0x4B(75) # 0x83(121) Soft reset bus.write_byte_data(0x10, 0x4B, 0x83) # BMX055 Mag address, 0x10(16) # Select Mag register, 0x4C(76) # 0x00(00) Normal Mode, ODR = 10 Hz bus.write_byte_data(0x10, 0x4C, 0x00) # BMX055 Mag address, 0x10(16) # Select Mag register, 0x4E(78) # 0x84(122) X, Y, Z-Axis enabled bus.write_byte_data(0x10, 0x4E, 0x84) # BMX055 Mag address, 0x10(16) # Select Mag register, 0x51(81) # 0x04(04) No. of Repetitions for X-Y Axis = 9 bus.write_byte_data(0x10, 0x51, 0x04) # BMX055 Mag address, 0x10(16) # Select Mag register, 0x52(82) # 0x0F(15) No. of Repetitions for Z-Axis = 15 bus.write_byte_data(0x10, 0x52, 0x0F) time.sleep(0.5) # BMX055 Mag address, 0x10(16) # Read data back from 0x42(66), 6 bytes # X-Axis LSB, X-Axis MSB, Y-Axis LSB, Y-Axis MSB, Z-Axis LSB, Z-Axis MSB data = bus.read_i2c_block_data(0x10, 0x42, 6) # Convert the data xMag = ((data[1] * 256) + (data[0] & 0xF8)) / 8 if xMag > 4095 : xMag -= 8192 yMag = ((data[3] * 256) + (data[2] & 0xF8)) / 8 if yMag > 4095 : yMag -= 8192 zMag = ((data[5] * 256) + (data[4] & 0xFE)) / 2 if zMag > 16383 : zMag -= 32768
上のプログラム 4行目に
Traceback (most recent call last):
ファイル名, line 79, in <module>
bus.write_byte_data(0x10, 0x4B, 0x83)
OSError:[Error 121] Remote I/O error
というエラーメッセージが出てしまうのですが、その原因がわかりません。
その原因を教えてください。ちなみに、BMX055のデータシートは以下のURLです。
https://www.mouser.jp/datasheet/2/783/BST-BMX055-DS000-02-1018813.pdf
また、BMX055のアドレスは、加速度 0x18、ジャイロ 0x68、ショート 0x10 です。
あなたの回答
tips
プレビュー