セットアップ中にバスの内部通信を確認する方法を見つけたときは、本当に興奮しました。自宅で準備をすべて整え、かなりうまくいきました。スキーに行ってからテストしてみました。最初はちゃんと動作しました。SPIバス通信に基づいた最短のコンパスコードです。プログラムから方位は出力されましたが、0でした。でも、私にとって重要なのはSPIバスが機能していることだったので、特に気にしませんでした。その後、少し変更を加えてみました。しかし、その後、SPIに信号が全く送られてきませんでした。Platform IOでシリアルモニターを開いてキーを押すと、セットアップが動作するはずだったのですが、全く反応しませんでした。その後、本当に落ち込みました。翌日、VS Codeに「Continue」拡張機能をインストールしたら、どういうわけかうまくいきました。たとえ思った通りにいかなくても、私はいつも少し賢くなっているということを忘れてはいけません。今日はグラフィックスのコースを受講するので、考え方が変わるかもしれません。その後、GitHubも使えるようになりました。コマンドラインからgit add、git commit、git pushコマンドを実行できるようになったのです。オンラインでのバックアップ管理が少し楽になります。実際には、SPIバスを使ってBNO085デバイスと通信するという夢は諦めました。そのため、Seeeduino XIAOにはI2C(BNO085)とSPI(MCP23S17)という2つの独立したバスが搭載されています。この原則をコンパスベルトのプログラムにも引き継ぎました。まず、Seeeduino XIAOがI2Cバス経由でBNO085と通信し、同時にSPIバス経由でMCP23S17 IO拡張チップと通信する簡略化されたプログラムを作成しました。後者には、MajenkoのSPIライブラリを使用しました。これが動作するようになったら、コンパスベルトの「コアプログラム」を同じ通信モデルに変更し始めました。つまり、同じプログラム内でSPIとI2Cの両方が動作し、信号は別々の配線で伝送されるということです。ようやく「原理的には」動作するようになりましたが、BNO085の方向信号がまたしても不正確で、LEDがひどく点滅しました。どういうわけか、MajenkoのライブラリではLOWでLEDが点灯、HIGHで消灯、つまり逆の順番になっています。それから、lastDirection_変数にタイプミスがありました。コンパスベルトの原理自体はとてもシンプルなのですが、調整可能なウィンカーと北からの角度を変えるポテンショメータを追加すると、3つの異なる機能を1つのプログラムにまとめてしまい、プログラムが非常に理解しにくくなってしまいます。雪不足のおかげでスキーには最適な天候で、かなり長いコースベースが踏み固められましたが、ごく短い距離を除いてまだ踏み固められていません。3~4時間ほどの長距離滑走に挑戦し、踏み固められたコースをすべて周回して、ルティッカ湖への独自のコースを切り開きました。湖には倒木がいくつかあり、スキーでその上を登らなければなりませんでした。ルティッカ道路は除雪され、また伐採が行われているようです。そのため、リーヒマキ・トレイルが今年開通するかどうかは疑問です。これは本当に残念です。帰り道にスノーモービル愛好家2人を見かけました。ブーツをダクトテープで固定して、週末はなんとか乗り切りました。グラフィックアートの授業で銅エッチングの技法を学び始めました。図書館で調べたところ、ロヴァニエミ図書館からロバート・クロッテの『月の森』を借りることができ、しかもそれほど費用もかからないとのことでした。