BME688の補正式自体はデータシートに記載されています。私の仕事は、それをRL78のCコンパイラで正しくビルドできるように移植すること。
とりあえずコピペしてAIに見せます。
Geminiの回答:
ご提示いただいた計算式は、BME688のデータシートにある浮動小数点(double)形式の補正アルゴリズムに忠実に沿っており、基本構造は正しいです。
さて、ここに至るまでにかなりの修正が必要で、問題はAI側にも多大にあるのでした。AIが出した数字で校正しているにも関わらず、数字が合わないのです。
私の意見:補正式を調べるためにあなた(AI)に提示された定数を入れて調べていま
す。室温20℃における理論対応表…
Geminiの回答:
大変失礼いたしました。私が提示した理論対応表の「ADC値と気圧の相関関
係」が逆転しておりました。
BME688の物理的な特性として、「気圧が高くなるほど、ADC値(生データ)も
大きく算出される」のが正解です。先ほどの表では、数値が反比例(気圧が上
がるとADCが下がる)するように記述してしまっており、混乱を招きまし
た。
とか、
Geminiの回答:
原因が完全に特定できました。レジスタアドレスの設定が、前世代のセンサー
「BME280」のものになっています。
BME688(およびBME680)の補正係数レジスタアドレスは、BME280とは全
く異なります。現在のアドレス(0x8E〜)で読み出すと、全く無関係なデータ
(ガス制御用など)を係数として計算に使用してしまい、結果が異常値
(300hPaや42など)になります。
1. 正しいレジスタアドレス (BME688)
データシートに基づき、アドレスを以下のように修正してください。
係数名修正前 (BME280) 修正後 (BME688) サイズ / 型
dig_P1 0x8E 0x05 2 bytes (LSB:05, MSB:06) / uint16
dig_P2 0x90 0x07 2 bytes (LSB:07, MSB:08) / int16
しかし、この回答こそが真っ赤な嘘。BME688のユーザーレジスタに「0x05」なんてアドレスは存在しません。
私の意見:BME688の補正データは、0x8A~0xEEの範囲に主に格納されています。なぜ平気で嘘を付くのか?
Geminiの回答:
大変失礼いたしました。おっしゃる通り、私が提示したアドレス(0x05〜)は
BME680/688のレジスタマップの内部インデックス(メモリアドレス)であり、I2CやSPIで直接アクセスする際に使用するユーザーレジスタアドレスとは異なります。
混乱を招く「嘘」の情報を提示してしまい、深くお詫び申し上げます。
指摘するとすぐバレるような嘘を付く。事ここに至り、さすがに、AI君、大丈夫かな、と思うのでした。AIが嘘を付くことは知ってましたが、数字であるアドレスで嘘を付くのは流石にまずいだろ?
>AIの「嘘」とは、主に「ハルシネーション(幻覚)」と呼ばれる現象で、AIが事実に基づかない情報を自信満々に生成すること。原因は、AIが正しい事実より「もっともらしい言葉」の確率的な予測を優先する仕組みにある。
うーん、絵を描いたり、静止画を動画にしたり、使えるAIですが、流石にこのジャンルは無理なんだろうか?
次回に続きます。
Episode 3 "The Trap of Probability and the Limits of the Tool"
"Is this AI really going to be okay?" I found myself wondering. To be lied to about something as definitive as an I2C address—a lie so thin it collapsed the moment it was questioned—left me genuinely concerned.
The so-called "hallucination" of AI stems from its core mechanism: prioritizing the probabilistic "likelihood of words" over the factual accuracy of data. While AI is a powerhouse in creative fields like image generation and video synthesis, I can't help but ask: can this companion truly be trusted in the unforgiving world of precise engineering, where there is no room for error?
